入口 K3按下? N $ Y 显示,闪烁 Y K1按下? 设置的TL加1 =121? N 显示TL Y N 设置的TL=0 K2按下? Y 设置的 TL=0? Y 设置的TL=119 N 设置的TL减1 显示TL N $ N K3按下? Y 蜂鸣一声 N K3松开? Y 闪烁显示 Y K1按下? 设置的TH加1 =121? N 显示TH Y N 设置的TH=0 K2按下? 设置的 TH=0? Y 设置的TL=119 N 设置的TH减1 显示TH N K3按下? Y 蜂鸣一声 返回 N
16
图13 设置上下限动作温度值TH,TL子程序流程图
实时温度值与设定TH,TL值比较及超、欠温处理子程序流程图
入口 TH>当前温度? Y C1=0,C2=0 第五位LED显示H,其它四位显示当前温度 N 200ms定时时间到? Y 第五位LED灭,其它四位显示当前温度 第五位LED显示H,其它四位显示当前温度 TH>当前温度? Y C1=0,C2=0 N 200ms定时时间到? Y 第五位LED灭,其它四位显示当前温度 N 返回 C1=1,C2=1
图14 实时温度值与设定TH,TL值比较及超、欠温处理子程序流程图
温度显示子程序流程图
17
入口 取扫描字 扫描字P2输出 取显示数据 查段码表 从P0口输出 小数点处理 延时 ACC.3=0Y P0,P2复位 N 指向下一位 返回
图15 温度显示子程序流程图
DS18B20复位与检测子程序
18
入口 600us复位低脉冲 拉高总线 Y 总线=0? N 60us到? Y 总线=0? Y 存在标志位置1 N 存在标志位置0 N 延时 总线拉高 返回 图16 DS18B20复位与检测子程序
19
附录2 源程序
;******************************************************************** ;精准温度显示温控自动风扇系统 * ;*说明:
;* 1、K3 → 进入设定低温动作温度值 TL 状态: ;* 2、K3 → 进入设定高温动作温度值 TH 状态: ;* 3、K3 → 返回
;* 4、设定过程: K1 →加键 (UP), K2 →减键 (DOWN),可快速调 ; 5、实际温度在TL和TH之间时,开启弱风档,低于TL时,关闭风扇; ;高于TH时,开启大风档。每次设置的TH和TL均被保存在DS18B20的ROM ;内,掉不需重新设置. *
;******************************************************************** 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
C1 EQU P3.4 ;C1控制口,接继电器1 C2 EQU P3.5 ;C2控制口,接继电器2
FLAG1 EQU 20H.0 FLAG2 EQU 20H.1
;------------------------------------------------- K1 EQU P1.4 K2 EQU P1.5 K3 EQU P1.6
;================================================= ORG 0000H JMP MAIN
ORG 000BH AJMP INT_T0
20