《单片机应用技术》课程设计报告基于单片机的数字温度计设计.doc

上传人:土8路 文档编号:10314004 上传时间:2021-05-08 格式:DOC 页数:40 大小:725.50KB
返回 下载 相关 举报
《单片机应用技术》课程设计报告基于单片机的数字温度计设计.doc_第1页
第1页 / 共40页
《单片机应用技术》课程设计报告基于单片机的数字温度计设计.doc_第2页
第2页 / 共40页
《单片机应用技术》课程设计报告基于单片机的数字温度计设计.doc_第3页
第3页 / 共40页
《单片机应用技术》课程设计报告基于单片机的数字温度计设计.doc_第4页
第4页 / 共40页
《单片机应用技术》课程设计报告基于单片机的数字温度计设计.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《《单片机应用技术》课程设计报告基于单片机的数字温度计设计.doc》由会员分享,可在线阅读,更多相关《《单片机应用技术》课程设计报告基于单片机的数字温度计设计.doc(40页珍藏版)》请在三一文库上搜索。

1、学号: 070911100 1 2009 - 2010 学年 第 2 学期 单片机应用技术单片机应用技术 课课 程程 设设 计计 报报 告告 题题 目:目:基于单片机的数字温度计设计 专专 业:业: 电气自动化电气自动化 班班 级:级: 0707 电气自动化本电气自动化本 姓姓 名:名: 指导教师:指导教师: 成成 绩:绩: 电气工程系 2010 年 5 月 25 日 课课 程程 设设 计计 任任 务务 书书 学生班级: 07 电气自动化本 学生姓名: 学号:0709111001 设计名称: 基于单片机的数字温度计设计 起止日期: 2010 年 5 月 242010 年 5 月 28 指导教师

2、: 臧老师 设计要求: 本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬 件 和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下: 利用温度传感器(DS18B20)测量某一点环境温度 测量范围为-5599,精度为0.5 用液晶进行实际温度值显示 能够根据需要方便设定上下限报警温度 目目 录录 一、一、引言引言 5 5 二、设计内容及性能指标二、设计内容及性能指标5 5 三、系统方案论证三、系统方案论证 5 5 (一)、方案.6 四、系统器件选择四、系统器件选择7 7 (一)、 单片机的选择 .7 1、 89S51 引脚功能介绍.8 (二)、温度传感器的选择.10 1、

3、DS18B20 简单介绍:.10 2、 DS18B20 使用中的注意事项.12 3、 DS18B20 内部结构.13 4、DS18B20 测温原理.17 5、提高 DS1820 测温精度的途径 .18 (三)、显示及报警模块器件选择.20 五、硬件设计电路五、硬件设计电路2121 (一)、主控制器.22 (二)、显示电路.22 (三)、 温度检测电路 .22 (四)、温度报警电路.29 六、六、 软件设计软件设计 (一)、 概述 .30 (二)、主程序模块.30 (三)、各模块流程设计.31 1、 温度检测流程 .31 2、报警模块流程 .32 3、 中断设定流程 .33 七、自我评价七、自我

4、评价3535 八、致谢八、致谢 3636 参考文献参考文献 3636 摘要:摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、 科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于 89S51 单片机的测温系统,详细描述了利用数字温度传感器 DS18B20 开发测温 系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统 流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实 现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来 相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于 我们日常生活和工、农

5、业生产中的温度测量,也可以当作温度处理模块嵌入其 它系统中,作为其他主系统的辅助扩展。DS18B20 与 AT89C51 结合实现最简温 度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温 度测量,有广泛的应用前景。 一、引言一、引言 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的 要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受 制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息 传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖 端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可 以说是渗透

6、到社会的每一个领域,人民的生活与环境的温度息息相关,在 工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量, 因此研究温度的测量方法和装置具有重要的意义。 测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶 段: 传统的分立式温度传感器 模拟集成温度传感器 智能集成温度传感器。 目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问 世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是 能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的 发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片 机的基础上从模拟式向

7、数字式,从集成化向智能化、网络化的方向飞速发 展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟 传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文 将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传 感器,89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设 计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广, 测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所, 或科研实验室使用。该设计控制器使用ATMEL公司的AT89S51单片机,测 温传感器使用DALLAS公司DS18B20,用液晶来实现温度显示。

8、 二、设计内容及性能指标二、设计内容及性能指标 本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬 件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下: 利用温度传感器(DS18B20)测量某一点环境温度 测量范围为-5599,精度为0.5 用液晶进行实际温度值显示 能够根据需要方便设定上下限报警温度 三、系统方案论证三、系统方案论证 该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很 多种,下面将列出一种在日常生活中和工农业生产中经常用到的实现方案。 (一)、方案(一)、方案 采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片 机处理及控制

9、,省去传统的测温方法的很多外围电路。且该芯片的物理化 学性很稳定,它能用做工业测温元件,此元件线形较好。在0100 摄氏度 时,最大线形偏差小于1 摄氏度。DS18B20 的最大特点之一采用了单总线 的数据传输,由数字温度计DS18B20和微控制器AT89S51构成的温度测量装 置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构 就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通 过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单, 安装方便。既可以单独对多DS18B20 控制工作,还可以与PC 机通信上传数据,另外AT89S51 在工业控

10、制 上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。 该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并 显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。 该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数 据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件, 以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查 询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信, 方便的采集和整理时间温度数据。 系统框图如图 3.3所示 图 3.3 DS18B20温度测温系统框图

11、 四、系统器件选择四、系统器件选择 (一)、(一)、 单片机的选择单片机的选择 对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内 部RAM,系统又需要大量内存存储数据,因而不适用。AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机,片内含 4kbytes 的可编程的 Flash 只读程序存储器,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器既可在线编程(ISP),也可用传统方法进行编程,所以 低价位 AT89S51单片机可为提供许多高性价比的应用场合,可灵活应用于 各种控制领域,对于简单的测温系统已经足够。单片机AT89

12、S51 具有低电 压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计 需要,很适合便携手持式产品的设计使用系统可用二节电池供电。主要特 性如下 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图 4.1 AT89S51单片机引脚图 1 1、89S5189S51 引脚功能介绍引脚功能介绍 AT89S51 单片机为40 引脚双列直插式封装。 其引

13、脚排列和逻辑符号如图4.1 所示。 各引脚功能简单介绍如下: 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口被外部下拉为低电平时,将输出电 流,这是由

14、于内部上拉的缘故。在FLASH编程和校验时,P1 口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收, 输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部 上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被 外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用 于外部程序存储器或16位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉 的优势,当对外部八位地址数据存储器进行读写时,P2口输出 其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收 高八位地址信号和控制信号。 P3口:P3

15、口管脚是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口同时为闪烁编程和编程校验接收一些控制

16、信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期 的高电平时间。 ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于 锁存地址的地位字节。在FLASH编程期间,此引脚用 于输入编程脉冲。在平时,ALE端以不变的频率周期 输出正脉冲信号,此频率为振荡器频率的1/6。因此它 可用作对外部输出的脉冲或用于定时目的。然而要注 意的是:每当用作外部数据存储器时,将跳过一个 ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置 0。此时, ALE只有在执行MOVX,MOVC指令时 ALE才起作用。另外,该引脚被略微拉高。如果微处 理器在外部执行状态ALE禁止

17、,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间, 每个机器周期PSEN两次有效。但在访问外部数据存储器时, 这两次有效的PSEN信号将不出现。 EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时, EA将内部锁定为RESET;当EA端保持高电平时,访问内 部ROM。在FLASH编程期间,此引脚也用于施加12V编程 电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 (二)、温度传感器的选择(二)、温度传感器的选择 由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应 的温度,需要

18、比较多的外部元件支持,且硬件电路复杂,制作成本相对较 高。这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。 1 1、DS18B20DS18B20 简单介绍简单介绍: : DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件” ,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线” 接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定 的报警温度存储在EEPROM 中,掉电后依

19、然保存。被测温度用符号扩展的 16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄 生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一 根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大 量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在 一根通信线,可以挂很多这样的数字温度计,十分方便。 DS18B20 的性能特点如下: 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线 即可实现微处理器与DS18B20的双向通讯 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线 上,实现组网多

20、点测温 DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集 成在形如一只三极管的集成电路内 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由 数据线供电 温范围55125,在-10+85时精度为0.5 零待机功耗 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、 0.125和0.0625,可实现高精度测温 在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最 多在750ms内把温度值转换为数字,速度更快 用户可定义报警设置 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器 件 测量结果直接输出数字温度信号,以一线总线

21、串行传送给CPU,同 时可传送CRC校验码,具有极强的抗干扰纠错能力 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能 正常工作 以上特点使DS18B20非常适用与多点、远距离温度检测系统。 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、 非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各 种封装形式如图 4.2 所示,DQ 为数据输入/输出引脚。开漏单总线接口引 脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号; VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。其电 路图 4.3所示.。 图 4.2 外部

22、封装形式 图4.3 传感器电路图 2 2、DS18B20DS18B20 使用中的注意事项使用中的注意事项 DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线 少等优点,但在实际应用中也应注意以下几方面的问题: DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间, 这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示 85。 在实际使用中发现,应使电源电压保持在5V 左右,若电源电压过低, 会使所测得的温度精度降低。 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处 理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必 须严格

23、的保证读写时序,否则将无法读取测温结果。在使用PL/M、C 等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编 语言实现。 在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题, 容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此, 当单总线上所挂DS18B20 超过8 个时,就需要解决微处理器的总线 驱动问题,这一点在进行多点测温系统设计时要加以注意。 在DS18B20测温程序设计中,向DS18B20 发出温度转换命令后,程 序总要等待DS18B20的返回信号,一旦某个DS18B20 接触不好或断 线,当程序读该DS18B20 时,将没有返回信

24、号,程序进入死循环, 这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。 3 3、DS18B20DS18B20 内部结构内部结构 图为 DS1820 的内部框图,它主要包括寄生电源、温度传感器、64 位激 光 ROM 单线接口、存放中间数据的高速暂存器(内含便笺式 RAM) ,用于存 储用户设定的温度上下限值的 TH 和 TL 触发器存储与控制逻辑、8 位循环冗 余校验码(CRC)发生器等七部分。 DS18B20采用脚PR35 封装或脚SOIC封装,其内部结构框图如 图 4.4所示 图 4.4 DS18B20内部结构框图 64 b 闪速 ROM 的结构如下: 开始位是产品类型的

25、编号,接着是每个器件的惟一的序号,共有48 位,最后位是前面56 位的CRC 检验码,这也是多个DS18B20 可以采用 一线进行通信的原因。温度报警触发器和,可通过软件写入户报 警上下限。主机操作ROM的命令有五种,如表所列 指 令说 明 读ROM(33H) 读DS1820的序列号 匹配ROM(55H) 继读完64位序列号的一个命令,用 于多个DS1820时定位 跳过ROM(CCH) 此命令执行后的存储器操作将针对 在线的所有DS1820 搜ROM(F0H) 识别总线上各器件的编码,为操作 各器件作好准备 报警搜索(ECH) 仅温度越限的器件对此命令作出响 应 DS18B20 温度传感器的内

26、部存储器还包括一个高速暂存和一个 非易失性的可电擦除的EERAM。高速暂存RAM 的结构为字节的存储器, 结构如图 4.5所示。 图 4.5 高速暂存RAM结构图 前个字节包含测得的温度信息,第和第字节和的拷贝, 是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内 容用于确定温度值的数字转换分辨率。DS18B20 工作时寄存器中的分辨率 转换为相应精度的温度数值。 温度低位温度高位THTL配置保留保留保留8 位 CRC LSB MSB 当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温 度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1,2

27、 字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在 后,数据格式以 0.062 5 /LSB 形式表示。温度值格式如下: 这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位 为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温 度。图中,S 表示位。对应的温度计算:当符号位 S=0 时,表示测得的温 度植为正值,直接将二进制位转换为十进制;当 S=1 时,表示测得的温

