基于单片机的温度及压力智能控制系统设计摘要本文设计了以AT89C51单片机为核心的温度和压力控制系统的工作原理以及设计方法。温度信号由温度传感器PT100采集,再由变送器将信号变换为0-5V的信号给PCF8591芯片。单片机最后通过IIC总线将模拟量信号读回来或者发送出去。压力信号也是由压力传感器采集回来,再由变送器变换为0-5V的电压信号给PCF8591芯片。PCF8591芯片是支持4路模拟量输入,1路模拟量输出的8位芯片,并且支持IIC总线,最大可以同时接8个同样的芯片。单片机将采集回来的信号经过计算与处理后将温度和压力值显示在LCD1602液晶上,设计中介绍了控制系统的硬件电路,包括:温度、压力检测电路、温度控制电路、压力控制电路、电源电路、报警电路、显示电路、单片机最小系统电路、按键电路和其他一些单片机的接口电路。本设计中还介绍了软件程序编写部分,都采用模块化的结构编程。软件程序部分主要包括:主程序、显示程序、温度和压力采集子程序、按键子程序、控制输出子程序等。关键词:A/D转换;单片机;温度及压力采集;智能控制1.1研究背景及现状单片机自从20世纪70年代产生以来,已经广泛地应用在工业自动化控制、自动检测、机电一体化设备、智能仪器仪表、家用电器、汽车电子等各个方面。单片机具有功能齐全,抗干扰能力强,应用可靠,前景广阔,简单方便等优点。此外,单片机还具有体积小、应用灵活性强、性能价格比高等特点,在嵌入式微控制系统中具有非常重要的地位。从工业自动化、智能仪器仪表、自动控制、消费类电子产品等方面直到国防尖端技术领域,单片机都起着十分重要的作用。近些年来,随着微机的发展,单片机的应用在人们的日常生活和工作中显得越来越重要。工业过程控制也是它的一个重要应用领域。由单片机而构成的嵌入式系统越来越受到世人的关注。因此,可以毫不夸张的说,没有单片机的仪器不能算是先进的仪器,没有单片机的过程控制系统不能称做是智能控制系统。温度控制是与人们日常生活息息相关的,在各个领域温度的控制都有不同的意义。很多控制领域中都有大量的用电来加热的设备,比如用于热处理的电加热炉,用于融化金属的电阻炉以及温度控制箱等。使用单片机来对它们进行控制不仅具有控制方便、灵活性大、简单等一些特点,而且还可以大大提高产品的质量,通常单片机将采集到的温度数据与设定的温度上、下限进行比较,并由此作出判断是否启动继电器来开启加热设备,在设计中通常还加入常用的LCD液晶显示或者LED显示等常用的显示电路,使得整个设计更加灵活、完全。国内外的温度控制系统发展都非常迅速,并在智能化、参数自整定、自适应等方面取得了不同的成果。目前的温度控制大多都是采用智能调节器,国产调节器的精度和分辨率比较国外的较低,温度的控制效果也不是很理想但价格非常便宜,国外的调节器精度和分辨率都比较高,价格较贵。德国、美国、日本、瑞典等技术领先,都生产出了商品化的,性能优异的温度控制器以及仪器仪表,并在各个行业已经广泛应用。压力的测量对于实时监测以及安全生产都具有非常重要的意义。在工业应用中,为了高效并且安全的生产,就必须要有效的控制生产过程中的一些重要数比诸如压力、温度、流量等主要参数。因为压力的控制在一般生产过程中都起着决定性的安全作用,因此更有必要准确的测量压力。为了测得不同位置的压力数据,本设计的压力测量系统。通过压力传感器将需要测量的压力信号转变为电信号,再由变送器最终转换为0-5V的电压信号给PCF8591AD-DA芯片。单片机通过IIC总线将模拟数据读回来再根据变换公式做数据处理,最终将温度和压力值显示在LCd1602上。芯片转换时间受IIC总线速率影响,可以最大支持8个相同的PCF8591芯片,即最大支持32路模拟量输入,8路模拟量输出。键盘输入是单片机控制系统常用的实现人际对话的输入设备。通过键盘,向单片机控制系统输入各种数据或者命令,也可以通过键盘,设置单片机控制系统工作于预定的模式。1.2实现温度及压力智能控制的意义温度、压力都是过程生产中非常重要的参数,它们是生产过程中判断设备是否正常运行的关键因素。在生产过程中对于温度和压力的控制也就显的极为重要。比如在化工生产过程中,压力能影响物料平衡,也能影响化学的反应速度,是标志着生产过程是否可以正常进行的极为重要的参数。从安全生产的角度,压力的检测也是很重要的。如:保证压力容器内的压力值要在安全的指标之内,确保易燃易爆等介质的压力不能超标等等。总之,温度与压力的检测是通常是生产过程中不可缺少的环节,只有严格按照生产工艺的要求来保持温度及压力的稳定,才能保证生产的正常进行。因此温度及压力准确测量与控制在现实生活中是非常重要的。2系统方案设计及论证2.1温度、压力采集方案选择2.1.1温度采集方案比较1.使用DS18B20模块本方案的优点是:采集温度精度较高,接线简单;缺点:单总线方式,当系统需要扩容时要另外占用单片机管脚资源。并且远距离传输时,因为是单总线方式,不能传到太远。2.普通热敏电阻优点:价格低廉缺点:电路设计相对较为复杂些,精度低。3.PT100铂电阻方式优点:精度高,使用方便,配合专用的变送器能远距离传输。缺点:价格较为低廉2.1.2压力采集方案1.压力传感器配合变送器方式优点:价格相对低廉,可靠性高,能较远距离传输,精度较高缺点:相对带通信功能的压力模块,扩容是需要占用AD通道2.压力采集带通信专用模块优点:采集精度高,更智能,扩容时不需要占用任何硬件资源缺点:造价高。本设计中温度采集选用PT100铂电阻的测温方式,PT100铂电阻传感器会根据温度的不同,自身阻值也会有相应的变化,专用的变送器只需要接上PT100铂电阻及电源就可以输出标准的4-20mA或者是0-20mA信号,本设计选用输出0-20mA信号,选用电流信号是因为当较远距离传输时变送器相当于恒流源输出,减小线路阻值带来的误差,当接到本设计中的控制板时,再通过串接250欧姆的电阻来将电流信号转换为0-5V的电压信号。压力采集方案选用压力传感器配合变送器方式,压力采集原理也是如此,不同的是前端传感器不是PT100而是压力传感器。接线示意图如图2-1所示。设计温度控制输出采用开关量的输出方式,控制原理为当温度实际值大于等于温度上限值时停止加热,当温度实际值小于等于下限值时,开始加热。压力控制方式采用外接变频器控制电机,进而控制管道压力的方式,原理为当压力实际值小于等于下限值时,控制板将电机的供电,并给变频器输入相应的控制值,控制算法采用建议的模糊控制算法,即在一定的时间内检测到前后两次的压力值变化的大小,如果变化很小,说明给出的值小了,需要加大此值,如果变化一般,说明给出的值合适,如果变化很大,说明给出的值大了,需要减小此值。本设计默认分为6档判断。即压力差值的6个档位分别为小于等于0.05MPa;大于0.05MPa并且小于等于0.1MPa;大于0.1MPa并且小于等于0.15MPa;大于0.15MPa并且小于等于0.2MPa;大于0.2MPa并且小于等于0.25MPa;大于0.25MPa并且小于等于0.3MPa;图2-1接线示意图2.2系统结构总框图本控制系统的主控部分由单片机AT89C51构成。通过按键电路可以进行温度及压力的上、下限值的设定,温度及压力的实际值通过PCF8591AD-DA芯片采集,模拟量的输出也是通过PCF8591芯片输出的。当压力超过报警限值时,有蜂鸣器报警。显示部分用的主要期间是LCD1602液晶屏。按键部分采用四按键的方式进行设定,温度及压力的开关量输出方式使用继电器。电源需要外接+5V的干净电源。图2-2系统结构总框图2.3单片机的选择单片机AT89C51是美国的ATMEL公司生产的一款低电压、高性能的CMOS的8位单片机,芯片内部含有4K字节的可擦写的只读程序存储区以及128个字节的数据存储器,该芯片是采用高密度和非易失性存储技术生产的,兼容了以往标准的MCS-51产品的指令系统,单片机片内含有通用的8位中央处理器,AT89C51单片机具有不错的性价比以及可靠性和应用性,此单片机可以灵活的应用在各种控制领域之中。AT89C51芯片提供以下一些标准的功能:(1).4K字节的闪存(2).128字节的内部数据存储区(3).32个I/O口线,可以输入或者输出(4).两个16位定时或者计数器(5).一个5向量两级的中断结构(6).有一个全双工的串行口单片机(AT89C51)的工作可以降至0HZ的静态的逻辑操作,并且还支持两种可以通过软件来选择节约电能的工作模式:(1).空闲工作方式:停止单片机的工作,但是允许数据存储器(RAM)、定时或者计数器、通信口以及中断程序的工作。(2).掉电的方式:保存数据存储器(RAM)中的内容,但是单片机的晶振电路停止工作并且禁止其它所有部件的工作一直到下一个硬件复位。AT89C51引脚图如图2-3所示。图2-3AT89C51单片机引脚图引脚功能说明:Vcc:电源电压正GND:电源电压负P0口:P0口是8位的漏极开路型的双向I/O口,即地址或者数据总线的复位口。如果P0口作为输出端口时,每个端口能驱动8个逻辑门电路,如果对端口写“1”时,可以作为高阻抗输入端口来使用。如果在访问外部数据存储器或者程序存储器的时候,这组口线分时转换地址(低8位)和数据总线复用,此时的P0端口激活内部的上拉电阻。P1口:P1端口是带有内部上拉电阻的8位的双向口。P1端口的输出可以驱动(输入或输出)4个TTL逻辑门电路。如果对端口写“1”时,通过内部的上拉电阻把端口拉到高电平,此时可以当作输入端口使用。因为内部存在上拉电阻,假如某个引脚被外部信号拉低时会输出一个电流。P2口:P2端口是带有内部上拉电阻的8位的双向口,P2端口可以驱动(输入或输出电流)4个TTL逻辑门电路。如果对端口写“1”,通过内部的上拉电阻把P2端口拉到高电平,此时P2端口可以作为输入口。P3口:P3端口是带有内部上拉电阻的8位的双向口。P3端口输出缓冲级可以驱动(输入或输出)4个TTL逻辑门电路。如果P3端口写入“1”时,他们被内部上拉电阻拉高并可作为输入口。此时,被外部拉低的P3端口将用上拉电阻输出电流。P3端口还接收一些用于闪存编程和程序校验的控制信号。RST:复位。当单片机工作时,复位引脚如果有两个机器周期以上的高电平信号就可以让单片机复位。XTAL1、XTAL2:振荡器输入端。2.4温度传感器pt100是铂热电阻,铂电阻的阻值会随着温度的不同而改变。PT字符后的100即表示此电阻在0℃时的阻值为100欧姆,当它在100℃时它的阻值大约为138.5欧姆。工作原理:当PT100铂电阻在0℃的时候它的阻值大约为100欧姆,它的阻值会随着温度上升而近似匀速的增长。但是它们之间的关系却并不是简单的正比的直线关系,而是更趋近于一条抛物线。铂电阻阻值随温度变化的计算公式如下:-200t0℃Rt=R0[1+At+Bt*t+C(t-100)t*t*t](1)0≤t850℃Rt=R0(1+At+Bt2)(2)Rt为当t℃时的铂电阻的电阻值,R0为当0℃时的铂电阻的阻值。公式中的A,B,系数都是实验测定的。标准的DINIEC751系数:A=3.9083E-3、B=-5.775E-7、C=-4.183E-12。根据韦达公式求得阻值大于等于100欧姆的Rt-〉t的换算公式:0≤t850℃t=(sqrt((A*R0)^2-4*B*R0*(R0-Rt))-A*R0)/2/B/R0PT100铂电阻温度传感器器是一种以白金(Pt)作成的电阻式的温度检测器,属于正阻系数,它的电阻和温度变化的关系式如下:R=Ro(1+αT)式中α=0.00392,Ro为100Ω(在0℃的电阻值),T为摄氏温度br因此白金作成的电阻式温度检测器,又称为PT100。2.5压力传感器液压压力传感器是工业中最为常见的一种压力传感器,它广泛应用于各种工业自控的环境中,涉及石油管道、铁路交通、水利水电、生产自控、智能建筑、航空航天、石化、军工、电力、油井、船舶、管道送风、机床、锅炉负压等等众多的行业。工