硬件设计与制作课程设计18B20温度传感器.doc

上传人:laozhun 文档编号:2883645 上传时间:2023-03-01 格式:DOC 页数:28 大小:1.55MB
返回 下载 相关 举报
硬件设计与制作课程设计18B20温度传感器.doc_第1页
第1页 / 共28页
硬件设计与制作课程设计18B20温度传感器.doc_第2页
第2页 / 共28页
硬件设计与制作课程设计18B20温度传感器.doc_第3页
第3页 / 共28页
硬件设计与制作课程设计18B20温度传感器.doc_第4页
第4页 / 共28页
硬件设计与制作课程设计18B20温度传感器.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《硬件设计与制作课程设计18B20温度传感器.doc》由会员分享,可在线阅读,更多相关《硬件设计与制作课程设计18B20温度传感器.doc(28页珍藏版)》请在三一办公上搜索。

1、编号: 实训(论文)说明书题 目: 18B20温度传感器 院 (系): 应用科技学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师: 2011年 07月07日摘 要随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于89S51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高

2、、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89S52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。关键词:单片机;温度检测;AT89S52;DS18B20;Abstractwith the progress of The Times and development, microcontroller technology has spread to our life, work, scientific re

3、search and each field, and has already become a mature technology, this paper mainly introduces a S51 based on the 89 chip temperature measurement system, detailed descriptions of the use of digital temperature sensor DS18B20 development process of temperature measuring system, focus on the sensor c

4、hip in the hardware connection, software programming and the module system flow for a detailed analysis of the various parts of the circuit is introduced one, the system easy to realize the temperature gathering and display, and but according to need any set upper temperature alarm, it USES up quite

5、 convenient, high precision and wide range, high sensitivity, small volume, low power consumption advantages, suitable for our daily life and work, agriculture of temperature measurement, also can be used as temperature processing module embedded in the system, as other other main auxiliary system e

6、xpansion. DS18B20 and implement the best combination AT89S52 temperature testing system, the Jane system structure is simple, strong anti-jamming capability, suitable for harsh environment on the site, temperature measurement has wide application.Keywords: SCM52; Temperature detection; AT89S52 devic

7、es; DS18B20;目 录1. 引言 12.设计要求22. 方案设计及论证221方案一:热敏电阻 222方案二:采用数字温度芯片DS18B20 33. 各电路设计及论证 431主控制器 53.1.1方案一:采用PC机实现 63.1.2方案二:使用单片机 732显示电路 83.2.1方案一:采用七段LED数码显示 93.2.2 方案二:采用SMCI602A液晶显示模块芯片 103. 3温度传感器的选择 11 3.3.1 方案一:采用热敏电阻 113.3.2 方案二:采用数字温度芯片DS18B20 114. 软件设计1241程序流程 124.1.1系统主程序流程图 124.1.2各子程序流程图

8、 125软硬件系统的调试 126附录:电路原理图 137参考文献 138. 附录141. 引言随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度

9、的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感

10、器DS18B20的结构特征及控制方法,并对以此传感器,89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。该设计控制器使用ATMEL公司的AT89S51单片机,测温传感器使用DALLAS公司DS18B20,用液晶来实现温度显示。2. 方案设计及论证2.1设计要求1. 温度范围10C到50C,温度精确到0.1C。2. 时温度测量的功能并且可以显示出来。3. 检查18B20是否接上了,若没有会提示错误。2.2总体方案设计经分析,将系统分为

11、两个部分,一个是由单片机和1602液晶组成的主控与显示部分。如图所示DS18B20温度检测电路将检测到的数据将送到单片机,单片机对接收到的数据进行处理并送到1602显示,5V稳压电源给各个部分供电。该系统实现的方法有很多种,下面将列出两种在日常生活中和工农业生产中经常用到的实现方案。系统框图如图1所示显示电路单片机电源测温电路图1 DS18B20温度测温系统框图2.3 温度检测模块的选择与论证方案一:使用热敏电阻。由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度

12、显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二:采用数字温度芯片DS18B20。采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。在0100 摄氏度时,最大线形偏差小于1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89S52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。控制工作,还可以与PC 机通信上传数据,另外AT89S52 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。以上两种方案,容易看出方案一的测

13、温装置可测温度范围宽、体积小,但是线性误差较大。方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。2.4单片机控制模块的选择论证方案一:采用XC9000系列的FPGA。该类器件具有并行处理能力,能快速的响应外部的各种数字信号,但在数据处理方面过于复杂,而且芯片价格较昂贵。 方案二:采用单片机AT89S52作为控制核心,单片机数学运算功能较强。在程序相互调用方面,处理方便灵活,性能稳定,适合实际应用。且单片机技术发展较为成熟,价格便宜。基于以上分析,采用单片机控制可更为简便灵活地实现系统功能,故拟采用方案二。2.5显示模块的选择与论证方案一:采用1286