28、度 植为负值,先将补码变换为原码,再计算十进制值。例如+125的数字输 出为 07D0H,+25.0625的数字输出为 0191H,-25.0625的数字输出为 FF6FH,-55的数字输出为 FC90H。 DS18B20 温度传感器主要用于对温度进行测量,数据可用 16 位符号扩 展的二进制补码读数形式提供,并以 0.0625LSB 形式表示。表 2 是部 分温度值对应的二进制温度表示数据。 表 2 部分温度值 DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、TL 字节内容作比较,若 TTH 或 TTL,则将该器件内的告警标志置位,并对 主机发出的告警搜索命令作出响应

29、。因此,可用多只 DS18B20 同时测量温 度并进行告警搜索。 在 64 位 ROM 的最高有效字节中存储有循环冗余校验码(CRC)。主 机根据 ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 中的 CRC 值 做比较,以判断主机收到的 ROM 数 据是否正确。 4 4、DS18B20DS18B20 测温原理测温原理 DS18B20 的测温原理如图 2 所示,图中低温度系数晶振的振荡频率受 温度的影响很小用于产生固定频率的脉冲信号送给减法计数器 1,高温度系 数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数门打开时

30、,DS18B20 就对低温 度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开 启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基 数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被 预置在-55 所对应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减 法计数器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预 置将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号 进行计数,如此循环直到减法计数器 2 计数到 0 时,停止温度寄存器值的累 加,此时温度寄存器中的数值即为

31、所测温图 2 中的斜率累加器用于补偿和 修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计 数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就 是 DS18B20 的测温原理。 另外,由于 DS18B20 单线通信功能是分时完成的,他有严格的时隙概 念,因此读写时 序很重要。系统对 DS18B20 的各种操作必须按协议进 行。操作协议为:初始化 DS18B20 (发复位脉冲)发 ROM 功能命令 发存储器操作命令处理数据。 图(2) DS18B20 测温原理图 在正常测温情况下,DS1820 的测温分辨力为 0.5,可采用下述方法获 得高分辨率的温度测量结果:首先用

32、 DS1820 提供的读暂存器指令(BEH) 读出以 0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位 (LSB) ,得到所测实际温度的整数部分 Tz,然后再用 BEH 指令取计数器 1 的计数剩余值 Cs 和每度计数值 CD。考虑到 DS1820 测量温度的整数部分以 0.25、0.75为进位界限的关系,实际温度 Ts 可用下式计算: Ts=(Tz-0.25)+(CD-Cs)/CD 5 5、提高、提高 DS1820DS1820 测温精度的途径测温精度的途径 (1)、DS1820 高精度测温的理论依据 DS1820 正常使用时的测温分辨率为 0.5,这对于水轮发电机组轴瓦 温度监测

33、来讲略显不足,在对 DS1820 测温原理详细分析的基础上,我们采 取直接读取 DS1820 内部暂存寄存器的方法,将 DS1820 的测温分辨率提高 到 0.10.01 DS1820 内部暂存寄存器的分布如表 1 所示,其中第 7 字节存放的是当 温度寄存器停止增值时计数器 1 的计数剩余值,第 8 字节存放的是每度所 对应的计数值,这样,我们就可以通过下面的方法获得高分辨率的温度测 量结果。首先用 DS1820 提供的读暂存寄存器指令(BEH)读出以 0.5为分 辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测 实际温度整数部分 T 整数,然后再用 BEH 指令读取计

34、数器 1 的计数剩余值 M 剩余和每度计数值 M 每度,考虑到 DS1820 测量温度的整数部分以 0.25、0.75为进位界限的关系,实际温度 T 实际可用下式计算得到:T 实际=(T 整数0.25)+(M 每度M 剩余)/M 每度。 表 1 DS18B20 暂存寄存器分布 该字节各位的定义如下: TM R1 R0 1 1 1 1 1 低 5 位一直都是 1,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测 试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动,R1 和 R0 决定温度转 换的精度位数,即是来设置分辨率,如表 1 所示(DS18B20 出厂时被设

35、置为 12 位)。 R1R0 分辨率温度最大转换时/mm 00 9 位 93.75 01 10 位 187.75 10 11 位 275.00 11 12 位 750.00 表 1 R1 和 R2 模式表 由表 1 可见,设定的分辨率越高,所需要的温度数据转换时间就越长。 因此,在实际应用中要在分辨率和转换时间权衡考虑。高速暂存存储器除 了配置寄存器外,还有其他 8 个字节组成,其分配如下所示。其中温度信 息(第 1,2 字节) 、TH和 TL值第 3,4 字节、第 68 字节未用,表现为全 逻辑 1;第 9 字节读出的是前面所有 8 个字节的 CRC 码,可用来保证通信 正确。 根据 DS1

