Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МАВЦ.464319.001ТУ 20140414 Семенов.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
2.98 Mб
Скачать

5.5 Программирование работы с принтерами

При работе с печатающими устройствами могут быть использованы прерывания: 14Н и 17Н BIOS и 21Н (АН=4 и 5) DOS. Следует различать программирование для печата­ющих устройств параллельного типа (информация передается на принтер побайт­но по 8-битной шине) и печатающих устройств последовательного типа (информация передается по одному проводу последовательно по одному биту), подсое­диняемых к любому последовательному порту микропроцессора.

5.6 Печатающие устройства параллельного типа

Основные прерывания для печатающего устройства параллельного типа:

  • 17Н BIOS (номер принтера предварительно указывается в регистре DX):

  • послать один символ в устройство печати: АН=0. ASCII-код символа предварительно должен быть помещен в регистр AL. В регистре АН после завершения вывода символа возвращается признак успешности результата;

  • инициировать принтер (посылка в порт служебных кодов): АН=1;

• получить состояние принтера (в регистре АН): АН=2. - 21H DOS:

• вывести на печать один символ: АН=5. ASCII-код символа предварительно записывается в регистр DL. Фрагмент программы печати символа «С» (ASCII- код символа «С»=43Н):

mov АН. 5

mov DL. 43H

int 21H

Если необходимо отпечатать строку, то следует, используя это же прерыва­ние, организовать вывод символов в цикле, каждый раз помещая в регистр DL ASCII-код очередного символа, а в конце строки и код CR возврата ка­ретки (ASCII-код = 13) и/или LF — перевода строки (ASCII-код = 10). Фраг­мент программы печати строки: «Я печатаю»:

text db 'Я печатаю'. 13

… .

mov SI, 0 ; обнуляем смещение адреса символа в строке

mov АН, 5

print: mov DL. text[SI]

; помещаем в DL очередной символ из строки text

int 21H

inc SI ; увеличиваем смещение адреса символа в строке на 1

cmp DL. 13

; сравниваем очередной символ с кодом возврата каретки

jne print

Печатающее устройство имеет свой буфер, где накапливает печатаемые сим­волы, пока не поступит символ CR или LF (поэтому возможна печать строки и в обратном направлении).

• Вывести на печать текстовый файл: АН=40Н. Используются функции расширенного управления файлами MS-DOS по файловому указателю. Пример фрагмента программы для вывода на печать текстового файла Text, содержа­щего 50 байт:

text db 50 dup(‘ ‘)

… .

mov АН. 40Н

mov BX, 4 ;указание устройства вывода

mov CX. 50 ;указание числа выводимых байтов

mov DX. offset text ;указание начального адреса

;поля памяти, содержащего текст

int 21H

5.7 Печатающее устройство последовательного типа

Основные прерывания для печатающего устройства последовательного типа:

  • 14Н BIOS (номер последовательного порта записывается в регистр DX):

  • инициализация параметров последовательного порта: АН=0;

  • послать в порт один символ (если к порту подсоединен принтер, то и пе­ чать): АН=1 и др.

  • 21H DOS (номер последовательного порта записывается в регистр DX):

  • вывести на печать один символ: АН=4. ASCII-код символа предварительно записывается в регистр DL;

  • далее аналогично прерыванию 21Н DOS, АН = 5 для принтера параллельного типа и др.