DS18B20温度恒定上下限可调报警器汇总_第1页
DS18B20温度恒定上下限可调报警器汇总_第2页
DS18B20温度恒定上下限可调报警器汇总_第3页
DS18B20温度恒定上下限可调报警器汇总_第4页
DS18B20温度恒定上下限可调报警器汇总_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、目录内容提要1关键字1引言1二、设计方案 2 21 设计任务和要求 22 2 方案辩证 31 温度计软件设计流程图 32 元器件的选取 4 3系统最终设计方案 4三、设计方案的总体设计框图 43 1 硬件电路框图 43 2 硬件电路概述 533 主控电路 534 显示电路 635 报警温度调节电路 736温度传感器及 DS18B20测温原理 7 3.7 升降温调节电路 7四、系统软件算法设计 84.1 主程序 9 42 读出温度子程序 94. 3 温度转换命令子程序 1044 计算温度子程序 104 5 显示数据刷新子程序 10 4 6 1602 的液晶显示 10五、软件仿真 10 5 1 系

2、统仿真设计 11 5 2系统仿真原理图 13 5 2系统原理图 14结与体会 15 附录 15 一【内容摘要】 随着时代的进步和发展,单片机技术已经普及到我们生活,工 作,科研,各个领域,已经成为一种比较成熟的技术 ,单片机具有体积小、功耗 低、控制功能强、 扩展灵活、微型化和使用方便等优点, 广泛应用于仪器仪表中, 结合不同种类的传感器,可实现诸如电压、湿度、温度、速度、硬度、压力等的 物理量的测量。本文将介绍一种基于单片机控制理论及其应用系统设计的数字温 度计。本文主要介绍了一个基于 AT89C51单片机的测温系统, 详细描述了利用数字 温度传感器 DS18B20 开发测温系统的过程,重点

3、对传感器在单片机喜爱的硬件 连接,软件编程以及各模块系统流程进行了详尽分析, 对各部分的电路也进行一 一介绍,该系统可以方便的是实现温度采集和显示, 并可以根据需要任意设定上 下限报警温度,它使用起来方便,具有精度高、量程宽、灵敏度高、体积小、功 耗低等优点, 适合我们日常生活和工农业生产中的温度测量, 也可以当做温度处 理模块嵌入其他系统中,作为其他主系统的辅助扩展。 DS18B20和 AT89C51 结 合实现最简温度检测系统, 该系统结构简单, 抗干扰能力强, 适合与恶劣环境下 进行现场温度测量,有广泛的应用前景。本设计首先是确定目标,气候是各个功能模块的设计,再在 Proteus 软件

4、上 进行仿真,修改,仿真。本温度计属于多功能温度计, 可以设置上下报警温度, 当温度不在设置范围 内时,可以报警,同时根据设定的温度范围通过升降温电路控制环境的温度达到 恒温效果。【关键词】 单片机,数字控制,温度计, DS18B20,STC89C52RC【引言】 单片机技术作为计算机技术的一个分支,广泛地应用于工业控制,智能 仪器仪表,机电一体化产品,家用电器等各个领域。 “单片机原理与应用”在工科 院校各专业中已作为一门重要的技术基础课而普遍开设。学生在课程设计,毕业 设计, 科研项目中会广泛应用到单片机知识, 而且,进入社会后也会广泛接触到单 片机的工程项目。鉴于此,提高“单片机原理及应

5、用”课的教学效果,让学生参 与课程设计实习甚为重要。单片机应用技术涉及的内容十分广泛,如何使学生在 有限的时间内掌握单片机应用的基本原理及方法,是一个很有价值的教学项目。 为此,我们进行了“单片机的学习与应用”方面的课程设计,锻炼学生的动脑动 手以及协作能力。单片机课程设计是针对模拟电子技术,数字逻 辑电路,电路,单片机的原理 及应用课程的要求,对我们进行综合性实践训练的实践学习环节,它包括选择课 设任务、软件设计,硬件设计,调试和编写课设报告等实践内容。通过此次课程 设计实现以下三个目标 : 第一,让学生初步掌握单片机课程的试验、设计方法,即 学生根据设计要求和性能约束,查阅文献资料,收集、

6、分析类似的相关题目,并 通过元器件的组装调试等实践环节,使最终硬件电路达到题目要求的性能指标;通过第二,课程设计为后续的毕业设计打好基础,毕业设计是系统的工程设计实践, 而课程设计的着眼点是让学生开始从理论学习的轨道上逐渐引向实际运用,从已 学过的定性分析、定量计算的方法,逐步掌握工程设计的步骤和方法,了解科学 实验的程序和实施方法。第三,培养学生勤于思考乐于动手的习惯,同时通过设 计并制作单片机类产品,使学生能够自己不断地学习接受新知识(如在本课设题 目中存在智能测温器件 DS18B20,就是课堂环节中不曾提及的“新器件” ), 多人的合作解决现实中存在的问题,从而不断地增强学生在该方面的自

7、信心及兴 趣,也提高了学生的动手能力,对学生以后步入社会参加工作打下一定良好的实 践基础。温度可调上下限检测报警恒温设计二、设计方案21 设计务任和要求1、基本范围 -55 125 2、精度误差小于 0.5 3、LCD 数码直读显示4、可以任意设定温度的上下限报警功能22 方案辩证1 温度计软件设计流程图:开始2 元器件的选取:单片机芯片的选取:采用 89C51芯片作为硬件核心,利用 Flash ROM,内部具有 4KB ROM存 储 空间,能于3V的超低压工作,而且与 MCS-51系列单片机完全兼容 ,但是运用于电 路设计中时由于不具备 ISP在线编程技术 , 当在对电路进行调试时,由于程序

8、的 错误修改或对程序的新增功能需要烧入程序时, 对芯片的多次拔插会对芯片造成 一定的损坏。采用 STC89C52R单C 片机作为硬件核心, 该单片机指令代码完全兼容传统的8051单片机。 STC89C52R的C工作电压为 序存储器 flash 容量为 8KB,随机存储器 度控制系统的要求。综上所述:本课设中单片机芯片采用5.5-3.4V ,工作频率范围 0-80MHz,程RAM空间为 512 字节,完全满足设计温STC89C52R。C温度传感器的选取 :方案一: 采用热敏电阻传感器。 利用热敏电阻随温度变化而显著变化, 能直接将温度 的变化转换为能量的变化, 进而制成温度计。 但是其测温传感器

9、比较复杂, 而且 不易通过编制程序来控制测温精度,增大系统设计的难度。方案二:采用 DS18B20温度传感器。 DS18B20的内部 3 脚(或 8 脚)封装;使用特 有的温度测量技术,将被测温度转换成数值信号; 3.0 5.5V 的电源供电方式和 寄生电源供电方式; ROM由 64 位二进制数字组成,共分为 8 个字节; RAM由 9 个字节的高速暂存器和非易失性电擦写 ROM组成。综上所述:温度传感器选取智能测温器件 DS18B20。 本设计显示电路采用 1602 液晶显示模块芯片。3 系统最终设计方案:综上各方案所述 , 对此次课设的方案选定 : 采用 STC89C52RC作为主控制系统

10、 ; 1602液晶显示模块芯片作为温度数据显示装置 ; 而智能温度传感器 DS18B20器件 作为测温电路主要组成部分。至此,系统最终方案确定。三、设计方案的总体设计框图 温度计电路设计总体设计方框图如图所示,控制器采用单片机 STC89C52RC, 温度传感器采用 DS18B20,用 1602 液晶显示屏以串口传送数据实现温度显示。3.1 硬件电路框图 :图 总体设计方框图3.2 硬件电路概述 : 系统由单片机最小系统、显示电路、按键、温度传感器等组成。本电路是由 STC89C52R单C 片机为控制核心,具有与 8051 系列单片机完全兼容,程序加密等功能, 8KB字节可编程闪存,工作电压范