14、4液晶模块显示测得的数据,可显示较多组的数据,字体较大,可清晰读数,但12864液晶模块价格昂贵,接线复杂,故不采用。方案二:采用1602液晶模块显示所测数据,1602液晶接线简单方便,同时也能满足显示需要,价格远低于12864液晶。因此,本方案为首选方案。综上所述,显示模块选择方案二。2.6 整体系统组成本系统硬件部分由单片机主控电路、DS18B20温度检测模块、1602液晶显示模块43部分组成,其中单片机主控电路有外接晶振,按键复位电路,电源供电电路,P0上拉电阻等部分组成。软件部分详细见下文。单片机全系统如下图2所示。图1 DS18B20温度测温系统原理图3系统电路设计3.1单片机主控电

15、路设计单片机主控模块包括了振落电路、复位电路,同时接入了各个模块的接口,保证了整个系统的灵活性。单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。这种设计方法可以降低系统设计的复杂性。控制电路的核心器件是由美国Atmel公司生产的AT89S52单片机,属于MCS-51系列。AT89S52是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥

16、有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中。 单片机主控电路原理图如下所示:图4.1 单片机主控电路原理图3.2 DS18B20温度检测模块电路设计DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。18B20共有三种形态的存储器资源,它们分别是: ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线

17、系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。 RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的

18、CRC码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。DS18B20的2管脚要接上拉电阻,但主控板上有上拉电阻,所以不用了。DS18B20温度检测模块电路原理图如下所示: 图3.2 DS18B20温度检测模块电路原理图3.3 1602液晶显示模块电路设计 1602液晶显示模块电路原理图如下所示:图3.3 1602液晶显示模块电路原理图在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要

19、是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。 在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高、数字式接口 、体积小、重量轻 、功耗低 、 1602LCD 主要技术参数: 显示容量:162 个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)mm 引脚功能说明:1602LCD 采用标准的 14脚(无背光)或 16脚(带背光)接口, 第 1 脚:VSS 为地电源。 第 2 脚:VDD接 5V正电源。 第 3 脚:VL为液晶显示器对比

20、度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 R/W共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W为低电平时可以写入数据。 第 6 脚:E端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 第 714脚:D0D7为 8 位双向数据线。 第 15脚:背光源正极。 第

21、 16脚:背光源负极。4 软件设计4.1软件设计流程图 主程序流程图 液晶显示程序流程开始开始检查18B20插上了没有是否忙碌 是是显示温度 否写指令 否写数据 设置显示位显示初始化图4。1.1 主程序流程图 图4.1.2液晶显示程序流程温度检测程序流程开始 初始化初始化是否成功否 是向18B20写字节读取温度显示温度图4.1.3温度检测程序流程 4.2 软件设计分析如果接通电源就调用温度检测程序,检查18B20是否接上了,如果接上了,单片机对18B20进行初始化,成功则读字节,再写入字节,读取温度数据送到1602显示。如果没有接上,就会再次检查,当接上18B20并且按复位键后,才会好。5.

22、系统测试5.1主要指标测试 本系统主要指标就在于所测得的温湿度的数据是否达到了题目要求,本系统测量范围为-10-50,温度测量误差为0.1,在2313测试温度为32.1度。5.2测试结果分析 通过测试,与标准仪器所测得的温度相比较,可得系统的误差为信号传输过程中可能存在误码,及误判。6 结论本温湿度计的制作基本上达到了题目要求的技术指标,温度测量范围为-10-50,温度测量误差为0.1。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在

23、生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过

24、程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。 谢 辞感谢老师对我们的指导。完成了这个实训任务,虽然结果差强人意,但是还是有进步的,有收获的。希望以后在学习生活中能继续好好学习。7. 参考文献 康华光等.电子技术基础M. 北京:高等教育出版社,2007 彭介华.电子技术课程设计指导M. 北京:高等教育出版社,2010 郭天祥.新概念51单片机C语言教程M.北京:入门、提高、开发、拓展全攻略M.电子工业出版社,2009. 黄智伟全国大学生电子设计竞赛制作实

25、训M北京:北京航空航天大学出版社,2007 黄智伟全国大学生电子设计竞赛系统设计M北京:北京航空航天大学出版社,2006 黄智伟全国大学生电子设计竞赛技能训练M北京:北京航空航天大学出版社,2007 黄智伟全国大学生电子设计竞赛电路设计M北京:北京航空航天大学出版社,2006 黄智伟全国大学生电子设计竞赛 常用电路模块制作M北京:北京航空航天大学出版社,2010 黄智伟等.基于NI multisim的电子电路计算机仿真设计与分析M北京:电子工业出版社,2007 黄智伟.印制电路板(PCB)设计技术与实践M北京:电子工业出版社,2009 高吉祥等.电子技术基础实验与课程设计M北京:电子工业出版社

