Proszę ja was o propozycje jak ten problem można by było rozwiązać. Czy poprawnie jest napisany program.
Pozdrawiam
Kod: Zaznacz cały
WENTYL EQU P1.7
CZUJNKI EQU P3.2
LJMP START
ORG 100H
CZAS1S:
MOV R1,#5
TIMER:
MOV B,#200
LOOP:
MOV A,#228
DJNZ ACC,$
DJNZ B,LOOP
DJNZ R1,TIMER
RET
START:
MOV R2,#5
MOV R3,#10
MOV R4,#20
MOV R5,#2400
PRACA:
MOV C,P3.2 ;do portu 3.2 podpięty jest czujnik i sprawdza czy jest ktoś w pomieszczeniu
JC T_POBYT ;jezeli c=1 to odmierza czas pobytu
JNC PRACA ;jezelic=0 to od początku
T_POBYT:
;tutaj musiałabym napisać porównanie
;jeżeli czas pobytu jest do 60 s włącz T1
;jezeli czas jest od 60s do 300s włącz T2
;jeżeli powyżej 300s włącz T3
ACALL CZAS1S
DJNZ R5,START
T1:
SETB WENTYL
ACALL CZAS1S
DJNZ R2,T1
CLR WENTYL
T2:
SETB WENTYL
ACALL CZAS1S
DJNZ R3,T2
CLR WENTYL
T3:
SETB WENTYL
ACALL CZAS1S
DJNZ R4,T3
CLR WENTYL