?? fuhuaqi.txt
字號:
TIMER_L DATA 23H
TIMER_H DATA 24H
TIMER_COUN DATA 25H
TEMPL DATA 26H
TEMPH DATA 27H
TEMP_TH DATA 28H
TEMP_TL DATA 29H
TEMPHC DATA 2AH
TEMPLC DATA 2BH
TEMP_ZH DATA 2CH
BEEP EQU P3.7
DATA_LINE EQU P3.3
RELAY EQU P2.3
FLAG1 EQU 20H.0
FLAG2 EQU 20H.1
ORG 0000H
JMP MAIN
ORG 000BH
AJMP INT_T0
MAIN: MOV SP,#30H
MOV TMOD,#01H
MOV TIMER_L,#00H
MOV TIMER_H,#4CH
MOV TIMER_COUN,#00H
MOV IE,#82H
LCALL READ_E2
LCALL RE_18B20
MOV 20H,#00H
SETB BEEP
SETB RELAY
MOV 7FH,#0AH
MOV P0,#00H
ACALL DELAY
MOV P0,#0FFH
ACALL DELAY
START:ACALL RESET
JNB FLAG1,START
MOV A,#0CCH
ACALL WRITE
MOV A,#44H
ACALL WRITE
ACALL RESET
MOV A,#0CCH
ACALL WRITE
MOV A,#0BEH
ACALL WRITE
ACALL READ
ACALL CONVTEMP
ACALL JIARE
ACALL DELAY
AJMP START
RESET:SETB DATA_LINE
NOP
CLR DATA_LINE
MOV R0,#64H
MOV R1,#03H
RESET1:DJNZ R0,$
MOV R0,#64H
DJNZ R1,RESET1
SETB DATA_LINE
NOP
MOV R0,#25H
RESET2:JNB DATA_LINE,RESET3
DJNZ R0,RESET2
JMP RESET4
RESET3:SETB FLAG1
JMP RESET5
RESET4:CLR FLAG1
JMP RESET6
RESET5:MOV R0,#064H
DJNZ R0,$
RESET6:SETB DATA_LINE
RET
WRITE:MOV R2,#8
CLR CY
WR1:CLR DATA_LINE
MOV R0,#09
DJNZ R0,$
RRC A
MOV DATA_LINE,C
MOV R3,#23
DJNZ R3,$
SETB DATA_LINE
NOP
DJNZ R2,WR1
SETB DATA_LINE
RET
READ:MOV R4,#4
MOV R1,#26H
RE00:MOV R2,#8
RE01:CLR C
SETB DATA_LINE
NOP
NOP
CLR DATA_LINE
NOP
NOP
NOP
SETB DATA_LINE
MOV R3,#09
DJNZ R3,$
MOV C,DATA_LINE
MOV R3,#23
DJNZ R3,$
RRC A
DJNZ R2,RE01
MOV @R1,A
INC R1
DJNZ R4,RE00
RET
INT_T0:PUSH ACC
PUSH PSW
MOV TL0,TIMER_L
MOV TH0,TIMER_H
INC TIMER_COUN
MOV A,TIMER_COUN
CJNE A,#04H,INT_END
MOV TIMER_COUN,#00H
CPL FLAG2
INT_END:POP PSW
POP ACC
RETI
RE_18B20:JB FLAG1,RE_18B20A
RET
RE_18B20A:CALL RESET
MOV A,#0CCH
LCALL WRITE
MOV A,#4EH
LCALL WRITE
MOV A,TEMP_TH
LCALL WRITE
MOV A,TEMP_TL
LCALL WRITE
MOV A,#7FH
LCALL WRITE
RET
READ_E2:CALL RESET
MOV A,#0CCH
LCALL WRITE
MOV A,#0B8H
CALL WRITE
RET
CONVTEMP:MOV A,27H
ANL A,#0FH
SWAP A
MOV 27H,A
MOV A,26H
ANL A,#0F0H
SWAP A
MOV 26H,A
MOV A,27H
MOV B,26H
ORL A,B
MOV 73H,A
MOV B,#10
DIV AB
MOV 70H,A
MOV 71H,B
MOV A,70H
ACALL TAB
MOV P1,A
MOV A,71H
ACALL TAB
MOV P0,A
RET
JIARE:MOV 28H,#35
MOV 29H,#30
MOV A,TEMP_TH
SUBB A,73H
JC CHUL1
MOV A, TEMP_TL
SUBB A,73H
JNC CHUL2
RET
CHUL1:CLR RELAY
ACALL DELAY
RET
CHUL2:SETB RELAY
ACALL DELAY
RET
TAB:MOV DPTR,#TAB1
MOVC A,@A+DPTR
RET
TAB1:DB 0C0H,0F9H,0A4H,0B0H,099H
DB 092H,082H,0F8H,080H,090H
DELAY:MOV R7,#20H
D1: MOV R6,20H
D2:MOV R5,#20H
D3:DJNZ R5,D3
DJNZ R6,D2
MOV R0,#0FEH
MOV P3,R0
MOV A,P3
CJNE A,#0FEH,S1
AJMP Q
S1:CJNE A,#0DEH,S1A
AJMP Q
S1A:CJNE A,#0BEH,S1B
MOV P1,#0B0H
MOV P0,#0C0H
ACALL DELAY1
AJMP Q
S1B:MOV P1,#0B0H
MOV P0,#092H
ACALL DELAY1
Q:DJNZ R7,D1
RET
DELAY1:MOV R7,#100H
DD1: MOV R6,50H
DD2:MOV R5,#50H
DD3:DJNZ R5,DD3
DJNZ R6,DD2
DJNZ R7,DD1
RET
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -