K021B:
MOV A,TEMP_TH
CJNE A,#00H,K023B ;没有到设定下限值,转
MOV TEMP_TH,#120 K023B: DEC TEMP_TH K022B: CALL TH_DEL JMP RESET_TH1
K002: CALL BEEP_BL
CLR TR0 ;关闭中断 RET
;----------------------------------------------------- ;键延时子程序
;----------------------------------------------------- TL_DEL: ;设定温度低值TL延时 MOV R2,#0AH TL_DEL1: CALL ALERT_TL CALL ALERT_PLAY DJNZ R2,TL_DEL1 RET
TH_DEL: ;设定温度高值TH延时 MOV R2,#0AH TH_DEL1: CALL ALERT_TH CALL ALERT_PLAY DJNZ R2,TH_DEL1 RET
;==================================================== ;闪动显示标记符 H、L、O
;==================================================== TEMP_COMP:
SETB TR0 ;启动中断 MOV A,TEMP_TH
SUBB A,#01H
22
SUBB A,TEMP_ZH JC CHULI1 MOV A,TEMP_ZH SUBB A,TEMP_TL JC CHULI2
JNB FLAG2,T_COMP1 ;FLAG2=0,显示标记字符 MOV 74H,#0AH ;熄灭符 LCALL DISP1 JMP T_COMP2 T_COMP1: MOV 74H,#00H
LCALL DISP1 ;显示\T_COMP2:
SETB C1 ;继电器1断开 SETB C2 ;继电器2断开 CLR TR0 ;关闭中断 RET
;--------------------------------------------- ;超温处理
;--------------------------------------------- CHULI1:
CLR C1
CLR C2 ;继电器2吸合 JNB FLAG2,CHULI10
MOV 74H,#0AH ;熄灭符 LCALL DISP1 JMP CHULI11
CHULI10: MOV 74H,#0DH LCALL DISP1 ;显示\CHULI11:
CLR TR0 ;关闭中断 RET
;--------------------------------------------- ;欠温处理
;--------------------------------------------- CHULI2: CLR C1
23
SETB C2 ;继电器2断开 JNB FLAG2,CHULI20
MOV 74H,#0AH ;熄灭符 LCALL DISP1 JMP CHULI21
CHULI20: MOV 74H,#0CH LCALL DISP1 ;显示\CHULI21: CLR TR0 RET
;------------------------------------------------------------ WRITE_E2:
CALL RESET
MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE
MOV A,#48H ;动作温度设定值拷贝到EEROM LCALL WRITE RET
;------------------------------------------------------------- READ_E2:
CALL RESET
MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE
MOV A,#0B8H ;动作温度值拷贝回暂存器 CALL WRITE RET
;***************************************************** ; 处理温度 BCD 码子程序
;**************************************************** CONVTEMP: MOV A,TEMPH ANL A,#80H
JZ TEMPC1 ;温度零上转 CLR C
MOV A,TEMPL ;二进制数求补(双字节) CPL A ;取反加1
24
ADD A,#01H MOV TEMPL,A
MOV A,TEMPH ;- CPL A ADDC A,#00H
MOV TEMPH,A ;TEMPHC HI =符号位 MOV TEMPHC,#0BH SJMP TEMPC11
TEMPC1: MOV TEMPHC,#0AH ; TEMPC11: MOV A,TEMPHC SWAP A MOV TEMPHC,A MOV A,TEMPL
ANL A,#0FH ; MOV DPTR,#TEMPDOTTAB MOVC A,@A+DPTR
MOV TEMPLC,A
MOV A,TEMPL ; ANL A,#0F0H SWAP A MOV TEMPL,A MOV A,TEMPH ANL A,#0FH SWAP A ORL A,TEMPL
MOV TEMP_ZH,A ; LCALL HEX2BCD1 MOV TEMPL,A ANL A,#0F0H SWAP A
ORL A,TEMPHC MOV TEMPHC,A MOV A,TEMPL
乘0.0625 整数部分 组合后的值存入TEMP_ZH 25
ANL A,#0FH
SWAP A ;TEMPLC HI = 个位数 BCD ORL A,TEMPLC MOV TEMPLC,A MOV A,R7 JZ TEMPC12 ANL A,#0FH SWAP A MOV R7,A
MOV A,TEMPHC ANL A,#0FH ORL A,R7 MOV TEMPHC,A TEMPC12: RET
;----------------------------------------------------------- ; 小数部分码表
;----------------------------------------------------------- TEMPDOTTAB: DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,06H DB 06H,07H,08H,08H,09H,09H
;===========================================================
DISPBCD: MOV A,TEMPLC ANL A,#0FH
MOV 70H,A ;小数位 MOV A,TEMPLC SWAP A ANL A,#0FH
MOV 71H,A ;个位 MOV A,TEMPHC ANL A,#0FH
MOV 72H,A ;十位 MOV A,TEMPHC SWAP A ANL A,#0FH
MOV 73H,A ;百位
26
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的智能温控风扇(6)在线全文阅读。
相关推荐: