PIC16C72单片机在太阳能热水器水位水温控制器中的设计

发布者:龙腾少年最新更新时间:2014-02-08 来源: dqjsw关键字:PIC16C72  单片机  太阳能热水器  水位水温控制器 手机看文章 扫描二维码
随时随地手机看文章

  为满足落水式太阳能热水器自动控制的要求,设计了一个基于PIC16C72单片机的水温水位控制器。以NTC热敏电阻作为测温传感器,用PIC16C72内置的多路8位A/D转换器把NTC热敏电阻上的压降转换为数字量实现测温。通过非对称多谐振荡器电路把水位传感器的等效电阻转换为振荡信号的频率,然后用PIC16C72内置的计数器测量频率的高低,实现对水位的测量。介绍了控制器的工作原理、完整的硬件电路和功能。该设计省去了温度测量信号调理电路、专用A/D转换和输出译码驱动芯片,具有硬件系统组成简单、可靠性好的特点。

  太阳能热水器因具有节能环保、使用费用低廉等优点正快速进入千家万户,与太阳能热水器配套的水温水位控制器十分方便用户的使用,产品市场前景好,被受到广泛重视和研究。但当前使用的水温水位控制器仍存在着许多缺馅,如按键功能设计不合理,需要复用按键,用户操作离不开说明书,操作仪表复杂,给用户带来了许多麻烦;选用的水温传感器参数和测量电路不合理,容易因热击穿损坏;水位传感

  器容易结水垢或开裂故障多,使用寿命短,维修成本高。迄今为止,国内外还没有质量过关的水温水位控制仪。针对上述问题,为使控制器的功能更全面实用,操作更简便、直观,提高传感器的可靠性,降低维修成本,笔者结合PIC单片机和NTC热敏传感器技术,设计了一个适用于落水式太阳能热水器的控制器。

  1 系统结构和工作原理

  该控制器主要是用于测量、显示落水式太阳能热水器水箱中的水位和水温,上下水管道温度,控制电磁阀上水、控制辅助电加热及管道防冻电伴热带等。它主要由单片机PIC16C72、水箱温度和管道温度传感器、水位传感器及测量电路、输入按健、用水水流开关、电磁阀控制、电加热控制和电伴热带控制等部分组成。控制器结构框图如图1所示。单片机PIC16C72作为控制的核心,通过执行程序实现对系统各部分的控制。水位测量模块实现水箱水位的测量,温度测量模块实现储水箱水温、上下水管道温度的温度测量。三路控制输出通过继电器分别控制上水电磁阀、电加热器和防冻电伴热带工作。LED部分显示水箱水位,水箱水温及显示相关参数,按健部分用于选择工作模式、设置相关参数、手动控制上水或电加热。水流开关用于测量用水状态。

图1 系统结构框图

图1 系统结构框图

  2 系统硬件设计

  设计的控制器以单片机PIC16C72为控制核心,控制器的电路如图2所示。单片机PIC16C72内有2个计数器,内置一个五通道8位A/D转换模块,带有2K的OTP程序存储器。这里测量水位的方法是用非对称式多谐振荡器电路把水位传感器的等效电阻大小转换为振荡信号频率的高低,由单片机内置的计数器对频率计数,实现水位的测量。储水箱水温、上下水管道温度的测量方法均是利用热敏电阻与固定电阻串联分压,把温度的变化转换为热敏电阻上压降的变化,利用单片机内的多通道8位A/D转换模块对这二路温度电压信号进行A/D转换后,由程序读取和处理。程序控制PORTB口分时作键盘输入口和显示输出口。

图2 控制器硬件电路

