Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METODIchka4.DOC
Скачиваний:
5
Добавлен:
04.05.2019
Размер:
940.03 Кб
Скачать

Контрольные вопросы

1. В каких единицах измеряется скорость работы стыка?

2. Какие параметры устанавливаются при инициа­лизации последовательного порта?

3. Какие функции работы с RS-232 предоставляет BIOS?

4. Как осуществить связь по стыку с помощью Norton Commander?

5. Как установить скорость передачи последова­тельного порта 9600 бод?

Лабораторная работа № 4

Программирование параллельного порта PC фун­кциями BIOS, изучение команд матричного печата­ющего устройства.

Основные сведения

Параллельный программируемый порт Устройство печати IBM PC-подобных компьюте­ров обычно подключается к параллельному интер­фейсу. Для подключения используется стандартный разъем Centronix, имеющий 36 контактных выходов (отечественный аналог ИРПР-М). Для управления работой принтера используется специализированный адаптер принтера, который для DOS имеет наимено­вание LPT1 или PRN. К ПЭВМ могут быть подклю­чены два дополнительных адаптера для управления принтерами - LPT2 и LPT3. Описание функций BIOS для работы с печатаю­щим устройством. Для управления печатающим устройством име­ются следующие функции BIOS ( Int 17H ):

Функция 00h

Вывод символа на печать.

*Вход:

АН = 00h

AL = печатаемый символ

DX = номер принтера (0 -LPT1, 1 -LPT2 и т. д.)

*Выход:

АН = состояние принтера

7 6 5 4 3 2 1 0

* Примечание.

Выводит символ из AL на заданный принтер и возвращает состояние принтера.

Функция 01h

Инициализация принтера.

*Вход:

АН = 01h

DX =номер принтера (0-LPT1,1-LPT2 и т. д.)

*Выход:

АН = состояние принтера (см. функцию 00h)

* Примечание.

Инициализирует заданный принтер и возвращает его состояние. Инициализация состоит в выводе бай­тов 08h и 0Ch в регистр управления принтером. При этом происходит начальная установка всех парамет­ров печатающего устройства.

Функция 02h

Опрос состояния принтера.

*Вход:

АН = 02h

DX = номер принтера (0 - LPT1, 1 - LPT2 и т. д.)

*Выход:

АН = состояние принтера (см. функцию 00h)

*Примечание.

Возвращает состояние заданного принтера.

Система команд матричного принтера

Несмотря на простоту управления, принтер пред­ставляет собой достаточно сложное устройство, имею­щее свой микропроцессор, ПЗУ и ОЗУ. Микропроцес­сор используется для обработки управляющих после­довательностей и управления печатью. ПЗУ содер­жит описание рисунков символов в зависимости от их кода и выбранной таблицы и программы на языке используемого микропроцессора. ОЗУ используется для временного хранения введенных данных и спроектированных пользователем символов. При­нтер обрабатывает ряд спецсимволов (таких, как звонок, забой, горизонтальная и вертикальная табу­ляция).

Обычно команды начинаются с символа ESC (шес­тнадцатиричный код 1Bh) и имеют длину от двух байт и более (существуют командные последователь­ности, включающие по несколько килобайт информа­ции, например команды загрузки спроектиро­ванных пользователем шрифтов). Спецсимволы и байты команд передаются принтеру так же, как и обычные символы, предназначенные для печати, описанным выше способом. Подобный способ управ­ления удобен для программного изменения режимов работы устройства.

Ряд характеристик и режимов работы может выбираться как программно, так и аппаратно с использованием кнопок и клавиш на лицевой панели и DIP-переключателей. Существуют характеристи­ки, изменить которые можно только аппаратно

Текстовые режимы печати.

Принтер формирует символ с помощью вертикаль­ной линейки из 9 иголок, которая перемещаясь вдоль каретки, образует вертикальные колонки. Одновре­менно можно использовать только 8 иголок: 8 верх­них или 8 нижних. Символ размещается в сетке 8 строк * 11 столбцов. Точки в изображении символа не должны находиться в соседних клетках сетки.

1 2 3 4 5 6 7 8 9 10 11

Знакогенераторы, хранящие вид каждого символа, входящего в шрифт, хранятся в ПЗУ принтера, но мо­гут пересылаться в ОЗУ. Хранение знакогенератора в ОЗУ позволяет переопределять изображение некото­рых символов засылкой в ОЗУ сетки символа, опреде­ляемого пользователем.

Команда ESC " % " n определяет положение знакогенератора:

n=0 - используется знакогенератор из ПЗУ;

n=l - используется знакогенератор из ОЗУ.

Для переопределения символа используется команда ESC "&" s n m {a d1..d11} .. - определить загру­жаемые символы, s - номер загружаемого знакогенера (всегда 0);

n - ASCII код первого загружаемого символа;

m - ASCII код последнего загружаемого символа;

а - атрибут описываемого символа, он определяет ши­рину символа и его положение в сетке, старший бит атрибута а задает положение в сетке, если он равен 1, то используется 8 верхних иголок, если 0 - 8 нижних, младшие 7 битов задают ширину и представляют со­бой число, определяемое по следующей схеме:

- взять в качестве начального значения число 8;

- вычесть из начального значения число, равное числу пустых столбцов справа;

- прибавить к результату (число пустых столбцов слева) * 16;

- прибавить 128, если используются 8 верхних иголок;

полученное число и есть атрибут а;

d1…d11 - данные, описывающие символ по столб­цам, каждая строка имеет вес 1, 2, 4…128, если в j-м столбце, в i-й строке стоит точка, то к dj прибав­ляется 2 .

Графический режим печати.

Графическое изображение печатается построчно 8 точек по вертикали в ряд. После каждой строки осуществляется перевод каретки. Для печати одной строки в графическом режиме используется команда

ESC "*" m n1 n2 dl..dk

m - выбранный режим графики,

nl, n2 определяют длину печатаемой графической строки в точках. Для определения длины строки можно использовать следующую схему:

- делим длину строки на 256, целая часть есть параметр n2;

- остаток от деления используем в качестве nl. Команда всегда должна содержать два параметра, даже если п2=0.

d1…dk - байты графических данных. Каждый байт определяет один восьмиточечный столбец, если в 1-й строке стоит точка, то соответствующий бит в байте равен 1.

Например, * 7

0 6

0 5

* 4

* 3

0 2

* 1

* 0

Этому столбцу соответствует байт 10011011. Число байтов графических данных всегда должно быть равно n1*256+n2.

7 6 5 4 3 2 1 0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]