Простейшая микро-ЭВМ




ПРОГРАММА-МОНИТОР - часть 11


Затем код, содержащийся в регистре С (этот код был высвечен на индикаторах порта OOOQ), перепи­сывается в аккумулятор командой MOV А, С и сдвигается тремя командами RAL на три бита влево. После этого с по­мощью команды ANI 3 70Q очищаются три младших бита, а с по­мощью команды ORA В на эти места записываются новые трк разряда кода нажатой кнопки. В результате в аккумуляторе готов новый код для индикации на индикаторах порта OOOQ, Далее содержимое аккумулятора переписывается в регистр С командой MOV С5 А, а затем команда JMP M3 осуществляет переход к фрагменту программы, реализующему индикацию.

На индикаторе порта OOOQ пользователь видит следующее. Если до нажатия кнопки состояния индикаторов были ХО — Х7 (рис. 7.10,д), то после нажатия эти состояния сдвигаются на три индикатора влево (причем Х5 — XV пропадают), а на месте ХО, XI, Х2 высвечивается код вновь нажатой кнопки (рис. 7.10,6, табл. 7.8).

Рис. 7.10. Состояния индикаторов порта вывода с адресом OOOQ:

а - до нажатия какой-либо из кнопок 0-7; б - после нажатия какой-либо из кнопок 0 — 7

Следовательно, нажав три необходимые кнопки из кнопок К1-К8, пользователь может набрать на восьми индикаторах порта OOOQ любое нужное ему двоичное число длиной 1 байт.

Рассмотрим теперь, какие специальные функции и как выпол­няются монитором.

Таблица 7.8

 

Кнопка

 

Код в разрядах

 

Y2

Y1

YO

К1

0

0

0

К2

0

0

1

КЗ

0

1

0

К4

0

1

1

К5

1

0

0

Кб

1

0

1

К7

1

1

0

К8

1

1

1

Коды всех кнопок, вызывающих выполнение специальных функций, больше или равны 010Q. Поэтому команда JNC М11 (адрес 000115Q) будет осуществлять переход к команде МИ: CPI 010Q, которая сравнивает код нажатой кнопки с констан­той 010Q. Если код не равен 010Q, то команда JNZ M12 вызовет переход к Ml2, если равен, то это значит, что нажата кнопка К9 (СБ) и произойдет следующее: команда MOV H, С перепишет содержимое регистра С в регистр Н, а затем команда JMP M2 вызовет безусловный переход к М2.


Содержание  Назад  Вперед