智能實用的可編程光控器源程序
智能實用可編程光控器源程序
SCK BIT P1.5 ;時鐘控制
SI BIT P1.4 ;數(shù)據(jù)輸入
SO BIT P1.6 ;數(shù)據(jù)輸出
CS BIT P1.7 ;片選
RcvD DATA 6FH ;接收數(shù)據(jù)緩沖器
XmtD DATA 6EH ;發(fā)送數(shù)據(jù)緩沖器
ORG 0000H
AJMP INIT_0
ORG 000BH
AJMP T0ZD
ORG 001BH
AJMP T1ZD
ORG 0050H
INIT_0: CLR 59H
MOV 55H,#35
MOV 56H,#35
MOV P1,#0C3H
MOV P3,#0FFH
MOV TCON,#10H
MOV TMOD,#11H
MOV TL0,#0AFH
MOV TH0,#3CH
MOV IE,#8AH
ACALL WD_SET ;看門狗定時時間設(shè)置
LOOP0: LCALL WD_RST ;喂狗
MOV 50H,#85H
LOOP1: MOV 51H,#35H
LOOP2: DJNZ 51H, LOOP2
DJNZ 50H, LOOP1
JNB 59H, LOOP0 ;光控開燈標(biāo)志
;若光控啟動,則進入延時處理
MOV A,P3 ;讀取數(shù)字撥盤開關(guān)編程設(shè)定值
CPL A
ANL A,#0FH ;處理讀取數(shù)字撥盤開關(guān)的設(shè)定值
JZ LOOP0 ;編程設(shè)定值是否為0,若不為0
;則作關(guān)燈延時處理
CJNE A,48H, LOOP0 ;取時鐘計時,與編程設(shè)定值比較是否相等
CLR P1.3 ;若相等,清0P1.3,關(guān)掉相應(yīng)的路燈
AJMP LOOP0
T0ZD: PUSH Acc ;時鐘程序
MOV TL0,#0AFH
MOV TH0,#3CH
INC 45H
MOV A,45H
CJNE A,#0AH, FW0
INC 46H ;秒計數(shù)
MOV 45H,#00H
JNB P3.6, SZ1 ;單片機內(nèi)部比較器輸出的判斷
MOV 56H,#35 ;抗干擾延時設(shè)置處理
DJNZ 55H, SZ2
CLR 59H ;關(guān)燈處理
CLR P1.2
CLR P1.3
AJMP SZ2
SZ1: MOV 55H,#35 ;抗干擾延時設(shè)置處理
DJNZ 56H, SZ2
JB 59H, SZ2
SETB 59H ;開燈處理
SETB P1.2
SETB P1.3
MOV 45H,#00H
MOV 46H,#00H
MOV 47H,#00H
MOV 48H,#00H
SZ2: MOV A,46H
CJNE A,#3CH, FW0
INC 47H ;分計數(shù)
MOV 46H,#00H
MOV A,47H
CJNE A,#3CH, FW0
INC 48H ;時計數(shù)
MOV 47H,#00H
MOV A,48H
CJNE A,#02H FW0
FW0: POP ACC
RETI
RDX5045: NOP ;看門狗程序
WD_RST: CLR CS
SETB CS
RET
WD_SET: MOV R4,#10H
LCALL WR_SR
評論