АДРЕС МАШИННЫЙ КОД МЕТКА МНЕМОКОД КОММЕНТАРИЙ
8200 21 FF 83 LXI H,83FF Засылка в пару HL адреса младшего
разряда индикатора
8203 3E E0 MVI A,E0 Выдача сигнала разрешения
8205 D3 02 OUT 02 работы дисплея и включения клавиш 0...7
8207 DB 00 CONT IN 00 Ввод с клавиш
8209 2F СMA Инверсия аккумулятора
820A 77 MOV M,A Запись в регистр дисплея
820B C3 07 82 JMP CONT Переход на продолжение цикла
mvi a,0d0h ;Выдача сигнала разрешения работы дисплея
; и включения битом 5 клавиш 8...f
out 2
cont in 0 ;читам код
cpi 0ffh ;если ff, то ничего не нажато
jz cont ;ждем новый код
;ищем бит 0
mvi b,8 ;база кодов линейки (8-f)
shift rrc ;сдвинем на 1 бит, мл уходит в С
jnc analize ;0 - нашли
inr b ;нет увеличиваем код клавиши
jmp shift ;сдвигаем дальше
;проанализируем на четность
analize lxi h,83f8h ;засылка в пару HL адреса старшего индикатора
mov a,b ;код клавиши
rrc ;четность определяется младшим битом
jc nechet ;1 - число нечетное
;0 - четное
mvi a,0 ;погасим 7 первых
mov m,a
inx h
mov m,a
inx h
mov m,a
inx h
mov m,a
inx h
mov m,a
inx h
mov m,a
inx h
mov m,a
inx h
mov a,00111111b ;0 в последний
mov m,a
jmp cont ;на сканирование клавиатуры
;нечет
nechet mvi a,0 ;погасим 3 первых
mov m,a
inx h
mov m,a
inx h
mov m,a
inx h
mov a,01110110b ;H
mov m,a
inx h
mov a,01111100b ;Е
mov m,a
inx h
mov a,01100110b ;Ч
mov m,a
inx h
mov a,01111100b ;Е
mov m,a
inx h
mov a,01111000b ;t
mov m,a
jmp cont ;на сканирование клавиатуры
end
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.