Отчет Лабораторная 4. Лабораторная работа 4 Адаптер параллельного интерфейса Centronics
Скачать 48 Kb.
|
Министерство образования и науки Российской Федерации ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра промышленной электроники (ПрЭ) Лабораторная работа № 4 «Адаптер параллельного интерфейса Centronics»по дисциплинеЭксплуатация и развитие компьютерных сетей и систем.Выполнил: Студент ФДО Специальность: 210106 « » 2014г. Проверил: 2014 Цель работы: Изучение и реализация принципов работы LPT-порта. Необходимо: 1.Изучить структуру и принцип работы адаптера. 2.Разработать программы, демонстрирующие взаимодействие с адаптером на уровнях: - прерывание DOS (INT 21h Fn05h); - прерывание BIOS (INT 17h); - портов ввода-вывода (адреса портов 378h, 278h и 3BCh). Выполнение работы Работа с принтером через прерывание 17H Рассмотрим принцип работы с принтером через прерывание 17Н. Для вывода символа на печать нам потребуется: Отправить запрос на инициализацию принтера; Выбрать номер порта; Подать запрос на вывод символа, задав код вывода согласно таблице ASCII. Попробуем напечатать слово «Мама» с заглавной буквы. Для этого надо напечатать символы с кодами: 204, 224, 236, 224. Листинг 1 – Печать слова «Мама» с помощью прерывания 17H Program PRINTER17H; Begin writeln('Печать…'); asm {начало ассемблерного блока} mov ah,01 {запроc инициализации принтера} mov dx,00h {выбор порта LPT1} int 17h {вызываем прерывание} mov ah,00h {запрос на вывод символа} mov al,204 {выведем символ «М»} mov dx,00h {на принтер номер 0 (через LPT1)} int 17h mov ah,00h {запрос на вывод символа} mov al,224 {выведем символ «а»} mov dx,00h {на принтер номер 0 (через LPT1)} int 17h mov ah,00h {запрос на вывод символа} mov al,236 {выведем символ «м»} mov dx,00h {на принтер номер 0 (через LPT1)} int 17h mov ah,00h {запрос на вывод символа} mov al,224 {выведем символ «а»} mov dx,00h {на принтер номер 0 (через LPT1)} int 17h end; {конец ассемблерного кода} end. {конец программы} Работа с принтером через прерывание 21H Для работы с принтером через прерывание 21Н нам потребуется: Отправить запрос на вывод; Выбрать номер принтера; Выбрать строку для печати; Указать число символов в строке для вывода. Попробуем так же напечатать слово Мама. Только теперь слово можно задать целиком и вывести сразу всю строку. Листинг 2 - Печать слова «Мама» с помощью прерывания 21H Program PRINTER21H; VAR print:String; {Строка которую будем печатать} Begin print:= 'Мама'; asm mov ah,40h {Запрос на вывод} mov bx,04h {Будем выводить на принтер через LPT1} mov cx,4 {Всего 4 символа} lea dx,msg+1 {Печатаем строку} int 21h end; end. Работа с выводом данных в порт LPT Для вывода данных в порт используется команда out dx,ax Причем в dx помещается номер порта (у LPT1 порта это номер 378h), а в ax помещается байт для вывода в порт. Попробуем вывести 4 байта, таких же как в первой программе (ASCII коды, соответствующие слову «Мама»). Листинг 3 - Программа вывода через порта LPT Program OUT; {программа вывода данных в порт} Begin asm mov ax,204 {Байт данных для вывода} mov dx,378h {Номер порта для вывода} out dx,ax {Выводим данные в порт} mov ax,224 {Байт данных для вывода} mov dx,378h {Номер порта для вывода} out dx,ax {Выводим данные в порт} mov ax,236 {Байт данных для вывода} mov dx,378h {Номер порта для вывода} out dx,ax {Выводим данные в порт} mov ax,224 {Байт данных для вывода} mov dx,378h {Номер порта для вывода} out dx,ax {Выводим данные в порт} end; end. Заключение В ходе выполнения работы были разработаны программы для работы с LPT-портом через прерывания 17H, 21H и через обращение к номеру порта 378h. |