DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1023|回复: 0
打印 上一主题 下一主题

[温控] 基于AT89C2051芯片的直流PTC热敏电阻恒温控制系统

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-28 16:25:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、引言
  现有的加热器大都采用电热管、电热丝等传统器件加热,电热管的外壳为不锈钢制成的钢管,内有发热元件电阻丝,加热时通过电阻丝及钢管向外界传热,当空气不流动时,电热管的热量就散不出去,温度会越来越高,严重时会烧毁电热管,甚至发生火灾。而PTC热敏电阻作为发热材料,具有节能恒温、无明火、安全性好、发热量较易调节、受电源电压的波动影响小、升温迅速等特点,因此,设计使用PTC热敏电阻做加热材料的恒温加热系统对安全度要求较高的应用是很有意义的。
  2、系统总体设计方案
  本系统采用AT89C2051为控制核心,PTC热敏电阻对加热区域进行加热,数字温度计DS18B20实时采集温度,由外设键盘设定所要加热温度值的上限和下限, 通过实时采集到的温度值与设定温度值的比较,确定是否达到所设定的温度范围,由AT89C2051控制多路继电器实现对多片PTC热敏电阻(一路继电器控制一片PTC热敏电阻)工作状态的开关控制,使加热区域温度维持在设定的温度范围内。系统原理图如图1所示。
  3、单片机控制加热
  3.1 单片机系统
  AT89C2051是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,期间采用ATMEL公司的高密度、非易失性存储技术生产,兼容MCS-51指令系统,片内置通用8位中央处理器和2K字节Flash闪速存储器,128字节内部RAM,15个I/O口线,2个16位定时/计数器,1个5向量两级中断结构,1个全双工串行通信口,内置1个精密比较器,片内振荡器及时钟电路[1]。
  




  3.2 PTC热敏电阻
  PTC是英文Positive Temperature Coefficie-nt的缩写,即为正温度系数,其电阻阻值随温度的升高而增大。PTC热敏电阻在未达到一个特定的温度之前,电阻阻值随温度的变化非常缓慢,当超过这个温度时,PTC热敏电阻的阻值急剧增大,发生阻值剧变的这个温度,称之为居里温度,它是PTC热敏电阻的一个重要技术指标[2]。
  图2为PTC热敏电阻的电流-时间特性。
  




  3.3 数字温度计DS18B20
  DS18B20数字温度计是DALLAS公司生产的1—Wire,即单总线器件,具有线路简单,体积小的特点。测量温度范围为-55℃~+125℃,在-10℃~85℃范围内,精度为±0.5℃。DS18B20的精度检查为±2℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
  由于DS18B20采用的是1—Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89C2051单片机来说,硬件上并不支持单总线协议,因此,必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备,数据和命令的传输都是低位在先[3]。
  3.4 单片机控制多路继电器
  单片机控制继电器如图1所示,图中只给出一路继电器的控制电路接法,它占用了单片机P3口的一位,多路继电器可通过占用不同引脚实现,本系统使用P3口的3位控制3路继电器。PTC热敏电阻选用直流12V,电压由开关电源提供。由于单片机P3口的驱动电流是20mA,而继电器的驱动对于单片机来说相当于大功率器件的驱动,必须放大P3口的驱动电流,而PTC热敏电阻是采用直流12V电压供电,可能会对单片机的工作稳定性有影响,因此选用光电耦合器4N33提高P3口的驱动能力,同时因为光电耦合器4N33是应用电-光-电的转换形式来放大驱动电流,这样隔离了单片机和继电器,消除了系统可能潜在的不稳定的因素。当单片机P3口接继电器的引脚给一低电平,则4N33输入端的发光二极管导通,输出端输出放大电流,驱动继电器吸合,使PTC热敏电阻环路导通,开始加热[4-5]。
  PTC热敏电阻在开始工作的初期有一个冲击电流,这从它的电流-时间特性(如图2所示)中可以看出,在经过一段时间后电流降到稳定工作状态,这时的电流很小,大概在0.8~1A,这样在开始加热的时候就不能同时打开三路继电器进行加热,因为PTC热敏电阻的供电电源选择的是直流12V,12A,如果同时打开三路继电器,在PTC热敏电阻的冲击电流达到最大值(5.7~7A)时,开关电源所承受的电流就会超过其额定值,导致电源停止工作甚至毁坏,影响了系统工作的连续性和可靠性。鉴于这个因素,测定了单片PTC热敏电阻的电流从其开始工作到达到最大值的时间S1和从最大值降到4A以下的时间S2,这样就可以根据这两个时间来决定继电器的开启。现设定三路继电器分别为1、2、3路,在单片机上电后就打开第1路继电器,在经过电流由最小值上升到最大值时间S1后再打开第2路继电器(如果第1路PTC热敏电阻提供的温度没有达到设定温度范围),第3路继电器的开启同样要经过时间S1。每一路继电器的开、关状态是由数字温度计DS18B20测定的实时温度与设定温度的上、下限进行比较来决定的,继电器的开启先后顺序设定为1、2、3,关断先后顺序设定为3、2、1,这些设定由软件来实现。
  3.5 键盘、显示
  本系统外设键盘采用了HD7279A键盘显示芯片,由于要显示系统设定温度的上、下限和实时加热的温度,因此只使用HD7279A的键盘功能,系统的显示部分采用LT12864I液晶显示模块。系统开始工作的时候,通过键盘设定加热温度,数据传递给单片机,再由单片机将数据送显示模块显示;系统工作的过程中,数字温度计DS18B20测得的实时温度值也传递给单片机,再由单片机转换数据并送显示模块显示 [6-7]。
  4、系统软件设计
  系统软件总体流程图如图3所示。系统上电后,首先进行初始化,对寄存器和I/O端口进行设置。当检测到按键有效信号,读取按键数据,传递给单片机并送显示模块显示,键盘设定结束后置标志位,单片机检测到此信号后,开启第1路继电器进行加热。此时初始化数字温度计DS18B20进行温度测量,并将测得实时温度数据送单片机处理,再由显示模块显示。DS18B20每测完一次温度后,就将实测温度值与设定温度值的上限和下限进行比较,如实测温度高于设定温度的上限,转到继电器关闭处理程序,检测每一路继电器的开、关状态,按照第3路、第2路、第1路的顺序关闭继电器(每执行1次关闭1路继电器);如实测温度低于设定温度的下限,转到继电器开启处理程序,检测每一路继电器的开、关状态,按照第1路、第2路、第3路的顺序开启继电器(每执行1次开启1路继电器)。在之后的系统工作中始终循环测温~温度值比较~开启或者关闭继电器这样的流程,以达到对加热区域温度恒温控制的目的。
  




  下面是系统中几个子程序的流程图:三路继电器控制子程序流程图如图4。
  




  DS18B20测温子程序流程图如图5。
  




  键盘显示子程序流程图如图6。
  




  5、结论
  本系统以AT89C2051芯片为控制核心部件,采用直流PTC热敏电阻为加热材料,利用硬件电路和软件编程实现了对PTC热敏电阻的顺序控制,解决了其在启动时冲击电流很大的问题,达到了快速恒温控制的目的。该系统使用安全,便捷,可应用在医疗输液恒温加热、家用电器中的干燥器、加热器等领域;另外,该系统同时也提出了一种控制大电流的方法,为单片机驱动大电流器件提供了一种可靠的依据,具有广泛的应用价值。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-1 12:29 , 耗时 0.121504 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表