62173 (611440), страница 2
Текст из файла (страница 2)
DJNZ R0,LOOP3 ; с последующим переходом
JMP BEGIN ; в начало
SIGNAL5: MOV R0,#5 ; программа
LOOP5: CALL SIGNAL1 ; реализации пяти
CALL DELAY ; сигналов сиреной
DJNZ R0,LOOP5 ; с последующим переходом
JMP GAUGE_L ; к опросу датчиков GAUGE_L
BLOCKING: SETB P0.0 ; блокировка стартера
SETB P0.1 ; закрытие дверей
SETB P0.2 ; закрытие багажника
CALL SIGNAL11 ; сигнал сирены и габаритов - СИСТЕМА НА ОХРАНЕ!
GAUGE_L: JNB P2.2,SIGNAL5 ; 5 сигналов сирены, если сработал датчик ; слабого удара
GAUGE_S: JNB P2.3,LABELB ; переход на метку LABELB, если ; сработал датчик сильного удара
IGN_BOX: JB FBOX,IGN_KAPOT ; переход к IGN_KAPOT, если датчик ; багажника игнорируется
BOX: JB P2.5,IGN_KAPOT ; переход к IGN_KAPOT, если датчик ; багажника не срабатывает
INC OVER_B; если датчик багажника сработал, то +1 к ; константе хранящей число срабатываний ; этого датчика
JMP LABELB; переход на метку LABELB, включающую ; сирену
IGN_KAPOT: JB FKAPOT,IGN_DOOR ; 8 ниже следующих строк выполняют ; аналогичную функцию,
KAPOT: JB P2.4,IGN_DOOR ; как при опросе датчика багажника (выше),
INC OVER_K; только для датчиков капота и дверей!
JMP LABELB;
IGN_DOOR: JB FDOOR,CHECK_ALARM ;
DOOR: JB P2.6,CHECK_ALARM ;
INC OVER_D;
JMP LABELB;
CHECK_ALARM: JB FALARM,CHECK_MODE2 ; проверка на вторжение, если да, то ; переходим на метку CHECK_MODE2
LIGHT_DIOD: MOV R4,#5 ; программа обеспечивающая мигание светодиода
D_CYCLE: CALL DELAY; мигание светодиода примерно
DJNZ R4,D_CYCLE ; с интервалом в 1 секунду
CPL P0.5 ;
CHECK_MODE2: JNB P2.1,LABELA ; если происходит постановка в режим 2, то ; переходим на метку LABELA
CLR FMODE2 ; сброс флага режима 2
MOV OVER_B,#00H ; и констант
MOV OVER_K,#00H ;
MOV OVER_D,#00H ;
SETB P0.2; закрытие багажника на случай если включался ; режим 2
JNB P2.0,GAUGE_L ; если система не выключается, то переход к ; опросу датчиков
JNB FALARM,EXIT ; если не было вторжения в процессе работы, ; то переход на EXIT
CALL SIGNAL44 ; если было вторжение, то 4 сигнала сирены и ; габаритов
ANTIBLOKING: CLR P0.0 ; разблокирование стартера
CLR P0.1 ; открытие дверей
CLR P0.2 ; открытие багажника
JMP BEGIN ; переход в начало
LABELA: JB FMODE2,IGN_KAPOT ; если режим 2 уже установлен, то переход ; на IGN_KAPOT, если нет, то:
SETB FMODE2 ; уст. флага режима 2
CALL SIGNAL22 ; 2 сигнала сирены и габаритов при постановке в ; режим 2
CALL DELAY;
CALL SIGNAL11 ;
CLR P0.2 ; открытие багажника
JMP IGN_KAPOT ; переход к проверке датчиков
LABELB: SETB P0.3 ; включение сирены
MOV R0,#3 ; загрузка регистров для
LOOP1: MOV R4,#100 ; цикла в 60 секунд
LOOP0: JB P2.0,STOP_PULT ; переход если сирена отключается с пульта
JB P0.6,STOP_VALET ; переход если сирена отключается с Valet`а
CALL DELAY ; задержка 0.2 секунды
CPL P0.4 ; мигание габаритов
DJNZ R4,LOOP0 ; внутренний цикл
DJNZ R0,LOOP1 ; внешний цикл
JMP SHUTDOWN ; пропускаем 2 строки
STOP_PULT: CLR P2.0 ; сброс отключения с пульта
STOP_VALET: CLR P0.6 ; сброс отключения с Valet`а
SHUTDOWN: CLR P0.3 ; выключение сирены
CLR P0.4 ; выключение габаритов
CJNE OVER_B,#5,SET_FKAPOT ; установка флагов для
SETB FBOX ; игнорирования датчиков
SET_FKAPOT: CJNE OVER_K,#5,SET_FDOOR ; если воздействие было
SETB FKAPOT ; 5 раз
SET_FDOOR: CJNE OVER_D,#5,SET_FALARM ;
SETB FDOOR ;
SET_FALARM: SETB FALARM ; запомнили БЫЛА ПОПЫТКА ВТОРЖЕНИЯ!!!
SETB P0.5 ; включаем светодиод на постоянное свечение
JNB P2.1,TO_IGN_KAPOT ; переход если режим 2 на TO_IGN_KAPOT
JMP GAUGE_S ; переход к опросу датчиков GAUGE_S
TO_IGN_KAPOT: JMP IGN_KAPOT ; переход на IGN_KAPOT
SIGNAL11: SETB P0.3 ; вкл. сирены
SETB P0.4 ; вкл. габаритов
CALL DELAY; задержка 0.2 секунды
CLR P0.3 ; выкл. сирены
CLR P0.4 ; выкл. габаритов
RET ; возврат
SIGNAL22: CALL SIGNAL11 ; 1 сигнал сирены и габаритами
CALL DELAY ; задержка 0.2 секунды
CALL SIGNAL11 ; 1 сигнал сирены и габаритами
RET ; возврат
SIGNAL44: CALL SIGNAL22 ; 2 сигнала сирены и габаритами
CALL DELAY ; задерка 0.2 секунды
CALL SIGNAL22 ; 2 сигнала сирены и габаритами
RET ; возврат
EXIT: CALL SIGNAL22 ; 2 сигнала сирены и габаритами
JMP BEGIN ; переход в начало
SIGNAL1: SETB P0.3 ; вкл. сирены
CALL DELAY ; задержка 0.2 секунды
CLR P0.3 ; выкл. сирены
RET ; возврат
DELAY: MOV R3,#2 ; задержка приблизительно 0.2 секунды
CYCLE2: MOV R2,#200 ; с помощь вложенных циклов
CYCLE0: MOV R1,#248 ;
CYCLE1: DJNZ R1,CYCLE1 ;
NOP ;
DJNZ R2,CYCLE0 ;
DJNZ R3,CYCLE2 ;
RET ; возвраты
END ; конец