基于单片机的智能温度控制系统方案_第1页
基于单片机的智能温度控制系统方案_第2页
基于单片机的智能温度控制系统方案_第3页
基于单片机的智能温度控制系统方案_第4页
基于单片机的智能温度控制系统方案_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE31 / NUMPAGES31基于单片机的智能温度控制系统的设计摘 要该水温控制系统采用单片机进行温度实时采集与控制。温度采集由“一线总线”数字化温度传感器DS18B20提供,DS18B20在-5525固有测温分辨率为0.5 。水温实时控制采用双向可控硅BT134和光隔离器MOC3041控制电热丝和风扇进行升温、降温控制。系统具备较高的测量精度和控制精度,能完成升温和降温控制。通过对基于单片机的相对温度控制器设计,加深对传感器技术及检测技术的了解,巩固对单片机知识的掌握,并系统的复习本专业所学过的知识。关键词:AT89C51 DS18B20 BT134 MOC3041 水温控制Abst

2、ractThis system uses the microcontroller. an measure the relative humidity of the surrounding air automatically and accurately , and after measuring the data and changing through, send it in the processor, Then through the programming of the software, after changing the value of relative humidity of

3、 the environment at present into the decimal digit, and then in charge of the number to show; And, through software programming, in addition, corresponding control circuit (such some circuit as photoelectric coupling and relay ,etc. make up ), design the relative humidity of the present environment

4、of regulation that can be automatic: When the indoor air humidity is too high. Through designing the controller of relative humidity based on one-chip computer , strengthen the knowledge of the technology of the sensor and detection technique, the ones that consolidated to knowledge of the one-chip

5、computer were mastered, and the systematic knowledge that a speciality has been studied of review.Keyword: AT89C51 DS18B20 BT134 MOC3041 水温控制目录 TOC o 1-3 h z u HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544381#_Toc2365443811.系统方案选择和论证3HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l

6、 _Toc236544382#_Toc2365443821.1任务 PAGEREF _Toc236544382 h 4HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544383#_Toc2365443831.2要求 PAGEREF _Toc236544383 h 4HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544384#_Toc2365443841.2.1基本要求 PAGEREF _Toc236544384 h 4HYPERLINK ./可疑文件夹/1

7、可疑文档/新建 Microsoft Word 文档.doc l _Toc236544385#_Toc2365443851.2.2发挥部分 PAGEREF _Toc236544385 h 4HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544386#_Toc2365443861.3 系统基本方案 PAGEREF _Toc236544386 h 4HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544387#_Toc2365443871.3.1各模块电路的方案选

8、择及论证 PAGEREF _Toc236544387 h 5HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544388#_Toc2365443881.3.2系统各模块的最终方案 PAGEREF _Toc236544388 h 6HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544389#_Toc2365443892系统硬件设计8HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544390#

9、_Toc2365443902.1温度采集部分设计8HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544391#_Toc2365443912.2 矩阵键盘的设计9HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544392#_Toc2365443922.3液晶显电路9HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544393#_Toc2365443932.4 水温升温将温控制.10HYPER

10、LINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544394#_Toc2365443943系统软件设计 PAGEREF _Toc236544394 h 11HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544395#_Toc2365443953.1读取DS18B20温度模块子程序 PAGEREF _Toc236544395 h 11HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544396#_Toc

11、2365443963.2数据处理子程序 PAGEREF _Toc236544396 h 11HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544397#_Toc2365443973.3键盘扫描子程序 PAGEREF _Toc236544397 h 13HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544398#_Toc2365443983.4主程序流程图 PAGEREF _Toc236544398 h 14HYPERLINK ./可疑文件夹/1可疑文档/新

12、建 Microsoft Word 文档.doc l _Toc236544400#_Toc2365444004. 系统测试 PAGEREF _Toc236544400 h 16HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544401#_Toc2365444014.1 静态温度测试 PAGEREF _Toc236544401 h 16HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544402#_Toc2365444024.2动态温控测量 PAGEREF _T

13、oc236544402 h 16HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544403#_Toc2365444034.3结果分析 PAGEREF _Toc236544403 h 16HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc236544404#_Toc236544404附录1.参考文献 PAGEREF _Toc236544404 h 18HYPERLINK ./可疑文件夹/1可疑文档/新建 Microsoft Word 文档.doc l _Toc2365

14、44405#_Toc236544405附录2.源代码 PAGEREF _Toc236544405 h 191.系统方案选择和论证1.1任务设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。水温可以在一定围由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。1.2要求技术指标为-40+100度控制精度为1度温度检测精度为0.5度控制对象为电炉丝加热器,介质为水,LED数码直读显示1.3 系统基本方案根据题目要求系统模块分可以划分为:温度测量模块,显示电路模块,加热模块,控制模块。为实现各模块的功能,分别做了几种不同的设计方案并进行了论证。1.3.1各模块电路

15、的方案选择及论证(1)控制器模块根据题目要求,控制器主要用于对温度测量信号的接受和处理、控制电热丝和风扇使控制对象满足设计要求、控制显示电路对温度值实时显示以及控制键盘实现对温度值的设定等。对控制器的选择有以下二种方案:方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,

16、就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。(2)加热装置有效功率控制模块根据题目,可以使用电热炉进行加热,控制电热炉的功率即可以控制加热的速度。当水温过高时,关掉电热炉进行降温处理,让其自然冷却。在制作中,我们装设一个小电风扇,当水温超高时关闭电炉开启风扇散热,当需要加热时开启电炉关闭风扇。由于加热的功率较大,考虑到简化电路的设计,我们直接采用220V电源。对加热装置控制模块有以下两种方案:方案一:采用可控硅来控制加热器有效功率

17、。可控硅是一种半控器件,应用于交流电的功率控制有两种形式:控制导通的交流周期数达到控制功率的目的;控制导通角的方式控制交流功率。由交流过零检测电路输出方波经适当延时控制双向可控硅的导通角,延时时间即移相偏移量由温度误差计算得到。可以实现对交流电单个周期有效值周期性控制,保证系统的动态性能指标。该方案电路稍复杂,需使用光耦合驱动芯片以及变压器等器件。但该方案可以实现功率的连续调节,因此响应速度快,控制精度高。方案二:采用继电器控制。使用继电器可以很容易实现地通过较高的电压和电流,在正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离。这种电路无法精确实现电热丝功率控制,电热丝只能工

18、作在最大功率或零功率,对控制精度将造成影响。通过比较,我们选择方案一。(3)温度采集模块题目要求温度静态误差小于等于0.2,温度信号为模拟信号,本设计要对温度进行控制和显示,所以要把模拟量转换为数字量。该温度采集模块有以下三种方案:方案一:利用热电阻传感器作为感温元件,热电阻随温度变化而变化,用仪表测量出热电阻的阻值变化,从而得到与电阻值相应的温度值。最常用的是铂电阻传感器,铂电阻在氧化介质中,甚至在高温的条件下其物理,化学性质不变。由铂电阻阻值的变化经小信号变送器XTR101将铂电阻随温度变化的转换为420mA线形变化电路,再将电流信号转化为电压信号,送到A/D转换器ADC0809.即将模拟

19、信号转换为数字信号。该方案线性度优于0.01。方案二:采用温度传感器AD590K。AD590K具有较高精度和重复性,良好的非线性保证0.1的测量精度。加上软件非线性补偿可以实现高精度测量。AD590将温度转化为电流信号,因此要加相应的调理电路,将电流信号转化为电压信号。送入8为A/D转换器,可以获得255级的精度,基本满足题目要求。 方案三:采用数字温度传感器DS18B20。DS18B20为数字式温度传感器,无需其他外加电路,直接输出数字量。可直接与单片机通信,读取测温数据,电路简单。基于以上分析和现有器件所限,温度采集模块选用方案三。DS18B20与传统的热敏电阻相比,他能够直接读出被测温度

