PROJEKT MIKROPROC


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 projekt
Podstawy projektowania systemów mikroprocesorowych, cz 3
Podstawy projektowania systemów mikroprocesorowych, cz 8
Podstawy projektowania systemów mikroprocesorowych, cz 2
Podstawy projektowania systemów mikroprocesorowych, cz 9
Podstawy projektowania systemów mikroprocesorowych, cz 7
Projekty AVT Mikroprocesorowy Miernik Pojemnosci
Podstawy projektowania systemów mikroprocesorowych, cz 5
Projekt pracy aparat ortodontyczny ruchomy

więcej podobnych podstron