80 085A CA 46 08 jz move ; вся задержка отработана - переход на перемещение
81 085D CD 63 08 call zader ; +выполнение задержки на 1 сек
82 0860 C3 59 08 jmp cikl ; переход на декремент В
83 ;******************ПОДПРОГРАММЫ*********************
84 ;подпрограмма задержки на 1 сек с опросом клавиатуры
85 0863 21 0B 33 zader: lxi h,posvr ; +загрузка в пару h постоянной времени
86 0866 E5 zader1: push h ; ++сохранение в стек оставшегося времени задержки для ;дальнейшего использования
87 0867 21 C4 08 lxi h,rejim ; ++занесение в пару h адреса ячейки памяти, в которой ;хранится код включённого режим
88 086A 7E mov a,m ; ++перемещение кода режима в А для обработки
89 086B 21 C5 08 lxi h,zadmas ; ++занесение в пару h адреса ячейки памяти, в которой ;хранится маска накладываемая н
90 086E 0F rrc ;++сдвиг А вправо, перенос первого разряда содержимого А во ;флаг С
91 086F DA 77 08 jc nets1 ; ++первый разряд равен 1? (в rejim было число 1 - код режима ;30 движений в минуту?)
92 ; первый разряд равен 0 (в rejim было число 2 - код режима 1 движение в минуту)
93 0872 36 05 mvi m,05h ; ++занесение в ячейку памяти zadmas 00000101 - маски, ;оставляющей в коде с порта ввода
94 ; и "включение со скоростью 30 движений в минуту"
95 0874 C3 7C 08 jmp zader6 ; ++перемещение на основную программу задержки
96 0877 36 09 nets1: mvi m,09h ; ++занесение в ячейку памяти zadmas 00001001 - маски, ;оставляющей в коде с порта
97 ;"выключено" и "включение со скоростью 1 движение в минуту"
98 0879 C3 7C 08 jmp zader6 ; ++перемещение на основную программу задержки (нужно ;лишь для поддержания одинакового
99 087C DB 82 zader6: in portc ; ++ опрос клавиатуры
100 087E A6 ana m ; ++была нажата одна из нужных клавиш? (*0*или*2* или ;*0*или *3* в зависимости от включённо
101 087F CA B5 08 jz zader2 ; ++нет нажатия - просто задержка
102 ;есть нажатие, переход к защите от дребезга
103 0882 0E FE mvi c,posdr ; загрузка постоянной времени дребезга в регистр C
104 0884 DB 82 zader3: in portc ; опрос клавиатуры
105 0886 A6 ana m ; была нажата одна из нужных клавиш?
106 0887 CA B5 08 jz zader2 ; нет, переход к отработке задержки
107 088A 0D dcr c
108 088B C2 84 08 jnz zader3
109 088E DB 82 in portc ; дребезг при нажатии окончен - сохранение кода нажатой ;клавиши в памяти
110 0890 21 C3 08 lxi h,klav
111 0893 77 mov m,a
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.