0170 08BF ;ТЕПЕРЬ ПРОИЗВОДИМ СЧИТЫВАНИЕ КЛАВИШИ 'F'
0171 08BF ;НЕОБХОДИМО УСТРАНИТЬ "ДРЕБЕЗГ"
0172 08BF ;Т.Е. ЕСЛИ КЛАВИША НАЖАТА, ТО НЕ УЧИТЫВАТЬ ЕЕ ПОВТОРНО
0173 08BF ;ЧТО ВЫЗЫВАЕТ БЛИКИ НА ИНДИКАЦИИ
0174 08BF 3E 7F MVI A,01111111B ;МАСКА ДЛЯ 'D' 'E' 'F'
0175 08C1 D3 28 OUT 28H
0176 08C3 DB 18 IN 18H
0177 08C5 E6 04 ANI 0100B ;ВЫДЕЛЯЕМ КЛАВИШУ 'F'
0178 08C7 0F RRC
0179 08C8 0F RRC
0180 08C9 4F MOV C,A ;ЗАПИСАЛИ В МЛАДШИЙ БИТ C КОД 'F' (0 ИЛИ 1)
0181 08CA 0F RRC ;ПОЛУЧИЛИ В ПЕРЕНОСЕ КЛАВИШУ 'F'
0182 08CB ;ТЕПЕРЬ НЕОБХОДИМО УСТАНОВИТЬ ПЕРЕМЕННУЮ STOP
0183 08CB ;ЕСЛИ ОНА РАВНЯЕТСЯ 1, ТО БУДЕТ ВЫВОДИТЬСЯ "ЗАМОРОЖЕННОЕ" ЗНАЧЕНИЕ
0184 08CB ;БУФЕРА ИНДИКАЦИИ
0185 08CB 21 19 0B LXI H,STOP ;ЗАГРУЖАЕМ АДРЕС ПЕРЕМЕННОЙ STOP В (H,L)
0186 08CE DA D9 08 JC A1 ;ЕСЛИ ПЕРЕНОС=1, ТО 'F' НЕ НАЖАТА
0187 08D1 3A 1A 0B LDA OLD_KEY ;ЗАГРУЗИЛИ В АККУМУЛЯТОР СТАРУЮ КНОПКУ
0188 08D4 1F RAR
0189 08D5 D2 D9 08 JNC A1 ;ЕСЛИ OLD_KEY=0, ТО НАЖАТИЕ НЕ ПРОИЗОШЛО
0190 08D8 34 INR M
0191 08D9 21 1A 0B A1: LXI H,OLD_KEY ;ПОЛУЧИЛИ АДРЕС ПРОШЛОЙ НАЖАТОЙ КЛАВИШИ
0192 08DC 71 MOV M,C ;СОХРАНИЛИ КОД НАЖАТОЙ КЛАВИШИ
0193 08DD C9 RET
0194 08DE ;=========================================
0195 08DE ;ДАННЫЕ НЕОБХОДИМЫЕ ДЛЯ РАБОТЫ ПРОГРАММЫ
0196 0B00 .ORG 0B00H
0197 0B00 00 TEMP: .DB 0
0198 0B01 ;ЦИФРЫ СТАРШАЯ МЛАДШАЯ
0199 0B01 ; | |
0200 0B01 000000000000 IND_BUF: .DB 0,0,0,0,0,0,0,0,0 ;БУФЕР, ОТОБРАЖАЕМЫЙ НА ИНДИКАЦИИ
0200 0B07 000000
0201 0B0A ;СМЕЩЕНИЕ^^^ 0 1 2 3 4 5 6 7 8
0202 0B0A ;ЦИФРЫ МЛАДШАЯ СТАРШАЯ
0203 0B0A ; | |
0204 0B0A 0000000000 COUNTER: .DB 0,0,0,0,0 ;ПЯТЬ БАЙТ ДЛЯ СЧЕТЧИКА
0205 0B0F ;СМЕЩЕНИЕ^^^ 0 1 2 3 4
0206 0B0F ;ТАБЛИЦА ДЛЯ ПЕРЕКОДИРОВКИ ЦИФР В КОДЫ СЕМИСЕГМЕНТНОГО ИНДИКАТОРА
0207 0B0F ; 0 1 2 3 4 5 6 7 8 9
0208 0B0F 3F065B4F666D SEG_CODE: .DB 03FH,06H,05BH,04FH,066H,06DH,07DH,07H,07FH,06FH
0208 0B15 7D077F6F
0209 0B19 00 STOP: .DB 0
0210 0B1A 01 OLD_KEY: .DB 1
0211 0B1B 00 SHIFT: .DB 0
0212 0B1C .END
tasm: Number of errors = 0
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.