20、并且可根据实际要求通过简单的编程实现912位的数字值读数方式。并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果。(4)键盘与显示模块根据题目要求,水温要由人工设定,并能实时显示温度值。对键盘和显示模块有下面两种方案: 方案一:采用液晶显示屏和通用矩阵键盘。液晶显示屏(LCD)具有功耗小、轻薄短小无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大,画面效果好,抗干扰能力强,并可灵活的现实多种状态。方案二:采用三位LED七段数码管分别

21、显示温度的十位、个位和小数位。按键采用单列3按键进行温度设定。数码管具有:低能耗、低损耗、低压、寿命长、耐老化,对外界环境要求较低。同时数码管采用BCD编码显示数字,程序编译容易,资源占用较少。根据以上论述,51单片机资源丰富,根据需要,我们选用方案一。1.3.2 系统各模块的最终方案根据以上分析,结合器件和设备等因素,确定如下方案: 1. 采用AT89C51单片机作为控制器,分别对温度采集、LCD显示、温度设定、加热装置功率控制。2. 温度测量模块采用数字温度传感器DS18B20。此器件经软件设置可以实现高分辨率测量。 3. 电热丝有效功率控制采用光隔离器和双向可控硅控制。4. 显示用LCD

22、液晶显示实时温度值。系统的基本框图如图1.1所示。CPU(AT 89C51)首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过89S52来处理数据。数据处理后的结果就显示到数码管上。另外由键盘设定温度值送到单片机,单片机通过数据处理发出温度控制信息到继电器。OutputLED数码管继电器DS18B20键盘输入AT89C52Input1.1系统基本框图2系统硬件设计2.1温度采集部分设计本系统采用半导体温度传感器作为敏感元件。传感器我们采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,DQ接上拉电阻,与单片机P2.6口相连,直接与单片机通讯,大大简化了电

23、路的复杂度。DS18B20的测温电路如图2.1所示。图2.1 DS18B20测温电路2.2 矩阵键盘的设计由于控制键位较多,方便程序设计,硬件安全可靠,我们设计44矩阵键盘,与单片机P1口相连,电路如图2.2所示。图2.2 矩阵键盘电路2.3液晶显电路我们用单片机P0口作为1602的数据传输口,P2.0为数据命令选择端、P2.1读写、P2.2使能端。硬件电路如图2.3所示。图2.3 液晶硬件电路图2.4 水温升温将温控制. 本设计中涉及到了强电部分,因此对电炉的控制我们用moc3041和bt13电路如图2.4,对风扇我们采用继电器,电路如图2.5.图2.4 电炉控制图图2.5 风扇电路图3系统

24、软件设计3.1读取DS18B20温度模块子程序每次对DA18B20操作时多要按造DS18B20工作过程中的协议进行。初始化- RoM操作命令- 存储器操作命令- 处理数据 程序流程图如图3.1所示。3.2数据处理子程序由于DS18B20转换后的代码并不是实际的温度值,所以要进行数据处理。由于本程序采用的是0.0625的精度,小数部分的值,可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位,所以采取四舍五入,保留一位小数即可。也就说,本系统的温度精确到了0.1度。首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LS Byte

25、)取反加一变成原码。处理过后把DS18B20的温度复制到单片机的RAM中,里面已经是温度值的Hex码了,然后转换Hex码到BCD码,分别把小数位,个位,十位的BCD码存入RAM中。数据处理子程序流程图如图3.2所示。开始开始初始化DS18B20存在?ROM操作命令存储操作命令读取温度值返回是否图3.1 读取DS18B20温度子程序流程图返回数据传递温度是否为负?BCD码转换求补运算图3.2 数据处理子程序流程图3.3键盘扫描子程序设置上下限报警温度开始键盘扫描功能键是否按下?是主函数否图3.3 键盘子程序流程图3.4主程序流程图总模块流程图如图3.4所示。本软件设计采用循环查询来处理各个模块,