图2 控制器硬件电路
 

  2.1 水位测量

  水位传感器的长期可靠性是水位测量的关键。早期曾采用半导体压力传感器来测水位,由于水垢堵塞水压传导管,在应用一段时间后因不适用测量水位环境要求而放弃。这里采用非对称式多谐振荡器电路把水位信号转换为频率信号作为水位测量方法。在图2中,非对称式多谐振荡器由74HC04和电容C5,电阻R3,R19,R22和水位传感器的等效电阻Rw组成。该电路的振荡频率为1/[2.2(R19+R22+Rw)C5].这里是把若干个电阻相串联,在电阻间的引线处引出水位探测电极,作为水位测量传感器。由于水有导电性,水位的变化可引起水位探测电极间的短路,这会改变水位传感器的等效电阻Rw的大小,从而使振荡器频率变化。该信号经非门隔离后由74HC04的引脚6输出到单片机的引脚T1CKI,由PIC16C72片内计数器T1对振荡信号的频率计数。水位传感器的串联电阻参数的选择是有效测量水位的关键因素。通过大量的实验发现,在上述多谐振荡器电路中,当选用电容C5为0.1μF,水位传感器由30,10,10,10kΩ的4个电阻相串联组成水位传感器时,测量水位时传感器的等效电阻值在60~0 kΩ之间变化,多谐振荡器的振荡信号的频率在60~415 Hz之间,测量水位效果较好。水位传感器的结构形式、电极材料类型是影响水位传感器使用寿命的重要因素。用导电硅胶材料做水位传感器的导电电极并采用双电极备份结构,较好地解决了因水位传感器故障经常出现的跑水问题。[page]

  2.2 温度测量

  下面以水箱水温的测量方法为例说明测温原理。在图2中,RT1是热敏电阻,用来感应水箱水温。电阻R1与RT1组成简单的串联分压电路对5 V的电源电压分压,RT1上的压降为5V·RT1/(RT1+R1),该压降随温度变化而变化,并通过A/D的输入引脚AN0送入PIC16C72A内部的A/D转换器,转换为数字信号,由程序读取。热敏电阻RT1用于测量室外管道的温度,原理与上述完全相同,由引脚AN1把相应的热敏电阻上的压降送入A/D转换器。这里选用负温度系数热敏电阻器(NTC)作测温传感器,NTC测温热敏电阻的主要优点是电阻温度系数大,灵敏度高,响应速度快,能进行精密温度测量,主要缺点是热电特性非线性现象严重。实验发现,在测量温度较高时NTC热敏电阻功耗较大,易造成热击穿,因此应尽量选用阻值较大的NTC热敏电阻和分压电阻。另外,考虑到PIC单片机的A/D输入信号引脚的输入漏电流最大为±500 nA,要保证A/D转换结果的正确,就要求损耗在信号源内阻上的电压不能超过10 mV,这样就要求信号源内阻最大不要超过20 kΩ。经分析和研究表明,在选用玻璃封装的NTC热敏电阻,精度为50kΩ+±0.5%,其B25/50为4050 k±1%,分压电阻选用热稳定性好的精度为20 kΩ±0.5%的金属膜电阻,不需线性补偿,仅使用查表的方法就能满足测温精度±1℃的要求,并较好地解决了热敏电阻的热击穿问题。

  2. 3 键盘输入和显示输出

  利用PIC16C72的PORTB口的每个I/O引脚可提供量大20 mA的拉电流直接点亮LED工作,并具有软件控制弱上拉的特点,可简化按健输入和显示输出接口电路设计。PORTB口除作按健状态的输入口外,还用于水位、温度显示及工作状态的输出端口,这通过程序设置PORTB口分时作输入口或输出口的方式实现。键盘查询电路由电阻R4~R10及6个按键S1~S6组成,S1~S6分别定义为"升温"、"降温"、"定量"、"定时"、"上水"、"电热"键。通过读入引脚RB0~RB5上的电平可输入按键S1~S6的开关状态。两位数码管SM42052、水位指示灯L1~L7、状态指示灯L8~L14以共阴、动态扫描方式输出显示,由PIC16C72的引脚RC4~RC7输出的4个共阴显示位控电平,控制4个8050三极管Q1~Q4作为两位数码管和两组LED(L1~L7,L8~L14)的位控。由软件译码后的显示码由引脚RB0~RB6上输出直接驱动LED数码管和指示灯L1~L14.按健S1~S6通过1kΩ的限流电阻R16接到PORTC口的引脚RC3,目的在于消除当PORTB作输出口时,按键操作可能对数码管和指示灯L1~L14显示的影响。在查询输入按健S1~S6的状态前,程序先使引脚RC3输出低电平,然后读入PORTB口的电平,输入按健S1~S6的状态。而在PORTB作输出前,程序先设置RC3为输入引脚,然后再从PORTB口的引脚RB0~RB6上输出显示码,由于这时RC3引脚呈输入高阻,按健S1~S6浮空,即使此时有健被按下,也不会把引脚RB0~RB6上输出的高电平拉低而影响显示。L1~L7灯显示水箱水位,两位数码管一般情况显示水箱水温,当按升温或降温键时,闪烁显示设定的水温值;当按定时健时,闪烁显示设定的用水时间值;当出现故障时,则显示故障编码;灯L8~L10分别为定温工作模式、定量工作模式、定时工作模式指示灯;灯L11~L14分别为上水、电热、故障、自来水水压状态指示灯。S1、S2分别为升温键和降温键,用于选择定温模式,并用于改变水温设定值;S3键为定量键用于选择定量模式,并用于预置水量值,定时键S4用于选择定时模式并改变时间设定值,S5为上水键用于开启/关闭自动上水,S6为电热键用于开启/关闭电加热,S7为水流开关,用于测量用户用水状态。

  2.4 控制输出电路

  系统有三路控制输出,分别是由单片机的RA5、RC1和RC2输出控制三极管Q6、Q7和Q8,分别控制继电器RL1和RL2、RL3和上水电磁阀。继电器RL1和RL2用于控制电加热管对水箱中的储水辅助电加热,继电器RL3控制电伴热带用于上下水管路防冻堵,Q8控制上水阀上水。例如,按"上水"键将RC2置高电平开启上水电磁阀,启动上水。再次按"上水"键,程序使RC2输出低电平,关闭上水电磁阀。低温电伴热带防冻的条件是,室外管道温度等于或低于4℃,程序就将RC1口置高电平,使电伴热带通电工作发热,当管道温度等于或高于10℃时,使引脚RC1输出低电平,以关闭电伴热带电源。

  3 功能介绍和软件编程

  本系统采用单片机程序控制,功能有水温水量显示、定量上水、定温上水、定时用水、自动上水、辅助电加热、管道自动防冻、溢水自停、用水自动停止上水和停止电加热,低水压判断等功能。主要功能介绍如下:定量上水功能:按"水量"键,定量摸式灯亮,系统进入定量模式,水位灯开始闪烁,此时继续按"水量"键,水位灯开始循环变化,在希望的水量值处停下,水量设定完成。按"上水"键,上水灯亮,开始上水,当水箱中的水量达到设定值时,自动停止上水。定温上水功能:接"升温"或"降温"键,此时定温模式灯亮,表示系统进入定温模式,数码管闪烁显示设定的水温值。继续按"升温"或"降温"键,直到期望值为止。按"上水"键,上水灯亮,启动定温上水功能,在上水过程中,再按一下"上水"键,将关闭上水。定时用水功能:首先按"水量"健,水位灯闪烁显示设定的水量值,继续接水量键直到欲设定的水量值;再按"升温"或"降温"键,数码管闪烁显示设定的水温值,继续按"升温"或"降温"键,直到欲设定的值;最后再按"定时"键,此时数码管闪烁,此时定时模式灯亮,指示当前为定时工作模式,继续按"定时"键,直到显示的数值为欲设定的用水时间(1~24 h)。在定时模式下,当日照较好,太阳能已使水温达到设定温度时,不启动电辅助加热;当日照不足时,控制器会计算出合适的启动电辅助加热的时机,真正做到光与电自动互补,既节电又保证全天候使用。如要取消定时功能,按一下"水量"键或"升温""降温"键就离开定时模式,进入定量模式或定温模式。定温电辅助加热功能:当水温低于设定值时,按"电热"键可在开启/关闭电加热间切换。防干烧功能:当水温低于设定值,水箱中水位不足1/4时,即使按电热键也不能启动电加热。溢水自停功能:上水15min后,水位无变化,将自动关闭上水。另外还设计有用户用水自动推迟上水、停止电加热等功能,水箱无水15 min后自动启动上水功能。系统程序由主程序、多个功能子程序及一个中断服务程序组成,程序流程如图3和图4所示。程序用PIC汇编语言编写完成,程序代码近2kB.

