Программа управления пультом системы отображения цифровой информации
.ORGO
SJMP А ;начальная инициализация регистров
.ORG ОЗОН ; Процессора и установка
A: MOV SP, #40Н ;последовательного порта в режиме №1
ORLTMOD, #21 Н
MOVTH1, #OF5H
MOVTL1, #OF5H
CLR ET1
SETB TR1 ;ПОСЛЕД ПОРТ РЕЖИМ 1
SETB SM1
LM: MOV A, #OFEH ;опрос клавиатуры по трем каналам
MOV R1, #OOH ;при нажатии на клавишу в одном из
А1: MOV P1, А ;трех каналов, вызывается
JB P3.4, А2 ; соответствующая подпрограмма
ACALL TR1 ;(TR1, TR2, TR3) А2: INC R1
RLA
CJNER1, #08Н, А1
АА1: MOVP1.A
JB P3.5, АА2
ACALL TR2
АА2: INC R1
RLA
CJNER1, #10Н,АА1
ААА1: MOVP1,A
JB P3.6. ААА2
ACALL TR3
ААА2: INC R1
RLA
CJNER1, #12Н,ААА1
SJMP LM
TR1: PUSH А ;Подпрограмма опроса первого канала
MOV R2, #OFFH ;(порт3.4) и выдачи кода
А4: DEC R2 ;в последовательный порт
MOV A, R2
JZA6
JB P3.4, А5
SJMP A4
А6: MOVSBUF, R1
ACALL PAUSE
А5: POP A
RET
TR2: PUSH А ;Подпрограмма опроса второго канала
MOV R2, #OFFH ;(порт 3.5) и выдачи кода в
А7: DEC R2 ;последовательный порт
MOV A. R2
JZAB
JB P3.5, А9
SJMP A7
А8: MOV SBUF, R1
ACALL PAUSE
А9: POP A
RET
TR3: PUSH А ;Подпрограмма опроса третьегоканала
MOV R2, #OFFH ;(порт 3.6) F4: DEC R2 Предназначена для дальнейшего
MOV A, R2 расширения клавиатуры
JZ F6
JB P3.6, F5
SJMP F4 F6: MOV SBUF, R1
86
ACALL PAUSE F5: POP A RET
PAUSE: MOV R4, #09FH ;подпрогрпмма организации паузы для LM2: MOV R3, #OFFH ;устранения дребезга контактов LM1; DJNZR3, LM1
DJNZ R4, LM2
RET
87 Приложение 2
Программа управления устройством индикации системы отображения цифровой информации
.ORGO
SJMP FF .начальная инициализация регистров
.ORG ОВН ;процессора
SJMP INT
.ORG ОЗОН ;ТО -РЕЖИМ1, Т1 - РЕЖИМ2 ДЕЛЕНИЕ НА 321 FP: MOV SP, #40Н остановка режимов таймера
ORL TMOD, #21Н ;и последовательного порта
MOVTH1, #OF5H
MOVTL1, #OF5H
CRL ET1
SETB TR1
MOV THO, #OFEH
MOV TLO, #OBFH
SETB TRO ;ПОСЛЕД ПОРТ РЕЖИМ 1
SETB SM1
SETB REN
SETB EA
SETB ETO ;SBO R7=14
MOV 07H, #OEH
MOV A, 20H
XRL A, #55H ;анализ причин сброса процессора JZ B1 ;и включение режима малого MOV А, 21 Н Потребления процессора XRL А, #55Н
JZ B1
MOV A. 22H
XRL A, #55H
JZB1
CRLA
MOV RO, A
MOVR1, #OFFH
MOV R2, #1BH
MOV R3, #OFOH
MOV R4, #OFOH
MOV R5, A
MOV R6, #20H
SETB RSO
MOV RO. #OE9H
MOV R1, #83H
MOV R2, #OE9H
MOV R3, #03H
MOV R4, #1EH
MOV R5, #OOH
MOV R6, #OOH
MOV R7, #OOH
MOV 10H, #OE9H
MOV 11H, #B3H
MOV20H, #55H
MOV21H, #55H
MOV 22H, #55H B1: ORLPCON, #01H
AJMP B1
;ОСНОВНАЯ ПРОГРАММА ПО ПРЕРЫВАНИЮ ОТ Т1 INT: CLR TRO
NOP
MOV THO, #OFEH ;загрузка таймера начальными
MOVTLO, #OBFH ;значениями
SETB TRO ;запуск таймера
CLR RSO
CLR RS1
MOV P1, #OFFH ;переход к выводу следующего
MOV A, R7 знакоместа
CLR С
RRC А
MOV RO, А
MOV A, @RO
JC L3
SWAP A L3: ANL А, R7
MOVP1, А
DECR7
MOV A, R7
DEC A
JNZL2
MOV R7, #ОЕН .ПРОВЕРКА ЗВУКА И УМЕНЬШЕНИЕ ЕГО L2: SETB RSO
MOV A, R3 .если выключена сирена, то проверка
JB А, 7, С1 ;истечения 2 с
MOV A, R2 ;и выключение сирены, если 2 с истекли
JNZC2
DECR3 С2: DEC R2
MOV A, R3
JNZC1
MOV A, R2
JNZC1
ORLOBH, #80Н
SETB P3, 2
SETB P3, 3 С1: MOV A, 11H
JB A, 7, Y1
MOV A, 10H
JNZY2
DEC11H Y2: DEC ЮН
MOVA. 11H
JNZY1
MOVA, ЮН
JNZ Y1
MOV 10H, #OE9H
MOV 11H. #03H
DEC OCH
MOV A, OCH
JNZY1
CLR P3. 3
CLR P3. 2
MOVOAH, #OE9H
MOVOBH, #03H
MOV OCH, 1EH
ORL 11H, #80H ПРОВЕРКА ВРЕМЕНИ Y1: MOV A, R1 .проверка счетчика одной секунды
JB A, 7. D1
MOV A, RO
JNZ D2
DEC R1 D2: DEC RO
MOV A, R1
JNZ D1
MOV A, RO
JNZD1
MOV RO, #OE9H
MOVR1, #03H
ACALLS1SEC D1: JNB R1, D3
ACALL RES D3: RETI
ПОДПРОГРАММА S1SEC ВЫЧИТАНИЯ ЕДИНИЦЫ ИЗ СЕКУНД ;ЕСЛИ 0, ТО ВКЛ. ЗВУКА S1SEC: PUSH A
CLR RS1
CLR RSO
MOV A, R5
JNZA1
MOV A, R6
JNZA1
AJMP A5 А1: DEC R5
MOV A.R5
ANL A, #OFH
XRL A, #OFH
JNZ A2
MOV A, R5
ADD A, #OFAH
MOV R5. А A2: XRL A, #OF9H
JNZ A3
MOV A, R5
ADD А, #60Н
MOV R5, А
DEC R6
MOV A, R6
ANL A, #OFH
XRL A, #OFH
JNZA4
MOV A, R6
ADD A, #OFAH
MOV R6, А А4: XRL A, #OF9H
JNZ A3
MOV A, R6
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.