基于单片机的温度控制系统设计与仿真
2012-02-26王梅红
王梅红
(河南省城乡建筑设计院有限公司鹤壁分公司,鹤壁 458030)
温度是工业生产中相当重要的参数之一,温度检测和控制的准确性直接影响生产状况和产品质量。因此,在很多工业现场,对温度测量及控制的精度都有着很高的要求。如在化工行业的联合制碱生产工艺中,就要求外冷器溶液出口和入口的温差在一固定值,低于或高于这个温差值都会对生产产生很大的负面影响。采用单片机为核心控制的温度控制系统,具有结构简单,处理速度快,稳定性高,广泛应用于需要进行温度控制的领域。
本文采用AT89C51单片机作为处理器,每间隔50 ms就对温度进行一次采集输入和处理,能及时准确的检测到温度的变化。温度显示器没有采用普通的八位数码显示管,而是采用了液晶显示器,能够更加清楚的显示温度值,比八段数码管的显示更加人性化。并且该系统的声光报警系统针可针对不同的实况,做出不同的报警处理,这样可以使工作人员及时准确地判断温度的高低,并对其做出住明确的反应。
1 硬件电路设计
本文温度控制系统主要包括单片机模块,A/D转换模块,液晶显示模块,声光报警模块四个部分。
1.1 单片机模块设计
由于系统控制方案简单,数据量也不大,因此选用AT89C51作为控制系统的核心。片内带程序存储器的AT89C51本身是不能单独工作的,要将单片机接上时钟电路和复位电路,同时EA接高电平,ALE和PSEN信号不接,系统就可工作,如图1所示。时钟电路采用内部时钟方式,片内的增益反向放大器通过XTAL1、XTAL2外接作为反馈元件的片外晶体振荡器与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供震荡时钟。振荡器的频率主要取决于晶体的震荡频率,一般晶体可在1.2~12 MHz之间任选,电容C1、C2可在5~30 pF之间任选,电容的大小对振荡频率有微小的影响,可起频率微调作用。通过某种方式,使单片机内各寄存器的值变为初始状态的操作称为复位操作,本设计采用外部手动复位的方法,在系统工作异常或死机时,可以手动按下复位按钮即可使单片机复位。AT89C51单片机的RST引脚为复位引脚;当振荡器工作时,只要RST引脚出现10ms以上的高电平时将使单片机复位。
1.2 A/D转换模块设计
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。因为TLC2543价格适中并且分辨率高,在实际中有广泛的应用,所以采用TLC2543作为模数转化器。设计中只有一路模拟量的输入,因而仅选用AIN0一路输入通道。
1.3 液晶显示模块设计
在现代自动化仪表和智能仪器中,常用的小型显示输出设备有数码管(LED)和液晶显示器(LCD)等。其中LED只能显示数字和特定字符而无法显示汉字和图形,而LCD则可灵活显示汉字、数字及图形,能实现中文菜单显示,便于用户使用,交互能力强,而且随着技术的发展,其成本也不断降低。因此,在大量中、高档仪器仪表中已经广泛使用了 LCD作为其显示输出设备,是否有LCD显示输出俨然已成为衡量中、高档仪器仪表的重要指标。由于实现LCD显示及其附加功能的单片机程序较复杂,用传统的汇编语言编写的程序可读性差且不易修改,而用C51编写的程序采用模块化设计、可读性强、便于修改,完全能够达到绝大多数应用的要求。
1.4 声光报警模块设计
光报警采用2个普通LED灯作为报警器件,普通LED管的驱动电流大约10 mA,单片机的I/O口可以直接驱动。LED具有低功耗,长寿命的特点,比较适合作为光报警器件。如果要求更大功率的光报警,可以设计单片机控制继电器完成对白炽灯的控制。声报警用普通NPN型三级管9013驱动直流蜂鸣器发声完成,电路构造简单,工作可靠,已经在很多实际电路中应用。三极管的最大驱动电流可达500 mA,声音洪亮,报警可靠。
1.5 系统电路图
经以上分析,则整个系统的原理图、电路图如图1和图2所示。
图1 硬件原理
2 系统软件设计
系统采用AT89C51单片机,液晶显示器显示,待测温度信号经模数转换后加到单片机的P3.0端,输入信号的温度值直接显示在液晶显示屏上。本系统软件部分主要有主要主程序模块、模数转换模块、液晶显示模块、延时模块组成。模数转换模块及液晶显示模块的程序采用芯片厂家提供的驱动显示程序,在这里主要介绍主程序模块和延时程序模块。
图2 系统电路
2.1 主程序模块
温度信号经数模转换后加到AT89C51单片机的P3.0口,然后单片机对此信号进行运算处理,即将此数字量与规定的温度范围(30~60℃)进行比较,当温度低于30℃时,发出长嘀报警声和光报警,当温度高于60℃时,发出短嘀报警声和光报警。经过一定时间的延时,则将下一组采样的信号送入单片机,继续进行比较判断,实时的进行温度的检测与控制。主程序模块的流程图如图3所示。
2.2 延时模块
设计用到了AT89C51单片机的一个定时器T0,通过设置定时/计数器T0工作方式,来完成对采集到的温度信号的输入。
由于定时器的功能是由软件编程确定的,所以一般在使用定时器前都要对其进行初始化,使其按设定的功能工作。初始化的步骤一般如下:
1)确定工作方式(即对TMOD赋值);
2)预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1);
3)根据需要开放定时器器的中断(直接对IE位赋值);
4)启动定时器器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。
图3 主程序流程
3 程序调试编译装载及仿真
3.1 编译程序
这里用到的是keil软件。步骤:先新建一个项目,选择的单片机型号与自己所用的型号要一致,然后把自己的程序保存在文件里,再把程序添加上去。而后开始编译程序,在编译菜单中选择文件编译,直至无错误为止。最后在输出一栏中生成hex文件,因为单片机不识别这种语言。最后把hex文件烧录到AT89c51芯片。
3.2 Proteus仿真
Proteus是目前最好的模拟单片机外围器件的工具,它可以仿真51系列、AVR,PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分 IIC 器件……)。
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
而且Protues软件还有一个特点,那就是它能与Keil uVision软件的结合,这样就对程序的调试及修改带来了方便。如果你将它们结合在了一起,那么只需在Keil uVision软件中改程序,则在Protues软件中就直接可以仿真所修改后的程序。因为温敏电阻的阻值在仿真时不能随意改变,达不到仿真的效果,所以在仿真时采用滑动变阻器替代,从而可以模拟实际过程中的不同温度值。
4 结束语
随着工业现场温度的改变,温度传感器将检测到的温度送入模数转换,转换成为数字量随即被送入单片机进行检测,当温度达不到要求时将会继续报警。温度控制系统是工业现场、科研生产领域等不可缺少的测量仪器。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。本文通过硬件软件的设计,并用Protues软件仿真,在温度低于30℃时,发出长嘀报警声和光报警,温度高于60℃时,发出短嘀报警声和光报警,达到了预期目的。
[1] 蒋延彪.单片机原理及应用(MCS-51)[M].重庆:重庆大学出版社,2006.
[2] 胡汗才.单片机原理系统设计[M].北京:清华大学出版社,2002.
[3] 郑学坚.微型计算机原理及应用[M].北京:清华大学出版社,2003.
[4] 孙得文.微型计算机技术[M].北京:高等教育出版社,2001.
[5] 谢自美.电子线路设计、实验、测试[M].2版.武汉:华中理工大学出版社,2000.
[6] 张志良.单片机原理与控制技术[M].北京:机械工业出版社,2002.
[7] 何立民.单片机高级教程应用与设计[M].北京:航空航天大学出版社,2000.
[8] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:航空航天大学出版社,.
[9] 武庆生.单片机原理及应用[M].成都:电子科技大学出版社,1998.
[10]潘新民.微型计算机控制技术[M].北京:电子工业出版社,.
[11]张振荣.MCS-51单片机原理及使用技术[M].北京:人民邮电出版社,2000.
[12]孙育才.MCS-51系列单片微型计算机及其应用[M].南京:东南大学出版社,1990.
[13]许晨,陈继红,王春明,等.微机原理及应用[M].北京:高等教育出版社,2006.
(责任编辑周江川)