Устройство управления двухтактным двигателем внутреннего сгорания, страница 4

;которой находится в паре Н

reset1:       mvi         c,povdr                  ; ожидание отпускания клавиши

rept1:        in            portc                      ; опрос клавиатуры

                   ana         a                             ; ни одна клавиша не нажата?

                   jnz          reset1                     ; нет, что-то нажато

;защита от дребезга при отпускании клавиши

                   dcr          c                             ; ничего не нажато, уменьшение счетчика при защите от дребезга

                   jnz          rept1                      ; дребезг еще не окончен

;чтение кода нажатой клавиши                                    

                   lxi           h,klav                    ;занесение в пару Н адреса ячейки памяти, в которой

;ранее сохранен код нажатой клавиши

                   mov       a,m                        ;пересылка кода нажатой клавиши из ячейки памяти, адрес

;которой находится в паре Н в аккумулятор

                   ret

;--------------------подпрограмма вращения двигателя на заданной частоте---------------------------------

vrashen:   nop

;

;-------6 об/сек

oborot6:   cpi          16h                        ;сравниваем с заданным кодом количества оборотов в секунду

                   jnz          oborot5                 ; если не совпало, последовательно перебираем все оставшиеся

;варианты.

                   mvi         b,30                       ; в регистре В хранится значение, обеспечивающее на заданной

;частоте вращение двигателя в течение 5 секунд.

ob6_b:      call         sost1                      ; обращение к подпрограмме вывода первого состояния

                   mvi         d,1011b                ; 3032 -

                   mvi         e,11011000b

                   call         zader                     ; вызов подпрограммы задержки на заданное количество миллисекунд

                   call         sost2                      ; обращение к подпрограмме вывода второго состояния

                   mvi         d,1011b                ; 3032 -

                   mvi         e,11011000b

                   call         zader                     ; вызов подпрограммы задержки на заданное количество миллисекунд

                   dcr          b                             ; уменьшение регистра В

                   jnz          ob6_b

                   call         sost1

;-------5 об/сек

oborot5:   cpi          15h

                   jnz          oborot4

                   mvi         b,25

ob5_b:      call         sost1

                   mvi         d,1110b                ; 3639 -

                   mvi         e,00110111b

                   call         zader

                   call         sost2

                   mvi         d,1110b                ; 3639 -

                   mvi         e,00110111b

                   call         zader

                   dcr          b

                   jnz          ob5_b

;

;-------4 об/сек

oborot4:   cpi          14h

                   jnz          oborot3