单片机
返回首页

基于AT89S52温度自动控制检测系统设计

2013-08-29 来源:电子技术

    现在农村从事大规模销售辣椒生意的农民,首先要对辣椒进行烘干处理,目前主要是利用一个封闭的烤炉中对辣椒进行烘干,它对温度的要求很严格,如果温度过高就会将辣椒烤焦,如果温度过低就会出现水泡,由于这种原因,经常需要人工进行监控,进入到烤炉中察看温度的变化,从而根据需要来进行加温或者降温处理。但是这样不但麻烦而且对温度的影响很大,不利用温度的控制,所以经常出现烤焦和水泡现象。要解决这一问题,必须有一套很精确的温度自动控制与检测系统。本文利用单片机技术和自动检测技术设计了一种自动烘干系统。

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 系统模块框图

a.JPG

3 原理和设计电路图
3.1 原理
   
单线数字温度传感器DS18B20将外界温度信号直接转换成串行数字信号传给AT89S52处理器处理,AT89S52处理器对接收到的数据进行处理,控制LED显示、加热器工作、指示灯显示和报警器工作。从而实现系统的自动温度控制等功能。
3.2 电路图

b.JPG



4 软件设计
4.1 主程序设计
   
从软件的功能不同可分为3大类:1)检测软件,它是用来检测温度;2)显示部分,用来显示所检测到的温度;3)控制部分,用来控制马达。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义。下图为软件设计流程图。

c.JPG

4.2 温度检测
4.2.1 读取温度设计
   
DS18B20可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生电源为止。此外,还可外接5 V电源,给DS18B20供电。
    读取温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。DS18B20的各个命令对时序的要求特别严格,所以必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高低位在后,低位在前,共12位数,小数4位,整数7位,还有一位符号位。
    读取温度的主程序如下:
d.JPG
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度。
温度数据处理主程序如下:
    e.JPG

5 结束语
   
基于AT89S52的自动温控系统能广泛地应用于工、农业及人们的居家生活中。由于本系统采用AT89S52开发,可以很方便地根据用户的要求实现不同的专用的自动温控系统,具有广阔的市场前景。
进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 短波AM发射器电路设计图

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章