基于DS18B20的温度检测系统.doc

上传人:精*** 文档编号:1131239 上传时间:2024-09-14 格式:DOC 页数:24 大小:609.04KB
下载 相关 举报
基于DS18B20的温度检测系统.doc_第1页
第1页 / 共24页
基于DS18B20的温度检测系统.doc_第2页
第2页 / 共24页
基于DS18B20的温度检测系统.doc_第3页
第3页 / 共24页
基于DS18B20的温度检测系统.doc_第4页
第4页 / 共24页
基于DS18B20的温度检测系统.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、班级:测控1081班 姓名:周阳 学号:34 课题:温度检测系统 测控系统原理与设计课程设计报告课题:温度检测系统班级 测控1081班 学号 1081203134 学生姓名 周 阳 指导教师 庄立运 鲁庆 淮阴工学院电子与电气工程学院2011年12月一、 绪论1.1 课题来源温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一,同时它也是一种最基本的环境参数。人民的生活与环境温度息息相关,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,在电力、化工、石油、冶金、机械制造、大型仓储室、实验室、农场塑料大棚甚至

2、人们的居室里经常需要对环境温度进行检测,并根据实际的要求对环境温度进行控制。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行。炼油过程中,原油必须在不同的温度和压力条件下进行分流才能得到汽油、柴油、煤油等产品;没有合适的温度环境,许多电子设备不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。可见,研究温度的测量具有重要的理论意义和推广价值。随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日益突出,成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生

3、产和日常生活的各个领域。本设计就是为了满足人们在生活生产中对温度测量系统方面的需求。本设计要求系统测量的温度的点数为4个,测量精度为0.5,测温范围为-20+80。采用液晶显示温度值和路数,显示格式为:温度的符号位,整数部分,小数部分,最后一位显示。显示数据每一秒刷新一次。1.2 课题研究的意义21世纪科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了巨大的变化,我们已经进入了高速发展的信息时代,测量技术也成为当今科技的主流之一,被广泛地应用于生产的各个领域。对于本次设计,其目的在于:(1)掌握数字温度传感器DS18B20的原理、性能、使用特点和方法,利用C

4、51对系统进行编程。(2)本课题综合了现代测控、电子信息、计算机技术专业领域方方面面的知识,具有综合性、科学性、代表性,可全面检验和促进学生的理论素养和工作能力。(3) 本课题的研究可以使学生更好地掌握基于单片机应用系统的分析与设计方法,培养创新意识、协作精神和理论联系实际的学风,提高电子产品研发素质、增强针对实际应用进行控制系统设计制作的能力。1.3国内外现状及水平传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。温度传感器的发展大致经历了以下三个阶段:传统的分立式温度传感器(含敏感元件);模拟集成温度传感器控制器;数字温度

5、传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展,同时具有抑制串模干扰能力强、分辨力高、线性度好、成本低等优点。随着我国四个现代化和经济发展,我国在科技和生产各领域都取得了飞速的发展和进步,发展以温度传感器为载体的温度测量技术具有重大意义。二、 总体方案设计2.1 方案介绍本该方案使用了AT89C51单片机作为控制核心,以智能温度传感器DS18B20为温度测量元件,采用多个温度传感器对各点温度进行检测,通过44键盘模块对正常温度进行设置显示电路采用12864 LCD模块,使用LM386作为报警电路中的功率放大器。 如图2.1为系统总体框图。 图2.1 基

6、于数字温度传感器测量系统框图本课题采用数字温度传感器DS18B20作为测为测温元件,它具有如下特点:(1)只要求一个端口即可实现通信。(2)在DS18B20中的每个器件上都有独一无二的序列号。(3)实际应用中不需要外部任何元器件即可实现测温。(4)测量温度范围在55C到125C之间。(5)数字温度计的分辨率用户可以从9位到12位选择。(6)内部有温度上、下限告警设置。三、硬件电路设计3.1测温电路DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出北侧温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方

7、式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5V;零待机功能;温度以9或12位数字量读出;用户可定义的非易失性温度报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图3.1所示。图3.1 DS18B20内部结构图64位ROM的位结构如图3.2所示。开始8位是产品类型的编号,接着是每个器件的惟一

8、的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。非易失性温度报警器触发器TH和TL,可通过软件写入户报警上下限。图3.2 64位ROM结构图DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图3.3所示。头2个字节包含测得的温度信息,第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。 DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义

9、如图3.4所示。低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要改动,R1和R0决定温度转换得精度位数,即用来设置分辨率,定义方法见表1。图3.3 高速暂存RAM结构图图3.4 配置寄存器表1 DS18B20分辨率的定义规定由表1可见,DS18B20温度转换的时间比较长,而且设定的分辨率越高,所需要的温度转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6,7,8字节保存未用,表现为逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20

10、接收温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。单片机可以通过单线接口读出数据,读数据时低位在先,高位在后,数据格式以0.0625/LSB形式表示。温度值格式如图3.5所示。图3.5 温度数据值格式当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码转换为原码,再计算十进制。表2是一部分温度值对应的二进制温度数据。表2 DS18B20温度与测得值对应表在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机根据ROM的前56位来计算CR

11、C值,并和存入DS18B20的CRC值作比较,以判断主机收到ROM数据是否正确。DS18B20的测温原理如图3.6所示。图中第温度系数晶振的震荡频率受温度的影响很小,用于产生固定频率的脉冲送给减法计数器1;高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入.图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数震荡器产生的时钟脉冲计数,进而完成温度测量。计数门的开启时间由高温度系数震荡器来决定,每次测量前,首先将-55所对应的一个基数分别置入减法计数器1,温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1所对低温度系数

12、晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将被重新装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。图3.6中的斜率累加器用于补偿和修正测温过程中的非线形性,其输出用于减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被预测值。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要,系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20发RO

13、M功能命令发存储器操作命令处理数据。图3.6 DS18B20测温原理图DS18B20与单片机的接口电路 DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.7所示.单片机端口接单线总线,为为保证有效DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。图3.7 DS18B20采用寄生电源的电路图当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD和GND端均接地。由于单线制只有一根线,因

14、此发送接口必须是三态的。3.2键盘电路设计3.2.1 行列式键盘与单片机接口电路根据本设计需要,本系统采用了44键盘实现对温度值和功能键的设定。行列式键盘与单片机的接口电路如图3.8所示,H0-H3为行线,接单片机P2口的高4位,L0-L3为列线,接单片机P2口的低4位。初始化时键盘行线为高电平,列线为低电平。图3.8 44键盘结构3.2.2 键盘面板键盘面板如图3.9所示,本系统使用的键盘有10数字键,5个功能按键。在系统启动时,先按“设置”键,然后按相应的数字键,按“左移”或者“右移”键改变其他温度的值。按“确认”键之后系统正式启动。系统在运行过程之中可以通过按“重新设置”键,对温度重新进

15、行设置。 图3.9 键盘面板3.3显示电路设计3.3.1 LCD引脚分布及功能12864液晶显示屏共有20个引脚,其引脚名称及引脚编号的对应关系如图3.10所示:图3.10 12864液晶显示模块引脚分布图3.3.2单片机与图形液晶的接口电路 LCD与单片机的接口电路如图3.11所示:图3.11 LCD与单片机的接口电路3.4报警电路设计图3.12 报警器电路本系统设计中有报警器,使用LM386作为报警器的功率放大器,如图3.12所示。LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点。LM386的输入端接单片机的引脚P3.4,输出端接

16、扬声器。当实际温度超过设置的温度值时,单片机引脚输出一定频率的信号,信号经过音频功放放大后,发出报警声。 四、软件设计4.1 主程序 主程序先对系统资源进行初始化,调用LCD显示子程序,显示启动画面。然后进入键盘设置界面。当设置键按下后,开始设置各点的温度,设置完之后,如果确认键按下,则系统开始工作。首先调用DS18B20初始化子程序,再发送ROM命令,读取DS18B20转换的温度值。当读取的温度大于设置的温度值时,报警器开始报警,LCD显示温度的实际值、设置值、路数、状态。接下来对第二、三、四路温度进行采集,处理,显示。主程序流程如图4.1所示:4.1 主程序流程图4.2 子程序 4.2.1

17、 DS18B20程序流程设计 由上一章单片机对DS18B20的控制方法,设计出如下程序流程: 图4.2 写命令子程序流程图 图4.3 DS18B20复位子程序流程图 图4.4 DS18B20读温度子程序流程图 4.2.2 显示程序流程显示是实现人机对话的重要部分,在这里选用12864LCD显示器可实现对汉字、字符和图片的显示, LCD的引脚功能在上面已经做了说明,下面是其相关指令的介绍。根据上面指令结合系统要实行的功能,其显示子程序流程如图4.5所示。 图4.5 显示子程序流程图4.2.3 键盘程序流程键盘中断程序是用来设在系统起动时各环境温度的极值,其程序流程图如图4.6所示:图4.6 键盘

18、程序流程五、系统仿真调试5.1 Proteus仿真环境介绍Proteus是英国Labcenter electronics公司研发的EDA设计软件, 是一个基于ProSPICE混合模型仿真器的,完整的嵌入式系统软、硬件设计仿真平台。 Proteus不仅可以做数字电路、模拟电路、数模混合电路的仿真,还可进行多种CPU的仿真,涵盖了51、PIC、AVR、HC11、ARM等处理器,真正实现了在计算机上从原理设计、电路分析、系统仿真、测试到PCB板完整的电子设计,实现了从概念到产品的全过程。下面介绍一下PROTEUS的编辑环境。(1)工作界面Proteus ISIS的工作界面是一种标准的Windows界

19、面,如图5.1所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。 图5.1 Proteus ISIS的工作界面(2) 主菜单PROTEUS包括File、 Edit、View等12个菜单栏,如图5.2所示。每个菜单栏又有自己的菜单,PROTEUS的菜单栏完全符合WINDOWS操作风格。图5.2 Proteus ISIS的菜单栏(3) 工具栏工具栏包括菜单栏下面的标准工具栏和图5.1右边的绘图工具栏,标准工具栏的内容与菜单栏的内容一一对应,绘图工具栏有丰富的操作工具,选择不同的按纽会得到不同的工

20、具。5.3程序加载5.3.1 程序编译(1)启动KEIL,选择Project-New Project,在弹出的对话框中输入工程的名字,点击保存;选择ATMEL公司的AT89C51单片机。图5.3 系统电路原理图(2)在Source Group 1上点击右键,选择“Add Files to Group Source Group 1 ”,把所有的源文件加进来。(3)点击Project-Build target或者使用快捷键F9,编译工程。当Output Windows中提示“0 Error”时,则程序编译成功,生成可执行文件1.HEX。5.3.2 程序加载在编辑环境中双击AT89C51,在弹出的对

21、话框中将编译生成可执行文件1.HEX加载进芯片中,设单片机的时钟工作频率为12MHZ。5.4 系统仿真图(1)系统仿真图如下:5.3 系统仿真图(2)温度值的设定设置温度时,先点“设置”键,然后点击键盘上的按键输入温度;如果温度设置完毕,点击“确认键” ,则系统启动成功并开始对各个环境的温度进行测量。在设置过程之中可以通过“左移”或者“右移”按键对各个温度值进行设定,如图5.4和图5.5所示。图5.4 设置温度 图5.5 设置各个环境的温度 (3)系统运行系统运行之后,DS18B20开始对环境进行测量,将环境的实际的温度显示在液晶屏上,同时液晶显示屏还显示环境温度的路数、事先设置的温度值和状态

22、。当实际温度值低于或者等于设置温度值时,将显示“正常” ,否则将显示“报警” ,同时报警器开始报警。在系统运行过程之中,如果需要重新对温度值进行设定,则点击“重新设置”按键,重新设置各个环境温度的正常值的极值。在PROTEUS仿真过程之中,可以通过调节DS18B20的面板上的“”或者“” 。 图5.6 第1路仿真结果 图5.7 第2路仿真结果图5.8 第3路仿真结果 图5.9 第4路仿真结果六、总结本次设计的基于DS18B20的多点温度测量系统是一种分布式的温度测量系统,它可以远程对温度实现测量和监控,广泛应用于电力工业、煤矿、森林、火灾、高层建筑等场合。系统采用单总线技术,按照DS18B20

23、的通信协议,由主机向DS18B20发送命令,读取DS18B20转换的温度,从而实现对多个环境的温度的测量。当温度超过一定的值时,报警器开始报警。通过这次课程设计期间使我对单片机课上所学到的知识有了更深的认识,并且把我们平时在电子这一方面所学到的知识有了一个综合的运用,使我们真正的从实践掌握了80C51的各方面的知识。首先,我分配到的课程设计的课题是“温度检测系统”的设计,拿到课题当时,我是一脸茫然,根本就不知道应该从何开始下手,开始的时候我首先收集关于这方面的资料,经过努力的查询,我找到了和课题相关的设计方案,经过一段时间的研究,终于对课题有了初步的了解和想法。接下来的几天我仍然是学习关于这次

24、课程设计中所用到的各个芯片,和对于整个课题的设计方法和思路,最后,终于确定了实际方案。然后我就开始编写所用到程序,画粗略的电路图,编写程序的流程图。当然初次的程序存在很多的错误,通过仔细的检查,终于完成了,并且通过报告的形式写出来。参考文献1刘湘涛、江世明.单片机原理与应用M .北京:电子工业出版社,2006:137-145.2何立民.单片机中级教程M.北京:北京航空航天大学出版社,1999:200210.3周润景、袁伟亭、景晓松.PROTEUS在MCS-51&ARM7系统中的应用百例M . 北京:电子工业出版社,2006:167183.4李华.MCU-51系列单片机实用接口技术M,北京:北京

25、航空航天大学出版社,1993.6.5周澜景.基于PROTEUS的电路与单片机系统设计与仿真M. 北京:北京航空航天大学出版社,2006:98-102.6高吉祥.全国大学生电子设计竞赛培训系列教程M. 北京:电子工业出版社,2007:202-210.7王卫平.电子工艺基础M .北京:北京:电子工业出版社, 2007:136-145.8http:/cn.ic-on-9 ,2008-4-12.附录部分系统程序如下所示:(1)LCD图片显示子程序void Disp_Img (unsigned char code *img) unsigned char j,k; for(k=0;k8;k+)left()

26、;Delay(10); write_com(Page_Add+k); write_com(Col_Add+0); for(j=0;j64;j+) write_data(imgk*128+j); right()write_com(Page_Add+k); write_com(Col_Add+0); for(j=0;j64;j+) write_data(imgk*128+64+j); (2)LCD 写16*16汉字子程序void Disp_Chinese(unsigned char pag,unsigned char col, char code *hzk) unsigned char j=0,i=0;for(j=0;j2;j+)write_com(Page_Add+pag+j);write_com(Col_Add+col);for(i=0;inum2) flag7=1; else if(zhen_temp2num3) flag7=1;else flag7=0; goto next; flag5=0; ds18b20_writecommand(0x44);delay(250);match_rom(ds18b20_num2); ds18b20_writecommand(0xbe); for(i=0;i2;i+) tempi=Ds18b20_Readdata(); 23

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922