EMPER_L EQU 29H
TEMPER_H EQU 28H
FLAG1 EQU 38H
A_BIT EQU 20H
B_BIT EQU 21H
B1 EQU 70H
A1 EQU 71H
DQ EQU P3.1
BELL EQU P3.7
ORG 0000H
AJMP MAIN0
MAIN: MOV R0,#10
M1: CPL P1.4
ACALL DELAY125
DJNZ R0,M1
MIAN0:MOV A1,#80
MAIN1:LCALL D1820
LCALL DISPLAY
MOV A,29H
CLR C
CJNE A,A1,MAIN1_1
SETB BELL
AJMP MAIN1_1_A
MAIN1_1: JC MAIN1_2
CPL BELL
MAIN1_1_A: CLR P1.4
SETB P1.3
AJMP MAIN2
CLR P1.4
MAIN1_2:SETB BELL
CLR P1.3
SETB P1.4
MAIN2: ETB HEAT
SJMP BJ
D1820: LCALL GET_TEMPER
MOV B1,29H
MOV A,29H
MOV C,40H
RRC A
MOV C,41H
RRC A
MOV C,42H
RRC A
MOV C,43H
RRC A
MOV 29H,A
MOV A,B1
MOV B,#10H
MUL AB
MOV B,#10H
DIV AB
MOV B,#10H
MUL AB
MOV B,#10H
DIV AB
MOV B1,A
RET
INTI_1820: SETB DQ
NOP
CLR DQ
MOV R1,#3
TSRI: MOV R0,#107
DJNZ R0,$
DJNZ R1,TSR1
SETB DQ
NOP
NOP
NOP
NOP
MOV R0,#25H
TSR2: JNB DQ,TSR3
DJNZ R0,TSR2
LJMP TSR4
TSR3: SETB FLAG1
LJMP TSR5
TSR4: CLR FLAG1
LJMP TSR7
TSR5: R0,117
TSR6:DJNZ R0,TSR6
TSR7:SETB DQ
RET
GET_TEMP:
SETB DQ
LCALL INIT_1820
JB FLAG1,TSS2
RET
TSS2: MOV A,#0CCH
LCALL WRITE_1820
MOV A,#44H
LCALL WRITE_1820
LCALL DISPLAY
LCALL INTI_1820
MOV A,#0CCH
LCALL WRITE_1820
MOV A,#0BEH
LCALL WRITE_1820
LCALL READ_1820
RET
WRITE_1820:MOV R2,#8
CLR C
WR1:CLR DQ
MOV R3,#6
DJNZ R3,$
RRC A
MOV DQ,C
MOV R3,#23
DJNZ R3,$
SETB DQ
NOP
DJNZ R2,WR1
SETB DQ
RET
READ_1820: MOV R4,#2
MOV R1,#29
RE00: MOV R2,#8
RE01:CLR C
SETB DQ
NOP
NOP
CLR DQ
MOV R3,#9
RE10: DJNZ R3,RE10
MOV C,DQ
MOV R3,#23
RE20: DJNZ R3,RE20
RRC A
DJNZ R2,RE01
MOV @R1,A
DEC R1
DJNZ R4,RE00
RET
DISPLAY: MOV A,29H
MOV B,#10
DIV AB
MOV A_BIT,A
MOV B_BIT,B
MOV DPTR,#NUMTAB
MOV R0,#1
DPL1: MOV R1,#25
DPLOP1: MOV A,B_BIT
MOVC A,A+@DPTR
MOV P0,A
CLR P2.2
ACALL D1MS
SETB P2.2
MOV A,A_BIT
MOVC A,A+@DPTR
MOV P0,A
CLR P2.1
ACALL D1MS
SETB P2.1
MOV P0,#0FFH
DJNZ R1,DPLOP1
DJNZ R1,DPL11
RET
DELAY10: MOV R6,#20
D3: MOV R5,#255
DJNZ R5,$
DJNZ R6,D3
RET
DELAY125: MOV R6,#255
D1: MOV R5,#255
DJNZ R5,$
DJNZ R6,D1
RET
DELAY1S: MOV R7,#8
D2: LCALL DELAY125
DJNZ R7,D2
RET
NUMTAB: DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H
DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH
END
TEMPER_H EQU 28H
FLAG1 EQU 38H
A_BIT EQU 20H
B_BIT EQU 21H
B1 EQU 70H
A1 EQU 71H
DQ EQU P3.1
BELL EQU P3.7
ORG 0000H
AJMP MAIN0
MAIN: MOV R0,#10
M1: CPL P1.4
ACALL DELAY125
DJNZ R0,M1
MIAN0:MOV A1,#80
MAIN1:LCALL D1820
LCALL DISPLAY
MOV A,29H
CLR C
CJNE A,A1,MAIN1_1
SETB BELL
AJMP MAIN1_1_A
MAIN1_1: JC MAIN1_2
CPL BELL
MAIN1_1_A: CLR P1.4
SETB P1.3
AJMP MAIN2
CLR P1.4
MAIN1_2:SETB BELL
CLR P1.3
SETB P1.4
MAIN2: ETB HEAT
SJMP BJ
D1820: LCALL GET_TEMPER
MOV B1,29H
MOV A,29H
MOV C,40H
RRC A
MOV C,41H
RRC A
MOV C,42H
RRC A
MOV C,43H
RRC A
MOV 29H,A
MOV A,B1
MOV B,#10H
MUL AB
MOV B,#10H
DIV AB
MOV B,#10H
MUL AB
MOV B,#10H
DIV AB
MOV B1,A
RET
INTI_1820: SETB DQ
NOP
CLR DQ
MOV R1,#3
TSRI: MOV R0,#107
DJNZ R0,$
DJNZ R1,TSR1
SETB DQ
NOP
NOP
NOP
NOP
MOV R0,#25H
TSR2: JNB DQ,TSR3
DJNZ R0,TSR2
LJMP TSR4
TSR3: SETB FLAG1
LJMP TSR5
TSR4: CLR FLAG1
LJMP TSR7
TSR5: R0,117
TSR6:DJNZ R0,TSR6
TSR7:SETB DQ
RET
GET_TEMP:
SETB DQ
LCALL INIT_1820
JB FLAG1,TSS2
RET
TSS2: MOV A,#0CCH
LCALL WRITE_1820
MOV A,#44H
LCALL WRITE_1820
LCALL DISPLAY
LCALL INTI_1820
MOV A,#0CCH
LCALL WRITE_1820
MOV A,#0BEH
LCALL WRITE_1820
LCALL READ_1820
RET
WRITE_1820:MOV R2,#8
CLR C
WR1:CLR DQ
MOV R3,#6
DJNZ R3,$
RRC A
MOV DQ,C
MOV R3,#23
DJNZ R3,$
SETB DQ
NOP
DJNZ R2,WR1
SETB DQ
RET
READ_1820: MOV R4,#2
MOV R1,#29
RE00: MOV R2,#8
RE01:CLR C
SETB DQ
NOP
NOP
CLR DQ
MOV R3,#9
RE10: DJNZ R3,RE10
MOV C,DQ
MOV R3,#23
RE20: DJNZ R3,RE20
RRC A
DJNZ R2,RE01
MOV @R1,A
DEC R1
DJNZ R4,RE00
RET
DISPLAY: MOV A,29H
MOV B,#10
DIV AB
MOV A_BIT,A
MOV B_BIT,B
MOV DPTR,#NUMTAB
MOV R0,#1
DPL1: MOV R1,#25
DPLOP1: MOV A,B_BIT
MOVC A,A+@DPTR
MOV P0,A
CLR P2.2
ACALL D1MS
SETB P2.2
MOV A,A_BIT
MOVC A,A+@DPTR
MOV P0,A
CLR P2.1
ACALL D1MS
SETB P2.1
MOV P0,#0FFH
DJNZ R1,DPLOP1
DJNZ R1,DPL11
RET
DELAY10: MOV R6,#20
D3: MOV R5,#255
DJNZ R5,$
DJNZ R6,D3
RET
DELAY125: MOV R6,#255
D1: MOV R5,#255
DJNZ R5,$
DJNZ R6,D1
RET
DELAY1S: MOV R7,#8
D2: LCALL DELAY125
DJNZ R7,D2
RET
NUMTAB: DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H
DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH
END