;
porta equ 80h ; адрес первого индикатора
portb equ 81h ; адрес второго индикатора
portc equ 82h ; адрес клавиатуры
porcrl equ 83h ; адрес порта управления внешними
; устройствами
pov equ 43528 ; постоянная времени задержки на 1 сек.
povdr equ 255 ; пост. времени защиты от дребезга (кол.
; повторов)
kodkl equ 18h ; код режима «н.п.» и «жесткий» 00011000 (кл.
; «3»,и«4»).
kodkl1 equ 1аh ; код обоих режимов и останова 00011010 (кл.
; «1», «3» и «4»).
;
org 800h ; стартовый адрес программы в ОЗУ стенда
; инициализация
lxi sp,900h ; инициализация указателя стека
mvi a,89h ; загрузка управляющего байта внешних ;устройств
out porcrl ; вывод управляющего байта в порт управления
mvi b,0 ; инициализация регистров микропроцессора
mvi d,0
jmp noch ; переход к выполнению режима «ночной
; перекресток», w1
;ожидание пуска или смены режима
circl: mvi c,povdr ; загрузка кол-ва повторов при защите от
; дребезга, w2
rept: in portc ; опрос клавиатуры, w3
ani kodkl ; нажата кл. «1» или «4» ?
jz circl ; ничего не нажато, перейти на circl, w4
; защита от дребезга при нажатии
zach: dcr c ; уменьшение счетчика повторов при
; защите от дребезга
jnz rept ; дребезг еще не окончен, w5
; дребезг при нажатии окончен
; сохранение кода нажатой клавиши
in portc ; чтение кода нажатой клавиши
mov b,a ; пересылка в регистр b кода нажатой клавиши,
; адрес которой находится в регистре а
reset1: mvi c,povdr ; ожидание отпускания клавиши, w6
rept1: in portc ; опрос клавиатуры, w7
ana a ; ни одна клавиша не нажата ?
jnz reset1 ; нет, что-то нажато, w8
; защита от дребезга при отпускании клавиши
dcr c ; ничего не нажато, уменьшение счетчика
; повторов при защите от дребезга
jnz rept1 ; дребезг еще не окончен, w9
; дребезг при отпускании окончен
; чтение кода нажатой клавиши
mov a,b ; пересылка в регистр а кода нажатой клавиши, ; адрес которой находтся в регистре b
cpi 08h ; число 08h соответствует нажатой кл. «3»
jz noch ; нажат «ночной режим», переход к его
; выполнению, w10
;выполнение «жесткого» режима
jestk:mvi a,10h ;пересылка в аккумулятор данных
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.