水温控制系统毕业设计.doc

上传人:文库蛋蛋多 文档编号:3986118 上传时间:2023-03-30 格式:DOC 页数:28 大小:758KB
返回 下载 相关 举报
水温控制系统毕业设计.doc_第1页
第1页 / 共28页
水温控制系统毕业设计.doc_第2页
第2页 / 共28页
水温控制系统毕业设计.doc_第3页
第3页 / 共28页
水温控制系统毕业设计.doc_第4页
第4页 / 共28页
水温控制系统毕业设计.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《水温控制系统毕业设计.doc》由会员分享,可在线阅读,更多相关《水温控制系统毕业设计.doc(28页珍藏版)》请在三一办公上搜索。

1、水温控制系统摘要 该水温控制系统采用单片机进行温度实时采集与控制。温度信号由“一线总线”数字化温度传感器DS18B20提供,DS18B20在1070C范围内, 固有测温分辨率为0.5 。水温实时控制采用继电器控制热的快和风扇进行升温、降温控制。系统具备较高的测量精度和控制精度,能完成升温和降温控制。关键字: AT89C51 DS18B20 水温控制Abstract: This water temperature control system uses the Single Chip Microcomputer to carry on temperature real-time gatherin

2、g and controling. DS18B20, digitized temperature sensor, provides the temperature signal by a main line. In1070 the scope, DS18B20s inherent measuring accuracy is 0.5 . The water temperature real-time control system uses the electricity nichrome wire carring on temperature increiseament and operates

3、 the electric fan to realize the temperature decrease control. The system has the higher measuring accuracy and the control precision, it also can complete the elevation of temperature and the temperature decrease control.Key Words: AT89C51 DS18B20 Water temperature control目 录水温控制系统11系统方案的选择和论证31.1系

4、统方案的选择31.1.1设计要求31.1.2设计框图及设计思路31.1.3设计每个单元电路所需的主要元器件及其结构性能:41.2方案论证61.2.1制冷及加热单元方案论证61.2.2显示单元方案论证61.2.3温度采集单元方案论证72.硬件设计与实现82.1键控单元电路的设计及测试82.1.1键盘的工作方式:82.1.2硬件电路的测试:92.2温度采集单元电路的设计92.2.1温度采集电路的设计:92.2.2温度转换算法及分析:102.3显示、控制电路的设计102.3.1温度控制电路的设计:102.3.2 显示单元电路的设计:112.3.3总体硬件电路图的设计:123.系统方案的选择和论证13

5、3.1读取DS18B20温度模块子程序133.2数据处理子程序133.3键盘扫描子程序143.4主程序流程图154. 系统测试174.1 静态温度测试174.2动态温控测量174.3结果分析17参考文献18附录1: 产品使用说明19附录2: 元件清单19附录3:软件程序清单19附录4:系统仿真图271系统方案的选择和论证1.1系统方案的选择1.1.1设计要求设计并制作一个水温自动控制系统,控制对象为1升水。水温可以在一定范围内设定,并能实现在1070量程范围内对每一点温度的自动控制,以保持设定的温度基本保持不变。(1)可键盘设定控制温度值,并能用液晶显示,显示最小区分度为0.1;(2)可以测量

6、并显示水的实际温度。温度测量误差在0.5 内;(3)水温控制系统应具有全量程(1070)内的升温、降温功能(降温可用风扇吹动使其温度下降、升温用800W以内的电加丝);(4)在全量程内任意设定一个温度值,控制系统可以实现该给定温度的恒值自动控制。控制的最大动态误差4,静态误差2。(5)当测量温度超出测量范围时,电路产生报警。1.1.2设计框图及设计思路 根据题目要求系统模块分可以划分为:温度采集单元模块,显示单元模块,加热单元模块,制冷单元模块,键控单元模块图1:系统的整体设计框图首先,由键控单元设置被控对象(水温)的温度在1070的任意值并由显示单元显示;由温度采集单元检测并采集被控对象(水

7、温)的温度值,将采集到温度值输送到单片机与设定值进行比较:若采集到的值小于设定值,则单片机发出命令控制加热单元电路工作,对被控对象(水温)进行加热使其温度升高达到设定值;若采集到得值大于设定值,则单片机发出命令控制制冷单元电路进行工作,对被控对象(水温)进行制冷使其温度降低达到设定值;当所测温度超出控制范围电路就会报警。最终,使被控对象(水温)达到稳定的设定值(在一定温度误差范围内)。1.1.3设计每个单元电路所需的主要元器件及其结构性能:单片机采用STC89C51基本型作为控制器,分别对温度采集、1602LCD显示、温度设定、加热装置、制冷装置的控制;温度采集单元用DS18B20(新型数字温

8、度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点),;显示单元用1602LCD液晶显示,显示温度精度为0.1;制冷单元电路通过单片机用于控制制冷器(风扇)的工作,降低被控对象(水温)的温度;加热单元电路通过单片机用于控制加热器(热的快)的工作,使被控对象(水温)的温度升高;由于键控单元要实现对初始温度的设置、温度加、温度减、系统达到稳态时所需的时间等功能,因此,按键采用独立的四个按键控制。AT89C51基本型单片机由CPU系统(8位CPU、时钟电路、总线控制)、存储系统(4KB的程序存储器、128B的数据存储器、特殊功能寄存器SFR)、I/O口(4个并行I

9、/O口)和其他单元(2个16位定时/计数器、1个全双工异步串行口、中断系统:5个中断源、个优先级)组成。DS18B20的一线总线的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,(如:环境控制、设备或过程控制、测温类消费电子产品等)测量温度范围为-55C+125C,在-10+85C范围内,精度为0.5C。1602LCD(162字符型LCD),其特性: 低压微功耗,平板型结构,被动显示,显示信息量大,易于彩色化,没有电磁辐射;其结构:+5V供电、亮度可调整,系统内含有振荡电路和重置电路,提供各种控制命令,显示用数据、字符产生器ROM和RAM。制冷单元和加热单元分别采用廉价且

10、易实现的小型电风扇和热的快。图2:DS18B20内部结构图图3: DS18B20测温原理框图图4:LCD1602引脚图1602各引脚功能:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平

11、时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光电源正极第16脚:背光电源负极1.2方案论证1.2.1制冷及加热单元方案论证 方案一:采用小功率的风扇和热得快为被控对象(水温)降温和升温,可使水温在控制范围内缓慢的下降或上升,同时有利于实时的对温度采集且实现其工作的相关电路简单,所需元件的价格低廉。 方案二:采用冷水回流管降温和用大功率的电炉升温,同样可使水温的温度下降或上升,但所需的元件较多且形成的冷水回流管、电炉及其控制电路复杂,易受外界干扰,成本高昂;在对水温控制时,由于被控对象(水温)的温度变化较

12、大,不利于对实时温度数据的采集。 因此,通过比较该系统的制冷和加热单元采用方案一。 根据题目,可以使用电热丝进行加热,控制电热丝的功率即可以控制加热的速度。当水温过高时,关掉电热丝进行降温处理,让其自然冷却。在制作中,我们装设一个小电风扇,当水温超高时关闭电炉开启风扇散热,当需要加热时开启电丝关闭风扇。由于加热的功率较大,考虑到简化电路的设计,我们直接采用220V电源。对加热装置控制模块有以下两种方案:方案一:采用可控硅来控制加热器有效功率。可控硅是一种半控器件,应用于交流电的功率控制有两种形式:控制导通的交流周期数达到控制功率的目的;控制导通角的方式控制交流功率。由交流过零检测电路输出方波经

13、适当延时控制双向可控硅的导通角,延时时间即移相偏移量由温度误差计算得到。可以实现对交流电单个周期有效值周期性控制,保证系统的动态性能指标。该方案电路稍复杂,需使用光耦合驱动芯片以及变压器等器件。但该方案可以实现功率的连续调节,因此响应速度快,控制精度也高。方案二:采用继电器控制。使用继电器可以很容易实现地通过较高的电压和电流,在正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离。这种电路无法精确实现电热丝功率控制,电热丝只能工作在最大功率或零功率,对控制精度将造成影响。但可以由多路加热丝组成功率控制,由单片机对温差的处理实现分级功率控制提高系统动态性能。基于以上分析以及现有器件

14、限制选择方案二,采用继电器控制省去光耦和交流过零检测电路,在软件上选用适当的控制算法,同样可以达到较好的效果。1.2.2显示单元方案论证 方案一:采用1602LCD显示具有功耗小、轻薄短小、无辐射危险、平面直角以及影响稳定不闪烁、可视面积大、画面效果好,抗干扰能力强、提高系统精度等特点。 方案二:LED数码管显示功耗大,且采用模拟电路驱动数码管使得系统不稳定,数码管容易闪烁,系统容易受外界干扰,影响其测温精度。 因此,该系统的设计采用方案一1.2.3温度采集单元方案论证 方案一:利用热电阻传感器作为感温元件,热电阻随温度变化而变化,用仪表测量出热电阻的阻值变化,从而得到与电阻值相应的温度值。最

15、常用的的是铂电阻传感器,铂电阻在氧化介质中,甚至在高温的条件下其物理,化学性质不变。由铂电阻阻值的变化经小信号变送器XTR101将铂电阻随温度变化的转换为420mA线形变化电路,再将电流信号转化为电压信号,送到A/D转换器ADC0809.即将模拟信号转换为数字信号。该方案线性度优于0.01。方案二:采用温度传感器AD590K。AD590K具有较高精度和重复性,良好的非线性保证0.1的测量精度。加上软件非线性补偿可以实现高精度测量。AD590将温度转化为电流信号,因此要加相应的调理电路,将电流信号转化为电压信号。送入8为A/D转换器,可以获得255级的精度,基本满足题目要求。方案三:采用数字温度

16、传感器DS18B20。DS18B20为数字式温度传感器,无需其他外加电路,直接输出数字量。可直接与单片机通信,读取测温数据,电路简单。采用温度传感器AD590的温度采集基于以上分析和现有器件所限,温度采集模块选用方案三。DS18B20与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果。2.硬件设计与实现2.1键控单元电路的设计及测试

17、2.1.1键盘的工作方式:编程扫描:利用CPU完成其它工作的空余调用键盘扫描子程序来响应键盘输入的要求在执行键功能程序时CPU不再响应键输入要求,直到CPU重新扫描为止;定时扫描:每隔一段时间对键盘扫描一次,利用单片机内部的定时器产生一定时间的定时,定时时间一到就产生定时溢出中断,CPU响应中断后对键盘进行扫描并在有键按下时识别出该键,再执行该键的功能程序;中断扫描:当无键按下时,CPU处理自己的共作;当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序并识别键号。对于本设计,由于只对选择、温度加、温度减及系统达到稳态时所需时间的设定,所以用独立的四个按键分别控制就可以;相对于矩阵式按键,

18、独立式的按键能够在实现相同的简单的功能时,省下许多的元件,花费少且控制程序简单,单片机的内存占有量小。对于简单的按键控制功能使用独立键盘更有利,键盘采用按键开关经上拉电阻分别接P1.1、P1.4、p1.7口上,起到控制、上调及下调作用。每按上调和下调键,设定温度值增1减1。图5:键控单元硬件电路2.1.2硬件电路的测试:该电路的测试主要为按键功能是否能按单片机的程序所设计的功能实现。在单片机的P3.0、P3.1、 P3.2口上分别接上四个LED灯,用S1至S4分别控制对应LED的亮和灭;编译简单的按键控制LED的程序写入单片机并运行程序。在有键按下时,对应的LED能否实现程序设计的功能,若能,

19、则硬件电路连接正常。在系统程序中写入每个按键所实现功能的子程序。2.2温度采集单元电路的设计2.2.1温度采集电路的设计:该系统采用半导体温度传感器作为敏感元件。传感器我们采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,直接输出数字量,可以直接和单片机进行通讯,大大简化了电路的复杂度。DS18B20应用广泛,性能可以满足题目的设计要求。DS18B20的测温电路如图6所示。 图6 DS18B20的测温电路其测温电路的实现是依靠单片机软件的编程上。 当DSI8B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的

20、0,1字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0062 5LSB形式表示,DSI8B20完成温度转换后,就把测得的温度值(T)与设定值(TH)做比较,若TTH或TROM操作命令- 存储器操作命令- 处理数据。程序流程图如下图所示。开始开始初始化DS18B20存在?ROM操作命令存储操作命令读取温度值返回是否读取DS18B20温度子程序流程图3.2数据处理子程序 由于DS18B20转换后的代码并不是实际的温度值,所以要进行数据处理。由于本程序采用的是0.0625的精度,小数部分的值,可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位

21、,所以采取四舍五入,保留一位小数即可。也就说,本系统的温度精确到了0.1度。首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LS Byte)取反加一变成原码。处理过后把DS18B20的温度Copy到单片机的RAM中,里面已经是温度值的Hex码了,然后转换Hex码到BCD码,分别把小数位,个位,十位的BCD码存入RAM中。数据处理子程序流程图如下图所示。返回数据传递温度是否为负?BCD码转换求补运算数据处理子程序流程图3.3键盘扫描子程序按键功能: 1. EnterP1.1(k2)控制键2.UpP1.4(k3)加1键3. DownP1.7(k4)减1键键

22、盘子程序流程图如下图所示开始ENTER_FLAG为1?ENTER键是否按下?是否有ENTER键按下?是否有UP键按下?是否有DOWN键按下?DISPLAY显示返回主程序ENTER子程序FLAG=1UP子程序DOWN子程序是是是是是否否否否否键盘子程序流程图3.4主程序流程图总模块流程图如图3.1.1所示。本软件设计采用循环查询来处理各个模块,温度是缓慢变化量所以可以满足性能要求。下图所示为系统主程序流程图否初始化开始调用A/D转换子程序DS18B20存在?数据处理子程序显示子程序键盘扫描子程序继电器控制子程序错误处理显示888是主程序流程图4. 系统测试4.1 静态温度测试测试方式:由于种种条

23、件的限制,采用模拟加热方式进行测试。利用继电器的指示灯来显示继电器的动作。红灯表示加热,绿灯表示降温。测量仪器:空调温度显示屏测试结果如表所示: 测试结果数据标准温度/2022252728测量温度/19.822.124.726.827.6误差/0.20.10.30.20.44.2动态温控测量测试方式:加热方式用体温对传感器DS18B20进行加热。设定控制温度,记录超调温度,稳态误差。超调温度与加热的功率有关,这里不再测量。测量仪器:空调温度显示屏测量结果如表所示:测试结果数据设定温度/29303335超调温度/1.30.91.10.6稳态误差/0.20.40.20.44.3结果分析有以上的测量

24、结果可见,系统基本上达到了所要求的指标,静态测温的精度主要由DS18B20来决定。在控温指标中,影响系统的性能的因素很多。最关键的是加热系统本身的物理性质及控制算法。由于条件的限制,在本设计中采用体温进行测试。 参考文献附录1: 产品使用说明本水温控制系统能在-2070范围内设定任意温度值,超出此范围将出现报警。通过按ENTER键确认开始温度设定;P1.4的UP键为加1键,每按一次使设定温度值加1,P1.7的DOWN键为减1键,每按下一次设定温度值减1。设置完温度要在按ERTER键确认温度设定完成,之后显示实测温度值。附录2: 元件清单 元 件 数 量(个) AT89S51 1 DS18B20

25、 1LCD1062 17404 612MHZ晶振 1继电器 1按键开关 39014 21K9排阻 1100电阻 33K 44.5K 1500 1200 1 电解电容10F 130pF 2插槽4面包板2附录3:软件程序清单#include #include #define uchar unsigned char#define uint unsigned intsbit DQ = P33 ; /定义DS18B20端口DQsbit BEEP=P37 ; /蜂鸣器驱动线bit presence ;sbit LCD_RS = P20 ;sbit LCD_RW = P21 ;sbit LCD_EN = P

26、22 ;uchar code cdis1 = DS18B20 OK ;uchar code cdis2 = TEMP: . C ;uchar code cdis3 = DS18B20 ERR0R ;uchar code cdis4 = PLEASE CHECK ;unsigned char data temp_data2 = 0x00,0x00 ;unsigned char data display5 = 0x00,0x00,0x00,0x00,0x00 ;unsigned char code ditab16 = 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,

27、 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09 ;void beep() ; unsigned char code mytab8 = 0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00 ;#define delayNOP() ; _nop_() ;_nop_() ;_nop_() ;_nop_() ; ;/*/void delay1(int ms)unsigned char y ; while(ms-) for(y = 0 ; y250 ; y+) _nop_() ; _nop_() ; _nop_() ; _nop_() ; /*

28、/*检查LCD忙状态 */*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */*/ bit lcd_busy() bit result ; LCD_RS = 0 ; LCD_RW = 1 ; LCD_EN = 1 ; delayNOP() ; result = (bit)(P0&0x80) ; LCD_EN = 0 ; return(result) ; /*写指令数据到LCD */*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */*/void lcd_wcmd(uchar cmd) while(lcd_busy() ; LCD_RS = 0 ; LC

29、D_RW = 0 ; LCD_EN = 0 ; _nop_() ; _nop_() ; P0 = cmd ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ;/*/*写显示数据到LCD */*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */*/void lcd_wdat(uchar dat) while(lcd_busy() ; LCD_RS = 1 ; LCD_RW = 0 ; LCD_EN = 0 ; P0 = dat ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ; /

30、* LCD初始化设定 */*/void lcd_init() delay1(15) ; lcd_wcmd(0x01) ; /清除LCD的显示内容 lcd_wcmd(0x38) ; /16*2显示,5*7点阵,8位数据 delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x0c) ; /显示开,关光标 delay1(5) ; lcd_wcmd(0x06) ; /移动光标 delay1(5) ; lcd_wcmd(0x01) ; /清除LCD的显示内容 delay1(5) ;/* 设定显示位

31、置 */*/void lcd_pos(uchar pos) lcd_wcmd(pos | 0x80) ; /数据指针=80+地址变量/*自定义字符写入CGRAM */*/void writetab() unsigned char i ; lcd_wcmd(0x40) ; /写CGRAM for (i = 0 ; i 0 ; i-) DQ = 0 ; / 给脉冲信号 dat = 1 ; DQ = 1 ; / 给脉冲信号 if(DQ) dat |= 0x80 ; Delay(4) ; return (dat) ;/* 写一个字节 */*/WriteOneChar(unsigned char dat) unsigned char i = 0 ; for (i = 8 ; i 0 ; i-) DQ = 0 ; DQ = dat&0x01 ; Delay(5) ; DQ = 1 ; dat=1 ; /* 读取温度 */*/Read_Temperature(void) Init_DS18B20() ; WriteOneChar(0xCC) ; / 跳过读序号列号的操作 WriteOneChar(0x44) ; / 启动温度转换 Init_DS18B20() ; WriteOneChar(0xCC) ; /跳过读序号列号的操作 WriteO

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号