唐 静,申 毅,赵丽芬
(铜仁学院 大数据学院,贵州 铜仁 554300)
基于单片机的温控系统设计
唐 静,申 毅,赵丽芬
(铜仁学院 大数据学院,贵州 铜仁 554300)
该设计是以STC89C52单片机为核心,采用DS18B20作为温度传感器,七段数码管作为数值显示,矩阵键盘实现温度控制。利用Proteus软件进行电路设计及电路仿真,采用uVi/sion4软件进行程序编写。本设计是采用温度传感器获取当前的温度值,并通过单片机将该温度值与键盘输入的温度值进行比较,若前者温度值小于后者温度值时,系统处于加热状态;若前者温度值不小于后者温度值时,系统处于停止加热状态。
单片机;温度控制;传感器
温度是大自然的基本物理量,与人们的生活息息相关。大到宇宙星空,小到细菌微生物,无处不存在温度。而温度控制在人类的生产生活中处处涉及,随着工业化的发展,温度的时时监测和控制越来越重要,智能温控理论也随着诞生。而采用单片机来实施对温度的智能控制,不仅控制方便、成本低廉、可操作性强等诸多优点,而且可以提高产品质量和输了的指标。20世纪70年代初智能控制系统的相应概念开始提出。1985年8月,电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)在美国召开了世界第一次智能控制学术讨论会,会议决定设立一个智能控制委员[1]。这次会议标志着智能控制领域的正式诞生。20多年过去了,如今智能控制理论得到了极大的发展,并且涌现众多而新颖的控制理论[2]。智能温度控制器于20世纪90年代中期问世,当时控制能力比较单一、精度欠缺[3]。步入21世纪后,智能温控得到了迅猛的发展,而超高的精度、功能的多样、总线的标准化、高稳定的性能等也在不断进行优化[4]。
1.1 系统框架
该系统由核心部件AT89C51来处理从温度传感器DS18B20采集的温度通过74SL47译码器显示在数码管上,并由矩阵键盘设置所需的温度,当温度达到预设值时,单片机将控制续电器,停止加热;若未达到预设值将继续加热。系统总体功能如图1所示。
图1 系统总体功能
1.2 单片机最小系统电路
单片机最小系统即是单片机可以工作时所需的最少组成元件。对52系列单片机来说,最小系统一般应该有:(1)单片机;(2)晶振电路(一个晶振两个电容);(3)复位电路(一个按键一个电解电容两个电阻)。最小系统如图2所示。
图2 单片机最小系统
1.3 温度采集电路
DS18B20是达拉斯(DALLAS)公司生产的单总线式数字温度传感器。其因微小化的体型、低廉的成本、超小的功耗、超强的抗干扰能力、高精度、样式多等多种特点,应用十分广泛[5]。温度采集电路如图3所示。
图3 温度采集电路
DS18B20的初始化过程如下:
1.先将数据线置高电平“1”。
2.延时(延时时间要短)。
3.数据线拉到低电平“0”。
4.再延时(延时范围在480~960 us,一般是750 us)。
5.数据线拉到高电平“1”。
6.延时等待。
7.将数据线再次拉高到高电平“1”后结束。
1.4 数码管动态显示电路
本系统是采用了LED七段数码动态显示电路来显示温度值,74LS47作为显示电路的驱动。该显示范围在0~99,电路由译码器和数码管两部分组成。显示电路如图4所示。
图4 显示电路
该系统是由两个两位共阳数码管通过74LS47译码器译码来实现显示功能。而两个两位数码管分别用来显示当前温度和预定温度。
1.5 键盘输入电路
该电路是采用外部中断0(P3.2口)控制矩阵键盘的输入请求,采用4×3矩阵键盘扫描技术。当按下“设置(中断请求键)”键时,进入“预设”温度值的设置,可从键盘中自由输入0—9的数字,如果输入错误或更改时可按“清除(*)”键进行删除,如果确定“预设”温度值请按“确定(#)”键,保存设置并退出键盘输入,进入温度控制状态。键盘输入电路如图5所示。
图5 键盘输入电路
1.6 加热控制电路
该电路的主要任务是完成单片机所发出的信号来控制外部设备的加热或暂停加热。默认状态是暂停加热。当P3.6口为高电平时,本电路处于“暂停加热”状态,则D1亮,D2灭;当P3.6口为低电平时,电路处于“加热”状态,则D2亮,D1灭。加热控制电路如图6所示。
图6 加热控制电路
在测试过程中该流程是驱动DS18B20工作。先将DS18B20初始化后,通过读写命令获取被测物温度值并将其温度值保存。
系统的流程分4个部分:系统初始化、数据读取、温度控制执行、显示温度。主程序流程如图7所示。
图7 主程序流程
针对温度控制问题,设计并实现了一种以STC89C52单片机为核心,采用DS18B20作为温度传感器,七段数码管作为数值显示,矩阵键盘实现温度控制器。利用Proteus软件进行电路设计及电路仿真,uVision4软件进行程序编写。本设计是采用温度传感器获取当前的温度值,并通过单片机将该温度值与键盘输入的温度值进行比较,若前者温度值小于后者温度值时,系统处于加热状态;若前者温度值不小于后者温度值时,系统处于停止加热状态。
[1]陈建元.传感器技术[M].北京:机械工业出版社,2008.
[2]张齐,朱宁西.单片机应用系统设计技术—基于C51的Proteus仿真[M].北京:电子工业出版社,2009.
[3]刘同法.单片机C语言编程基础与实践[M].北京:北京航空航天大学出版社,2009.
[4]刘建清. 51单片机C语音非常入门与视频演练[M].北京:电子工业出版社,2010.
[5]王毅,万英,陈承格.数字式温度测量系统的设计[J].福建师范大学学报(自然科学版),2012(1):44-48.
Design of temperature control system based on SCM
Tang Jing, Shen Yi, Zhao Linfen
(Big Data College of Tongren University, Tongren 554300, China)
The design is taking STC89C52 micro-controller as the core, adopts DS18B20 as the temperature sensor, seven digital tube as a numerical display and uses matrix keyboard to achieve temperature control. Proteus software is used to carry out circuit design and circuit simulation, and adopts uVision 4 software to write program. This design is to obtain the current temperature by temperature sensor, and compares the temperature value and temperature value to the keyboard input through the micro-controller, if the former temperature value is less than the latter temperature value, the system is in a state of heating; if the former is greater than the latter temperature, the system is stopped heating.
SCM; temperature control; sensor
唐静(1986— ),女,贵州铜仁,本科,讲师;研究方向:传感器,单片机。