8. Текст программы
ORG 00H
JMP START ;ПЕРЕХОД НА НАЧАЛО ПРОГРАММЫ
ORG 03H
JMP INT0 ;ПЕРЕХОД НА ПОДПРОГРАММУ
;ОБРАБОТКИ ПРЕРЫВАНИЯ INT0
ORG 1BH
JMP TIMER1 ;ПЕРЕХОД НА ПОДПРОГРАММУ
;ОБРАБОТКИ ПРЕРЫВАНИЯ ОТ ТАЙМЕРА T/C1
ORG 13H ;ПЕРЕХОД НА ПОДПРОГРАММУ
;ОБРАБОТКИ ПРЕРЫВАНИЯ INT1
JMP INT1
ORG 0BH ; ПЕРЕХОД НА ПОДПРОГРАММУ
;ОБРАБОТКИ ПРЕРЫВАНИЯ ОТ ТАЙМЕРА T/C0
JMP TIMER0
PERIOD EQU NOT(50000)+1
PROC10 ЕQU 61H
DATA1 BIT P1.0
DATA2 BIT P1.1
DATA3 BIT P1.2
DATA4 BIT P1.3
BELL BIT P1.7
PRIBOR1 BIT P0.0
PRIBPR2 BIT P0.1
PRIBOR3 BIT P0.2
PRIBOR4 BIT P0.3
PODN BIT PO.7
ST SET 5
FLAG SET 0
DLIT_1 SET 0
START:
MOV PSW,#00001000B ;ВЫБОР БАНКА РЕГИСТРОВ RB1
MOV TMOD,#00010001B ;ВЫБОР 16-БИТНОГО ПОДСЧЕТА
MOV TCON,#01H ;ПРЕРЫВАНИЕ ПО ПЕРЕХОДУ ИЗ 1 В 0
MOV P1,#10001111B ;НАСТРОЙКА БИТОВ ПОРТА НА ВВОД
MOV P3,#00000100B ;НАСТРОЙКА СООТВЕТСТВУЮЩИХ БИТОВ
;ПОРТА НА ВЫПОЛНЕНИЕ АЛЬТЕРНА-
;ТИВНЫХ ФУНКЦИЙ
HOL_HOD:
SETB EA ;РАЗРЕШЕНИЕ ВСЕХ ПРЕРЫВАНИЙ
MOV PCON,#01H ;ВКЛЮЧЕНИЕ РЕЖИМА ХОЛОСТОГО ХОДА
MOV RO,#PROC10 ;10% ОТ 250 МС
LOOP:
JCNE ST,#0,LOOP
CLR EA ;ЗАПРЕТ ВСЕХ ПРЕРЫВАНИЙ
CJNE R0,DLIT_1,PROV;СРАВНИВАЕМ RO C DLIT_1 И ЕСЛИ ;RODLIT_1 ТО ПЕРЕХОД НА МЕТКУ
PROV:
JC LABEL ;ПЕРЕХОД ЕСЛИ С=1,Т.Е. DLIT_1>10%
;ОТ 250 МС
JNC HOL_HOD ;ПЕРЕХОД ЕСЛИ С=0, Т.Е.DLIT_1
|
|