图3 主程序流程图

图3 主程序流程图

图4 中断程序流程图

图4 中断程序流程图

  4 结束语

  本设计通过在测温电路中采用较大阻值的分压电阻和NTC热敏电阻,有效地降低了NIC热敏电阻的工作电流,较好地解决了NTC热敏电阻的热击穿问题。采用自制的备份电极的水位传感器,成倍地延长了水位传感器的使用寿命。选用PIC16C72为控制芯片,外围电路简单、成本低、抗干扰性好。设计的定量、定温、定时3种工作模式,功能全面实用,能满足家庭太阳能热水器多样化控制的要求。按键操作简明,无按键复用,一目了然,用户容易掌握和使用,该水位水温控制器特别适用于家庭落水式太阳能热水嚣的自动控制。

关键字:PIC16C72  单片机  太阳能热水器  水位水温控制器 引用地址:PIC16C72单片机在太阳能热水器水位水温控制器中的设计

上一篇:电动摩托车用无刷直流电机控制系统的设计
下一篇:基于nRF24E01的无线温度采集系统设计

推荐阅读最新更新时间:2024-03-16 13:34

51单片机学习笔记(四)
隔了两天没有写笔记了,也不算是偷懒吧,因为这两天写的程序也不少的,只是有些问题没有弄清楚,所以没有写笔记,今天基本上弄懂了,但还是有一些地方处理不好,还是把它留到日后处理吧,感觉这些问题不是我一时半会能够搞定的。 这两天主要是学习了51单片机的计时器的使用。分别尝试了查询法计时和中断法计时。 其中查询法计时我自己编写程序时检测完 TF0 口数据为1时(数据溢出),时间到。于是开始执行相应的指令,但忘记用clr tf0来使tf0口清零,以置后续计时出错。参考书本后发现有jbc这样的指令,可以在检测到tf0为1时跳转且把tf0位清零。免去clr指令。 下面说一说重点。数字电子时钟。 这个程序一共有200多行,第一次写那
[单片机]
一个基于无操作系统的STM32单片机单片机内存管理器
本代码基于无操作系统的STM32单片机开发,功能强大,可申请到地址空间连续的不同大小的内存空间,且用户接口简单,使用方便。直接贴代码: memory.h: memory.c:
[单片机]
一个基于无操作系统的STM32<font color='red'>单片机</font>的<font color='red'>单片机</font>内存管理器
HOLTEK单片机-秒表
功能说明: 利用定时器1的定时模式制作一个秒表。 电路说明: HT48R50A-1 的端口A,端口C控制4个共阳极七段显示器以显示秒表的s及1/100s。 HT48R50A-1 的复位键SW1作为秒表的开始计时,停止计时和回零按键。 程序: ; *************************************************** ; * Filename : 9712a.ASM * ; * Function : Stop watch * ; * Microprocessor : HT48R50A-1/28SKDIP-A * ;
[单片机]
单片机与嵌入式系统中C语言的位运算小记
编了个PIC的项目,对C语言里的位运算还是蛮有感悟的,特此记录一下。 譬如说,在程序中定义了一个char类型的变量, purge_short_enable_flag, //bit 0 -- start short circuit circle timing //bit 1 --short circuit enable //bit 2 --purge H2 enable 所以在复制的时候,一定要记得不要影响其他为,之前我在使能purge的时候,直接复制了,就像purge_short_enable_flag = 0x02,结果,pic跑起来就出问题了,因为这样就影响到了short的使能的,所以还是要purge_short_enab
[单片机]
基于Linux 下ARM 和单片机的串口通信设计
0 引言 数据采集系统中由于单片机侧重于控制,数据处理能力较弱,对采集的数据进行运算处理比较繁琐,如果通过串口与上位机通信,利用上位机强大的数据处理能力和友好的控制界面对数据进行处理和显示则可以提高设计效率。串口通信以其简单的硬件连接,成熟的通信协议,成为上下位机之间通信的首选。移植了Linux 操作系统的s3c2440 可以在Linux 环境下操作串口,降低了串口操作的难度,可以使开发者集中精力开发大规模的应用程序,而不必在操作底层设计上耗费时间。 1 硬件连接 s3c2440 是三星公司生产的基于ARM9 核的处理器,采用3.3 V 电压供电; C8051Fxxx 系列单片机是美国CYGNAL 公司推出的与8051 兼容
[单片机]
键盘电路实例分析:上拉电阻错误导致51单片机无法正常运行
在电路设计中,为了将电阻钳位维持在高电平,会借助上拉电阻来实现电阻的稳定,因此上拉电阻开始大量出现在电路设计中。本文从以键盘电路实例为切入点,为大家分析一种由于上拉电阻位置原因导致51单片机电路无法正常运行的情况。 首先让我们来看一看这个键盘电路的原理图,如图1所示。 图1 在按键没有被按下时,端口为低电平,按下按键的时候端口上接高电平。但电路却没有正常工作,出现了问题。 下面就来分析一下问题所在。首先,将电源直接接到端口上是绝对不可以的。当按下按键时,会有很大的电流进入单片机。在工程上,这种往往应该加限流电阻,一般选择1K即可。 但也不能选择太大的电阻,因为电阻上面压降太大,造成输入低于应有的高电平,造成错
[单片机]
键盘电路实例分析:上拉电阻错误导致51<font color='red'>单片机</font>无法正常运行
用51单片机的Pl口实现独立的键盘控制
  独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。   独立式按键的优点是电路配置灵活,软件结构简单,并且能同时检测到多个键被按下的情况。但缺点是每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构复杂。因此,此键盘常用于按键较少的系统或操作速度较高的场合。   计本电路由上拉电阻和按键组成,对于每路键盘来讲,当键没有按下时,单片机相应引脚上的电平为低电平,当键按下时,单片机相应引脚上的电平为高电平,详细电路如下图所示。   程序设计      程序中采用轮询
[单片机]
用51<font color='red'>单片机</font>的Pl口实现独立的键盘控制
意法半导体推出全球性能最强的Cortex-M微控制器
最受业界欢迎的基于Cortex-M处理器的微控制器平台现在拥有逾250种相互兼容产品,让设备厂商轻松扩展升级最终产品 中国,2011年9月21日 —— 横跨多重电子应用领域、全球领先的半导体供应商及微控制器厂商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)今天宣布 STM32™ F4系列微控制器产品上市。作为STM32®平台的新产品,STM32™ F4系列基于最新的ARM® Cortex™-M4内核,在现有出色的STM32微控制器产品组合中新增了信号处理功能,并提高了运行速度;已上市的新系列产品巩固了意法半导体的市场领导地位,取得了迄今市场上性能最高的Cortex-M微控制器的称号 。
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved