如何设计一个基于STC89C52单片机的恒温箱温控系统

发布者:心满愿望最新更新时间:2023-10-08 来源: elecfans关键字:STC89C52  单片机 手机看文章 扫描二维码
随时随地手机看文章

一、系统方案设计

本系统是基于经典C51系列单片机的应用开发,集环境温度的信号采集、数据的处理及温度的保持控制等等为一体的数字控制系统。同时,该系统设计有友好的人机交互界面以及简易的设置按键。


系统由如下功能模块组成:MCU模块,显示模块。电源模块,按键设置模块,温度采集模块。


冷却模块以及加热模块。系统方案框图如图1所示。

如何设计一个基于STC89C52单片机的恒温箱温控系统?

图1 系统方案框

二、元器件选择

本设计的MCU采用STC89C52单片机;考虑到节省器件使用的需要。温度传感器则采用单总线制的数字温度传感器DSl8820,无需接A,D转换器,采样值可直接送单片机处理,简易方便;系统采用普通单刀继电器HK4100F作为控制开关;两个水泥电阻(10W,10Ω)串联作为加热器件,低压(最高24V)供电,安全可靠;以5V直流供电小型风扇达到降温或使容器受热均匀的目的;采用普通的按键开关,实现恒温温度的可调设置功能;三位一体的数码管实时显示当前容器的温度值,简易低廉,实现了人机交互界面之目标。

三、硬件电路设计

依据系统方案,概述主要模块接口电路;1、电源模块。12~24V交流输入,输入的交流电压为水泥电阻的发出热量提供电能;输入交流电压经整流滤波,接入稳压芯片7805转变为5V直流电压(VCC)以供给MCU及其外设系统使用。

2、显示模块。共阳数码管,段选接MCU I/013的P1组管脚。以9012三极管作为数码管位选开关,位选分别由P2‘5、P2’6、P2“7等管脚控制,三位数码管显示当前温度(采样温度)值,其中有一个为小数位。其余两个分别为十位和各位。

3、加热模块。主要根据设定恒温值与采样温度值的比较结果进行工作。即,采样温度值大于设定值时。继电器闭合并接通水泥电阻加热,否则断开。

图2中,JDl、JD2分别接串联水泥电阻及交流电源的一端,该继电器由单片机的P2‘4管脚控制。

如何设计一个基于STC89C52单片机的恒温箱温控系统?

图2 电路原理图

4、按键设置模块。为了节省材料和硬件资源,系统设计了三个按键,设置恒温值时,一个用于递增输入;另一个用于递减输入;第三个预留。三个按键的一端接地。另一端分别接MCU的P2’1、P2‘3、P2”2管脚。

5、冷却模块。安装小型风扇,以5V直流电压供电,以继电器控制风扇的工作状态,以实现智能化控制。主要根据设定恒温值与采样温度值的比较结果进行工作。即当采样温度值大于设定值时,继电器闭合并启动风扇冷却。否则断开。该继电器由单片机的P2“3管脚控制。

6、温度采集模块,温度采集模块。以单总线操作的DSl8820温度传感器作为温度采集器。从温度传感器获取温度值的方法非常简洁,无须接A,D转换器。即可实现对温度测量并将测量数据直接送单片机处理。且可使系统实现温度的巡回测量和显示。其中,温度传感器的数据管脚接单片机的P3”5管脚。

四、系统软件设计

1、系统软件概述,如图3所示,系统软件主流程是一死循环程序。其主要任务是:

(1)初始化系统。主要完成相关单片机寄存器的配置,初始化全局变量等。

(2)判断。设置按键是否按下“。若按下。则转入设置处理。并定时10S,若10S后仍然没有按键按下,则跳出设置处理。

(3)采集温度并处理数据。主要对DSl8820复位并读取数值,对所得数据作相关处理并最终转换为十进制数以便于数码管显示。

如何设计一个基于STC89C52单片机的恒温箱温控系统?

图3 主程序流程图

2、部分软件程序代码展示。软件的设计,使用Keil C51开发编写软件程序。软件程序主要由主程序,初始化子程序,读取DSl8820传感器数据子程序。温度数据处理子程序,显示子程序。中断定时子程序以及按键设置子程序等组成。由于读取DSl 8820数据的子程序涉及底层硬件接13,故该子程序采用汇编语言编写,除此之外之外。其他全部程序代码采用C语言编写。

主程序:

如何设计一个基于STC89C52单片机的恒温箱温控系统?

数码管显示程序:

如何设计一个基于STC89C52单片机的恒温箱温控系统?

温度控制子程序:

如何设计一个基于STC89C52单片机的恒温箱温控系统?

五、PCB设计与硬件焊接

以Altium Designer软件绘制设计系统PCB图。

如图4所示。设计PCB时,主要注意如下问题:1、按模块电路组合排列元器件。即将同一模块的元器件尽量排列在一起,以避免布线繁杂而难以发现检测或排除故障;2、布线时保证安全的线间距,设置好布线规则后。最好手动布线;3、需要与外界连接的接口,一般放在P C B的边缘;4、滤波电容。

需靠近要滤波的器件附件,相互连接的导线不宜过长。否则影响滤波效果。检查确保制成的PCB没有短路、断路以及连错的情况下,将相应元器件焊接于制成的PCB上。

如何设计一个基于STC89C52单片机的恒温箱温控系统?

图4 PCB图

六、系统调试与故障排除

以万用表检测硬件的连接线路;在保证硬件电路没有短路、断路等问题的情况下。使用宏晶科技单公司所提供的下载软件(如图5所示)。将程序下载到STC89C52RC单片机上。从而进行软硬件结合调试。

如何设计一个基于STC89C52单片机的恒温箱温控系统?

图5 下载软件界面图

在调试的过程中,遇到如下故障,下载成功并给系统上电,刚开始程序正常运行,具有预期效果--数码管显示出温度值。而不到1分钟。数码管不再显示。此时,用手摸MCU,发现温度正常不发热。按复位键,无效;然后拔掉电源,用万用表测试数码管。数码管完好;后来换了另外一块完好的MCU,问题依然存在;最后着手去查硬件问题,发现MCU复位电路上的电解电容焊接反了,将该电容替换,问题得以解决。用WNY-03型0-1 50℃水银温度计头插入温控样品容器箱,测20℃,30℃,40℃,50℃控制值与实际值的偏差。

七、功能简介

制作成品如6所示。整个系统所具有的功能:(1)具有简易可行的温度采集功能。(2)依据所采集的温度值和设定的恒温值进行对比,并决定对系统环境加热或者冷却实现自动控温。(3)实现对小范围环境(如样品容器箱)的恒温。

如何设计一个基于STC89C52单片机的恒温箱温控系统?

图6 成品效果展示图

八、小结

本设计以经典的低廉单片机作为微控制器,设计了具有友好人及交互界面、智能化高等特点的温控样品容器箱。另外,需要指出的是。该系统仍然具有完善空间,如选用贴片封装的元器件。半导体制冷器件等。改善软件方面,亦有很大的空间。如程序滤波算法的应用,将进一步减少温度误差。将使该系统控制精度更高、功耗更低。温度控制范围更大。


关键字:STC89C52  单片机 引用地址:如何设计一个基于STC89C52单片机的恒温箱温控系统

上一篇:程序烧录方式你了解多少?
下一篇:基于AT89C2051单片机的纺纱断线自动检测系统的设计

推荐阅读最新更新时间:2024-11-02 23:08

