Иллюстрированный самоучитель по Assembler


Программирование аппаратных средств - часть 4


В КМОП-микросхеме реализован способ обращения к ее отдельным ячейкам, широко используемый в микропроцессорной технике. Если программировать КМОП-память прямым образом, для обращения к ее 64 ячейкам в адресном пространстве ввода-вывода пришлось бы выделить 64 адреса. Для сокращения числа используемых адресов в состав микросхемы введены два служебных регистра - адресный и данных. В адресный регистр (порт 70h) заносится номер той ячейки КМОП-памяти, к которой требуется обращение. После этого чтение регистра данных (порт 7 Hi) позволяет прочитать содержимое выбранной ячейки, а запись в регистр данных выполняет передачу данного в эту ячейку. Приведем полный текст программы, которая читает содержимое ячейки с номером 0Dh. В ней хранится состояние батареи, питающей КМОП-микросхему. Если бит 7 этой ячейки установлен, батарея исправна; если этот бит сброшен, напряжение батареи упало ниже допустимого предела, и ее надо менять.

Пример 3-10. Чтение ячейки КМОП-микросхемы


code segment

assume cs:code

main proc

mov AL,ODh ;Будем читать ячейку ODh

out 70h,AL ;Задание номера ячейки

in AL,71h ;чтение из ячейки

test AL,80h ;Проверка бита 7

jnz ok ;Бит 7 = 1, перейти на OK

mov AH,02h ;Бит 7=0, питания нет

mov DL,'-' ; Выведем в знак этого

int 21h ; Символ минус

jmp exit ;Переход на завершение

ok: mov АН,02h ;Батарея в порядке,

mov DL,'+' ;выведем в знак этого

int 21h ;символ плюс

;Завершим программу

exit: mov AX,4COOh

int 21h

main endp

code ends

end main

Рассмотрим теперь программирование периферийного оборудования в режиме ожидания готовности на примере параллельного интерфейса. В стандартной конфигурации компьютера к параллельному интерфейсу обычно подключается принтер, однако его можно использовать и для связи с нестандартным (измерительным или управляющим) оборудованием.

В компьютерах используется разновидность параллельного интерфейса под названием Centronics, отличающаяся относительно высокой скоростью передачи данных (до 150 Кбайт/с) и простотой программирования. Правда, Centronics позволяет передавать данные только в одном направлении - из компьютера в устройство, однако эту проблему можно частично решить, если воспользоваться для приема данных линиями состояния интерфейса.




Начало  Назад  Вперед



Книжный магазин