36、8B20 的通讯协议,主机控制 DS18B20 完成温度转换必须经过 三个步骤:每一次读写之前 都要对 DS18B20 进行复位,复位成功后 发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的 操作。复位要求主 CPU 将数据线下拉 500 微秒,然后释放,DS18B20 收到 信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。 (2)、 测量数据比较 表 2 为采用直接读取测温结果方法和采用计算方法得到的测温数据比 较,通过比较可以看出,计算方法在 DS1820 测温中不仅是可行的,也可以 大大的提高

37、 DS1820 的测温分辨率。 表 2 DS18B20 直度测温结果与计算测温结果数据比较 (三)、显示及报警模块器件选择(三)、显示及报警模块器件选择 在本设计中温度测量范围为0125,精度为0.5,因此只需 要液晶就可以完成相关的显示功能,报警器可以用有源蜂鸣器配合三极管 来代替。 五、硬件设计电路五、硬件设计电路 温度计电路设计原理图如图5.1所示,控制器使用单片机AT89C2051,温度 计传感器使用DS18B20,用液晶实现温度显示。 本温度计大体分三个工作过程。首先,由DS18820温度传感器芯片测量 当前的温度,并将结果送入单片机。然后,通过89C205I单片机芯片对送来 的测量

38、温度读数进行计算和转换,井将此结果送入液晶显示模块。最后, SMC1602A芯片将送来的值显示于显示屏上。 由图1可看到,本电路主要由 DSl8820温度传感器芯片、SMCl602A液晶显示模块芯片和89C2051单片机芯 片组成。其中,DSI8B20温度传感器芯片采用“一线制”与单片机相连,它独 立地完成温度测量以及将温度测量结果送到单片机的工作。 图5.1 温度计电路设计原理图 (一)、主控制器(一)、主控制器 单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满 足电路系统的设计需要,很合适携手特式产品的使用。主机控制DS18B20 完成温度转换必须经过三个步骤:初始化、

39、ROM操作指令、存储器操作指 令。必须先启动DS18B20开始转换,再读出温度转换值。 (二)、显示电路(二)、显示电路 显示电路采用SMCI602A液晶显示模块芯片该芯片可显示162个字符, 比以前的七段数码管LED显示器在显示字符的数量上要多得多。另外,由 于SMCl602芯片编程比较简单,界面直观,因此更加易于使用者操作和观 测。SMCl602A芯片的接口信号说明如表1所列。 表1 SMCl602A芯片的接口信号说明 (三)、(三)、 温度检测电路温度检测电路 DS18B20 最大的特点是单总线数据传输方式,DS18B20 的数据I/O 均 由同一条线来完成。DS18B20 的电源供电方

40、式有2 种: 外部供电方式和寄 生电源方式。工作于寄生电源方式时, VDD 和GND 均接地, 他在需要远程 温度探测和空间受限的场合特别有用, 原理是当1 W ire 总线的信号线DQ 为高电平时, 窃取信号能量给DS18B20 供电, 同时一部分能量给内部电容 充电, 当DQ为低电平时释放能量为DS18B20 供电。但寄生电源方式需要强 上拉电路, 软件控制变得复杂(特别是在完成温度转换和拷贝数据到 E2PROM 时) , 同时芯片的性能也有所降低。因此, 在条件允许的场合, 尽 量采用外供电方式。无论是内部寄生电源还是外部供电,I/O口线要接5K 左右的上拉电。在这里采用前者方式供电。D