26、,2002 吴运昌.模拟集成电路原理与应用M广州:华南理工大学出版社,2001 谭博学等. 集成电路原理及应用M北京:电子工业出版社,2003 魏立军.CMOS 4000系列60种常用集成电路的应用M北京:人民邮电出版社,1993 杨宝清.实用电路手册M北京:机械工业出版社.2002 陈有卿.报警集成电路和报警器制作实例M人民邮电出版,1996 附录:程序:/DS18B20温度检测及其液晶显示#include /包含单片机寄存器的头文件#include /包含_nop_()函数定义的头文件unsigned char code digit10=0123456789; /定义字符数组显示数字uns

27、igned char code Str=Test by DS18B20; /说明显示的是温度unsigned char code Error=Error!Check!; /说明没有检测到DS18B20unsigned char code Temp=Temp:; /说明显示的是温度unsigned char code Cent=Cent; /温度单位/*以下是对液晶模块的操作程序*/sbit RS=P20; /寄存器选择位,将RS位定义为P2.0引脚sbit RW=P21; /读写选择位,将RW位定义为P2.1引脚sbit E=P22; /使能信号位,将E位定义为P2.2引脚sbit BF=P0

28、7; /忙碌标志位,将BF位定义为P0.7引脚/*函数功能:延时1ms(3j+2)*i=(333+2)10=1010(微秒),可以认为是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i4;i+) for(j=0;j33;j+) ; /*函数功能:延时若干毫秒入口参数:n*/ void delaynms(unsigned char n) unsigned char i;for(i=0;in;i+) delay1ms(); /*函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙*/bit BusyT

29、est(void) bit result;RS=0; /根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1; /E=1,才允许读写 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 result=BF; /将忙碌标志电平赋给result E=0; /将E恢复低电平 return result; /*函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate*/void WriteInstruction (unsigned char dictate) while(BusyTest()=1); /

30、如果忙就等待 RS=0; /根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; E=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置0 _nop_(); _nop_(); /空操作两个机器周期,给硬件反应时间 P0=dictate; /将数据送入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=0; /当E由高

31、电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:指定字符显示的实际地址入口参数:x*/ void WriteAddress(unsigned char x) WriteInstruction(x|0x80); /显示位置的确定方法规定为80H+地址码x /*函数功能:将数据(字符的标准ASCII码)写入液晶模块入口参数:y(为字符常量)*/ void WriteData(unsigned char y) while(BusyTest()=1); RS=1; /RS为高电平,RW为低电平时,可以写入数据 RW=0; E=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让

32、E从0到1发生正跳变,所以应先置0 P0=y; /将数据送入P0口,即将数据写入液晶模块 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:对LCD的显示模式进行初始化设置*/void LcdInitiate(void) delaynms(15); /延时15ms,首次写指令时应给LCD一段较长的反应时间 WriteInstru

33、ction(0x38); /显示模式设置:162显示,57点阵,8位数据接口delaynms(5); /延时5ms,给硬件一点反应时间 WriteInstruction(0x38);delaynms(5); /延时5ms,给硬件一点反应时间WriteInstruction(0x38); /连续三次,确保初始化成功delaynms(5); /延时5ms,给硬件一点反应时间WriteInstruction(0x0c); /显示模式设置:显示开,无光标,光标不闪烁delaynms(5); /延时5ms,给硬件一点反应时间WriteInstruction(0x06); /显示模式设置:光标右移,字符不

34、移delaynms(5); /延时5ms,给硬件一点反应时间WriteInstruction(0x01); /清屏幕指令,将以前的显示内容清除delaynms(5); /延时5ms,给硬件一点反应时间 /*以下是DS18B20的操作程序 */ sbit DQ=P33;unsigned char time; /设置全局变量,专门用于严格延时/*函数功能:将DS18B20传感器初始化,读取应答信号出口参数:flag */bit Init_DS18B20(void) bit flag; /储存DS18B20是否存在的标志,flag=0,表示存在;flag=1,表示不存在 DQ = 1; /先将数据线

35、拉高 for(time=0;time2;time+) /略微延时约6微秒 ; DQ = 0; /再将数据线从高拉低,要求保持480960us for(time=0;time200;time+) /略微延时约600微秒 ; /以向DS18B20发出一持续480960us的低电平复位脉冲 DQ = 1; /释放数据线(将数据线拉高) for(time=0;time10;time+) ; /延时约30us(释放总线后需等待1560us让DS18B20输出存在脉冲) flag=DQ; /让单片机检测是否输出了存在脉冲(DQ=0表示存在) for(time=0;time200;time+) /延时足够长时间,等待存在脉冲输出完毕 ; return (flag); /返回检测成功标志/*函数功能:从DS18B20读取一个字节数据出口参数:dat*/ unsigned char ReadOneChar(void) unsigned char i=0;unsigned char dat; /储存读出的一个字节数据for (i=0;i=1; _nop_(); /等待一个机器周期 DQ = 1; /将数据线人为拉高,为单片机检测DS18B20的输出电平作准备 for(time=0;ti

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号