可调温度控制器设计方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可调温度控制器
摘要:AT89S52 单片机做CPU处理器处理控制,使用DS18B20 集成温度传感器采集温度数据,七段数码管做显示,可以显示当前的温度值,并且可以设定一个上限温度值并保存在DS18B20 中,可以调节所要限定的温度值。还设计了一路继电器控制,超出设定温度时继电器被驱动吸合,外电路中的降温风扇开始工作并发出警报,温度低于设定温度后,继电器自动断开风扇停止工作,警报解除。这样就形成了一个反馈系统。
关键词:可调温度控制,DS18B20,数字显示,按键设定,继电器
1.方案设计与论证
1.1 数据采集
1.1.1 采用DS18B20
DS18B20数字温度计为单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,线路简单,在一根通信线,可以挂很多这样的数字温度计。
1.1.2 采用DS1624基本原理
DS1624数字接口电路简单,与I2C总线兼容,且可以使用一片控制器控制多达8片的DS1624。其数字温度输出达13位,精度为0.03125℃。DS1624可工作在最低2.7V电压下,适用于低功耗应用系统。
权衡之后,我们采用更为简单,价格更便宜的DS18B20传感器。
1.2 数字显示
1.2.1 采用LED显示
只能显示有限符号和数码字。
1.2.2 采用字符式LCD显示
可以用英文显示较为清晰的提示和数字。
1.2.3采用点阵式LCD显示
显示功能最强大,但需要完成大量的显示工作。
因为只需要显示数字,所以我们决定用最为简单最容易实现的共
阳极LED(如图1)来实现温度的显示。
(图1)
1.3 温度设定
1.3.1 采用按键设定
用三个按键分别为设定键,上调键,下调键。设定键为开启和关闭系统,另外还可以进
入和退出设定,另外两个按键分别为温度设定时的上调和下调。
1.3.2 采用遥控设定
用遥控可以实现远距离操作。
遥控设定电路和程序有一定的难度,考虑到现在能力的限制,暂且选择按键设定,遥控设定可作以后扩展。
2.系统设计
2.1 硬件设计
2.1.1主要元器件简介
AT89S52 : AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
(图2)
AT89S52的特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
DS18B20 : DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有
线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,
可以挂很多这样的数字温度计,十分方便。
(图3)DS18B20的特点:只要求一个端口即可实现
二的序列号,实际应用中不需要外部任何元器件
即可实现测温,测量温度范围在-55。C到+125。
C之间,数字温度计的分辨率用户可以从9位到
12位选择,内部有温度上、下限告警设置。
2.1.2 设计原理
DS18B20 使用外接电源的供电方式,数据
端用4.7K 电阻上拉,接到AT89S52的P3.7 脚上。
晶振选用11.0592M 的,使用简单的上电复位电
路。选用共阳极的数码管,用S8550作位驱动,
段引脚通过470 欧的限流电阻接入AT89S52的P1
口上,电路中有三个按键,分别是显示开关/温度
设定,温度上调,温度下调,使用AT89S52的第
P3.5脚做控制输出端,低电平有效,通过9012 三
极管放大去驱动一个5V 的继电器。设定一个温
度值如28 度,当温度超出28 度时,控制端为低
电平,继电器闭合,风扇启动进行散热,当温度下降到设定温度时,继电器断开,散热风扇停止工作。
2.1.3 硬件组成框图
(图4)
2.1.3 电路原理图
系统电路原理图由以下几部分组成(参见图5)
2.2 软件设计
2.2.1软件实现功能
在电路中有数字显示,按键设定,数据采集和继电器控制四个环节。首先要考虑的是电路中3个数码管的阴极是接在P1上的,也就是说要使用动态显示的编程方法,在程序中使用了一个定时中断去处理显示,定时器的定时值为20毫秒,每间隔20 毫秒程序但会执行定时中断显示所要显示的数字,同时在这个定时中断中还会去扫描按键,看是否有键被按下并对其结果进行处理。在这20ms 的时间里程序还会完成温度数据的采集和转换和对当前温度和设置温度的对比等。在编写采集DS18B20 数据的函数时运用了DS18B20 的单总线协议。另外还实现了继电器控制,系统关闭等功能。
2.2.2 软件流程图
(总流程图见图6、数据采集流程图见图7)
3.测试分析
经测试,此作品中应实现的当前温度显示,温度设定(包括设定温度上调、下调),继电器输出,设定温度保存,系统关闭等功能均实现。温度可以正常显示且精确度相当高。
当然,在系统设计和调试中也出现了好多问题,现在都得以解决。例如:1.开始时无法显示当前温度,但其它功能均能正常实现。经过分析,发现最初温度传感器DS18B20正负极接反烧毁,更换后可以正常显示。2.温度显示不稳定,跳动不止,而且同时继电器输出口高低电平也不稳定,也随之跳动。后来在传感器I/O口输入单片机前加上1.6K左右电阻问题得以解决。3.蜂鸣器报警声音太小,而且实际报警时间和期望报警时间正好相反(即低于上限温度报警,高于上限温度停止报警)。原因是PNP型三极管放大器工作原理没有搞清楚,正负极控制反接。
4.结束语
本系统以AT89S52芯片和DS18B20传感器为核心部件,实现了原计划设计的所有功能。本作品类似于电脑主机箱中的散热装置,当外界温度上升到上限设定温度时,散热风扇启动,并发出警报,当温度降到低于上限设定温度时,风扇停止工作警报解除。在设计中,我们力求硬件线路简单,但由于我们初次接触电子设计,知识储备和个人能力有限,此作品定有很