26、温度是缓慢变化量所以可以满足性能要求。初始化开始数据处理显示子程序键盘扫描子程序继电器可控硅ds18b20是否存在是显示上次数值否温度是否高于设置温度是否风扇电炉4. 系统测试4.1 静态温度测试测试方式:由于条件的限制,采用模拟加热方式进行测试。测量仪器:空调温度显示屏测试结果如表4.1所示:表4.1 测试结果数据标准温度/2022252728测量温度/19.822.124.726.827.6误差/0.20.10.30.20.44.2动态温控测量测试方式:加热方式用体温对传感器DS18B20进行加热。设定控制温度,记录超调温度,稳态误差。超调温度与加热的功率有关,这里不再测量。测量仪器:空调

27、温度显示屏测量结果如表4.2所示:表4.2 测试结果数据设定温度/29303335超调温度/1.30.91.10.6稳态误差/0.20.40.20.44.3结果分析有以上的测量结果可见,系统基本上达到了所要求的指标,静态测温的精度主要由DS18B20来决定。在控温指标中,影响系统的性能的因素很多。最关键的是加热系统本身的物理性质及控制算法。由于条件的限制,在本设计中采用体温进行测试。 附录1.参考文献1勇 编 数字电路 电子工业 20042正振 编 电子电路设计与制作 广西交通职业技术学院信息工程系 20073子文 编 单片机原理及应用 电子科技大学 2006 王法能 编4单片机原理及应用 科

28、学 20045全国大学生电子设计竞赛培训系列教程 高吉祥 主编附录2.源代码#define uchar unsigned char#define uint unsigned intunsigned char key_value;/bit dir=1;unsigned char pwm=30;float temperature;unsigned char key_value; /存放键盘返回float temperature;unsigned char t2,*pt/用来存放温度值,测温程序就是通过这个数组与主函数通信的uchar key_flag=0;/定义有键按下的标志#include re

29、g52.h#include user.h#include hardware.c#include lcd.c#include ds18b20.h#include key.cvoid main()LCD_Initial();sys_init();setds18b20(TH,TL,RS);/设置上下限报警温度和分辨率delay_18B20(100);Init_DS18B20();while(1)pt=ReadTemperature();/读取温度,温度值存放在一个两个字节的数组中,temper_LCD();/实测温度转化为ACSII码,并送液晶显示缓冲区LCD_Print(0,0,TempBuffe

30、r0);LCD_Print(0,1,TempBuffer1);key_value=kbscan();if(key_flag=1)key_value=kbscan();key_command(key_value);alarm=1;delay_20ms(20);alarm=0;else alarm=0;useralarm();void timer1(void) interrupt 3TH1=(65536-pwm*100)/256;TL1=(65536-10000)%256;#include /液晶显示程序/Port Definitions*sbit LcdRs= P20;sbit LcdRw= P

31、21;sbit LcdEn = P22;sfr DBPort = 0 x80;/P0=0 x80,P1=0 x90,P2=0 xA0,P3=0 xB0.数据端口void lcd_delay(unsigned char t) unsigned char i,j;for(i=0;it;i+)for(j=0;j100;j+);/部等待函数void LCD_Wait(void)/读忙状态LcdRs=0;LcdRw=1;/向LCD写入命令或数据#define LCD_COMMAN0 / Command#define LCD_DATA1 / Data#define LCD_CLEAR_SCREEN0 x0

32、1 / 清屏#define LCD_HOMING 0 x02 / 光标返回原点void LCD_Write(bit style, unsigned char input) /写数据1/命令0LcdRs=style;LcdRw=0;DBPort=input;LcdEn=1;lcd_delay(10);LcdEn=0;LCD_Wait();/设置显示模式#define LCD_SHOW0 x04 /显示开#define LCD_HIDE0 x00 /显示关#define LCD_CURSO0 x02 /显示光标#define LCD_NO_CURSOR0 x00 /无光标#define LCD_F

33、LASH0 x01 /光标闪动#define LCD_NO_FLASH0 x00 /光标不闪动/设置输入模式#define LCD_AC_UP 0 x02#define LCD_AC_DOWN 0 x00 / default#define LCD_MOVE 0 x01 / 画面可平移#define LCD_NO_MOVE 0 x00 /default/初始化LCDvoid LCD_Initial(void) /初始化LCDLCD_Write(0,0 x38); /8位数据端口,2行显示,5*7点阵lcd_delay(300);LCD_Write(0,0 x0c); /显示模式LCD_Write