51单片机汇编语言(五)
定时器 计数器 功能说明: 开始时接在单片机P1端口中的P1.7亮,用定时器延时60ms后P1.6亮,如此向右移动,移到最右端P1.0亮后,又回到最左端重新开始向右移动,不断循环。 程序:DS01.ASM 01: START: MOV R0, #8 ;设右移8次 02: MOV A, #01111111B ;存入开始点亮灯位置 03: LOOP: MOV P1, A ;传送到P1并输出 04: ACALL DELAY ;调延时子程序 05: RR A
[单片机]
8051单片机实战分析(以STC89C52RC为例) | 02 - LED延时约5s闪烁
代码修改如下: #include reg52.h //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit led=P2^2; //将单片机的P2.2端口定义为led /******************************************************************************* * 函 数 名 : delay * 函数功能 : 延时函数,i=1时,大约延时10us *************************
[单片机]
msp430单片机利用FDC2214测量电容
#include io430.h #include oled.h #include bmp.h #include Config.h #include fdc2214.h #include iic.h void OLED_JM0(void); int main( void ) { WDTCTL = WDTPW + WDTHOLD; u8 retVal=0; unsigned int id; unsigned long Buffer ={0}; IIC_Init(); OLED_Init(); //初始化OLED OLED_C
[单片机]
单片机笔记——数码管显示
用到单片机就不可避免要涉及人机交互,而最简单的显示就是使用数码管了。它可以显示0-9的数字和部分因为字母。 我一般使用的是七段数码管,它的脚位从顶横顺着数分别为,a,b,c,d,e,f中间一横为g而小数点为h,由这几个就可以构成显示不同符号的码表:abcdefgh 下面是数码管显示的小程序 //该程序是通过按键控制数码管开始或停止在0-9加1显示 void Delay(unsigned char count) //该延时子程序是12Mhz下的X*1ms延时 { unsigned char j; while(count-- != 0) { for(j=0;j 72;j++); } } char Keyhit(void
[单片机]
基于51单片机的炭黑复合导电材料的电阻一温度测量系统
0 引 言 随着电子工业及信息技术等产业的迅速发展,对于具有导电功能的高分子材料的需求越来越迫切。导电复合材料具有质量轻、无锈蚀、易于加工成各种复杂形状,尺寸稳定性好,电导率在较大范围内可调,易于大批量生产以及价格便宜等特点,因此广泛应用于抗静电、微波吸收、自控温发热材料、电磁波屏蔽等领域。其中,炭黑复合导电材料是目前应用最广,用量最大的一种。在此以AT89S51单片机为核心,设计一种简易的测量炭黑复合导电材料电阻和温度系统,系统框图如图1所示。 单片机通过热电偶放大器芯片采集当前的温度值;通过电压转换电路采集电阻值,送到FM24C02以备查询,LCD显示当前的电阻和温度情况,使用者可以方便地读出电阻和温度的变化,还可以通
[单片机]
基于51<font color='red'>单片机</font>的炭黑复合导电材料的电阻一温度测量<font color='red'>系统</font>
MCU + USB设备控制器IP核的设计
   1 引言   在传统的计算机系统上常采用串口(如RS232)和并口连接外围设备,但串口和并口都存在着通信速度 慢,接口独占不利于扩展等无法克服的缺点,而通用串行总线(Universal Serial Bus,即USB)因具有传输 速度快、支持热插拔、扩展方便、抗干扰强、成本低、数据传输质量高、节省系统资源等优点而得到了广 泛的应用,当前它已成为计算机最常用的接口之一 。   现在USB控制器主要有两种:带USB接口的单片机(MCU)和纯粹的USB接口芯片。纯粹的USB接口芯片仅处 理USB通信,必须有个外部微处理器来进行协议处理和数据交换。典型产品有PHILIPS公司的PDIUSBD11(I2C 接口)、PDIUSB
[嵌入式]
我与51单片机不得不说的故事
记得,刚开始接触51是上大二的时候,那时候,哪知道51是什么东西,只知道有本叫《单片机原理与接口技术》的书是自己的专业必修课。当老师说道,“单片机”是一个微型计算机的时候,我还在感慨,就这么个小东西(DIP40),能跟强大的计算机媲美嘛! 紧接着,51单片机的第一个实验就是在proteus上面的仿真。由于,当时刚刚开始开数、模电课程,所以对电路中的单片机的P0口外接的8个I/O口分别和一个470R的电阻和一个led串联后并联在一起构成了一个简单的流水灯电路还不是很理解。紧接着,就是老师在keil里面输入了几行汇编代码,“下载”到单片机里面(proteus里面的),只见,led开始闪烁了。随后就是老师随便动了几行代码,led就开始
[单片机]
我与51<font color='red'>单片机</font>不得不说的故事
MCU为工业和汽车设计师扩展8位空间
2008 年 4 月 28 日 ,随着企业的功率预算不断紧缩,而嵌入式内容需求却在日益增加,企业对高度集成、高性能微控制器( MCU )的需求成为必然。为了满足工业和汽车市场的这一需求,飞思卡尔近日为其 S08D 系列增加了强大的新成员,该新成员具有卓越的 8 位性能和片上功能。 飞思卡尔高度集成的 9S08DZ128 MCU 内置控制器区域网络( CAN )接口、电子可擦除可编程只读存储器( EEPROM )和片上仿真 / 调试工具。嵌入式 CAN 接口为众多汽车和工业控制应用提供了理想连通性解决方案。而嵌入式 EEPROM 则通过实现轻松地数据写入和擦除,提高了系统设计灵活性,消除了外部串行 EEPROM 。具有
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved