《数字温度计 单片机.doc》由会员分享,可在线阅读,更多相关《数字温度计 单片机.doc(62页珍藏版)》请在三一办公上搜索。
1、数字测温计设计摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制已成为当今的主流。本文主要介绍了一个基于AT89S51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活
2、和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89S51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。关键词:单片机;温度传感器;数字温度计Design Of The Digital DhermometerAbstract:With the progress and development of era,microcontroller technology has become popular in our life,in the work,the scientifi
3、c research and various fields,has become a relatively mature technology.The temperature measurement method and device of the highlights is very important.Posed by the single chip temperature sensor and temperature measurement system can be widely applied in many fields.The article mainly introduced
4、based on the AT89S51 monolithic integrated circuits temperature measurement system, described the use digit temperature sensor DS18B20 development temperature measurement systems process in detail, key to sensors under monolithic integrated circuit hardware connection, the software programming as we
5、ll as the various modules system flow has carried on the exhaustive analysis, 11 has also carried on the introduction to various part of electric circuits. This system may facilitate realizes temperature gathering and the demonstration, and may according to need to establish the bound warning temper
6、ature willfully, it uses quite conveniently, has the precision to be high, the measuring range width, the sensitivity are high, the volume is small, the power loss low status merit, suits in our daily life and the industry, the agricultural production temperature survey, may also treat as the temper
7、ature processing module to insert in other systems, takes other host systems auxiliary expansion. DS18B20 and at89S51 union realizes the most Jan temperature examination system, this system structure is simple, antijamming ability, suits under the adverse circumstance carries on the scene temperatur
8、e survey, has the widespread application prospect.Key words:microcontroller;temperature sensor;temperature measurement system目录第1章 绪论11.1 温度计的介绍11.2 选题的目的和意义21.2.1选题的目的21.2.2选题的意义2第2章 数字温度计的设计方案42.1 设计方案的确立及论证42.1.1 温度传感器DS18B20的选择42.1.2 显示器的选择52.1.3 单片机AT89S51的选择5第3章 系统硬件电路的设计73.1 主控制器73.1.1 AT89S5
9、1的介绍73.1.2 DS18B20的介绍93.1.3 DS18B20使用的注意事项163.2 单片机最小系统设计173.2.1 时钟电路173.2.2 复位电路183.2.3 最小系统193.3 DS18B20与单片机接口电路的设计203.4 显示电路的设计203.4.1 1602LCD液晶简介20第4章 系统程序的设计244.1 系统设计内容244.1.1 主程序244.1.2 读出温度子程序244.1.3 温度转换命令子程序254.1.4 计算温度子程序254.1.5 温度数据的计算处理方法264.2 源程序274.2.1 DS18B20的各条ROM命令27第5章 调试及性能分析295.
10、1 系统的调试295.2 性能分析30结论31社会经济效益分析32致谢33参考文献34附录135附录2错误!未定义书签。附录336附录437第1章 绪论1.1 温度计的介绍温度计是测温仪器的总称。根据所用测温物质的不同和测温范围的不同,有煤油温度计、酒精温度计、水银温度计、气体温度计、电阻温度计、温差电偶温度计、辐射温度计和光测温度计等。随着科学技术的发展和现代工业技术的需要,测温技术也不断地改进和提高。由于测温范围越来越广,根据不同的要求,又制造出不同需要的测温仪器。下面介绍几种。 气体温度计:多用氢气或氦气作测温物质,因为氢气和氦气的液化温度很低,接近于绝对零度,故它的测温范围很广。这种温
11、度计精确度很高,多用于精密测量。 电阻温度计:分为金属电阻温度计和半导体电阻温度计,都是根据电阻值随温度的变化这一特性制成的。金属温度计主要有用铂、金、铜、镍等纯金属的及铑铁、磷青铜合金的;半导体温度计主要用碳、锗等。电阻温度计使用方便可靠,已广泛应用。它的测量范围为-260至600左右。 温差电偶温度计:是一种工业上广泛应用的测温仪器。利用温差电现象制成。两种不同的金属丝焊接在一起形成工作端,另两端与测量仪表连接,形成电路。把工作端放在被测温度处,工作端与自由端温度不同时,就会出现电动势,因而有电流通过回路。通过电学量的测量,利用已知处的温度,就可以测定另一处的温度。它适用于温差较大的两种物
12、质之间,多用于高温和低浊测量。有的温差电偶能测量高达3000的高温,有的能测接近绝对零度的低温。 高温温度计:是指专门用来测量500以上的温度的温度计,有光测温度计、比色温度计和辐射温度计。高温温度计的原理和构造都比较复杂,这里不再讨论。其测量范围为500至3000以上,不适用于测量低温。 指针式温度计:是形如仪表盘的温度计,也称寒暑表,用来测室温,是用金属的热胀冷缩原理制成的。它是以双金属片做为感温元件,用来控制指针。双金属片通常是用铜片和铁片铆在一起,且铜片在左,铁片在右。由于铜的热胀冷缩效果要比铁明显的多,因此当温度升高时,铜片牵拉铁片向右弯曲,指针在双金属片的带动下就向右偏转(指向高温
13、);反之,温度变低,指针在双金属片的带动下就向左偏转(指向低温)。 玻璃管温度计:玻璃管温度计是利用热胀冷缩的原理来实现温度的测量的。由于测温介质的膨胀系数与沸点及凝固点的不同,所以我们常见的玻璃管温度计主要有:煤油温度计、水银温度计、红钢笔水温度计。他的优点是结构简单,使用方便,测量精度相对较高,价格低廉。缺点是测量上下限和精度受玻璃质量与测温介质的性质限制。且不能远传,易碎。 压力式温度计:压力式温度计是利用封闭容器内的液体,气体或饱和蒸气受热后产生体积膨胀或压力变化作为测信号。它的基本结构是由温包、毛细管和指示表三部分组成。压力式温度计的优点是:结构简单,机械强度高,不怕震动。价格低廉,
14、不需要外部能源。缺点是:测温范围有限制,一般在-80400;热损失大响应时间较慢。 水银温度计:水银温度计是膨胀式温度计的一种,水银的凝固点是 -38.87,沸点是 356.7,用来测量0-150或500以内范围的温度,它只能作为就地监督的仪表。用它来测量温度,不仅比较简单直观,而且还可以避免外部远传温度计的误差。1.2 选题的目的和意义1.2.1选题的目的 利用单片机AT89S51和温度传感器DS18B20设计一个设计温度计,能够测量20 100之间的温度值,用LCD液晶屏直接显示,测量精度为0.1。通过这次设计能够更加了解数字温度计的工作原理和熟悉单片机的发展和应用,巩固所学的知识。1.2
15、.2选题的意义随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器DS18B20具有性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。又随着电子技术的发展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的方便;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以ATMEL公司的AT89S51为控制器设计的DS18B20温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器。本课题研究的重要意
16、义在于生产过程中随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数,就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是数字温度传感器技术,在我国各领域已经应用的非常广泛可以说是渗透到社会的每一个领域,与人民的生活和环境的温度息息相关。第2章 数字温度计的设计方案2.1 设计方案的确立及论证基本功能要求:(1)温度测量范围:20100度(2)测量精度:0.5度(3)显示方式:四位显示 (4)能够运用Protues仿真扩展功
17、能要求: (1)做出实物并调试成功(2)多点测试(3)多点温度同时显示2.1.1 温度传感器DS18B20的选择方案一:水银温度计 在生活中我们经常看到水银温度计,它只能作为就地监督的仪表,用它来测量温度时,由于读数时用眼睛观察,主观因素大,容易造成误差大,而且不同是水银温度计量程不同,在读数前需要看清它的最小分度值,还有它有热惯性,需要等到温度计达到稳定状态后才能读数,比较麻烦,并且水银有毒,不小心打破后接触到水银,对人体伤害大,所以危险性较高。方案二:传统测温元件 传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,其缺点有:硬
18、件电路复杂;软件调试复杂;制作成本高。方案三:DS18B20传感器测温 本设计采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件 DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有成本低和易使用的特点。 所以本设计采用方案三,用DS18B20作为温度传感器。2.1.2 显示器的选择方案一 LED显示器采用传统的七段数码LED显示器。LED虽然价格便宜,且能够满足一般的要求显示0-9字符,但是现代的许多仪表、各种电子产品显示要求很高,在这些产品中已经逐渐被LCD所取代。方案二LCD液晶屏采用LCD液
19、晶屏进行显示。LCD液晶显示器是一种低压、微功耗的显示器件,只要23伏就可以工作,工作电流仅为几微安,是任何显示器无法比拟的,同时可以显示大量信息,除数字外,还可以显示文字、曲线,比传统的数码LED显示器显示的界面有了质的提高。在仪表和低功耗应用系统中得到了广泛的应用。优点为:(1) 显示质量高,由于液晶显示器的每一个点收到信号后就一直保持那种色彩和亮度恒定发光,因此液晶显示器的画质高而且不会闪烁。(2) 数字式接口,液晶显示器都是数字式的,和单片机的接口简单操作也很方便。(3) 功率消耗小,相比而言液晶显示器的主要功耗在内部电极和驱动IC上,因而耗电量比其他器件要小很多。虽然LCD液晶屏的价
20、格比LED数码管要贵一些,但LCD液晶屏的显示效果更好,是当今显示屏的主流,在实际推广运用中作用更大,所以在本设计中采用LCD 作为显示屏。2.1.3 单片机AT89S51的选择对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机,片内含 4kbytes 的可编程的 Flash 只读程序存储器,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器既可在线编程(ISP),也可用传统方法进行编程,所以低价位 AT89S51单片机可为提供
21、许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机AT89S51 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电,因此选用AT89S51更适合。按照系统设计功能的要求,确定系统由4个模块组成;主控制器、测温电路、显示电路。数字温度计总体设计电路结构框图如图2-1所示:AT89S51复位电路显示电路温度传感器时钟电路图2-1 系统框图第3章 系统硬件电路的设计3.1 主控制器单片机AT89S51是低功耗,高性能 CMOS8 位单片机,片内含 4kbytes 的可编程的 Flash
22、只读程序存储器,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器既可在线编程(ISP),也可用传统方法进行编程。3.1.1 AT89S51的介绍AT89S51实物如3-1图所示:图3-1 AT89S51 实物图AT89S51主要特性及引脚如下与MCS-51 兼容4K字节可编程闪烁存储器全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 图 3-2 AT89S51单片机引脚图AT89S51 单片机为40 引脚双列直插式封装。其引脚排列和逻辑符号如图3-2
23、所示。各引脚功能简单介绍如下:VCC:供电电压 GND:接地 P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P0口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1
24、口作为第八位地址接收。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门电流。
25、当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89S51的一些特殊功能口:P3.0 RXD(串行输入口)l P3.1 TXD(串行输出口)l P3.2 INT0(外部中断0)l P3.3 INT1(外部中断1)l P3.4 T0(记时器0外部输入)l P3.5 T1(记时器1外部输入)l P3.6 WR (外部数据存储器写选通)l P3.7 RD (外部数据存储器读选通)同时P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周
26、期的高电平时间。ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PS
27、EN两次有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.1.2 DS18B20的介绍Dallas的最新单线数字温度传感器DS18B20简称新的“一线器件”体积更小、使用电压更宽、更经济。Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。一
28、线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20测量温度范围为-55+125,在-10+85范围内,精度为0.5。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。其实物图如3-3图所示:图3-3 DS18B20的实物管脚分布图DS18B20引脚及特点 (1)引脚功能说明GND是地址信号;DQ是数据输入/输出引脚,开漏单总线接口引脚,当
29、被用在寄生电源下,也可以向器件提供电源;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。(2)DS18B20功能特点采用单总线技术,与单片机通信只需要一根I/O线,在一根线上可以挂接多个DS18B20。每只DS18B20具有一个独有的,不可修改的64位序列号,根据序列号访问地应的器件。低压供电,电源范围从3.05.5V,可以本地供电,也可以直接从数据线窃取电源(寄生电源方式)。测温范围为-55+125,在-10+85范围内误差为0.5。可编辑数据为912位,转换12位温度时间为750ms(最大)。用户可自设定报警上下限温度。报警搜索命令可识别和寻址超过程序限定温度(温度报警条件)的器件
30、。DS18B20的分辨率由用户通过EEPROM设置为912位。DS18B20可将检测到温度值直接转化为数字量,并通过串行通信的方式与主控制器进行数据通信。负电压特性,电源极性接反时,温度计不会因为发热而烧毁,只是不能正常工作。DS18B20的内部结构(1)DS18B20内部结构及功能图3-4 DS18B20内部结构DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构如3.5图所示,主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分。如上图
31、3-4所示:(2)64位激光ROM 每一个DS18B20包括一个唯一个64位长的ROM编码。64位ROM的位结构如下图3-5所示。开始的8位是单线产品系列编码(DS18B20编码是10h);接着的48位是每个器件唯一的系列号;最后的8位是开始56位CRC检验码。64位ROM和ROM操作控制部分允许DS18B20作为一个单线器件工作并遵循“单线总线系统”一节中所详述的单线协议。直到ROM操作协议被满足,DS18B20控制部分的功能是不可访问的。单线总线主机必须首先操作五种ROM操作命令之一:1、Read ROM(读ROM),2、Match ROM(匹配(ROM),3、Search ROM(搜索R
32、OM),4、Skip ROM(跳过ROM),或5、Alarm Search(告警搜索)。在成功地执行了ROM操作序列之后DS18B20特定的功能便可访问,然后总线上主机可提供六个存储器和控制功能命令之一。8位检验CRC 48位序列号 8位工厂代码(10H) MSB LSB MSB LSB MSB LSB图3-5 64位ROM结构框图(3)运用报警信号 在DS18B20完成温度变换之后,温度值与贮存在TH和TL内的触发值相比较。因为这些寄存器仅仅是8位,所以0.5位在比较时被忽略。TH或TL的最高比较位直接对应于16位温度寄存器的符号位。如果温度测量的结果高于TH或低于TL,那么器件内告警标志将
33、置位。每次温度测量更新此标志。只要告警标志置位,DS18B20将对告警搜索命令做出响应。这允许并联接许多DS18B20,同时进行温度测量。如果某处温度超过极限,那么可以识别出正在告警的器件并立即将其读出而不必读出非告警的器件。(4)CRC产生 DS18B20有一存贮在64位ROM的最高有效字节内的8位CRC。总线上的主机可以根据64位ROM的前56位计算机CRC的值并把它与存贮在DS18B20内的值进行比较以决定ROM的数据是否已被主机正确地接收。CRC的等效多项式函数为:CRC=X8+X5+X4+1 (公式3.1) DS18B20也利用与上述相同的多项式函数产生一个8位CRC值并把此值提供给
34、总线的主机以确认数据字节的传送。在使用CRC来确认数据传送的每一种情况中,总线主机必须使用上面给出的多项式函数计算CRC的值并把计算所得的值或者与存贮在DS18B20的64位ROM部分中的8位CRC值(ROM读数),或者与DS18B20中计算得到的8位CRC值(在读暂存存贮器中时,它作为第九个字节被读出),进行比较。CRC值的比较和是否继续操作都由总线主机来决定。当存贮在DS18B20内或由DS18B20计算得到的CRC值与总线主机产生的值不相符合时,在DS18B20内没有电路来阻住命令序列的继续执行。(5)存贮器 DS18B20的存贮器由一个高速暂存(便笺式)RAM和一个非易失性、电可擦除E
35、EPROM组成,后者存贮高温度和低温度触发器TH和TL。暂存存贮器有助于在单线通信时确保数据的完整性。数据首先写入暂存存贮器,在那里它可以被读回。当数据被校验之后,复制暂存存贮器的命令把数据传送到非易失性EEPROM。这一过程确保了更改存贮器时数据的完整性。高速暂存RAM的结构为9字节的存储器,结构如3.7图所示。前2字节包含测得的温度信息。第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时刷新。第5字节为配置寄存器,其内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节个位的定义如3.7图所示,其中,低5位一直为1;TM是测试
36、模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时,该位被设置为0,用户不要去改动;R1和R0决定温度转换的精度位数,即用来设置分辨率,其定义方法见表3-6: R1 R0 分辨率/位 温度最大转换时间/ms0 0 9 93.750 1 10 187.51 0 11 3751 1 12 750表3-6 分辨率表3.6 DS18B20分辨率的定义和规定 由表3-6可见,DS18B20温度转换的时间较长,而且设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。温度LSB温度MSBTH用户字节1配置寄存器TH用户字节2CRC保留
37、保留保留1字节4字节6字节3字节5字节2字节8字节7字节9字节TH用户字节1TL用户字节2 图3-7 高速暂存RAM结构图 高速暂存的第6、7、8字节保留未用,表现为全逻辑1。第9字节是前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。如图3-7所示: 当DS18B20接受到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩张的二进制补码形式存储在暂存RAM的第1、2字节中。 二进制温度图中,S表示符号位。当S=0时,表示测得的温度值为正值,可以直接将二进制转换为十进制;当S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制值。表3-10是部分温
38、度值对应的表示数据。 表3-10 DS18B20温度与表示值对应表温度二进制表示十六进制表示温度二进制表示十六进制表示+125000001111101000007D0H000000000000000000000H+8500000101010100000550H-0.51111111111111000FFF8H+25.062500000001100100010191H-10.1251111111001011110FF5EF+10.125000000001010001000A2H-25.06251111111001101111FE6FH+0.500000000000010000008H-55111
39、1110010010000FC90H DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较,若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令做出响应。因此,可用多个DS18B20同时测得温度并进行报警搜索。 在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机根据ROM的前56位来计算CRC值,并与存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理 如图3-11所示,图中低温度系数振荡器的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数振荡器随温度变
40、化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。预置斜率累加器低温度系数振荡器减法计数器1预置减到0温度寄存器计数比较器高温度系数振荡器减法计数器2减到0图3-11 DS18B20测温原理图 图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55所对应的一个基数分别置入减法计数器1和温度寄存器中,减法计数器和温度寄存器被预置在-55所对应的一个基数值。 减法计数器1对低温度系数振荡器产生的脉冲信号进行减法计数,当减法计数器1的预置减到0时,温度寄存器的值将加
41、1,减法计数器1的预置值将重新被装入,并重新开始对低温度系数振荡器产生的脉冲信号进行计数。如此循环,直到减法计数器2计数到0时,停止温度计数器值的累加,此时温度寄存器中的数值就是所测温度值。图3.9中的斜率累加器用于补偿和修正测温过程的非线形性,直到温度寄存器达到被测温度值。另外,DS18B20单线通信功能是分时完成的,有严格的时隙概念,因此读/写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲发ROM功能命令发存储器操作命令处理数据。3.1.3 DS18B20使用的注意事项DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线
42、少等优点,但在实际应用中也应注意以下几方面的问题: (1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。 (2)在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3)
43、连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 (4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。
44、这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。3.2 单片机最小系统设计单片机最小系统就是指能使单片机工作的最少的器件构成的系统。因为单片机已经包含了数据存储器和程序存储器,所以只要在其外部加上时钟电路和复位电路就可以构成单片机最小系统。3.2.1 时钟电路图3-12是时钟电路的PROTEUS仿真图。图3-12时钟电路单片机允许的振荡晶体可在1.224MHz之间选择,一般为11.0592MHz。电容C2,C3的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一定的影响,可在20100pF之间选择,典型值位30pF。3.2.2 复位电路计算机每次开始工作,CPU和系统中的
45、其他部件都必须要有一个确定的初值,即复位状态。图3-13是单片机复位电路仿真图。图3-13 复位电路单片机RST引脚是高电平有效。单片机在上电瞬间C1充电,RST引脚端出现正脉冲,只要RST断保持两个机械周期(大约10ms)以上的高电平,单片机就能复位。在单片机工作后,如果还想再次复位,只需按下开关,单片机就能重新变成复位状态。当晶体振荡频率为12MHz时,RC的典型值为C=10F,R=8.2K。3.2.3 最小系统图3-14是单片机最小系统的完整仿真图。图3-14 单片机最小系统3.3 DS18B20与单片机接口电路的设计 DS18B20可以采用两种供电方式:一种是采用电源供电方式,此时DS18B20的第1引脚接地,第2引脚作为信号线,第3引脚接电源;另外一种是寄生电源供电方式当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必