单片机设计关于ds18b20的温度控制系统_第1页
单片机设计关于ds18b20的温度控制系统_第2页
单片机设计关于ds18b20的温度控制系统_第3页
单片机设计关于ds18b20的温度控制系统_第4页
单片机设计关于ds18b20的温度控制系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、百度文库-让每个人平等地提升自我一、系统设计1.1项目概要温度控制系统无论是工业生产过程,还是日常生活都起着非常重要的作用,过 低或过高的温度环境不仅是一种资源的浪费,同时也会对机器和工作人员的寿命 产生严重影响,极有可能造成严重的经济财产损失,给生活生产带来许多利的因 素,基于AT89s52的单片机温度控制系统与传统的温度控制相比具有操作方便、 价价格便宜、精确度高和开展容易等优点,因此市场前景好。L 2设计任务和要求:采川DS18B20作为温度传感器进行温度检测。对采集温度进行显示(显示温度分辨率采集温度数值应采用数字滤波 措施,保证显示数据稳定°设计相应的温度控制电路,根据测得

2、的温度情况对加热器进行控制,将温度保持 在设定温度。通过按键设置温度上下限,超限通过LED、蜂鸣器报警。二、硬件设计2.1硬件设计概要根据需求,我们将系统分为五个模块,信息处理模块,温度采集模块、控制调节 模块、报警电路模块,显示模块。2. 2信息处理模块AT89S52是ATMEL公司的以8031核构成的8位Flash单片机系列。这个系 列单片机的最大特点就是在片内含有Flash存储器,AT89S52单片机是一种低功 耗高性能的CMOS8位微控制器,内置8KB可在线编程闪存。该器件采用Atmel 公司的高密度非易失性存储技术生产,其指令与工业标准的80C51指令集兼容。 片内程序存储器允许重复

3、在线编程,允许程序存储器在系统内通过SPI申行口改 写或用同用的非易失性存储器改写。通过把通用的8位CPU与可在线下载的 Flash集成在一个芯片匕AT89s52便成为一个高效的微型计算机。它的应用范 围广,可用于解决复杂的控制问题,且成本较低。单片机模块如图(1)所示。9 1Il r20pF11 RL119h VT Al dDA n/ARA39I|一I I . . 20pF.R5:.:乡,q9f zn 1 Ml_ 1LU U/>LJUPO.1/AD1P0.2/AD2XTAL2P0.3/AD3PO 4/AC4PO 5/AD5 P0.6/AD6RSIP0.7/AD7P2 0/A8 DO &

4、lt; /AQ38A3736353433321OK<TEXT>.292122>您修修.LN . "T9 P2.2ZA10232430PSENP2.o/M 1ALEP2.4ZA12EAP2.5/A13P2.6/A14P2.7/M5P1 0/T2P3.0/RXDP1.1/T2EXP3.1/TXD253126127281023411_12-TTP1.2P3.2/INT0PI .3P3.3/INT1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RT89C52图单片机模块2. 3温度采集模块2. 3.1传感器DS

5、18b20简介DALLAS最新单线数字温度传感器DS18b20简介新的“一线器件”,体积更 小、适用电压更宽、更经济。Dallas半导体公司的数字化温度传感器DS18b20 是世界上第一片支持“一线总线”接口温度传感器。一线总线独特而且经济的特 点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新的概念。 DS18b20、DS1822 “一线总线”数字化温度传感器同DS1820 一样,DS18b20也支 持“一线总线”接口,测量温度范围为-55C '+125C,在-10+85范围内,精度为0. 5o DS18b20的精度较差为212o现场温度直接以“一线总线”的 数字方式传输,大

6、大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量, 如:环境控制、设备或过程控制、测量类消费电子产品等。与前一代产品不同, 新的产品支持3V5V的电压范围,使系统设计更灵活、方便。而且新一代产品 更便宜,体积更小。DS18b20内部结构主要由四部分组成:64位光刻ROM、温度 传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18b20的实验板原 理接线图如图(2):图(2) DS18b20的实验板接线图其中:DQ为数字信号输入/输出端;GXD为电源地;VDD为外接供电电源输 入端(在寄生电源接线方式时接地)2. 3.2实验模拟电路图温度检测控制模拟电路图dsl8b20原件及其连线

7、如图(3)温度此传感器上 显示的温度同步显示到LED显示器上,并有加温,减温按钮。2. 3. 3程序流程图i程序流理图 图(4)主程序流程图开始初始化干程序流程图图(5)初始化子程序流程图准务工出效堀Outduta 读1次数=8准备月人敷融主F件发出低电平主0件发出低电平lfldldltA»lC¥送至!>QjskviEis主4»件开放总酸Ouldafu»lMJKdq=iOulciata | 0x80JS 时琏时A45”主善件格放息线InduCa写入次敷=8字官读匕手程用流程图图(6)读按键的程序流程图2.4控制调节模块2. 4.1升温调节系统通过继

8、电器的开合来控制加热片电路的通断,来达到设温效果,我们预设温度为25度,当温度低于25度时,单片机P3. 6引脚输出高电平,继电器导通,对 温度传感器加热,加热模块如图(7)所示。图(7)加温控制电路2. 4.2温度上下限调节系统通过按键控制键选着调节对象,通过上升下降调节值大小,模拟电路图如 图(78主控电路:我们设定温度为030度,为表示方便,这里让,控制开关, 升温开关,降温开关分别为,kl, k2, k3,开始显示的是当前温度,K1主控开 关,用来控制进入的是当前温度,温度上限,下限的调节界面。按kl, 一次进 入三个界面。按K2为加1开关,按一下,加1, k3减1开关,按一下,减L

9、例如:开始时显示的是当前温度界面,按下kl进入高温设定界面,显示器上显 示当前.温度和温度上限,按k2,上限加1,按k3,上限减1,再按kl进入显现 设定界面,显示器显示当前温度,和温度下限,按k2,下限加1,按k3,下限 减1,再按kl,进入显示当前温度界面。如图(8)2. 4. 3报警电路系统通过;ed灯而闪烁以及蜂鸣器的鸣叫实现报警,如果温度超过上限灯D4亮, 蜂鸣器鸣叫,低于下限灯D2亮,蜂鸣器鸣叫。常温D1亮如图(9) (10)o图(8)温度设定开关R8.220,<TEXT>R9.D2偏昌Di 灯ai> ._I220. <TEXT>R6.髓.<TE

10、XT>D4 ,220 <TEXT>P2.4P2.3P2.5图(9)报警模块图(9) P3.7接蜂鸣器2. 5显示模块通过采集dsl8b20的温度,同步显示到LED显示器上,精确到小数点后第一位。 如下图LCD fLM016LVCCRP1 . RESPACK-8 <TEXT>>P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.WA8P2.1/A9P2.2/A10 DO393835342124<TEXT>图(9)显示电路三、仿真后,部分显示成果tCD« *

11、-办 31, * *图(10)开始启动时,显示学号P1MC4 ,酎9,3SPIMG1 ,3C4Tenperat-ure is ® 8图(11)显示当前温度6"T-SasXM,M4丫一1MJD ru*rMa ,一 XM42一Ten per a lure is9M 1U6"“ xz/T . r q «£2J a Z 628 SS Sb * * *"*" I * . cnm W,蜕. U14PMD 4»1>4图(12)温度低于低温下限,低温报警灯凫,蜂鸣器鸣叫图(13)温度高于温度上限,高温报警灯凫,蜂鸣器鸣叫四、

12、两周实习总结这次单片机实习我们小组做的是温度检测。之前老师给了 3个题目,让选择, 但为了避免大家不撞车,按学号来,我是02号,分到了做温度检测的题目,刚开始接触到题目,一头雾水,因为我们组的成员都是大三才接触到单片机,都是 菜鸟级的任务,第一周,我从网上下栽了,基于8051+PR0TEUS仿真100实例 这个文档,从最简单的点亮一个流水灯,让数码管显示数字开始,笫一周就做了 这些简单的例子,100例做了 20多个。刚开始很慢,仿真模型里的原器件都不 会找,编的程序编译时总出现报警、错误。一遇到错误我们就慌了神了,所以起 步很难。后来在老师和同学的帮助下,慢慢积累,知道了常见的报警和错误的解

13、决方法,编完调试成功20个例子后,算是对单片机有了一定的基础。但这时一 周已经过去了,别的小组已经仿真通过,开始实际运行了,而我们这组才开始。第二周开始了,笫一天我们没做设计,把各个小组的程序,电路图都拿来看, 不懂得就请他们帮忙讲解由于前面有了知识,一些模块都看得懂,学得很快了。 发现主要是把各个模块融合到一起,头文件写到最前面,通过函数的调用!给单 片机接口高低电平,来实现功能。这正好是我们的强项,一星期20个例子的功 劳。第二天我们开始自己编程,但是融合的过程中总出现错误,要嘛是变量没定 义,要嘛是头文件重复!还有一个,报警电路的数码管总是不完,但单片机对应 的接口有高低电平的变化,实际

14、电路板上也成功,这个问题困扰了我们很久,怎 么办都不痛,当时有想砸电脑的冲动,后来还是解决了,原来,是标号标错了位 置,一点小问题,困扰了我们2天。当解决这个问题时,那心灵的喜悦是这辈子 都忘不了的!通过两周的实习,我们从一个小白成长为一个对单片机入了门,并能实现简单 的编程,还能解决实际问题的小人物了!虽然过程很苦,每天对着电脑,就吃饭 和上洗手间离开板凳! 一直盯着屏幕看!不过2周熬过来了,收获蛮大的!例如 后来我乂在我们的程序中加入了降温程序!温度高,调动电动机吹风降温!感觉无论做什么事都要吃得了苦受得了罪,天下没有什么事是难的,只有懒惰 的人,只要用心去做,什么事都能成功!五、致谢两周

15、的实习中,我遇到了许许多多的困难,但我能走过来,这和我组成员共 同研究,共同讨论问题的辛勤是分不开的,灰心时我们相互鼓励,相互打气,。 感谢同组成员。开始接触单片机,我是一个小白级人物,谢谢把我领入门的同班 同学们,当我有问题请教时,他们会放下手头的匚作,倾心为我解答,程序编译 错误时,他们会帮我一起看提示,该错误!谢谢同班同学们!当然,我们实习时.,老师一直陪伴着我们,尽管我没有问过老师问题,老师也没 有帮我调试程序,但还是要谢谢刘老师,吕老师,你和我们在一起,无形中给了 我们莫大的动力!同时也起到了监督我们的作用,使我们不能够偷懒,不会出现 有一组同学完成了,那么全班都完成了的情况!正由于

16、你们的严格的要求,我们 这次实习才能圆满的完成,同学们都做出了想要的结果。六、参考文献1郭天祥.新概念51单片机C语音教程一一入门提高开发拓展攻略ML北京:北京:电子工业出版社,2009.2韩广兴.电子元器件与实用电路基础M.北京:电子工业出版社,2005.3方大千,朱丽.电子控制系统装置制作入门装.北京:国防出版社,2006.4刘向举,刘丽娜.J.齐齐哈尔大学学报(自然科学版).2012(03)5黄文力,邓小磊.J.仪器仪表 用户.2011(06)6黄晓林.J.自动化技术与应用.2011(11)7王文,王直.J.电子设计工程. 2011(20)8陈锡华,贾磊磊.J.单片机与 嵌入式系统应川.

17、2011(09) 七、附录7. 1原理图RS4TFG .n»vxKCraiMia 231 raakMz ,mj2 ,W“ raxus rookJG ,2l”,:-jJFGR4a am.RWE rzwPZHM 口 力筋HI 歌和MZ F3g以 nsum 以,吊15P3YTZ>naOTSnmraxninarifQfm.tA, TTRL2.UWIiO.rec .7. 2参考程序#include<reg52. h>ttinclude <intrins. h>#define uchar unsigned charttdefine uint unsigned int

18、sbit DQ=P3c3;dsl8b20 与单片机连接口sbit RS=P2P;sbit RW=P2"1;sbit EN=P2c2;sbit keyadd=Pl*4;sbit keydel=P15;sbit keyok=Pl 6;sbit led_green=P23;sbit 1ed_ye11ow=P2 4;sbit led_red=P25;sbit shengwen=P3 6;sbit jiangwen=P3 5;sbit BEEP = P3 八 7;uchar code strl J = z/ Temperature is;uchar code str2口=;uchar code

19、 str3 = z/set_hightemp:;uchar code str4J = ,zset_lowtemp:卜uchar code str5 口=“studentNO:;uchar code str6=“32209102 9104;uchar data disdataLo;uchar set_hightemp=33, set_lowtemp=0;uchar p=0;uchar aa2;uint tvalue; 温度值uchar tflag;温度正负标志void delaylms (uint ms) 延时 1 毫秒 uint i, j;for(i=0;i<ms;i+)for(j=0;

20、j<U4;j+);void delayls(uint s) (uint i;for(i=0;i<s;i+) delaylms(1000);)/lllllllllllllllllllllllllllllllllllll 报警程序 void baojing(void) (unsigned int j;for (j = 49; j > 0; j)响 30ms(BEEP = "BEEP; 输出频率 800Hz P0 = 0x7E; 点亮 DOO 和 D07 delaylms (10); 延时 310us delaylms (10); 延时 310us )报警程序/nnnnn

21、innnnnnnnninnin void wr_com(uchar com) 写指令delaylms (1);RS=O;RW=O;EN=O;PO=com; /delaylms(1);EN=1;delaylms (1);EN=O;void wr_dat (uchar dat) 写数据delaylms (1);RS=1;RW=O:EN=O;PO=dat;delaylms(1);EN=1;delaylms (1);EN=O;void lcd_init ()初始化设置delaylms (15);wr_com(0x38) ; delaylms (5);wr_com(0x08);delaylms(5);w

22、r_com(0x01);delaylms(5);wr_com(0x06);delaylms(5);wr_com(0x0c);delaylms(5); _void display(uchar *p) 显示(while(*p!=,0,)wr_dat(*p);p+;delaylms (1);void init_play()初始化显示 lcd_init ();wr_com(0x80);display (str5);wr_com(0xc0);display (str6);delayls(3);Icd.init ();wr_com(0x80);display (strl);wr_com(0xc0);dis

23、play (str2);/*ds 18b20 程J宁*/ void delay_18B20(uint i)/延时 1 微秒while(i一); )void dsl820rst ()/*dsl820 复位*/(uchar x=0;DQ = 1;/DQ 复位delay_18B20(4); 延时 DQ = 0;/DQ 拉低delay_18B20(100); 精确延时大于 480us DQ - 1;拉局delay_18B20(40);uchar dsl820rd ()/*读数据*/uchar i=0;uchar dat = 0;for (i=8;i>0;i)DQ = 0; 给脉冲信号 dat&#

24、187;=l;DQ = 1; 给脉冲信号 if(DQ) dat =0x80;delay_18B20(10);)return(dat);) void dsl820wr (uchar wdata)/*写数据*/uchar i=0;for (i=8; i>0; i-)DQ = 0;DQ = wdata&OxOl; delay_18B20(10);DQ = 1; wdata»=l;) read_temp () /*读取温度值并转换*/uchar a, b;dsl820rst ();dsl820wr (Oxcc) ; *跳过读序列号*/ dsl820wr(0x44) ;*启动温度

25、转换*/ dsl820rst ();dsl820wr (Oxcc) ;*跳过读序列号*/ dsl820wr (Oxbe) ;*读取温度*/ a=dsl820rd();b=dsl820rd();tvalue=b;tvalue«=8;tvalue=tvalue a;if (tvalue<0x0fff) tflag=O;elsetvalue=tvalue+l;tflag=l;)tvalue=tvalue*(O. 625),/温度值扩大10倍,精确到1位小数 return(tvalue);)/ /百度文库-让每个人平等地提升自我:(口呵 pF:(9gXQ)lUOO-JA:(0产)”pF

26、:(P8X0)iuoo-jm:(W4S)KBdSp 9SP :(£JElS)XPdSTp (I=O)JT:(08X0)uioLjm _ )(40 auin)iunoo-A9 piOA(可藤中止皆 :(£R”PS1P)”pm :(b+gox()uiodM草麻中也智 :(9疗0)转PM:(步+KOX0)UIO0_JM玛H瞥:(SeWsTP):("£Jxo)uioLm玛4圣普:(【FIRPSIP)2即一工打:4+Zoxo)wom玛旦丝智:(OR”PsP)”p一工治 :(卜+1。*0)3。一工治可台场当者:GRP的W工即一工外 :什+0。、0) 3。一工外空皆土

27、印0 k玛+ 0%可旦雷斯:。强o二【piDpsip) (O£xo=lpppsip)ji 坐皆比 '0 M玛目青厮:0萧0=oRiRpsip (O£XO=Oeiepsip)jpi一:各野当智匍理不:PaX07叩演"J各劫坐皆土匍喋31: OSXopSPIJ-J2)J!玛麻中 - 0£X0+01anDAk £ Djpps 卬 麻玛 :0£X0+01/001%anRA)= 口 eWSTp 麻孙 47/: 0£X0+00l/0001%anRAH 口 p”ps!p 麻玛旦 - 0£'0+0001/3网/2=

28、0 eiepsip:4.ppSp-j jpqon)当省身匍理()dsiP0Z81sp piOAif(keyadd=O)delaylms(5);if (keyadd=O)(if(ok=l) set_hightemp+; else set_lowtemp+; while (!keyadd);)else if (keydel=O)delaylms(5);if(keydel=O)(if(ok=l) set_hightemp;else set_lowtemp;while(Jkeydel);)void keyboard()(char ok=0;/if (p=0) set_hightemp=tvalue/10, set_lowtemp=tvalue/10;if (keyok-0)(delaylms (5);if (keyok-0)(ok+;while(Ikeyok);p-l;while(ok=l)(aa0=set_hightemp/10+0x30;aal=set_hightemp%10+0x30;key_count(1);if(keyok=0)delaylms(5);if(keyok=0)百度文库-让每个人平等地提升自我ok+;

温馨提示

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

评论

0/150

提交评论