2022年单片机数字温度计毕业设计方案.docx
精品学习资源摘 要本论文介绍了一种以单片机为主的掌握器件,一种以DS18B20为温度传感器的新型数字温度计;主要包括硬件电路的设计和系统程序的编写;硬件电路主要包括主控制器,测温掌握电路和显示电路等,主掌握器采纳AT89S51 单片机,温度传感器采用美国 DALLAS半导体公司生产的DS18B20,显示电路采纳 8 位共阴极 LED 数码管, 74HC573为驱动的动态扫描显示;测温掌握电路由传感器和预制温度比较电路组成;系统程序主要包括主程序,测温子程序和显示子程序等;DS18B20新型单总线数字温度传感器是 DALLAS公司生产的单线数字温度传感器,集温度测量和A/D 转换于一体,直接输出数字量,具有接口简洁、精度高、抗干扰才能强、工作稳固牢靠等特点;由于采纳了改进型智能温度传感器DS18B20作为检测元件,与传统的温度计相 比,本数字温度计削减了外部的硬件电路,具有低成本和易使用的点特点;DS18B20 温度计仍可以在高温报警、远距离多点测温掌握等方面进行应用;关键词: STC89C5,2 DS18B20,数码管,动态显示欢迎下载精品学习资源ABSTRACTThis paper introduces a microcontrollerbased control device, a temperature sensortoDS18B20 for the new digital thermometer. Including hardware design and system procedures for the preparation. Hardware circuit includes a main controller, temperature controlcircuitand displaycircuit,themaincontrolleruses STC89C52, DALLAS Semiconductor temperature sensor used by the U.S. company's DS18B20, display circuit with eight common cathode LED digital tube, 74HC573-driven dynamic scan display. Temperature control circuit from the sensor and the pre-comparison circuit temperature. System program including the main program, subroutine, and display routines such as temperature. DS18B20 new single-bus digital temperature sensor is produced by DALLAS- wire digital temperature sensor, set the temperature measurement and A / D conversion in one, the direct output of digital content, with a simple interface, high precision, strong anti- interference ability, stable and reliable, .Asa result ofimproved temperature sensor DS18B20 as the detection of intelligent components, compared with the traditional thermometer, digital thermometer to reduce the external hardware circuitry, low costand easy to use point features. DS18B20 thermometer can also be at a hightemperature alarm,remote controlmulti-point temperature measurement applications in areas such as.Keywords: STC89C52, DS18B20, digital control, dynamic display欢迎下载精品学习资源目 录第 1 章前言 01.1 设计目标 01.1.1 前景 01.1.2 实现的可行性 01.2 设计思路 11.2.1 硬件设计思路 11.2.2 软件设计思路 2第 2 章方案论证 32.1 方案一:使用热敏电阻32.2 方案二:采纳数字温度芯片 DS18B203第 3 章各电路设计及论证 53.1 主掌握器 63.1.1 方案一:采纳 PC机实现 63.1.2 方案二:使用单片机 63.2 显示电路 93.2.1 方案一:采纳七段 LED数码显示 93.2.2 方案二:采纳 SMCI602A液晶显示模块芯片 93.3 温度传感器的挑选 103.3.1 方案一:采纳热敏电阻103.3.2 方案二:数字温度传感器 DS18B2021第 4 章软件设计 174.1 软件总体设计流程 174.2 模块设计 174.2.1 读出温度流程 174.2.2 温度处理流程 184.2.3 LED显示模块 194.2.4 整体的温度处理及显示流程 204.2 源程序 204.3 软硬件系统的调试 25结论 30参考文献 31致谢 32附录 33欢迎下载精品学习资源第 1 章 前言随着科学技术日益快速的进展,数字监控系统已经深化到生活的各个方面;数字温度计作为数字监控系统的重要组成部分发挥着极其重要的作用;它克服了接触式温度计对传感器的耐热性能要求比较苛刻的缺点,使温度计无论在使用范畴仍是测量精度上都有了长足的进步;本设计就是在这种宽阔的应用背景下应运而生的;下面就本设计的设计目标和思路进行简洁介绍;1.1 设计目标系统上电复位并初始化后,主掌握器将发出略读电可擦除只读储备器及温度转换 命令,然后执行读出温度和温度处理函数,最终用4位 LED 数码管显示温度值的百位、十位、个位及小数部分,以十进制方式显示;1.1.1 前景温度是工业中特别关键的一项物理量,在农业,现代科学讨论和各种高新技术的 开发和讨论中也是一个特别普遍和常用的测量参数;温度测量的原理主要是:将随温度变化而变化的物理参数,如膨胀、电阻、电容、热电动势、磁性、频率、光学特 性等通过温度传感器转变成电的或其他信号,传给处理电路;最终转换成温度数值显 示出来;传统的温度测量方法基本上是接触式的,主要有:热膨胀式温度计,电阻式温度计,热电偶式温度计等;这些接触式温度计的主要缺点是对传感器的耐热性能要求比较苛刻,所以对应的使用温度范畴比较有限;它们的精度也大大限制了他们的应用领域; 此外,由于这些测量方法大都是接触式的,会污染一些高纯度,高腐蚀性的测量对象;目前应用的比较广泛的非接触温度测量技术有红外非接触温度测量技术, 单总线数字式温度测量技术等等;此外,激光测量温度技术,基于彩色三基色的温度测量技术也开头成为温度测量的手段;随着科学技术的进一步进展,信任更多更先进的温度测量手段会显现并影响我们的生产、生活和社会生活的方方面面;1.1.2 实现的可行性在嵌入式系统设计中, LED 显示器是常用的显示设备之一,它具有使用便利、价格廉价、电路接口简洁等优点,因此,在嵌入式系统中被广泛使用;为了实现 LED欢迎下载精品学习资源显示器的数字显示,可以采纳静态显示法和动态显示法;由于静态显示法需要数据锁 存器等硬件,接口复杂一些,考虑到温度计显示只有4位,且系统没有其它复杂的处理任务,所以方案采纳动态扫描法实现LED 显示;主掌握器方案采纳飞思卡尔公司的 MC9S12DG128单片机,这种单片机具有足够的空余硬件资源,以便可以实现其它的扩充功能;数字温度计要求用 4位共阴极 LED 数码管显示温度值的百位、十位、个位及小数部分,以十进制方式显示;1.2 设计思路主掌握器采纳飞思卡尔公司的MC9S12DG128单片机,这种单片机具有足够的空余硬件资源,以便可以实现其它的扩充功能;利用温度传感器DS18S20 来实现测温,它可以实现 -55至+125的显示,本设计使用 4位共阴极 LED 显示,可满意该范畴内温度的显示;1.2.1 硬件设计思路硬件设计是整个系统的基础,要考虑的方方面面很多,除了实现此设计基本功能以外,主要仍要考虑如下几个因素:系统稳固度;器件的通用性或易选购性;软件编程的易实现性;系统其它功能及性能指标;因此硬件设计至关重要;主要设计包括以下三部分:单片机主控模块:采纳 MC9S12DG12,8 单片机作为整个硬件系统的核心,它既是和谐整机工作的掌握器,又是数据处理器;关于主控芯片的体系结构在其次章会有详 细的介绍;数字温度计模块:采纳 DS18S20,DS18S20 是美国 DALLAS 公司推出的一种高性 能、低功耗、实现单总线协议的温度传感器,它可以显示-55至+125范畴内的温度 , 采纳单总线接口与 CPU 进行同步通信,在这个总线系统中,微处理器<主设备)识别并寻址在总线上的设备要使用每个设备的独一无二的64位码; DS18S20能够不依靠额外的电能供应就能独立运行;它的主要特性在第三章有具体介绍;LED 显示模块:在微掌握器应用系统中,假如需要显示的内容只有数码和某些字母,就使用 LED 数码管是一种较好的挑选; LED 数码管显示清楚,成本低廉,配置敏捷,与微掌握器的接口简洁易行; LED 显示器有动态扫描和静态显示两种方式,动态扫描需要耗费大量的 MCU 时间,且亮度不够;而静态显示亮度高,MCU负担小, 但由于温度测量精度的要求较高,所以本设计采纳LED 动态扫描;欢迎下载精品学习资源1.2.2 软件设计思路程序比较简洁,初始化完成后,调用读出温度子程序,将温度寄存器中的温度读出,然后调用温度处理子程序,将温度数据转换成十进制值并送LED 显示;主要模块有读出温度模块、温度处理模块和LED 显示模块;读出温度模块:第一复位后发送略读ROM 命令 , 由于本设计总线上只有一个DS18S20,因而总线掌握器不用供应 64位 ROM编码就使用储备器操作命令;其次发送读取超高速中间结果储备器命令,用于将超高速中间结果储备器中的内容读出;读出后存放在一个 16位数组 temp_data中,其中将低 8位放在 temp_data0中, 高 8位放在 temp_data1中;再次复位并再发略读ROM 命令,以便读出下一个温度值;最终发送温度转换命令;温度处理模块:第一判定读出的温度数据是正仍是负,如为负就取补码;其次取出 temp_data0 中的 bit0位并放入 display0,该部分为温度值的小数部分; temp_data0 中的剩余部分为温度值的整数部分,并分别取出百位、十位、个位数分别放在 display3、display2和 display1中;最终对符号位是否显示做出处理;LED 显示模块:由于 LED 数码管有共阳极和共阴极之分,而本设计采纳的是共阴极数码管,因此需定义共阴极的十六进制数据到段码的转换表;本模块使用全局变量DispDigMsk 指向下一个要显示的数码;使用DispSegTblDISP_N_DIG 表示与每个要显示的数码相对应的段码;使用DispSegTblIx表示指向下一个要显示数码在段码表中的位置;具体处理步骤如下:1、进行与显示驱动相关的 I/O引脚初始化2、中断显示处理:<1) 清模计数器中断标志<2) 挑选下一个要显示的数码<3) 输出该数码的段码<4) 调整指针;假如在指向下一个段码时发觉已经到了最终一个就返回第一个,否就指针后移并且 DispDigMsk指向下一个要显示的数码; LED 的动态扫描功能通过以上步骤的循环实现;欢迎下载精品学习资源第 2 章 方案论证该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面将列出两种在日常生活中和工农业生产中常常用到的实现方案;2.1 方案一:使用热敏电阻由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随 被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,感温电路比较麻烦;2.2 方案二:采纳数字温度芯片DS18B20采纳数字温度芯片 DS18B20 测量温度,输出信号全数字化;便于单片机处理及掌握,省去传统的测温方法的很多外围电路;且该芯片的物理化学性很稳固,它能用做工业测温元件,此元件线形较好;在0100 摄氏度时,最大线形偏差小于1 摄氏度;DS18B20 的最大特点之一采纳了单总线的数据传输,由数字温度计DS18B20 和微掌握器 AT89S51 构成的温度测量装置 ,它直接输出温度的数字信号 ,可直接与运算机连接;这样 ,测温系统的结构就比较简洁 ,体积也不大;采纳 51 单片机掌握,软件编程的自由度大,可通过编程实现各种各样的算术算法和规律掌握,而且体积小,硬件实现简洁,安装便利;掌握工作,仍可以与 PC 机通信上传数据,另外 AT89S51 在工业掌握上也有着广泛的应用,编程技术及外围功能电路的协作使用都很成熟;该系统利用 AT89S51芯片掌握温度传感器 DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以依据需要设定上下限报警温度;该系统扩展性特别 强,它可以在设计中加入时钟芯片DS1302以猎取时间数据,在数据处理同时显示时间,并可以利用 AT24C16 芯片作为储备器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232 芯片与运算机的RS232接口进行串口通信,便利的采集和整理时间温度数据;欢迎下载精品学习资源显示电路复位电路片测温电路报警电路机扩展接口:对时间和温度信息定点储备,并与运算机进行数据交换系统框图如图 1.1所示按 键输 入驱电路动单电时 钟电 路路图2.1 DS18B20 温度测温系统框从以上两种方案,简洁看出方案一的测温装置可测温度范畴宽、体积小,但是线性误差较大;方案二的测温装置电路简洁、精确度较高、实现便利、软件设计也比较简洁,故本次设计采纳了方案二;欢迎下载精品学习资源第 3 章 各电路设计及论证温度计电路设计原理图如图 3.1 所示, 掌握器使用单片机 AT89C2051,温度计传感器使用 DS18B20,用数码管实现温度显示;本温度计大体分三个工作过程;第一,由DS18820温度传感器芯片测量当前的温度,并将结果送入单片机;然后,通过89C205I 单片机芯片对送来的测量温度读数进行运算和转换,井将此结果送入显示模块;由图2.1 可看到,本电路主要由 DSl8820温度传感器芯片、数码管显示模块和89C2051单片机芯片组成;其中, DSI8B20温度传感器芯片采纳“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作;图3.1温度计电路设计原理图欢迎下载精品学习资源3.1 主掌握器3.1.1 方案一:采纳 PC机实现此方案采纳 PC 机实现;它可在线编程,可在线仿真的功能,这让调试变得方便;且人机交互友好;但是PC 机输出信号不能直接与DS18B20通信;需要通过RS232 电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便;而且在一些环境比较恶劣的场合, PC 机的体积大,携带安装不便利,性能不稳固,给工程带来很多麻烦!3.1.2 方案二:使用单片机使用单片机,对于单片机的挑选,可以考虑使用 8031与8051系列,由于 8031没有内部RAM,系统又需要大量内存储备数据,因而不适用; AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机,片内含 4kbytes 的可编程的 Flash 只读程序储备器 , 兼容标准 8051 指令系统及引脚;它集 Flash 程序储备器既可在线编程<ISP),也可用传统方法进行编程,所以低价位AT89S51单片机可为供应很多高性价比的应用场合,可敏捷应用于各种掌握领域,对于简洁的测温系统已经足够;单片机AT89S51 具有低电压供电和体积小等特点,四个端口只需要两个口就能满意电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电;主要特性如 下与MCS-51兼容 4K字节可编程闪耀储备器寿命: 1000写/ 擦循环数据保留时间: 10年全静态工作: 0Hz-24Hz三级程序储备器锁定 128*8位内部 RAM 32可编程 I/O 线两个 16位定时器 / 计数器 5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路欢迎下载精品学习资源89S51 引脚功能介绍图3.2 AT89S51单片机引脚图AT89S51单片机为 40引脚双列直插式封装;其引脚排列和规律符号如图 3.2 所示:各引脚功能简洁介绍如下: VCC:供电电压 GND:接地 P0口: P0口为一个 8位漏级开路双向 I/O 口,每个管脚可吸取 8TTL门电流;当 P1 口的管脚写“ 1”时,被定义为高阻输入; P0能够用于外部程序数据储备器,它可以被定义为数据 / 地址的第八位;在 FLASH编程时, P0口作为原码输入口,当 FLASH进行校验时, P0输出原码,此时 P0外部电位必需被拉高; P1口: P1口是一个内部供应上拉电阻的8位双向I/O 口, P1口缓冲器能接收输出4TTL门电流; P1口管脚写入“ 1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平常,将输出电流,这是由于内部上拉的缘故;在FLASH编程和校验时, P1口作为第八位地址接收; P2口: P2口为一个内部上拉电阻的 8位双向 I/O 口, P2口缓冲器可接收,输出 4 个TTL门电流,当 P2口被写“ 1”时,其管脚电位被内部上拉电阻拉高,且作为输入; 作为输入时, P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故;欢迎下载精品学习资源P2口当用于外部程序储备器或 16位地址外部数据储备器进行存取时, P2口输出地址的高八位;在给出地址“ 1”时,它利用内部上拉的优势,当对外部八位地址数据储备器进行读写时, P2口输出其特殊功能寄存器的内容;P2口在FLASH编程和校验时接收高八位地址信号和掌握信号; P3口: P3口管脚是 8个带内部上拉电阻的双向 I/O 口,可接收输出 4个TTL门电流;当 P3口写入“ 1”后,它们被内部上拉为高电平,并用作输入;作为输入时,由于外部下拉为低电平, P3口将输出电流 ILL> ,也是由于上拉的缘故;P3口也可作为AT89C51的一些特殊功能口:P3.0 RXD串行输入口 > P3.1 TXD 串行输出口 > P3.2 INT0 外部中断 0> P3.3 INT1 外部中断 1>P3.4 T0 记时器 0外部输入 > P3.5 T1 记时器 1外部输入 >P3.6 WR 外部数据储备器写选通 > P3.7 RD 外部数据储备器读选通 >同时P3口同时为闪耀编程和编程校验接收一些掌握信号; RST:复位输入;当振荡器复位器件时,要保持RST脚两个机器周期的高电平常间; ALE / PROG:当拜访外部储备器时,地址锁存答应的输出电平用于锁存地址的位置字节;在 FLASH编程期间,此引脚用于输入编程脉冲;在平常,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6 ;因此它可用作对外部输出的脉 冲或用于定时目的;然而要留意的是:每当用作外部数据储备器时,将跳过一个ALE脉冲;如想禁止 ALE的输出可在 SFR8E地H 址上置 0;此时, ALE只有在执行 MOV,X MOVC指令时ALE才起作用;另外,该引脚被略微拉高;假如微处理器在外部执行状态ALE禁止,置位无效; PSEN:外部程序储备器的选通信号;在由外部程序储备器取址期间,每个机器 周期PSEN两次有效;但在拜访外部数据储备器时,这两次有效的PSEN信号将不显现; EA/VPP:当EA保持低电平常,拜访外部 ROM;留意加密方式 1时, EA将内部锁定为RESET;当EA端保持高电平常,拜访内部 ROM;在 FLASH编程期间,此引脚也用于施加12V编程电源 VPP>; XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入; XTAL2:来自反向振荡器的输出;单片机 AT89C2051具有低电压供电和小体积等特点,两个端口刚好满意电路系统8 / 40欢迎下载精品学习资源的设计需要,很合适携手特式产品的使用;主机掌握DS18B20完成温度转换必需经过欢迎下载精品学习资源三个步骤:初始化、 ROM操作指令、储备器操作指令;必需先启动DS18B2开0再读出温度转换值;3.2 显示电路3.2.1 方案一:采纳七段 LED数码显示始转换,欢迎下载精品学习资源采纳七段 LED数码显示, LED显示器内部由 7 段发光二极管组成,因此亦称之为七段 LED显示器,由于主要用于显示各种数字符号,故又称之为LED数码管;每个显示器仍有一个圆点型发光二极管,用于显示小数点;但其编程相对复杂,可显示字符比较少;但是本设计采纳此种方案;3.2.2 方案二:采纳 SMCI602A液晶显示模块芯片采纳SMCI602A液晶显示模块芯片,该芯片可显示 16×2个字符,比以前的七段数码管 LED显示器在显示字符的数量上要多得多;另外,由于SMCl602芯片编程比较简洁,界面直观,因此更加易于使用者操作和观测;SMCl602A芯片的接口信号说明如表2.1 所列;编号符号表3.1 SMCl602A引脚说明芯片的接口信号说明编号符号引脚说明1VSS电源地9D2数据 I/O2VDD电源正极10D3数据 I/O3VL液晶显示偏压信号11D4数据 I/O4RS数据/命令挑选端12D5数据 I/O5R/W读/写挑选端13D6数据 I/O6E使能信号14D7数据 I/O7D0数据 I/O15BLA背光正极8D1数据 I/O16BLK背光负极欢迎下载精品学习资源3.3 温度传感器的挑选3.3.1 方案一:采纳热敏电阻采纳热敏电阻,可满意40 摄氏度至 90 摄氏度测量范畴,但热敏电阻精度、重复性、牢靠性较差,对于检测1 摄氏度的信号是不适用的;而且在温度测量系统中, 采纳单片温度传感器 , 比如 AD590,LM35等. 但这些芯片输出的都是模拟信号, 必需经过A/D 转换后才能送给运算机 , 这样就使得测温装置的结构较复杂. 另外, 这种测温装置的一根线上只能挂一个传感器, 不能进行多点测量 . 即使能实现,也要用到复杂的算法,肯定程度上也增加了软件实现的难度;3.3.2 方案二:数字温度传感器 DS18B20由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高;这里采纳DALLA公S司的数字温度传感器 DS18B20作为测温元件;3.3.2.1 DS18B20 简洁介绍DALLAS最新单线数字温度传感器 DS18B2是0 一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济;DALLAS半导体公司的数字化温度传感器 DS18B20是世界上第一片支持“一线总线”接口的温度传感器;温度测量范围为-55 +125 摄氏度,可编程为 9位 12 位转换精度,测温辨论率可达 0.0625 摄氏度,辨论率设定参数以及用户设定的报警温度储备在EEPROM中,掉电后依旧储存;被测温度用符号扩展的 16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采纳寄生电源方式产生;多个 DS18B20可以并联到 3 根或2 根线上, CPU只需一根端口线就能与诸多 DS18B20通信,占用微处理器的端口较少,可节约大量的引线和规律电路;因此用它来组成一个测温系统,具有线路简洁,在一根通信线,可以挂很多这样的数字温度计,特别便利;DS18B20的性能特点如下:特殊的单线接口方式, DS18B2在0 与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B2的0 双向通讯 DS18B20支持多点组网功能,多个 DS18B20可以并联在唯独的三线上,实现组网多点测温 DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内欢迎下载精品学习资源适应电压范畴更宽,电压范畴:3.0 5.5V ,在寄生电源方式下可由数据线供电温范畴 55 125,在 -10 +85时精度为± 0.5 零待机功耗可编程的辨论率为9 12 位,对应的可辨论温度分别为0.5 、 0.25 、0.125 和0.0625 ,可实现高精度测温在 9位辨论率时最多在 93.75ms内把温度转换为数字,12位辨论率时最多在750ms内把温度值转换为数字,速度更快用户可定义报警设置报警搜寻命令识别并标志超过程序限定温度<温度报警条件)的器件测量结果直接输出数字温度信号,以" 一线总线 " 串行传送给 CPU,同时可传送 CRC校验码,具有极强的抗干扰纠错才能负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作以上特点使 DS18B20特别适用与多点、远距离温度检测系统;DS18B2内0 部结构主要由四部分组成: 64位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH和TL、配置寄存器; DS18B20的管脚排列、各种封装形式如图4所示, DQ为数据输入 / 输出引脚;开漏单总线接口引脚;当被用着在寄生电源下,也可以向器件供应电源; GND为地信号; VDD为可挑选的 VDD引脚;当工作于寄生电源时,此引脚必需接地;其电路图 3.3 所示图3.3 外部封装形式欢迎下载精品学习资源图3.4 传感器引脚图3.3.2.2 DS18B20 使用中的留意事项DS18B20虽然具有测温系统简洁、测温精度高、连接便利、占用口线少等优点, 但在实际应用中也应留意以下几方面的问题: DS18B20从测温终止到将温度值转换成数字量需要肯定的转换时间,这是必需保证的,不然会显现转换错误的现象,使温度输出总是显示85;在实际使用中发觉,应使电源电压保持在5V 左右,如电源电压过低,会使所测得的温度精度降低;较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采纳串行数据传送,因此,在对 DS1820进行读写编程时,必需严格的保证读写时序,否就将无法读取测温结果;在使用 PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采纳汇编语言实现;在 DS18B2的0 有关资料中均未提及单总线上所挂DS18B20数量问题,简洁使人误认为可以挂任意多个 DS18B2,0 在实际应用中并非如此,当单总线上所挂DS18B20超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以留意;在 DS18B2测0 温程序设计中,向 DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要赐予肯定的重视;3.3.2.3 DS18B20 内部结构图为 DS1820的内部框图,它主要包括寄生电源、温度传感器、64 位激光 ROM单线接口、存放中间数据的高速暂存器<内含便笺式 RAM),用于储备用户设定的温度 上下限值的 TH和 TL 触发器储备与掌握规律、 8 位循环冗余校验码 <CRC)发生器等七部分;欢迎下载精品学习资源DS18B20采纳3脚PR35 封装或 8脚SOIC封装,其内部结构框图如图 3.5 所示图3.5 DS18B20内部结构框图64 b 闪速 ROM的结构如下:表 3.2 ROM 的结构8bit 检验 CRC48bit 序列号8bit工 厂 代 码<10H )MSBLSBMSBLSBMSBLSB开头 8位是产品类型的编号,接着是每个器件的惟一的序号,共有48 位,最终 8 位是前面 56 位的CRC检验码,这也是多个 DS18B20可以采纳一线进行通信的缘由;温度报警触发器和,可通过软件写入户报警上下限DS18B20温度传感器的内部储备器仍包括一个高速暂存和一个非易失性的可电擦除的EERA;M 高速暂存 RAM的结构为字节的储备器,结构如图3.6 所示欢迎下载精品学习资源便笺式储备器 <上电状态)欢迎下载精品学习资源Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8温度测量值 LSB50H>TH 高温寄存器TL 低温寄存器TH 高温寄存器TL 低温寄存器配位寄存器预留<FFH )配位寄存器预留<OCH )预留<IOH )循环冗余码校验CRC>温度测量值 MSB50H85 >E2PROM欢迎下载精品学习资源图 3.6 高速暂存 RAM 结构图前 2 个字节包含测得的温度信息,第3 和第 4 字节和的拷贝,是易失的,每次上电复位时被刷新;第5 个字节,为配置寄存器,它的内容用于确定温度值的数字转换辨论率; DS18B20工作时寄存器中的辨论率转换为相应精度的温度数值;其温度值如下:表 3.2温度数值表温度低位温度高位THTL配置保留保留保留8位CRCLSBMSB当 DS18B20接收到温度转换命令后,开头启动转换;转换完成后的温度值就以16 位带符号扩展的二进制补码形式储备在高速暂存储备器的第1, 2 字节;单片机可通过单线接口读到该数据 , 读 取时 低位 在前, 高位 在后 , 数 据格式以 0.0625 /LSB 形式表示;温度值格式如下:表 3.3转换后的温度值232221202-12 -22 -32 -4MSB欢迎下载精品学习资源LSBSSSSS262524MSBLSB这是 12 位转化后得到的 12 位数据,储备在 18B20 的两个 8 比特的 RAM中,二进欢迎下载精品学习资源制中的前面 5 位是符号位,假如测得的温度大于0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;假如温度小于0,这 5 位为 1,测到的数值需要取反欢迎下载精品学习资源加 1 再乘于 0.0625 即可得到实际温度;图中, S 表示位;对应的温度运算:当符号位 S=0时,表示测得的温度植为正值,直接将二进制位转换为十进制;当S=1时,表示测得的温度植为负值,先将补码变换为原码,再运算十进制值;例如+125的数字输出为 07D0H,+25.0625的数字输出为 0191H, -25.0625 的数字输出为 FF6FH,- 55的数字输出为 FC90H;DS18B20温度传感器主要用于对温度进行测量,数据可用16 位符号扩展的二进制补码读数形式供应,并以制温度表示数据;温度 /0.0625 LSB形式表示;表表 3.4部分温度值二进制表示2 是部分温度值对应的二进十六进制表示+125000001111101000007D0H+25.062500000001100100010191H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-25.06251111111001101111FE6FH-551111110010010000FC90HDS18B20完成温度转换后,就把测得的温度值与RAM中的 TH、TL 字节内容作比较,如 T>TH 或 T<TL,就将该器件内的告警标志置位,并对主机发出的告警搜寻命令作出响应;因此,可用多只 DS18B20同时测量温度并进行告警搜寻;在 64 位 ROM的最高有效字节中储备有循环冗余校验码<CRC);主机依据 ROM的前 56 位来运算 CRC值,并和存入 DS18B20中的 CRC值做比较,以判定主机收到