11、围为 2.7 6V,全静态工作频率为 024MHZ;显示电路由 1602 液晶显示模块芯片,可以进行多行显 示;温度报警按键设为五个,可以显示华氏温度,调节高低报警温度;温度传感 器电路主要由 DS18B20测温器件构成, 该器件主要功能有: 采用单总线技术; 每 只 DS18B20具有一个独立的不可修改的 64 位序列号;低压供电,电源范围为 3 5V;测温范围为 -55 +125,误差为 0.5 ;复位电路是 10K电阻构成的上 电自动复位。3.3 主控电路单片机 STC89C52RC具 有低电压供电和体积小等特点, 四个端口只需要两个 口就能满足电路系统的设计需要, 很适合便携手持式产品

12、的设计使用系统可用二 节电池供电。晶振采用 12MHZ。复位电路采用上电加自动复位。主控芯片 8051晶振电路复位电路3.4 显示电路本设计显示电路采用 1602液晶显示模块芯片, 该芯片可现实 16x2 个字符,比 以前的七段数码管 LED 显示器在显示字符的数量上要多得多。另外,由于 1602 芯片编程比较简单,界面直观,因此更加易于使用者的操作和观测。1602A 芯片的接口信号说明图 液晶显示电路35报警温度调节电路本系统一共设置了四个按键, K1 键只是按一下上限报警温度加 1,松开后 恢复显示正常温度, K2 键按一下上限报警温度减 1,松开后恢复显示正常温度, 当调节的上限报警温度

13、与环境实际的温度相比, 环境实际温度高于上限报警温度 时系统会出现声音报警及灯光警示,同理, K3 ,K4 的调节方法一样,当环境实 际温度低于下限报警温度时,系统出现报警报警点调节电路3.6 温度传感器及 DS18B20测温原理64 位 ROM的结构开始 8 位是产品类型的编号, 接着是每个器件的惟一的序 号,共有 48位,最后 8位是前面 56位的 CRC检验码,这也是多个 DS18B20可以 采用一线进行通信的原因。温度报警触发器 TH和 TL,可通过软件写入户报警上 下限。DS18B20 温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的 EERA。M高速暂存 R

14、AM的结构为 8 字节的存储器,结构如图 4 所 示。头2个字节包含测得的温度信息, 第3和第 4字节TH和TL的拷贝,是易失 的,每次上电复位时被刷新。第 5 个字节,为配置寄存器,它的内容用于确定温 度值的数字转换分辨率。 DS18B20工作时寄存器中的分辨率转换为相应精度的温 度数值。该字节各位的定义如图 5 所示。低 5 位一直为 1,TM是工作模式位,用 于设置 DS18B20在工作模式还是在测试模式, DS18B20出厂时该位被设置为 0, 用户不要去改动, R1和 R0决定温度转换的精度位数,来设置分辨率。 DS18B20的测温原理是这这样的 , 器件中低温度系数晶振的振荡频率受

15、温度的影 响很小,用于产生固定频率的脉冲信号送给减法计数器 1;高温度系数晶振随温 度变化其振荡频率明显改变, 所产生的信号作为减法计数器 2的脉冲输入。 器件 中还有一个计数门,当计数门打开时, DS18B20就对低温度系数振荡器产生的时 钟脉冲进行计数进而完成温度测量。 计数门的开启时间由高温度系数振荡器来决 定,每次测量前,首先将最低温所对应的一个基数分别置入减法计数器1、温度 寄存器中,计数器 1 和温度寄存器被预置在最低温所对应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数, 当减法计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,减法计数器 1

16、的预置将重新被装入, 减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数, 如此循环直 到减法计数器计数到 0 时,停止温度寄存器的累加, 此时温度寄存器中的数值就 是所测温度值。 其输出用于修正减法计数器的预置值, 只要计数器门仍未关闭就 重复上述过程,直到温度寄存器值大致被测温度值。测温电路3.6 升温、降温控制电路加温电路 系统在检测到当前温度低于设定的下限值时,在报警器启动报警同时,升温 电路开始工作, 使得 Q2 三极管导通, 继电器 RL1 吸合加热灯开始点亮加热, 起 到升温的效果,此时升温指示灯点亮,表示升温系统开始工作。降温电路系统在检测到当前温度超高设定的上限值

17、时,在报警器启动报警同时,降温 电路开始工作,使得Q3三极管导通,继电器RL2吸合风扇开始吹风, 起到降温 的效果,此时降温指示灯点亮,表示降温系统开始工作。四、系统软件算法设计整个系统是由硬件配合软件来实现的, 在硬件确定后, 编写的软件的功能也就基本定型了。 所以软件的功能大致可分为两个部分: 一是监控, 这也是系统的核心部分,二是执行部分,完成各个具体的功能。系统程序主要包括主程序,读 出温度子程序,温度转换命令子程序, 计算温度子程序, 显示数据刷新子程序等。 4.1 主程序主程序的主要功能是负责温度的实时显示、 读出并处理 DS18B20的测量的当 前温度值,温度测量每 1s 进行一

18、次。这样可以在一秒之内测量一次被测温度, 其程序流程见图所示。发 DS18B20 复位命令图 2 读温度流程图图 1 主程序流程图CRC4.2 读出温度子程序 读出温度子程序的主要功能是读出 RAM中的 9 字节,在读出时需进行 校验,校验有错时不进行温度数据的改写。其程序流程图如图示图 温度转换流程图4.3 温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令, 当采用 12 位分辨率时转换时间约为 750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。 温度转换命令子程序流程图如上图,图 9 所示4.4 计算温度子程序 计算温度子程序将 RAM中读取值进行 BCD码

19、的转换运算,并进行温度值正负 的判定,其程序流程图如图所示。图 计算温度流程图图 显示数据刷新流程图4.5 显示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作, 当最 高显示位为 0 时将符号显示位移入下一位。程序流程图如图。1602液晶显示流程图4.6 1602 的液晶显示五、软件仿真5.1 系统仿真设计本设计是在 Proteus 环境下进行仿真的,仿真所用到的器件有:单片机 AT89C51,DS1820温度传感器,蜂鸣器,液晶显示器,一些电阻,电容等。仿真结果如下:显示器显示传感器温度5.2 系统仿真原理图5.3 系统原理图六、总结与体会#include #i

20、nclude #define uint unsigned int#define uchar unsigned charsbit DQ=P23;/ds18b20与单片机连接口 sbit RS=P25;sbit RW=P26;sbit EN=P27;uchar data disdata5;uint tvalue,CurrentT=0;/ 温度值 uchar tflag;/温度正负标志 #define LCD_BUS P0sbit SetKey = P22;sbit UpKey = P21; sbit DnKey = P20; sbit BEEP = P24;sbit Heat sbit Cool=

21、 P10;= P11;unsigned char AlarmTempLow=10,AlarmTempTop=40,Set=0,NG=0;void delayms(uint ms)/延时 xx 毫秒uchar i;while(ms-) for(i=0;i0;i-)DQ H 0- daVVHl -CD H - - =ss=k(dq)dafll0x80;desryJI8B2ouo=raum(da);void dsl820wr(uchar wdasr)rw達a*_ 宀unsigned char -Ho-fo 二亓 8 二 V5?!)宀DQDQ H wdasreooxol;desryJI8B2ouo=D

22、Q +wdasrVVHl ;unsigned inf ReadlTemperaure(void=s*/宀uchar pbd 叟 820ra(=d 叟 820wr(0xcc)w漠KSHI旦4n丄 d叟82OWI-OX44)诗诃劇餡岡二 d 叟 820ra(= d 叟 820wr(0xcc)w漠KSHI旦4n丄 d 叟 820wr-(0xbe)w*s丄 and 叟 820rd(= bud 叟 8203(= fva-ueub fva-ueccuo? fva-uelva-ue-a; if(fva-uecoxofff) ffsrguo; e-se 宀 fva-ueva-ue-M nfsrgHl fva_

23、uelva_ue*(0625)wag 血芳”亠0 迤譴蛊la、達0cs35H?m-CQ-raum(fva-ue);void Display_Temperature() /显示温度uchar flagdat;disdata0=tvalue/1000+0x30;/百位数 disdata1=tvalue%1000/100+0x30;/十位数 disdata2=tvalue%100/10+0x30;/个位数 disdata3=tvalue%10+0x30;/小数位if(tflag=0) flagdat=0x20;/正温度不显示符号else flagdat=0x2d;/负温度显示负号 :-/if(dis

24、data0=0x30)/ disdata0=0x20;/如果百位为 0,不显示/ if(disdata1=0x30) disdata1=0x20;/如果百位为 0,十位为 0 也不显 示/if(tflag=1)writeChar(10,0,flagdat);/wr_com(0x8a);wr_dat(flagdat);/ 显示符号位 writeChar(11,0,disdata0);/wr_com(0x8b);wr_dat(disdata0);/显示百 位writeChar(12,0,disdata1);/wr_com(0x8c);wr_dat(disdata1);/显示十 位writeChar

25、(13,0,disdata2);/wr_com(0x8d);wr_dat(disdata2);/显示个 位writeChar(14,0,0X2E);/wr_com(0x8e);wr_dat(0x2e);/显示小数点 writeChar(15,0,disdata3);/wr_com(0x8f);wr_dat(disdata3);/ 显示小数位else writeChar(10,0,disdata0);/wr_com(0x8a);wr_dat(disdata0);/显示百 位writeChar(11,0,disdata1);/wr_com(0x8b);wr_dat(disdata1);/显示十 位

26、writeChar(12,0,disdata2);/wr_com(0x8c);wr_dat(disdata2);/显示个 位writeChar(13,0,0X2e);/wr_com(0x8d);wr_dat(0x2e);/显示小数点 writeChar(14,0,disdata3);/wr_com(0x8e);wr_dat(disdata3);/显示小 数位void SetFun(void)unsigned char i1=0,i2=0,i3=0,i4=0,i5=0,i6=0; if(SetKey=0)delayms(20); if(SetKey=0) if(Set);writestring(

27、8,1, );break; case 2: writestring(0,1, );writestring(8,1,);break; while(SetKey=0);if(UpKey=0)&(Set!=0)delayms(20);if(UpKey=0)switch(Set)case 1: if(AlarmTempLow99) AlarmTempLow+;else AlarmTempLow=99; break;case 2: if(AlarmTempTop0) AlarmTempLow-;else AlarmTempLow=0; break;case 2: if(AlarmTempTop0) Al

28、armTempTop-;else AlarmTempTop=0; break;i1= AlarmTempLow/100;/获得温度值的百位i2= AlarmTempLow%100/10;/获得温度值的十位/获得温度值的百位/获得温度值的十位/获得温度值的个位i3= AlarmTempLow%10;/获得温度值的个位i4= AlarmTempTop/100;i5= AlarmTempTop%100/10;i6= AlarmTempTop%10;writestring(5,1, ); writestring(13,1, ); if(i1!=0) writeChar(5,1,i1+0); if(i1=0)&(i2!=0) writeChar(5,1,i2+0); if(i1!=0) writeChar(6,1,i2+0); if(i1=0)&(i2=0) writeChar(5,1,i3+0); else if(i1=0)&(i2!=0)writeChar(6,1,i3+0);if(i1!=0) writeChar(7,1,i3+0);if(i4!=0) writeChar

温馨提示

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

评论

0/150

提交评论