文档详情

智能水温控制系统.doc

发布:2017-02-19约6.27千字共12页下载文档
文本预览下载声明
智能水温控制系统 摘要:为了实现水温控制系统的设计要求,通过对各个模块电路方案的比较和论证,最后确定了以STC89C52单片机为核心的硬件电路,选用DS18B20温度传感器测量水温。该系统具有实时显示、温度测量、温度设定并能根据设定值对水的温度进行调节和控温的目的以及达到上限温度的报警功能,控制算法是基于数字PID算法,在设定温度发生突变时,可自动打印水温随时间变化的曲线。 关键词:AT89C52单片机、PID算法、温度测量和控温 500ml净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。 1)温度设定范围为2070oC,最小区分度为1oC,标定温度≤1oC。 2)用十进制数码管显示水的实际温度。 3)采用适当的控制方法,当设定温度突变(比如:由50oC提高到60oC)时,减小系统的调节时间和超调量。 4)温度控制的静态误差≤1oC(达到发挥部分的要求) 5)在设定温度发生突变时,自动打印水温随时间变化的曲线。 整个系统分为以下几个部分:温度采样部分、控制电路部分、加热装置以及串口通信部分。 2.1温度采样部分 采用温度传感器DS18B20,测温范围-55oC ~ +125 图1 温度控制系统框图 四、硬件电路设计 4.1温度采集电路 一种电路是采用单线数字温度传感器DS18B20,可直接输出数字量,单线器件和单片机的接口只需一根信号线,所以本设计的硬件电路十分简单,容易实现。使用读取温度暂存寄存器的方法能达到0.1oC以上的精度。18B20连接电路图如图2所示 图2 温度采集电路 4.2加热装置模块 由于本系统要控制加热管,功率较大,因此要借助功率电路。使用继电器可以很容易的通过较高的电压和电流,在正常条件下,工作十分可靠。使用电磁继电器电路的实现十分简单,而且还可以实现较为精确的控制,是比较好的一种方式。DS18B20测温芯片传送温度数据单片机的I/O口P2.5。 对加热管通断的控制采用SSR固态继电器,SSR是半导体继电器,所以较小的驱动功率即可使SSR工作。它的使用非常简单,且响应时间短,对系统干扰小。只要在控制台端加上一个TTL、CMOS电平或光耦,即可实现对继电器的开关。其电路图如下所示。 图3 图4 4.3按键控制和显示模块 图5 系统上电后,数码管全部显示为当前所测温度值,根据按KEY1次数,若按键一次,进入温度设定状态,通过连按“+”、“-”控制键来设定温度,数码管显示设定的温度值;若连按两次,进入温度测量状态,数码管显示当前的实际水温。 由于温度变化范围是40~70oC,所以选用两个数码管显示温度。数码管采用共阳极,经过1KΩ的电阻限流后与单片机连接,由单片机I/O口P3对数码管进行位选。 4.4蜂鸣报警电路 蜂鸣器通过一个三极管来驱动,这里选用PNP型三极管,电路图如下 图6 4.5通信模块 系统设计要求控制系统能同PC联机通信,以利用PC图形处理能力打印显示温度曲线,故使用了STC89C52的异步串行端口UART实现与PC通信。由于STC89C52串行口电平和PC不一致,(STC89C52的I/O为TTL电平,PC串行口为RS232电平),使用一片MAX232为进行电平转换驱动。通信速率为9600波特率。数据5秒传输一次。电路图如图7所示,MAX232的RXD1和TXD1分别接STC89C52的P3.1(TXD)和P3.0(RXD)。 图7 串行通信电路 UART模块提供了一个全双工标准通信口,用于完成STC89C52与外设之间的串行通信。根据RS-232的标准,STC89C52单片机也是按照字节传输数据的。UART还可以带缓冲接收数据,即可以在读取缓存器数据之前接收新的数据。但是,如果新的数据被接收到缓存器之前一直未从中读取,先前的数据会发生数据丢失。SBUF用于接收和发送数据的缓存,向该单元写入数据,将发送的数据送入缓存器;读该单元取数据,可以从缓存器读出接收到的单字节数据。UART模块的接收管脚Rx和发送管脚Tx分别与P3.1和P3.0共用。 五、系统软件设计 任何一个系统的软件设计都离不开硬件电路的连接,本课题硬件设计的高度模块化决定了软件设计的模块化。本程序结构包括:主控程序模块、键盘扫描及处理子程序、LED显示子程序、采样数据处理子程序、PID算法子程序、串口通信并打印曲线图等子程序几个部分。结构框图如图8。 主控程序模块在整个结构中充当管理者,管理所有子程序的调用,就相当于个人计算机的操作系统。它主要负责初始化各个I/O口,等待键盘事件的发生,并作出相应的处理。并在适当的时候调用数据采样程序
显示全部
相似文档