基于51单片机及DS18B20温度传感器的数字温度计设计_第1页
基于51单片机及DS18B20温度传感器的数字温度计设计_第2页
基于51单片机及DS18B20温度传感器的数字温度计设计_第3页
基于51单片机及DS18B20温度传感器的数字温度计设计_第4页
基于51单片机及DS18B20温度传感器的数字温度计设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

基于51单片机及DS18B20温度传感器的数字温度计设计基于51单片机及DS18b20温度传感器的数字温度计设计摘要本设计采用的主芯片为ATMEL公司的AT89S52单片机,数字温度传感器为DALLAS公司的DS18B20。 本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。 因此,此次设计的数字温度计广泛应用于工业、农业、日常生活。单片机技术已经广泛应用于社会生活的各个领域,已经成为非常实用的技术。 51单片机是最常用的单片机,而且在高中51单片机的教材是蓝皮书,51单片机优先于初学者单片机的技术人员此次设计采用的AT89S52是flash型单片机,可直接在线编程,便于在单片机上写入程序。 此次设计的数字温度计采用DS18B20数字温度传感器,DS18B20是一种可组装网络的高精度数字温度传感器,具有单总线独特的优点,用户可以简单地构建传感器网络,简单、可靠地实现多点温度测量电路本设计根据设计要求,首先设计了硬件电路,然后编制了软件流程图和程序。 本设计为多功能温度计,温度测量范围为-55至125。 用户可将温度值的分辨率设定为9-12位,可设定上下限警报温度,不在设定范围内时启动警报程序警报。 本设计的显示模块通过四位一体的数码管的动态扫描显示实现。 在实时测量温度的模式下,也可通过查询按钮查看设定的上下限警报温度。关键词:单片机,数字温度计,DS18B20,AT89S52目录1关于1 -1.1系统概述- 1 -2整个系统的方案和硬件设计- 2 -2.1整个系统的方案- 2 -2.1.1系统整体的设计框图- 2 -2.1.2各模块的概要- 2 -2.2系统硬件设计- 5 -2.2.1单片机电路设计- 5 -2.2.2 DS18B20温度传感器电路设计- 6 -2.2.3显示电路设计- 6 -2.2.4按键电路设计- 7 -2.2.5报警电路设计- 8 -3软件设计- 9 -3.1 DS18B20程序设计- 9 -3.1.1 DS18B20传感器动作流程- 9 -3.1.2 DS18B20传感器的指令表- 9 -3.1.3 DS18B20传感器的初始化程序- 10 -3.1.4 DS18B20传感器的读写程序- 10 -3.1.5 DS18B20取得温度程序流程图- 11 -3.2显示程序设计- 13 -3.3按钮编程- 13 -4实物制作与调试- 14 -5电子综合设计体验- 15 -参考文献- 15 -附带1源代码- 17 -附带2系统图- 32 -1概要1.1系统概要本系统设计的数字温度计采用DS18B20数字温度传感器测温,DS18B20直接输出数字信号,与传统温度计相比读取方便,测温范围广,测温准确,具有上下限报警功能。 其输出温度以LED数字气管表示,主要用于测温比较准确的场所。该设计控制器使用51单片机AT89S52,AT89S52单片机应用于工作控制、测量、仪表。 测温传感器是能够使用DS18B20、DS18B20来构成网络的高精度数字温度传感器,由于单总线的独特优点,用户能够简单地构筑传感器网络,简单、可靠地实现多点温度测量电路。 显示采用4位共阴极LED数字管实现温度显示,LED数字管的优点是显示数字较大,易于观察。 蜂鸣器用于实现测量温度超过设定的上下限时的警报功能。- 32 -双系统总体方案与硬件设计2.1整个系统的方案2.1.1系统整体的设计框图由于DS18B20数字温度传感器具有单总线的独特优点,用户可以简单地构建传感器网络,简单、可靠地实现多点温度测量电路,因此该设计使用DS18B20数字温度传感器来测量温度。温度计电路设计整体的设计框图如图2-1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,显示采用4位LED数字管,报警通过蜂鸣器、LED灯实现,键盘设定报警的上下限温度。图2-1温度计电路整体的设计框图2.1.2各模块的概要1 .控制模块AT89S52单片机是美国atel生产的低功耗、高性能的CMOS 8位单片机,芯片包括8kb的系统可编程Flash只读程序存储器,设备为atts 通过在单芯片上具有灵活的8位CPU和在系统中可编程的Flash,AT89S52为许多嵌入式控制应用提供了高度灵活和超高效的解决方案。AT89S52包含8k字节Flash、256字节RAM、32位I/O端口线、监视计时器、两个数据指针、三个16位计时器/计数器、一个6矢量2级中断结构、全双工串行端口、片上晶体振荡和时钟电路等at89至s 52被降级到0Hz静态逻辑操作,并且能够选择与两种软件对应的省电模式。 在空闲模式下,CPU停止工作,允许RAM、计时器/计数器、串行和中断继续工作。 在停电保护方式中,RAM的内容被保存,振荡器被冻结,单片机的所有动作停止,直至下一次中断或硬件复位。2 .显示模块显示电路采用4位的共阴LED数字管,从P0端口输出段代码,P2端口的上位4位是位选择端子。 通过动态扫描显示,可有效节省I/O端口。3 .温度传感器模块DS18B20温度传感器是美国DALLAS半导体公司新发表的改良型智能温度传感器,与现有的热敏电阻等测温元件相比,能够直接读取被检测温度,并且能够根据实际的要求通过简单的编程实现912位数字值的读取方式。 DS18B20的性能特征如下:独特的单线连接器或者仅能够通过一个端口管脚进行通信的多个DS18B20可以并行地、通过不需要的数据线来供给功率,而能够实现多点网络功能的外部设备可以并行地提供功率, 电压范围为3.05.5v的待机功率零温度以9位或12位的二进制表示。用户可以定义警报设定。警报检索指令识别超过程序限定温度(温度警报条件)的设备,进行标志的负电压特性,电源极性相反时,温度计不会因发热而烧坏,但无法正常工作DS18B20可采用三管脚TO-92封装或八管脚SO或SOP封装,其封装形式在图2-2中示出。图2-2 DS18B20封装格式DS18B20的64比特ROM结构的前8比特是产品类型的编号,其次是每设备的唯一编号,总共48比特、最后8比特是较早的56比特CRC校验码,这也是多个DS18B20能够进行一线通信的原因。 可以通过软件将温度警报触发TH和TL写入用户警报上下限。DS18B20温度传感器的内部存储器还包括高速临时RAM和非易失性电可擦除EEPRAM。 高速缓存RAM的结构是8字节的存储器,结构如图2-3所示。图2-3 DS18B20快速临时RAM配置前两个字节包含测量的温度信息,其中,第三和第四字节TH和TL的拷贝挥发,并且在每次上电复位时被刷新。 第5字节是排列寄存器,其内容是决定温度值的数字转换分辨率,DS18B20动作时的寄存器中的分辨率被转换为对应精度的温度值,该字节的各比特的定义如表2-1所示。表2-1 :寄存器的构成d7d6d4d3d1d0TMR1R011111配置寄存器的低5位始终是1,TM是操作模式位,并且用于设置DS18B20是操作模式还是测试模式的cn 10201761202 aa说明书4/14页位在DS18B20发货时将该位设置为0,并且用户必须改变以改变温度转换的精度位的数目R1和R0来设置分辨率DS18B20的分辨率越高,所需的温度数据转换时间越长。 因此,在实际应用中需要权衡分辨率和转换时间。高速缓存RAM的第6、7、8字节未使用且表现为完整逻辑1。 第九字节读取前8字节CRC码,验证数据以确保通信数据的准确性。DS18B20在接收到温度转换命令后开始转换。 转换完成后的温度值以16位符号扩展二进制补充格式存储在高速缓存的第一个和第二个字节中。 单片机可以通过单线接口读取该数据,读取数据时低位先行,高位后续,数据格式以0.0625/LSB的形式表示。在编码比特s=0的情况下,表示测定温度值为正值,在能够直接将二进制比特转换为十进制数的编码比特s=1的情况下,表示测定出的温度值为负值,因此首先将补数作为原编码,然后计算十进制值。 输出的二进制的前5位是代码位,最后的4位是温度小数点位,中间的7位是温度整数位。 表2-2是与一部分温度值对应的二进制温度数据。表2-2 DS18B20输出的温度值温度值二进制输出十六进制输出1250000 0111 1101 000007D0h850000 0101 0101 00000550h25.06250000 0001 1001 00010191h10.1250000 0000 1010 001000A2h0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000FFF8h-10.1251111 1111 0101 1110FF5Eh-25.06251111 1110 0110 1111FF6Fh-551111 1100 1001 0000FC90h当温度转换完成时,DS18B20将所测得的温度值与RAM中TH和TL字节的内容进行比较。 如果TTH或TTL,则定位该设备内的警报标志,并响应来自主机的警报搜索命令。 因此,可同时测量多台DS18B20的温度,进行警报搜索。 在64位ROM的最高位字节存储有循环冗馀校验码(CRC )。 计算主机ROM的高位56位的CRC值,将该CRC值与保存在DS18B20中的CRC值进行比较,判断主机所接收到的ROM数据是否正确。四.协调模块介绍调节模块是在4个按钮接地后立即连接到单片机的I/O端口完成的。 按钮未被按下时单片机的引脚悬空,默认为高电平,按钮被按下时相当于单片机的引脚直接接地,此时为低电平。 程序设计为低级触发器。5 .警报模块的介绍报警模块由PNP型晶体管9012驱动的5V蜂鸣器和带限流电阻的发光二极管构成。 报警时蜂鸣器间歇报警,发光二极管闪烁。2.2系统硬件设计2.2.1单片机的电路设计图2-4单片机的最小系统图单片机的最小系统由石英振荡电路、电复位、键复位电路、ISP下载接口和电源指示灯组成。 电路图如图2-4所示。2.2.2 DS18B20温度传感器电路设计DS18B20温度传感器在单总线设备和单片机的接口电路上采用供电侧。电源方式如图2-7所示,此时DS18B20的一脚接地,两脚连接信号线,三脚连接电源。图2-7 DS18B20电源供应器当DS18B20处于写存储器操作和温度A/D转换操作时,总线需要强上拉,上拉开始时间最大为10us。 采用寄生电源供电方式时,VDD侧接地。 单线制只有一条线,所以传输接口必须是三态的。2.2.3显示电路设计显示电路由四位一体的公共阴数字代码管表示,数字代码管由晶体管9013驱动。四位一体的共阴数码管的针脚分布图如图2-5所示。图2-5四位一体的共阴数码管脚分布图显示电路的总体设计如图2-6所示。图2-6显示电路2.2.4按键电路设计钥匙回路实现了调节设定警报温度的上下限、观察上下警报温度的功能。 电路图如图2-10所示。图2-10键电路图2.2.5报警电路设计报警电路是在测量温度大于上限或小于下限时提供报警功能的电路。 该电路由蜂鸣器和红色的发光二极管构成,具体的电路如图2-9所示。图2-9警报电路图3软件设计3.1 DS18B20程序设计3.1.1 DS18B20传感器动作流程根据DS18B20的通信协议,主机(单片机)需要经过三个步骤来控制DS18B20以完成温度转换每次读写时,DS18B20都会进行复位动作如果重置成功,则发送ROM命令最后发送RAM命令能够对DS18B20进行规定的操作。 复位请求表示主CPU将数据线下拉500s并释放,在DS18B20接收到信号后等待1660s左右,然后产生60240s的低脉冲,主CPU接收到该信号后复位成功。DS18B20的操作流程如图3-1所示。图3-1 DS18B20操作流程3.1.2 DS18B20传感器的

温馨提示

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

评论

0/150

提交评论