47 0828 0D dcr c ; не нажата никакая нужная клавиша, уменьшение счетчика ;повторов при защите от дребезга
48 0829 C2 21 08 jnz drout2 ; дребезг не окончен, переход на опрос клавиатуры
49 ;дребезг при отпускании окончен
50 ;**************ОСНОВНАЯ ЧАСТЬ ПРОГРАММЫ**************************
51 082C 21 C3 08 lxi h,klav ; занесение в пару h адреса ячейки памяти в которой был ;сохранён код клавиши
52 082F 7E mov a,m ; загрузка кода клавиши
53 0830 FE 04 cpi 04h ; сравнение с 00000100 - с кодом клавиши включения режима ;30 движений в минуту
54 0832 CA 3F 08 jz twosec ; да - нажато включение режима 30 движений в минуту
55 ; нет - нажатo включение режима 1 движение в минуту
56 0835 21 C4 08 minute:lxi h,rejim ; занесение в пару h адреса ячейки памяти, в которой хранится ;код включённого
57 0838 36 02 mvi m,2 ; запись кода режима 1 движение в минуту
58 083A 16 3B mvi d,59 ; запись как эталон времени до след перемещения числа 59
59 ; (58 секунд задержки + 1 , декрементирующаяся в начале цикла задержки)
60 083C C3 46 08 jmp move ; переход на осуществление перемещения
61 ; нажато включение режима 30 движений в минуту
62 083F 21 C4 08 twosec: lxi h,rejim ; занесение в пару h адреса ячейки памяти в которой хранится ;код включённого р
63 0842 36 01 mvi m,1 ; запись кода режима 30 движений в минуту
64 0844 16 01 mvi d,1 ; запись как эталон времени до след перемещения 1, ;декрементирующейся в начале цикла заде
65 ; перемещение щёток с установленной скоростью
66 0846 42 move: mov b,d ; перемещение числа из эталона времени в счетчик времени ;оставшегося до след перемещ
67 0847 CD 63 08 call zader ; +вызов подпрограммы zader, т.е. выполнение задержки на 1 ;сек
68 ; первая фаза движения щёток, справа - налево
69 084A 7B mov a,e ; перемещение кода положения щетки в А
70 084B EE 6C xri wetka ; исключающее ИЛИ кода маски для смены положения щёток ;01101100 и А (в Е хранятся тольк
71 084D D3 80 out porta ; вывод результата операции xri wetka на индикацию
72 084F 5F mov e,a ; сохранение результата операции xri wetka в Е
73 0850 CD 63 08 call zader ; +выполнение задержки на 1 сек
74 ; вторая фаза движения щёток (теперь слева - направо), полностью повторяющая первую
75 0853 7B mov a,e
76 0854 EE 6C xri wetka
77 0856 D3 80 out porta
78 0858 5F mov e,a
79 0859 05 cikl: dcr b ; декремент времени до след перемещения (если скорость 30 ;движений в минуту, то этот с
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.