1、单片机水温控制电路设计 单片机水温控制电路设计序言无论是工业控制领域还是消费电子领域,温度控制的应用都非常广泛,如工业控制中的锅炉、加热炉的控制,消费电子领域的热水器、饮水机的控制,内部都涉及到温度控制1。传统靠人工控制的温度、湿度、液位等信号的测压力控系统,外围电路比较复杂,测量精度较低,分辨力不高,需进行温度校准(非线性校准、温度补偿、传感器标定等);且它们的体积较大、使用不够方便。随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生产的自动控制系统开始进入了人们的生活,以单片机为核心的温度采集系统就是其中之一2。采用MCS-51单片机对温度进行控制,不仅具有控制方便、简单和
2、灵活等优点,而且可以大幅度提高温度控制的技术指标。本文正是介绍一个基于单片机的水温控制电路来控制电炉内的水温。水温控制在工业及日常生活中应用广泛,分类较多,不同水温控制系统的控制方法也不尽相同,其中以PID控制法最为常见,但是,常规调节三个参数的整定一般需要经验丰富的工程技术人员来完成,步骤繁琐复杂,既耗时又耗力.而且当对象特征变化时,又要重新整定,并且在现代工业控制过程中,许多被控对象机理复杂,这种情况下,采用常规PID调节器,三个参数的整定比较困难,为此本文提出了采用归一参数整定法,即只整定一个参数,这样减少了许多工作量,提高了工作效率,为实现简易的自整定控制带来方便3。 本设计单片机控制
3、部分采用AT89C51单片机为核心,采用软件编程,实现用PID算法来控制PWM波的产生,进而控制电炉的加热来实现温度控制。适用于环境参数经常变化的小型水温控制电路。设计中使用7407同相器作为数码管和固态继电器的驱动。 第一章 设计任务1.1功能1.总的工作功能 本设计的任务是:用电炉对水加热,基于单片机设计一个电炉水加热控制电路。要求显示实际温度和门限温度,并且要求门限水温可以由人工通过键盘来设定。电路可以通过对实际温度和门限温度的差值的处理来控制继电器进而控制电炉的开关,从而对水温进行控制,使水温保持在一定温度上。2.各部分的功能(1)电炉 接上220V 交流电,由继电器控制其开关,对水进
4、行加热。(2)传感器 对水温进行实时检测,输出温度信号给单片机。(3)单片机基本系统 a.要采集温度传感器传过来的信号,进行相应的处理,送往显示部分;b.接受键盘输入的信号,进行相应的处理,送往显示部分; c.根据实测温度和设定温度的比较,进行相应的处理,给出控制信号。控制继电器开关,从而控制电炉开关。(4)显示 由六个七段数码管以及数码管的驱动电路组成,三位数码管显示出测量结果,三位数码管显示出限定温度。(5)按键键入门限值。 (6)报警电路 当按键输入的温度在软件所限制的范围之外时,报警电路报警。(7)继电器 接受单片机传来的信号,通过其驱动,然后作出相应的操作来控制电炉工作与否。相当于一
5、个由单片机控制的开关。1.2 技术指标 1门限温度可以在4090之间设定; 2可以通过用键盘人工设定门限温度; 3用数码管显示设定温度和实际温度。第二章 设计思路2.1 总体设计此设计一个基于单片机的水温控制电路,需要完成的功能是温度的设定、检测与显示以及的温度的控制和报警等。当温度小于设定温度时电炉工作,当温度大于设定温度时电炉不工作。(1)软、硬件功能划分4 在绝大多数单片机应用电路中,电路功能的软、硬件划分往往是由应用电路对控制速度的要求决定的,在没有速度限制的情况下可以考录以软件换取硬件电路的简化,以求降低硬件成本。a)速度估算 在不考虑容器热容量和环境温度影响的情况下,水温上升1所需
6、的时间达到秒,如果考虑容器热容量和环境温度的影响,时间可能更长。由此可见,对于指令执行时间一般为几个微妙的单片机应用电路来说,控制速度几乎没有热核限制。b)软、硬件功能划分为了简化华电路硬、 降低硬件成本、提高电路灵活性和可靠性,有关PID运算,输入信号滤波及大部分控制过程都可由软件来完成,硬件的主要功能是温度信号的传感,设定值的键入,数值的显示及输出信号的转换。2.2 简述首先,要选择一个CPU控制芯片。由于电路控制方案简单,在运行过程中需要存放的中间变量只有给定温度、实测温度、PI运算中间结果及输出结果等十几个变量,因此选用AT89C51微控制器作为电路的核心,由于AT89C51的片内RA
7、M已能满足存放要求,可不必再扩充外部RAM4。其次,要选择一个温度敏感元件,它能够很灵敏的根据温度变化输出一定的信号。这样的器件种类很多,本设计选用的数字式集成温度传感器DS18B20。这是由于本设计中单片机除了要完成数据采集、处理、控制和显示任务外,还要完成按键值得采集、处理。如果用常规的数字加模拟电路实现就会相对困难一些。DS18B20是DALLAS半导体公司(现属MAXIM公司)设计生产的单总线数字温度传感器,其测量温度范围为55125,在-10+85时精度为0.5,这个精度已可以满足普通型的环境温度控制或测温类消费产品的要求。这个传感器最大的特点就是能够从一根总线直接输出二进制的温度信
8、号,不需要A/D转换和信号放大。这样的选择使得整个电路的硬件设计更为简化,节省了单片机的资源 5 。再次,设计显示部分、按键部分和报警。显示部分的设计考虑到在软件设计过程中实际温度和设定温度之间会有影响,本设计采用实际温度和门限温度单独显示,各用一组I/O口。选用的是两组共阴极数码管,采用一块同相器74LS07集成块来驱动。动态扫描显示。按键部分的设计考虑到单片机I/O资源不足的缘故,本设计采用三个按键分别用来设定门限值十位、个位和一位小数位。报警部分就是当设定的门限温度在4090之外,就要报警,用一个发光二极管表示。最后,控制部分的设计,这一部分主要就是继电器的选择。本设计选择的是固态继电器
9、。固态继电器(Solid state Relay-SSR)是近几年发展起来的一种新型电子继电器,其输入控制电流小,容易驱动,其输出利用晶体管或可控硅驱动,无触点。与普通的电磁式继电器和磁力开关相比,具有无机械噪声、无抖动和回跳、开关速度快、体积小质量轻、寿命长、工作可靠等特点,并且耐冲击、抗潮湿、抗腐蚀,因此在单片机测控等领域中6。本设计采用同相器74LS07集成块来驱动固态继电器。另外在选择继电器时还要注意它的供电电压和带负载能力。本设计中继电器是由单片机控制的所以它的供电电压选择5V直流电。继电器所带的负载为一个额定功率300W,接220V交流电的电炉。所以继电器的要选用交流型(AC-SS
10、R),耐压在220V以上,电流为1.5A以上。本设计选用的是5V供电,2A 250VAC的固态继电器。2.3设计框图 1.设计过程框图如图2-1图2-1 设计过程框图2.电路框图如图2-2图 2-2 水温控制电路总体框图第三章 理论设计3.1 控制部分的设计3.1.1 AT89C51单片机的结构7 一.AT89C51结构框图 AT89C51内部结构框图如图3-1 图3-1 AT89C51内部结构框图二.引脚功能说明 AT89C51是双列制插封装形式的器件,其引脚图如图3-2所示。 AT89C51的引脚P00P07、P10P17、P20P27、P30P37为四个8位并行输入/输出口,其中P3口、
11、P0口、P2口为双功能口,可以作为普通输入/输出口(第一功能),也可以作为特殊输入/输出口。RST为复位输入线,ALE、PSEN、EA为系统扩展控制线,XTAL1和XTAL2为时钟电路输入/输出线,VCC、VSS为电源输入线,一般接5V和地。3.1.2 AT89C51单片机最小系统最小系统包括单片机的基本供电、时钟电路和复位电路。一.时钟和时钟电路 时钟电路是计算机的心脏,它控制着计算机的工作节奏。AT89C51单片允许的时钟频率的典型值12MHZ,也可以是6MHZ。本设计采用12MHZ。单片机时钟电路图如图3-3 图3-3 单片机时钟电路 图3-10中晶振频率选择12MHZ。接到晶振两端的瓷
12、片电容作用是使振荡器起振和对f 微调补偿,典型值为30PF,本设计中选用20PF瓷片电容。当单片机加电以后延迟约10ms的时间振荡器起振产生时钟,不受软件控制(XTAL2输出幅度为3V左右的正弦波。二.复位和复位电路计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位引脚是RST,当振荡器起振后,该引脚上出现2个周期的高电平,是器件复位,只要RST保持高电平,单片机保持复位状态。单片机复位方式有二种:上电复位(如图3-4)、人工复位(如图3-5)。 图3-4 上电复位电路 图3-5 上电复位和开关复位注:RST与Vss之
13、间的那个电阻在NMOS型单片机种需要接,但是在CMOS型单片机中不接。其中电容一般为10UF的电解电容。三.AT89C51单片机最小系统连接原理图 本设计的AT89C51单片机最小系统原理图。如图3-6图3-6 AT89C51最小系统连接原理图3.2 显示部分的设计3.2.1 LED显示器接口原理6 LED(Light Emitting Diode)是发光二极管的缩写。LED显示器是由发光二极管构成的。LED显示器在单片机中的应用非常普遍。一.LED显示器的结构 常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dip”段)。每一个段对应一个发光二极管。这种显示器有共阴极和共阳极两种
14、,如图3-7所示。共阴极LED显示器的发光二极管的阴极连结在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极连结在一起,通常此公共阳极接正电压,当某个发光二极管的阳极为低电平时,发光二极管点亮,相应的段被显示11。为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮,这样就要为LED显示器提供代码,因为这些代码可使LED相应的段发光,从而显示不同的字型,因此该代码称之为段码(或字型码)。7段发光二极管,再加上一个小数点位,共计8段。因此提供给LED显示器的字型码正好是一个字节。各段与字节中的各
15、位对应的关系如表3-1。表3-1 显示段与代码位的对应关系表代码位D7D6D5D4D3D2D1D0显示段dipgfedcba按照表3-1格式,8段LED显示器的字型码如表3-2所示。表3-2 8段LED显示器部分字型码显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03FHC0H67DH82H106HF9H707HF8H25BHA4H87FH80H34FHB0H96FH90H466H99H“灭”00H88H56DH92H注:段码是相对的,它由个字段在字节中所处的位决定。应根据实际情况确定,以上表格用来参考。二.LED显示器工作原理 LED显示器有静态显示和动态显示两种显示方式。 1.L
16、ED静态显示方式7所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。这种显示方式的每一个8段显示器需要一个8位输出口控制。如图3-8用AT89C51单片机控制LED静态显示方式接口图3-8 用AT89C51单片机控制LED静态显示方式接口 2.LED动态显示方式所谓的动态显示,就是一位一位地轮流点亮各位显示器(扫描)。在多位LED显示时,为简化硬件电路,节省I/O口资源,通常将所有位的段码线相应的并联在一起,由一个8位I/O口控制,而各位的共阳极或共阴极分别由相应的I/O线控制,形成各位的分时选通。如图3-9用AT89C51单片机控制LED动态显示方式接口。图3-9
17、用AT89C51单片机控制LED动态显示方式接口其中7407是同相器集成块,其内部结构如图3-10,它是用来驱动共阴极数码管的。 在使用动态显示电路的时候,由于各位的段码线并联,8位I/O口输出的段码对各个显示位来说都是相同的。因此,要在同一时刻,如果各位的位选线都处于选通状态的话,那两位LED将显示相同的字符。若要各位LED能够同时显示出与本位相应的显示字符,就必须采用动态显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应位要显示的字符的段码。这样,在同一时刻2位LED中只有选通的那一位显示出字符,而其它的LED则是熄灭的。同样,在
18、下一时刻,只让下一位的位选线处于选通状态。也就是说在同一时刻只有选通位才能显示出相应的字符,而其它位是熄灭的。如此循环下去就可以使各位显示出将要显示的字符。虽然这些字符是不在同一时刻出现的,但由于LED显示器的余辉和人眼的“视觉暂留”作用,只要每位显示间隔足够短,则可以造成“多位同时亮”的假象,达到同时显示的效果。这是用软件来实现的。下面我就来介绍一下LED显示器动态显示的软件子程序清单(以图3-9共阴极2位LED显示器为例):见附录四(本设计就是采用这种方式显示)。3.3 按键部分的设计3.3.1键盘接口技术8键盘是一组按键组合,它是最常用的单片机输入设备。键盘分编码键盘和非编码键盘。键盘上
19、闭合键的识别由专用的硬件译码器实现,并产生键编码或键值的称为编码键盘。靠软件识别的称为非编码键盘。本设计使用非编码键盘,下面主要介绍非编码键盘的原理、接口技术和程序设计。一.键盘工作原理键盘中每个按键都是一个常开开关电路,如图3-11所示。当按键K未被按下时,P3.1输入高线平;当K闭合时,P3.1输入低电平。通常按键所用的开关为机械弹性开关,当机械触点端来、闭合时,电压信号波形如图3-12所示。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,如图3-12所示。抖动的时间的长短由按键的机械特性决定,一般为51
20、0ms。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒。按键抖动会引起一次按键被误读多次。为确保CPU对按键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别键号;当键释放稳定后,再做处理。按键的抖动,可用硬件或软件两种方法消除。本设计使用的是软件。如果按键较多,常用软件方法去抖动,及检测出键闭合后执行一个延时程序,产生510ms的延时;让前沿抖动消失后,再一次检测按键的状态,如果仍保持闭合状态电平则确定真正有键按下。当检测到按键释放后,也要经过510ms的延时,待后沿抖动消失后,才能转入该键的处理程序。二.独立式按键键盘可分为独立连接式和
21、行列式(矩阵式)两类,本设计使用的是独立连接式,所以这里只介绍独立连接式。独立式按键是指各按键相互独立地接通一条输入数据线,如图3-13所示。这是最简单的键盘结构,该电路为查询方式电路。当任何一个键按下时,与之相连的输入数据线即被清0(低电平),而平时该线为1(高电平)。要判别是否有键按下,用单片机的位处理指令十分方便。下面列出以图3-13为例的按键子程序:见附录五。3.4前向通道的设计3.4.1 数字温度传感器DS18B20的发展 美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 一线总线接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件
22、及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。目前DS18B20批量采购价格仅10元左右。3.4.2 DS18B20的主要特性9(1)适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
23、(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。(5)温度范围55125,在-10+85时精度为0.5。(6)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。(8)测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 3.4.3 DS
24、18B20的外形、内部结构及引脚定义一.DS18B20的外形及管脚排列。如图3-14所示图3-14 DS18B20的外形及管脚排列 二.DS18B20的内部结构。如图3-15所示图3-15 DS18B20的内部结构图三.DS18B20引脚定义: (1)DQ为数字信号输入/输出端; (2)GND为电源地线; (3)VDD为外界供电电源输入端(在寄生电源接线方式时接地)。3.4.4 DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3-16所示。 图3-16
25、DS18B20测温原理 图3-16中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3-3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器
26、1的预置值9。一.DS18B20有4个主要的数据部件: (1) 光刻ROM中的64位序列号是出厂前被光刻好的,他可以看作是该DS18B20的地址序列码。64为光刻ROM的排列是:开始八位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 (2) DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。D
27、S18B20温度值格式表如表3-3所示表3-3:DS18B20温度值格式表LS Bytebit7bit6bit5bit4bit3bit2bit1bit0232221202-12-22-32-4BS Bytebit15bit14bit13bit12bit11bit10bit9bit8SSSSS262524 这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如:125的数字
28、输出为07D0H, 25.0625的数字输出为0191H, 25.0625 的数字输出为FF6FH,55 的数字输出为FC90H。如实际温度值十进制与传感器输出二进制、十六进制对应表3-4所示表3-4 实际温度值十进制与传感器输出二进制、十六进制对应表TemperatureDigital Output(Binary)Digital Output (Hex)1250000 0111 1101 000007D0H850000 0101 0101 00000550H25.06250000 0001 1001 00010191H10.1250000 0000 1010 001000A2H0.50000
29、 0000 0000 10000008H00000 0000 0000 00000000H0.5 1111 1111 1111 1000FFF8H10.125 1111 1111 0101 1110FF5EH25.06251111 1110 0110 1111FF6FH55 1111 1100 1001 0000FC90H注:The power-on reset value of the temperature register is 85(3)DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和第
30、温度触发器TH、TL和结构寄存器。(4)配置寄存器该字节各位的意义如表3-5所示:表3-5 :配置寄存器结构TMR1R011111低5位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如表3-6所示:(DS18B20出厂时被设置为12位)表3-6:温度分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms二. 高速暂存存储器 高速暂存存储器由9个字节组成,其分配如表3-7所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1