minute:lxi h,rejim ; 3.4 занесение в пару h адреса ячейки памяти, в которой хранится
;код включённого режима
mvi m,2 ; 3.5 запись кода режима 1 движение в минуту
mvi d,59 ; 3.6 запись как эталон времени до след перемещения числа 59
; (58 секунд задержки + 1 сек , декрементирующаяся в начале
; цикла задержки)
jmp move ; переход на осуществление перемещения
; нажато включение режима 30 движений в минуту
twosec: lxi h,rejim ; 3.7 занесение в пару h адреса ячейки памяти в которой хранится
;код включённого режима
mvi m,1 ; 3.8 запись кода режима 30 движений в минуту
mvi d,1 ; 3.9 запись как эталон времени до след перемещения 1,
;декрементирующейся в начале цикла задержки
; перемещение щёток с установленной скоростью
move: mov b,d ; 3.10 перемещение числа из эталона времени в счетчик времени
;оставшегося до след перемещения
call zader ; +3.11вызов подпрограммы zader, т.е. выполнение задержки на 1 сек
; первая фаза движения щёток, справа - налево
mov a,e ; 3.12 перемещение кода положения щетки в А
xri wetka ; 3.13 исключающее ИЛИ кода маски для смены положения щёток ;01101100 и А (в Е хранятся только 2 кода положения щёток; 01100000 – щётки справа и
;00001100 - щётки слева, при исключающем ИЛИ маски и одного из этих кодов – один 7-
;сегментный код меняется на другой)
out porta ; 3.14 вывод результата операции xri wetka на индикацию
mov e,a ; 3.15 сохранение результата операции xri wetka в Е
call zader ; +3.16 выполнение задержки на 1 сек
; вторая фаза движения щёток (теперь слева - направо), полностью повторяющая первую
mov a,e ; 3.17
xri wetka ; 3.18
out porta ; 3.19
mov e,a ; 3.20
cikl: dcr b ; 3.21 декремент времени до след перемещения (если скорость 30
;движений в минуту, то этот счётчик сразу же обнуляется)
jz move ; 3.22 вся задержка отработана – переход на перемещение
call zader ; +3.23 выполнение задержки на 1 сек
jmp cikl ; переход на декремент В
;******************ПОДПРОГРАММЫ*********************
;подпрограмма задержки на 1 сек с опросом клавиатуры
zader: lxi h,posvr ; 4.1 +загрузка в пару h постоянной времени
zader1: push h ; 4.2 ++сохранение в стек оставшегося времени задержки для
;дальнейшего использования
lxi h,rejim ; 4.3 ++занесение в пару h адреса ячейки памяти, в которой
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.