105 0875 3E 60 mvi a,60h ; вывод на индикацию правого положения дворника
106 0877 D3 80 out porta
107 0879 15 dcr d ; уменьшение счетчика количества движений
108 087A C2 3C 08 jnz reti ; пока d<>0, цикл продолжается
109 ;
110 ;
111 087D C3 3A 08 jmp set ; бесконечное выполнение алгоритма "включение со скоростью 30 движений в минуту"
112 ;
113 ;!!!----------------------------------Мойка---------------------------------!!!
114 ;
115 0880 7A moika: mov a,d ; 60h в аккумулятор
116 0881 EE 01 xri 01 ; мойка
117 0883 57 mov d,a ; теперь с точкой или без нее в d
118 0884 D3 80 out porta ; выводим
119 0886 C3 0D 08 jmp tuki ; на начало
120 ;
121 ;!!!-----------------------подпрограмма задержки на 1 секунды---------------!!!
122 ;
123 0889 01 29 8E sec: lxi b,time ; 10 тактов - Запись в пару b значения, определяющего задержку на 1 сек.
124 088C E6 00 ani 0 ; пустая команда на 7 тактов
125 088E DB 82 umen: in portc ; 10 тактов - опрос клавиатуры.
126 0890 5F mov e,a ; 5 тактов - сохранение кода нажатой клавиши в аккумуляторе
127 0891 0B dcx b ; 5 тактов - декрементирование пары b
128 0892 79 mov a,c ; 5 тактов - Запись в аккумулятор младшего регистра для сравнения со старшим
129 0893 B0 ora b ; 4 такта - Сравнение с=b=0?
130 0894 CA BE 08 jz exit ; 10 тактов - Если да, то конец задержки
131 0897 7B mov a,e ; 5 тактов - Если нет,то восстановление кода, полученного с клавиатуры
132 0898 E6 01 ani kodkl0 ; 7 тактов - нажато 0?
133 089A CA 8E 08 jz umen ; 10 тактов - если нет, то выполнение подпрограммы задержки в обычном режиме
134 ;
135 089D 0E FA mvi c,povdr ; *7 тактов - загрузка количества повторов при защите от дребезга
136 089F DB 82 povt3: in portc ; *10 тактов - опрос клавиатуры
137 08A1 E6 01 ani kodkl0 ; *7 тактов - нажата клавиша 0?
138 08A3 CA 8E 08 jz umen ; *10 тактов - ничего не нажато
139 ; защита от дребезга при нажатии
140 08A6 0D dcr c ; *10 тактов - да, нажато, уменьшение счетчика повторов при защите от дребезга
141 08A7 C2 9F 08 jnz povt3 ; *10 тактов - дребезг еще не окончен
142 ; дребезг при нажатии окончен
143 ; сохранение кода нажатой клавиши
144 08AA DB 82 in portc ; *10 тактов - чтение кода нажатой клавиши
145 08AC 5F mov e,a ; *5 тактов - сохранение аккумулятора
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.