34、(0,0 x01); /清屏LCD_Write(0,0 x06); /输入模式/*void GotoXY(unsigned char x, unsigned char y)EA=0;if(y=0) LCD_Write(0,0 x80|x);if(y=1) LCD_Write(0,0 xc0|x);EA=1;/输出字符串void Print(unsigned char *str)EA=0;while(*str!=0)LCD_Write(1,*str+);EA=1;void LCD_Print(unsigned char x, unsigned char y, unsigned char *str

35、)EA=0;GotoXY(x,y);Print(str);EA=1;/hardware.c 硬件程序sbit alarm=P25;sbit hot=P27;sbit cold=P24;void sys_init(void) /*EA=1;ET1=1;TMOD=0X01;TH1=15536/256;TL1=15536%256;TR1=1; */alarm=0;cold=0;hot=0;/ 矩阵键盘程序#include char code tab44= .,1,4,7,/7,8,9, E UP0,2,5,8,/4,5,6, D downF,3,6,9,/1,2,3 , C SETB,C,D,E;

36、/0到F的16个键植/A .,0,F +/- ,B OKvoid delay(unsigned char a)unsigned char i;while(a-)for(i=100;i0;i-);unsigned char kbscan() /键盘扫描unsigned char hang,lie,key;key_flag=0;P1=0 x0f;if(P1!=0 x0f)delay(10);if(P1!=0 x0f)alarm=1;delay_20ms(3);alarm=0;key_flag=1;P1=0 x0f;switch(P1&0 x0f)case 0 x0e:lie=0;break;cas

37、e 0 x0d:lie=1;break;case 0 x0b:lie=2;break;case 0 x07:lie=3;break;P1=0 xf0;switch(P1&0 xf0)case 0 xe0:hang=0;break;case 0 xd0:hang=1;break;case 0 xb0:hang=2;break;case 0 x70:hang=3;break;P1=0 x0f;while(P1!=0 x0f);key=tabhanglie;return (key);else return(key_value);void settmper(void)unsigned char i;L

38、CD_Write(0,1);GotoXY(0,0);Print(H_Tmp:);for(i=0;i2;i+)key_flag=0;while(key_flag=0) key_value=kbscan();while(1)if(key_value!=B&key_value!=C&key_value!=D&key_value!=E&key_value!=F&key_value!=.) break;else key_value=kbscan();get_hti=key_value;LCD_Write(1,key_value+0 x30);GotoXY(0,1);Print(L_Tmp:);for(i

39、=0;i2;i+)key_flag=0;while(key_flag=0) key_value=kbscan();while(1)if(key_value!=B&key_value!=C&key_value!=D&key_value!=E&key_value!=F&key_value!=.) break;else key_value=kbscan();get_lti=key_value;LCD_Write(1,key_value+0 x30);while(1)key_value=kbscan();if(key_value=C) break;TH=get_ht0*10+get_ht1;TL=ge

40、t_lt0*10+get_lt1;setds18b20(TH,TL,RS); /设置上下限报警温度和分辨率LCD_Write(0,0 x01);GotoXY(0,0);Print(Set Sucess!);delay_20ms(50);LCD_Write(0,0 x01);void setusertmper(void)unsigned char i;LCD_Write(0,1);GotoXY(0,0);Print(Set Tmper:);for(i=0;i2;i+)key_flag=0;while(key_flag=0)key_value=kbscan();while(1)if(key_val

41、ue!=B&key_value!=C&key_value!=D&key_value!=E&key_value!=F&key_value!=.) break;else key_value=kbscan();get_tmi=key_value;LCD_Write(1,key_value+0 x30);while(1)key_value=kbscan();if(key_value=B) break;user_temper=get_tm0*10+get_tm1;LCD_Write(0,0 x01);GotoXY(0,0);Print(Set Sucess!);delay_20ms(50);LCD_Write(0,0 x01);void key_command(unsigned char key_value)switch (key_value)case

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论