APP下载

基于单片机的水温控制系统仿真设计

2013-03-16宋东亚

电子测试 2013年19期
关键词:数码管子程序原理图

宋东亚

(郑州华信学院,河南郑州,451150)

0 引言

单片机作为微控制器,已广泛用于工业控制、机电一体化设备、仪器仪表、信号处理、现代兵器、交通能源、商用设备、医疗设备及家用电器等各个领域。该设计就是以单片机为核心设计的一个温度控制器,首先进行温度检测,当检测温度小于设定温度加热,温度上升到设定温度时停止加热。

1 设计方案

在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温传感器有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压信号,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。本设计采用DALLAS半导体公司继DS1820之后推出的一种可改进型智能温度传感器DS18B20作为温度检测元件。

利用单片机AT89C51和DS18B20温度传感器设计一个温度控制系统,能够完成对水温的控制,当水温低于预设温度值时系统开始加热(点亮红色发光二极管表示加热状态) 达到预设温度值时自动停止加热,并由数码管显示温度,预设温度值和实测温度值分别由两个4位数码管显示,范围为0~99℃。

按照系统设计功能的要求,确定该系统由3部分组成:主控制器、测温电路及显示电路。水温控制系统总体电路结构框图如下:

2 硬件电路

2.1 单片机

AT89C51是51系列单片机中的一种,其内部带有4K字节闪烁可编程可擦除只读存储器,低电压、高性能。单片机AT89C51具有低电压供电和小体积等特点,其并行口资源刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用,系统采用两节电池供电即可。

2.2 测温电路

DS18B20可以直接读出被测温度值,而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。DS18B20的外形如下图,其引脚功能如下表所示:

根据DS18B20的引脚功能说明,我们可以很快地把VCC接一个5V的电源,而GND接地。由于DS18B20采用了单总线技术,我们只要把DQ与单片机的一个I/O口相连接就可以了,如下图所示(如图1)。

2.3 显示电路

7SEG-MPX4-CA-BLUE是7段4位一体共阳极蓝色数码管显示器,显示因为是4位共阳LED数码管,所以低电平点亮,利用P1口输出段码,P2.0至P2.3口输出位码来实现列扫描,列驱动用NOT非门。打开ISIS选择所需的器件AT89C51、7SEG-MPX4-CA-BLUE、BUTTON、CAP、RES、OPTOCOUPLER-MAND DS18B20 74HC245 LED-RED NOT。绘制仿真图如下(如图2):

3 系统程序设计

系统程序主要包括主程序、温度测量子程序、温度转换子程序、温度设置子程序、温度显示子程序等等。

3.1 主程序

主程序的主要功能是负责中断初始化、各寄存器的初始化和各子程序的调用(如图3)。

图3

图4

图5

3.2 温度测量子程序

主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写(如图4)。

3.3 温度转换子程序

此子程序主要功能是进行BCD转换,因单片机输入端接受的是16位的二进制数,显示时必须化成BCD码才能显示正确结果(如图5)。

3.4 温度设置子程序

此子程序主要功能是完成温度的设置,主要是利用两个外部中断来设置程序完成温度的设置,中断一次温度设置一次(如图6)。

图6

图7

3.5 温度显示子程序

温度显示包括测量温度显示和设置温度显示,都是通过四个LED数码管显示。子程序除了显示功能外,还包括温度的比较,通过测量温度与设置温度的比较来控制加热的程度(如图7)。

源程序不再详述。

4 调试

4.1 程序在Keil uVision2中的编译与调试

打开Keil uVision2,新建并保存工程,新建文件,添加程序,保存成ASM格式文件,并添加进工程,进行编译,直至编译无误。

4.2 软件仿真与调试

Proteus SISI绘制原理图的操作与Protel 99se绘制原理图的操作基本相同,电路原理图的画法在这里就不再作详细描述,接下来是进行仿真调试。首先打开已有的电路原理图文件,双击图中的芯片,就弹出一个窗口,在Program File选项中通过路径选择在keil软件中生成的HEX文件,双击选中后确定,这样就已经读取了本设计中的HEX文件。单击下方的调试按钮“三角形按钮”进行仿真。通过对仿真结果的观察分析来对程序进行修改,最终使程序到达设计要求。按下PLAY键观察运行情况。下图为当实测温度小于设定温度的时候的工作状态。

5 总结

本文给出了基于单片机的温度控制器的设计过程。在该设计添加DS18B20温度传感器来检测实际温度,利用单片机完成数据分析,实时显示,报警以及加热和降温控制,实现温度高于上限和低于下限时报警的基本功能,实用性较强。

[1] 吴文忠.基于Proteus的自动拨号报警器仿真设计[J].现代电子技术,2011,34(10):55-58

[2] 朱清慧,王志奎.Proteus在LED点阵滚动显示屏设计中的应用[J].液晶与显示,2009,4(24):233-237

[3] 李全利,单片机原理及接口技术[M],高等教育出版社

[4] 王文杰,单片机应用技术[M],冶金工业出版社

[5] 朱清慧,PROTEUS教程——电子线路设计、制版与仿真[M],清华大学出版社

[6] 彭伟,单片机C语言程序设计实训100例[M],电子工业出版社

猜你喜欢

数码管子程序原理图
微课教学设计之“数码管动态显示”
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
电气CAD原理图数据提取与辅助建模
基于Protel DXP 2004层次原理图的设计
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索