1 设计思路
根据需要自行设置温度范围,设置一个下限值和上限值。当传感器检测到温度在我们设置的上、下限值之间时数码管显示当前的温度值,单片机不实行操作处理,当温度低于下限值时数码管自动显示L(低),然后单片机执行操作,通过继电器来控制外电路加热系统进行加热,当温度加热到我们设定的下限值以上时,单片机会自动控制继电器断开,停止加热。当温度高于我们设定的温度的上限值时,数码管显示H(高)由单片机控制断开加热系统。如此的反复进行循环。使温度一直控制在我门所需要的范围内。整个控制过程全部由单片机来自行控制。此系统还有一个优点就是当温度传感器发生故障时,单片机检测不到温度时,就会自动报警,提示人们检查电路中的故障。从而实现对温度的自动显示、检测、控制和报警的一体化。
2 硬件总体设计
2.1 DS18B20温度传感器
DALLAS最新单线数字温度传感器DS18B20是新的“一线器件”,体积更小、适用电压更宽、更经济。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20可把温度信号直接转换成串行数字信号供微机处理。支持“一线总线”接口,测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。由于每片DS18B20含有唯一的硅串行数,所以在一条总线上可挂接任意多个DS18B20芯片。从DS18B20读出的信息或写入DS1820的信息,仅需要一根口线(单线接口)。读写及温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。DS18B20提供九位温度读数,构成多点温度检测系统而无需任何外围硬件。并且适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。DS18B20的性能是新一代产品中最好的。性能价格比也非常出色。DS18B20开辟了温度传感器技术的新概念。DS18B20使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。
2.2 数码显示功能
通过温度传感器可以直接显示当前的温度值,便于观察系统是否处于正常工作状态中可以明确给予人们提示。从而使人能随时跟据自己的需要来设置新的温度。
2.3 AT89S52单片机
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0 Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
2.4 键盘输入模块
SET按键为设置功能选择键,每按下一次,改变一次功能设置。SET1为上、下限温度显示键,SET2为温度上限值设定键,SET3为温度下限值设定键,SET4为复位键。
2.5 系统模块框图
[page]
3 原理和设计电路图3.1 原理
单线数字温度传感器DS18B20将外界温度信号直接转换成串行数字信号传给AT89S52处理器处理,AT89S52处理器对接收到的数据进行处理,控制LED显示、加热器工作、指示灯显示和报警器工作。从而实现系统的自动温度控制等功能。
3.2 电路图
4 软件设计
4.1 主程序设计
从软件的功能不同可分为3大类:1)检测软件,它是用来检测温度;2)显示部分,用来显示所检测到的温度;3)控制部分,用来控制马达。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义。下图为软件设计流程图。
[page]
4.2 温度检测4.2.1 读取温度设计
DS18B20可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生电源为止。此外,还可外接5 V电源,给DS18B20供电。
读取温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。DS18B20的各个命令对时序的要求特别严格,所以必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高低位在后,低位在前,共12位数,小数4位,整数7位,还有一位符号位。
读取温度的主程序如下:
4.2.2 温度数据处理设计
读出温度数据后,TempL的低四位为温度的小数部分,可以精确到0.062 5℃,TempL的高四位和TempH的低四位为温度的整数部分,Tem pH的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为3个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大干0.5℃的话,向个位进1;小于0.5℃的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20最低温度只能为-55℃,所以可以将整数部分的最高位换成一个“-”,表示为负数。由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。温度高字节高5位是用来保存温度的正负,高字节低3位和低字节来保存温度值。其中低字节的低4位来保存温度的小数位。由于本程序采用的是0.062 5的精度,小数部分的值,可以用后四位代表的实际数值乘以0.062 5,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留一位小数即可。也就说,本系统的温度精确到了0.1度。
温度数据处理主程序如下:
5 结束语
基于AT89S52的自动温控系统能广泛地应用于工、农业及人们的居家生活中。由于本系统采用AT89S52开发,可以很方便地根据用户的要求实现不同的专用的自动温控系统,具有广阔的市场前景。
上一篇:一种有无线模块的发射装置外场测试仪设计
下一篇:基于AT89S51单片机的低频信号设计及仿真研究
推荐阅读最新更新时间:2024-03-16 13:27
设计资源 培训 开发板 精华推荐
- 有奖活动|站在NI的肩膀上,一起轻松探索数据奥秘
- 有奖直播报名:TI DLP®技术在汽车行业的创新应用——增强型抬头显示
- 【EE征集令】LaunchPad学习全体验
- 注册有礼 | 施耐德电器邀请您参加EP23上海国际电力电工展线上云逛展
- 有奖直播:助力AI算力,下一代GPU服务器中卡缘高速互连解决方案哪里找?
- 有奖活动|Mentor PCB 手册:《利用自动验证消除原理图设计错误》
- 有奖直播:MPS新一代微功率隔离电源模块MIE系列产品介绍
- 免费申请TI 样片,晒单赢好礼!
- 阅读Microchip多种连接接口SAM单片机精彩专题,参与活动赢好礼
- EEWorld加磅双重礼 ELEXCON深圳国际电子展诚邀您参加