reset2: mvi c,povdr ; *7 тактов - ожидание отпускания клавиши
povt4: in portc ; *10 тактов - опрос клавиатуры
ana a ; *4 такта - ни одна клавиша не нажата ?
jnz reset2 ; *10 тактов - нет, что-то нажато
; защита от дребезга при отпускании клавиши
dcr c ; *10 тактов - ничего не нажато, уменьшение счетчика при защ. от дребезга
jnz povt4 ; *10 тактов - дребезг еще не окончен
mov a,e ; *5 тактов - сохранение аккумулятора
pop h ; *если да, то коррекция стека перед аврийным выходом из подпрограммы
jmp circl ; *переход в начало программы
exit: ret ; 10 тактов - выход из подрограммы
;
;!!!-----------------РАССЧЁТ ВРЕМЕННОЙ ЗАДЕРЖКИ-------------------!!!
;
; Длительность в тактах подпрограммы задержки на 1 секунду (* не считается):
; 10+time*[10+5+5+5+4+10+5+7+10]+10=2,22*10exp6
; 20+time*61=2,22*10exp6
; time*61=2219980
; time=36393
; остаток=2219980-61*36393=7 обеспечивается выполнением одной пустой команды (ani)
;------------------------------------------------------------------------------------
;
end ; директива ассемблера, означающая конец текста программы
Кросс-ассемблер 80/85 ### Файл листинга v1.lst
Входной файл > v1.asm
Объектный файл > v1.obj
1 проход
2 проход
1 ; !!!***!!!Устройство управления системой очистки лобового стекла автомобиля!!!***!!!
2 ; "0" - выключено
3 ; "2" - включение со скоростью 30 движений в минуту
4 ; "4" - включение/выключение стеклоомывателя
5 ;
6 ; Распределение регистров микропроцессора.
7 ; С - защита от дребезга
8 ; D - счетчик количества секунд и движений
9 ; E - сохранение кода нажатой клавиши
10 ; B,C - временная задержка на 1 сек
11 ;
12 porta equ 80h ; адрес первого индикатора
13 portb equ 81h ; адрес второго индикатора
14 portc equ 82h ; адрес клавиатуры
15 porcrl equ 83h ; адрес порта управления внешними устройствами
16 povdr equ 250 ; постоянаая времени защиты от дребезга (кол. повторов).
17 kodkl equ 15h ; код, соответствующий нажатию клавиши 0 или 2 или 4
18 kodkl0 equ 01h ; код, соответствующий нажатию клавиши 0
19 kodkl4 equ 10h ; код, соответствующий нажатию клавиши 4
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.