41、S18B20与芯片连接电路如图 5.2所示: 图 5.2 DS18B20与单片机的连接 外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干 扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系 统。站长推荐大家在开发中使用外部电源供电方式,毕竟比寄生电源方式 只多接一根VCC引线。在外接电源方式下,可以充分发挥DS18B20宽电源 电压范围的优点,即使电源电压VCC 降到3V 时,依然能够保证温度量精 度。 由于DS18B20 只有一根数据线,因此它和主机(单片机)通信是需要 串行通信,而AT89S51 有两个串行端口,所以可以不用软件来模拟实现。 经过单线接口访问

42、DC18B20 必须遵循如下协议:初始化、ROM 操作命令、 存储器操作命令和控制操作。要使传感器工作,一切处理均严格按照时序。 主机发送(Tx)-复位脉冲(最短为480s 的低电平信号)。接着主 机便释放此线并进入接收方式(Rx)。总线经过4.7K的上拉电阻被拉至高 电平状态。在检测到I/O 引脚上的上升沿之后,DS18B20 等待1560s, 并且接着发送脉冲(60240s 的低电平信号)。然后以存在复位脉冲表 示DS18B20 已经准备好发送或接收,然后给出正确的ROM 命令和存储操 作命令的数据。DS18B20 通过使用时间片来读出和写入数据,时间片用于 处理数据位和进行何种指定操作的

43、命令。它有写时间片和读时间片两种: 写时间片:当主机把数据线从逻辑高电平拉至逻辑低电平时,产生 写时间片。有两种类型的写时间片:写1 时间片和写0 时间片。所 有时间片必须有60 微秒的持续期,在各写周期之间必须有最短为1 微秒的恢复时间. 读时间片:从DS18B20 读数据时,使用读时间片。当主机把数据 线从逻辑高电平拉至逻辑低电平时产生读时间片。数据线在逻辑低 电平必须保持至少1 微秒;来自DS18B20 的输出数据在时间下降 沿之后的15 微秒内有效。为了读出从读时间片开始算起15微秒的 状态,主机必须停止把引脚驱动拉至低电平。在时间片结束时,I/O 引脚经过外部的上_鱯_9L_%拉电阻

44、拉回高电平,所有读时间片 的最短持续期为60 微秒,包括两个读周期间至少1s 的恢复时间。 一旦主机检测到DS18B20 的存在,它便可以发送一个器件ROM 操作 命令。所有ROM 操作命令均为8位长。 所有的串行通讯,读写每一个bit 位数据都必须严格遵守器件的时序逻 辑来编程,同时还必须遵守总线命令序列,对单总线的DS18B20 芯片来说, 访问每个器件都要遵守下列命令序列:首先是初始化;其次执行ROM 命令; 最后就是执行功能命令(ROM 命令和功能命令后面以表格形式给出)。如果 出现序列混乱,则单总线器件不会响应主机。当然,搜索ROM命令和报警 搜索命令,在执行两者中任何一条命令之后,

45、要返回初始化。 基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主 机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道,总 线上有从机,且准备就绪。 在主机检测到应答脉冲后,就可以发出ROM 命令。这些命令与各个从 机设备的唯一64 位ROM 代码相关。在主机发出ROM命令,以访问某个指 定的DS18B20,接着就可以发出DS18B20支持的某个功能命令。这些命令 允许主机写入或读出DS18B20便笺式RAM、启动温度转换。软件实现 DS18B20的工作严格遵守单总线协议: (1)主机首先发出一个复位脉冲,信号线上的DS18B20 器件被复位。 (2)接着主机发送ROM命令,程序开始读取单个在线的芯片ROM编码并 保存在单片机数据存储器中,把用到的DS18B20 的ROM 编码离线 读出,最后用一个二维数组保存ROM 编码,数据保存在X25043中。 (3)系统工作时,把读取了编码的DS18B20 挂在总线上。发温度转换命 令,再总线复位。 (4)然后就可以从刚才的二维数组匹配在线的温度传感器,随后发温度 读取命令就可以获得对应的度值了。 在主机初始化过程,主机通过拉低单总线至少480us,来产生复位脉冲。 接着,主机释放总线,并进入接收模式。当总线被释放后,上拉电阻将单 总

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1