F_CSDS EQU 0FF30H ;WYBÓR WSKAŹNIKA
F_CSDB EQU 0FF38H ;BYFOR WYBORU DANYCH
SEG_ON EQU P1.6
LED EQU P1.7
BUZZ EQU P1.5
KEY EQU P3.5
LJMP START
ORG 100H
START:
MOV DPTR,#F_CSDS ;INICJALIZACZJA PRACY WYŚWIETLACZA 7-SEGMENTOWEGO
MOV A,00000001B
MOVX @DPTR,A
MOV DPTR,#F_CSDB
MOV A,00000111B ;ZAPALONE SĄ 3 OSTATNIE, ŻEBY CZEGOŚTAM NIE SPALIĆ
MOVX @DPTR,A
CLR SEG_ON
INICJALIZACJA: ;PO WŁĄCZENIU SYSTEMU PRACA ZACZYNA SIĘ OD TEGO MIEJSCA
;NASTĘPUJE 5 KROTNE DANIE KRÓTKIEGO SYGNAŁU SYRENĄ
CLR LED ;A NASTĘPNIE SPRAWDZENIE STANU PILOTA.
MOV R0,#5 ;JEŚLI PILOT NIE JEST WCIŚNIĘTY
LOOP: ;WŁĄCZONY ZOSTAJE ALARM CIĄGŁY
CLR BUZZ
MOV A,#1
LCALL DELAY_100MS
SETB BUZZ
MOV A,#10
LCALL DELAY_100MS
DJNZ R0,LOOP
LCALL PILOT
SETB LED
JNB KEY,PRACA
LJMP ALARMC
ALARMC:
MOV R2,#1
CLR BUZZ ;TO JEST ALARM CIĄGŁY
MOV A,00000000B ;BLOKADA ZAPŁONU I DRZWI
MOV DPTR,#F_CSDB
MOVX @DPTR,A
LOOP1:
MOV A,00000001B ;ZAPAL KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
MOV A,#50 ;CZEKAJ 1/2 SEKUNDY
LCALL DELAY_100MS
MOV A,00000000B ;ZGAŚ KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
LCALL PILOT ;SPRAWDŹ PILOT
JNB KEY,PRACA ;JEŚLI WCIŚNIĘTY - KONIEC ALARMU
MOV A,#100 ;CZEKAJ 1S
LJMP LOOP1:
PILOT:
MOV R0,#CSDS ;PO WYKONANIU TEGO PROGRAMU
MOV A,00000001B ;KEY BĘDZIE INFORMOWAŁ O WCIŚNIĘCIU PILOTA
MOVX @R0,A
RET
DRZWI:
MOV R0,#CSDS ;PO WYKONANIU TEGO PROGRAMU
MOV A,00000010B ;KEY BĘDZIE INFORMOWAŁ O DRZWIACH
MOVX @R0,A
RET
WSTRZĄS:
MOV R0,#CSDS ;PO WYKONANIU TEGO PROGRAMU
MOV A,00000100B ;KEY BĘDZIE INFORMOWAŁ O CZUJNIKU WSRZĄSU
MOVX @R0,A
RET
PRACA:
SETB LED
SETB BUZZ
MOV A,00100100B ;OTWÓRZ DRZWI I ODBLOKUJ SILNIK
MOV DPTR,#F_CSDB
MOVX @DPTR,A
LCALL SYGNALIZACJA_PRACY
LOOP2:
LCALL PILOT
JNB KEY,CZUWANIE
LJMP LOOP2
SYGNALIZACJA_PRACY:
MOV A,R2 ;SYGNALIZACJA, ALARMU NIE BYŁO
CJNE A,#0,SP1
MOV A,00000001B ;ZAPAL KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
MOV A,#20
LCALL DELAY_100MS
MOV A,00000000B ;ZGAŚ KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
SP1:
MOV A,R2 ;SYGNALIZACJA ALARMU DŁUGIEGO
CJNE A,#1,SP2
MOV A,00000001B ;ZAPAL KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
CLR BUZZ
MOV A,#1
LCALL DELAY_100MS
SETB BUZZ
MOV A,#19
LCALL DELAY_100MS
MOV A,00000001B ;ZGAŚ KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
SP2:
MOV A,R2 ;SYGNALIZACJA ALARMU KRÓTKIEGO
CJNE A,#2,SP3
MOV A,R2
CJNE A,#1,SP2
MOV A,00000001B ;ZAPAL KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
CLR BUZZ
MOV A,#1
LCALL DELAY_100MS
SETB BUZZ
MOV A,#19
LCALL DELAY_100MS
CLR BUZZ
MOV A,#1
LCALL DELAY_100MS
SETB BUZZ
MOV A,00000001B ;ZGAŚ KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
RET
CZUWANIE:
LCALL DRZWI
JNB KEY,CZUWANIE_BEZ_DRZWI
MOV A,00000000B ;ZAMKNIJ DRZWI I ZABLOKUJ SILNIK
MOV DPTR,#F_CSDB
MOVX @DPTR,A
LCALL SYGNALIZACJA_CZUWANIA
LOOP3:
CPL LED
MOV R0,10
LOOP4:
MOV A,#1
LCALL DELAY_100MS
LCALL DRZWI
JNB KEY,ALARMC
LCALL WSRZĄS
JNB KEY,ALARMK
DJNZ R0,LOOP4
LCALL PILOT
JNB KEY,PRACA
LJMP LOOP3:
CZUWANIE_BEZ_DRZWI:
MOV A,00000000B ;ZAMKNIJ DRZWI I ZABLOKUJ SILNIK
MOV DPTR,#F_CSDB
MOVX @DPTR,A
LCALL SYGNALIZACJA_CZUWANIA
LOP3:
CPL LED
MOV R0,10
LOP4:
MOV A,#1
LCALL DELAY_100MS
LCALL WSRZĄS
JNB KEY,ALARMK
DJNZ R0,LOP4
LCALL PILOT
JNB KEY,PRACA
LJMP LOP3:
SYGNALIZACJA_CZUWANIA:
MOV A,00000001B ;ZAPAL KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
CLR BUZZ
MOV A,#2
LCALL DELAY_100MS
SETB BUZZ
MOV A,#8
LCALL DELAY_100MS
MOV A,00000000B ;ZGAŚ KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
LCALL DRZWI
JNB KEY,LAB1
RET
LAB1:
MOV R0,6
MOV A,#3
LCALL DELAY_100MS
CPL BUZZ
DJNZ R0,LAB1:
RET
ALARMK:
MOV R2,#2
CLR BUZZ
MOV R1,#180
LOOP5:
MOV A,00000001B ;ZAPAL KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
MOV R0,#10
LOOP6:
MOV A,#1
LCALL DELAY_100MS
LCALL PILOT ;JEŚLI PILOT - PRACA
JNB KEY,PRACA
LCALL DRZWI
JNB KEY,ALARMC ;JEŚLI OTWARTO DRZWI - ALARM CIĄGŁY
DJNZ R0,LOOP6:
MOV A,00000000B ;ZGAŚ KIERUNKOWSKAZ
MOV DPTR,#F_CSDB
MOVX @DPTR,A
MOV R0,#10
LOOP7:
MOV A,#1
LCALL DELAY_100MS
LCALL PILOT ;JEŚLI PILOT - KONIEC ALARMU
JNB KEY,PRACA
LCALL DRZWI
JNB KEY,ALARMC ;JEŚLI OTWARTO DRZWI - ALARM CIĄGŁY
DJNZ R0,LOOP6:
DJNZ R1,LOOP7
RET
Wyszukiwarka
Podobne podstrony:
Mikroprocki projektPodstawy projektowania systemów mikroprocesorowych, cz 3Podstawy projektowania systemów mikroprocesorowych, cz 8Podstawy projektowania systemów mikroprocesorowych, cz 2Podstawy projektowania systemów mikroprocesorowych, cz 9Podstawy projektowania systemów mikroprocesorowych, cz 7Projekty AVT Mikroprocesorowy Miernik PojemnosciPodstawy projektowania systemów mikroprocesorowych, cz 5Projekt pracy aparat ortodontyczny ruchomywięcej podobnych podstron