基于pic单片机的热水控制器设计
一、引言
当前市场上的热水控制器基本上采用双金属片温控,控温精度低、可靠性差、功能单一。随着微电子技术的发展,单片微处理器功能日益增强,价格低廉,在各方面得到广泛应用。在热水控制器中应用单片机,具有设计简单、可靠性高、功能易扩展等优点。热水控制器主要实现对水温的控制,并满足不同用户的个性需求。因此一个较完善的控制器应具有以下功能:水温的测量与显示;水量的测量与显示;用户设定功能(如水温设定,定时设定等);对电加热管的控制功能;一些功能键(如定时自动加水,恒温控制,手动加水,手动加热等)。安全措施(漏电检测,安全失效保护,限温保护等)。
二、硬件电路设计
根据热水控制器的功能要求,并结合对pic16c5x 系列单片机的资源分析,采用此系列中的主流型号pic16c57作为电路系统的控制核心。电热水控制器的总体布局如图1所示。 基本硬件电路图如图2(a)~(c)所示。在本系统中,ra0~ra3用于七段码显示,rb6 控制水闸开关,rb7控制电加热管,rc3~rc5用于按键设计和读取水量,rc0~rc2用于跟ds1820通信进行水温测量,rb0~rb1对七段码进行扫描,rb2~rb5 led指示灯显示,rc6漏电检测,rc7控制扬声器用于报警和指示。
1.水温测量电路测温元件采用dallas的单线数字温度传感器ds1820。ds1820提供九位温度读数,测量范围-55℃~125℃,采用独特1-wire 总线协议,只需一根口线即实现与mcu 的双向通讯,具有连接简单,高精度,高可靠性等特点。在工作时,通过总线向其提供电源,单片机发出指令码读取温度值。 键盘与水量测量电路由于在本系统中,只要求显示四个档位的水量值,因此水量传感器采用的是开关式传感器,当水量达到某一档时会拉低该档电平,接口电路与按键按下类似。因此在电路设计中,将水量档位信号与按键通过一片74hc148优先编码器连接到单片机的i/o 口上。按键的优先权高于水量信号,水量高档位信号优先权高于低档位信号,以保证能优先响应按键。
2.显示电路温度采用二位七段码显示,显示范围0℃~99℃。水量采用一位七段显示,显示1、2、3、4,四档水位。对温度和水量进行循环扫描显示。四个led 用于当前按键功能设定。
3.水温和水量控制电路 单片机通过光电耦合对继电器进行控制,用来切断或接通加热管电源,关闭或打开水阀,从而达到对水温和水量的控制。
4.漏电检测及报警电路由于热水器工作在潮湿的场合,因此需具备漏电检测与报警功能。漏电检测由漏电检测线圈的输出经整形后输入到rc6 口,电路原理图如图3(a)所示。当漏电流超过一定阈值时,比较器输出低电平,否则保持高电平,再通过一单稳态触发器电路产生如图3(b)所示波形,低电平保持时间t可由单稳态触发器进行调整设定。在本系统中t 为10ms,由于pic16c57 没有中断功能,因此程序中必须每隔一定时间(小于10ms)对rc6 口进行查询,以检测是否漏电,一旦检测到rc6 变低,经过确认后切断加热管电流,同时进行报警。报警电路还在传感器出现故障、超温时报警提示。 pic16c57 本身具有看门狗定时器,当系统出现异常时,能自动进行掉电保护和系统复位。
三、系统软件设计
系统软件采用pic16c5x精简指令编写。由于pic16c57没有中断功能,因此本系统中键盘扫描、漏电检测等子程序都通过查询实现,并采用4mhz的时钟频率,对指令的运行时间进行了精确计算和设计,保证软件的可靠性和稳定性。系统主程序框图如图4 所示,本文讨论键盘显示与水温测量两个模块。 键盘和显示 本系统中,有四个功能按键:定时加水、恒温控制、手动加水和手动加热;三个七段码显示与四个led 灯指示。
1.按下定时加水按钮时,定时led变亮,并以当前时间为定时时标,每24小时自动加水至设定水量;若长按此钮超过5 秒,定时led 灭,并听到“嘟”一声进行水量设定,此后每按一下钮,水量显示加一档,1~4 档循环显示,不按此钮超过5 秒,再次听到“嘟”一声,水量设定完毕。系统的定时功能主要通过软件完成。pic16c5x内带一个8 位定时器/计数器rtcc,在进行24 小时定时加水时采用了该定时器,rtcc及其相关电路如图5 所示。
由图5 可知,rtcc 工作状态由option 寄存器控制,其中option寄存器的rts位用来选择rtcc的计数信号源,当rts为“1”时,信号源为来自rtcc 引脚的外部信号,rts 为“0”时,信号源为内部时钟。option寄存器的psa 位控制预分频器分配对象,当psa为“1”,分配给rtcc,即外部或内部信号经过预分频器分频后再输出给rtcc。预分频器的分频比率由option内的ps0~ps2决定。option 的rte 位用于选择外部计数脉冲的触发沿,当rte为1时下降沿触发,“0“时为上升沿触发。rtcc计数器采用递增方式计数,当计数至ffh 时,在下一个计数发生后,将自动复零,重新开始计数,以此循环下去。在实际设计中,option寄存器为“00100111“,即定时器的信号源来自rtcc 引脚的外部信号,预分频器的分频比率为1:256,上升沿触发。rtcc引脚信号的输入频率为1khz,因此rtcc 计数至ffh 时需65536ms。通用寄存器f0eh、f0fh用作定时暂存。当设置定时加水功能时,初始化rtcc、option、f0eh、f0fh,开始进行定时,每隔256ms查询一次rtcc 的值,rtcc每循环一次,f0eh-f0fh增1,当增到1318时,24小时定时到,寄存器复位,自动加水。
2.按下恒温控制钮,恒温led变亮,表示进行恒温控制,再按一下led灭,取消恒温控制。与水量设定类似,长按后,进行温度设定。
3.按下手动加热钮时,加热led变亮,加热至65℃,如水量少于1档,则先加水到1档,再按一次取消加热。
4.按下手动加水钮时,加水至设定水量值,长按可设定水量。手动加水过程中,再次按下取消加水。 正常情况下,两个七段码显示当前水温,另一个显示当前水位。水温测量 温度读取是通过与ds1820通信完成。ds1820通信功能是分时完成的,它有严格的时隙概念。因此系统对ds1820的各种操作必须按协议进行。
操作协议为:初始化ds1820(发复位脉冲 →发rom功能命令 →发存储器操作命令 →处理数据)。各操作时序图如6和图7所示。本程序中需用到的操作命令如下:skiprom命令(cch):此命令执行后,表示以后的存储器操作命令将针对在线的所有ds1820,由于本系统中只有一片ds1820,因此发出此命令后,就可对其进行操作。convert命令代码[44h]:启动在线ds1280 进行温度a/d 转换。 readscratchpad 命令代码[beh]:读取温度寄存器的温度值。对ds1820操作的总体流程图如图8所示。其他功能程序漏电检测、数据处理、定时计数等其他功能程序都根据程序运行时间进行了统筹设计,在此不再进行详述。
四、结语
电热水器单片机控制器具有新颖、价廉、安全、实用等优点,并且在国产电热水器上获得了成功应用。本文的一些方法也适用于冰箱、空调等家用电器的电脑控制设计中。
便携式多参数水质测定仪的应用领域有哪些
影响可穿戴诊断设备发展的市场驱动因素
分布式光伏电站与集中式光伏电站的区别
数据中心市场发展火热,光纤连接器也随之迎来了更多的机遇
Pixel2手机刷谷歌官方镜像流程介绍
基于PIC单片机的热水控制器设计
微软证实将发布针对中国本地语言版Windows 8
半导体数字电位器:常见问题
突发!阿里云崩了:全线产品受影响
AMAZINGIC晶焱科技指出在生产线或应用时,造成EOS破坏的原因
英特尔开发SDI II知识产权(IP)核支持多种SDI变体和数据速率
中科院杨裕生院士:靠补贴发展电动汽车是一剂毒药
亮相BTF 2023,康耐视机器视觉赋能动力电池制造
材料与工艺突破在望,可弯曲AMOLED量产在即?
智能网联汽车模拟仿真测试(上) ——企业模拟仿真测试能力建设
电磁干扰的产生机理 开关电源产生干扰的原因
如何进行零点补正?螺旋测微器的原理是什么?
信号完整性分析基础系列之关于眼图测量(上)
ADC码值的转换过程讲解
小米宣布CC9 Pro直降600元,美图品牌手机将于明年正式登场