ORG 130H
PEREVOD:
LDA ADR1 ; (A)¬((ADR1))
LDA ADR2 ; (A)¬((ADR2))
CAL1 PREOBR ; Преобразование
STA ADR2 ; ((ADR2))¬A
; подпрограмма ожидания отпускания нажатой клавиши
ORG A5H
WAIT : IN 85 ; ввод байта возврата
CMA ; инвиртирование
CPI 00 ; сравнение 00Н
JNZ WAIT ; анализ
RET ;
; подпрограмма индетификации одной нажатой клавиши по байту
; сканирования и байту возврата
; входные параметры (В)- байт сканирования (С)- байт возврата
; выходные параметры (А) –НЕХ под нажатой клавишей
ORG B0H
IDENT : MVI D,00H ; (D)¬ 00H
MOV A,B ; (A)¬(B)
CMA ; (A)¬(`A)
RRG ; сдвиг вправо содерж.(А)
M2 : JC M1 ;
INR D ; (D)¬(D)+1
RRG ; сдвиг вправо содерж. (А)
JMP M2 ;
M1 : MOV A,C ; (A)¬(C)
CPI 01H ; сравнение
JZ EXIT ; анализ
MOV A,D ; (A)¬(D)
ADI 05H ; (A)¬(A)+05H
JMP END ;
EXIT : MOV A,D ; (A)¬(D)
END : RET ; выход
; подпрограмма опроса о нажатии клавиши и их индентификация
; выходные параметры (А) двоично-десятичный код нажатия
; клавиши.
ORG 70H
KLAV: CALL SCAN ; nin
CALL IDENT ; nin
RLC ;
RLC ;
MOV B,A ;(B)¬(A)
PUSH B ;
CALL SCAN ; nin
CALL IDENT ; nin
POP B ;
ORA B ; (A)¬(A)V(B)
RET
; подпрограмма сканирования клавиатуры выходные параметры (В)- ; байт сканирования (С) – байт возврата
ORG 88H
SCAN : MVI A,1111 1110 B ; (B)¬байт сканирования
M1 : MOV B,A ;(B)¬(A)
OUT 85H ; вывод байта сканирования
IN 85H ; ввод байта возврата
CPI 00 00 00 11 B ; секундомер
JC M2 ;
MOV A,B ; (A)¬(B)
RLC ; сдвиг секундомера влево
CPI 1101 1111 B ; секундомер
JZ SCAN ;
JMP M1 ;
M2: MOV C,A ; (C)¬(A)
CALL WAIT ; nin ожидания отпуска.
RET ;
; nin запуска таймера.
; входные параметры (ВС) – длительность интервала отсчёта в
; минутах
ORG 15AH
ZAP_TAIM : MVI A,00110100B
OUT B4 H ; УС для СТО
MVI A,80H ; МП 5
OUT 84H ;
MVI A,4E H ; СТ 5
OUT 84H ;
MVI A,01110100B ;
OUT B4 ; УС для СТ1
MVI A,70H ; МП 5
OUT 94H ; СТ5
MVI A,17H ;
OUT 94H
MVI A,10110000 B
OUT B4 ; УС для СТ2
LDAX B ; МП5
OUT A4 ;
MVI A,O ; СТ5
OUT A4
RET
СТО- реж2 –n =2000010=4E2016 fвых=100Гц.
СТ1- реж2 –n =1∙60сек∙fвыхсто=600010=177016 fвых=0,0166Гц.
СТ2- реж0 –n выбирает пользователь
; nin опроса соединенного счётчика таймера вых. Параметры (HL)-содержимое счётчика ORG18AH
OPROS_TAIM: MVIA,1000 0000 B ; (A)¬УС
OUT B4 ; (РУС)¬УС
IN A4 ; (A)¬СТ2 МЛ.Б
MOV L,A ; (L)¬(A)
IN AU ;(A)¬СТ2 СТ.Б
MOV H,A ;(H)¬(A)
;nin опроса термодатчика температуры.
ORG 190H.
OPROS_TERM: OUT 80 ; запуск АЦП
IN 80 ; перисылка в аккамулятор кода : ; тумператур
LXI H ,ADR1 ; (HL)¬ADR1 загрузка в (HL) : ; указателя ячейки на памяти, где : ; храниться температура
CMP M
RC ; температура меньше
RZ ; температура равна
OUT 89H ; отключение тэна из-за внешней : ; температуры
RET
; подпрограмма преобразования двоичного- десятичного целого ; безнакового числа формата 2´4 в двоичное число формата 8
; входной параметр: (А)-двоично-десятичное число, выходной ; параметр : (А) –эквивалентное двоичное число.
ORG D0
PREOBR;
; выделенной старшей тетрадой и моделей МПЦ цифр. : ; числа
MOV B,A
ANI OFH ; метка на МПЦ
MOV C,A ; (C)-МПЦ
MOV A,B
ANI 0 F0H ; метка на тетраде
RRC
MOV B,A ; (B)- тетрада ´8
; двоичное сложение : СТЦ´(8+2)+МПЦ
RRC
RRC ; (A)-СТЦ´2
ADD B ; (А)-СТЦ´(8+2)
ADD C ; (А)-СТЦ´10+МПЦ
RET.
; подпрограмма секундной задержки.
ORG EOH
SEC: PUSH B
MVI B,0FFH
LOOPI: MVI C,0FBH
LOOP2: NOK
NOK
NOK
NOK
DCRC
JNZ LOOP2
DCR B
JNZ LOOP1
POP B
RET
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.