ORG 0000H
ORL P2,#00000000B
;-------------------------------
LOOP: ACALL ATOD ;電池感測
CLR C
SUBB A,#250
JNC MAN
JC LOOP2
MAN: ;人體感測
JNB P1.4,CASE1
MOV P2,#00000001B
AJMP CASE1
CASE1: ;替代電源輸入感測&是否停電感測
JB P1.0,CASE2
JB P1.1,CASE3
MOV P2,#00000001B
AJMP LOOP
CASE2:
JB P1.1,CASE4
MOV P2,#00000000B
AJMP LOOP
CASE3:
MOV P2,#00000011B
AJMP LOOP
CASE4:
MOV P2,#00000010B
AJMP LOOP
;-------------------------------
;-------------------------------
LOOP2: ACALL ATOD
CLR C
SUBB A,#204
JC MAN2
JNC LOOP
MAN2:
JNB P1.4,CASE5
MOV P2,#00000101B
AJMP CASE5
CASE5:
JB P1.0,CASE6
JB P1.1,CASE7
MOV P2,#00000101B
AJMP LOOP2
CASE6:
JB P1.1,CASE8
MOV P2,#00000100B
AJMP LOOP2
CASE7:
MOV P2,#00000111B
AJMP LOOP2
CASE8:
MOV P2,#00000110B
AJMP LOOP2
;-------------------------------
;-------------------------------
DELAY: MOV R4,#10
MOV TMOD,#00000001B
TIMER: MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
WAIT: JB TF0,OK
AJMP WAIT
OK: CLR TF0
DJNZ R4,TIMER
RET
;--------------------------------
;AD轉換
;----------------------------------
ATOD: CLR P3.6 ;WR
SETB P3.6 ;WR
WAIT1: JB P1.7,WAIT1
READ: MOV A,P0
RET
END
|