收藏 分享(赏)

基于单片机的温度传感器.doc

上传人:精品资料 文档编号:10399988 上传时间:2019-11-07 格式:DOC 页数:27 大小:392KB
下载 相关 举报
基于单片机的温度传感器.doc_第1页
第1页 / 共27页
基于单片机的温度传感器.doc_第2页
第2页 / 共27页
基于单片机的温度传感器.doc_第3页
第3页 / 共27页
基于单片机的温度传感器.doc_第4页
第4页 / 共27页
基于单片机的温度传感器.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、目 录0. 前言 .11. 总体方案设计 .22. 硬件电路的设计 .32.1 温度传感器 32.1.1温度传感器选用细则 32.1.2 温度传感器 DS18B20.42.1 单片机片子 .72.2 显示电路设计 .93 软件设计 .113.1主程序方案 113.2 各模块子程序 113.2.1 温度采集程序 113.2.2 显示程序 144.联合调试 .155. 课设小结及进一步设想 16参考文献 .16课设体会 .17附录 I 元件清单 18附录 II 整体电路图 19附录 III 源程序清单 20沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 1 页基于单片机

2、的温度采集系统设计(DS18B20)邢帅 沈阳航空航天大学自动化学院摘要:随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。计算机技术特别是单片机技术的发展,单片机的应用领域越来越广泛,单片机在工业控制、数据采集以及仪器仪表自动化等许多领域都起着十分重要的作用。但在实际应用中,在要求响应速度快、实时性强、控制量多的应用场

3、合,单个单片机往往难以胜任。本课题以 AT89C51单片机系统为核心,能对多点的温度进行实时巡检。DS18B20 是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了 DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。关键词:温度测量;DS18B20 温度传感器;单片机0. 前言在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自 18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶

4、金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。进入 21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。目前市场主要存在单点和多点两种温度测量仪表。对于单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高,测量范围大,而得到了普遍的应用。此种产品测温范围大都在-200-800之间,分辨率 12位,最小分辨温度在 0.001-0.01之间。自带 LED显示模块,显示 4位到 16位不等。有的仪表还具有存储功能,可存储几百到

5、几千组数据。该类仪表可很好的满足单个用户单点测量的需要。多点温度测量仪表,相对与单点的测量精度有一定的差距,虽然实现了多路温度的测控,但价格昂贵。针对目前市场的现状,本课题提出了一种可满足要求、可扩展的并且性价比高的单片机多路测温系统。沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 2 页随着科学技术的不断进步与发展,温度控制在工业控制、电子测温计、医疗仪器、家用电器等各种温度控制系统中广泛应用,且由过去的单点测量向多测量发展。目前温度传感器有模拟和数字两类传感器,为了克服模拟传感器与微处理器接口时需要信号调理电路和AD转换器的弊端,大多数多点测温控制系统采用数字传

6、感器,并大大方便了系统的设计。比较有代表性的数字温度传感器有DS18B20、MAX6575、DS1722、MAX6635、SMT160-30等。在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国Dallas半导体公司推出的数字温度传感器DS18B20,具有独特的单总线接口,仅需要占用一个通用I/0端口即可完成与微处理器的通信;在-1

7、0+85 温度范围内具有 05 精度;用户可编程设定912位的分辨率。以上特性使得DS18B20非常适用于构建高精度、多点温度测量系统。1. 总体方案设计温度检测系统有则共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。而为了获得较高的测温精度,就必须采用措施解决由长线传输,多点测量切换及放大电路零点

8、漂移等造成的误差补偿问题。采用数字温度芯片 DS18B20测量温度,输出信号全数字化。DS18B20 是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在 0100摄氏度时,最大线形偏差小于 1摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计 DS1820和微控制器 AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的

9、结构就比较简单,体积也不大,且由于 AT89C51可以带多个 DSB1820,因此可以非常容易实现多点测量.轻松的组建传感器网络。采用温度芯片 DS18B20测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 3 页免外界的干扰,提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。其原理框图为图 1被 测数 值DS18B20传感器51单片机LED显示器图 1 温度采集的结构框图2. 硬件

10、电路的设计本课题研究的多点测温系统是以单片机和单总线数字温度传感器 DS18B20为核心,充分利用单片机优越的内部和外部资源及数字温度传感器 DS18B20的优越性能构成一个完备的测温系统,实现对温度的多点测量。整个系统由单片机控制,能够接收传感器的温度数据并显示出来,可以从键盘输入命令,系统根据命令,选择对应的温度传感器,并由驱动电路驱动温度显示。本课题设计了一种合理、可行的单片机监控软件,完成测量和显示的任务。由于单片机具有强大的运算和控制功能,使得整个系统具有模块化、硬件电路简单以及操作方便等优点。本课题的整个系统是由单片机、显示电路、键盘电路、驱动电路,串口通信等构成。2.1 温度传感

11、器2.1.1 温度传感器选用细则现代传感器在原理与结构上千差万别,如何根据具体的测量目的、测量对象以及测量环境合理地选用传感器,是在进行某个量的测量时首先要解决的题。当传感器确定之后,与之相配套的测量方法和测量设备也就可以确定了。测量结果的成败,在很大程度上取决于传感器的选用是否合理。(1) 根据测量对象与测量环境确定传感器的类型要进行个具体的测量工作,首先要考虑采用何种原理的传感器,这需要分析多方面的因素之后才能确定。因为,即使是测量同一物理量,也有多种原理的传感器可供选用,哪一种原理的传感器更为合适,则需要根据被测量的特点和传感器的使用条件考虑以下一些具体问题:量程的大小;被测位置对传感器

12、体积的要求;测量方式为接触式还是非接触式;信号的引出方法,有线或是非接触测量;传感器的来源,国产还是进口,价格能否承受,还是自行研制。(2)灵敏度的选择沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 4 页通常,在传感器的线性范围内,希望传感器的灵敏度越高越好。因为只有灵敏度高时,与被测量变化对应的输出信号的值才比较大,有利于信号处理。但要注意的是,传感器的灵敏度高,与被测量无关的外界噪声也容易混入,也会被放大系统放大,影响测量精度。因此,要求传感器本身应具有较高的信噪比,尽员减少从外界引入的串扰信号(3)线性范围传感器的线形范围是指输出与输入成正比的范围。以理论上

13、讲,在此范围内,灵敏度保持定值。传感器的线性范围越宽,则其量程越大,并且能保证一定的测量精度。在选择传感器时,当传感器的种类确定以后首先要看其量程是否满足要求。但实际上,任何传感器都不能保证绝对的线性,其线性度也是相对的。当所要求测量精度比较低时,在一定的范围内,可将非线性误差较小的传感器近似看作线性的,这会给测量带来极大的方便。(4) 稳定性传感器使用一段时间后,其性能保持不变化的能力称为稳定性。影响传感器长期稳定性的因素除传感器本身结构外,主要是传感器的使用环境。因此,要使传感器具有良好的稳定性,传感器必须要有较强的环境适应能力。在选择传感器之前,应对其使用环境进行调查,并根据具体的使用环

14、境选择合适的传感器,或采取适当的措施,减小环境的影响。2.1.2 温度传感器 DS18B20DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器。全部传感元件及转换电路集成在形如一只三极管的集成电路内。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。其可以分别9375ms和750ms内完成9位和12位的数字量,最大分辨率为00625 , 而且从DS18B20读出或写入DS18B20的信息仅需要一根口线(单线接口)读写。(1)DS18B20的性能特点单线数字化智能集成温度的传感器,其特点是: DSI8B20可将被测

15、温度直接转换成计算机能识别的数字信号输出,温度值不需要经电桥电路先获取电压模拟量,再经信号放大和AD转换成数字信号,解决了传统温度传感器存在的因参数不一致性,在更换传感器时会因放大器零漂而必须对电路进行重新调试的问题,使用方便。 DS18B20能提供9到12位温度读数,精度高,且其信息传输只需1根信号线,与计算机接口十分简便,读写及温度变换的功率来自于数据线而不需额外的电源。 每一个DS18B20都有一个惟一的序列号,这就允许多个DS18B20连接到同一总线上。尤其适合于多点温度检测系统。 负压特性:当电源极性接反时,DS18B20虽然不能正常工作,但不会因发热而烧毁 正沈阳航空航天大学课程设

16、计 基于单片机的温度采集系统设计(DS18B20)第 5 页是由于具有以上特点,DS18B20在解决各种误差、可靠性和实现系统优化等方面与传统各种温度传感器相比,有无可比拟的优越性,因而广泛应用于过程控制、环境控制、建筑物、机器设备中的温度检测。其外形和管脚如下图:图2 DS18B20外部形状及管脚图(2)DS18B20与单片机的典型接口设计DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。Dsl8B20与单片机的硬件连接有两种方法:一是Vcc接外部电源,GND接地,I/0与单片机的I/0线相连;二是用寄生电源供电,此时,UDD和GND接地,I/0接单片机I/0。

17、无论是哪种供电方式,I/0口线都要接47k Q左右的上拉电阻。图4给出了DSl8B20与微处理器的典型连接。 DS18B20寄生电源供电方式:如下面图7所示,在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。独特的寄生电源方式有三个好处:1)进行远距离测温时,无需本地电源2)可以在没有常规电源的条件下读取ROM3)电路更加简洁,仅用一根I/O口实现测温要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18

18、B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,该电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。 DS18B20寄生电源强上拉供电方式:沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 6 页改进的寄生电源供电方式如下面图 7所示,为了使 DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到 E2存储器操

19、作时,用 MOSFET把 I/O线直接拉到 VCC就可提供足够的电流,在发出任何涉及到拷贝到 E2存储器或启动温度转换的指令后,必须在最多 10S 内把 I/O线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺点就是要多占用一根 I/O口线进行强上拉切换。(3)DS18B20 的内部结构:主要包括寄生电源、温度传感器、64 位激光ROM 单线接口、存放中间数据的高速暂存器,用于存储用户设定的温度上下限值的TH 和TL 触发器存储与控制逻辑、8 位循环冗余校验码(CRC)发生器等七部分。64位光刻ROM 的排列是:开始8位是产品类型标号,接着的48位是该D

20、S18B20自身的序列号,最后8位是前面56位的循环冗余校验码。光刻R0M 的作用是使每一个DS18B20都各不相同,这可实现一根总线上挂接多个DS18B20的目的。暂存存储器包含了8个连续字节,前2个字节是测得的温度信息,第1个字节的内容是温度的低8位,第2个字节是温度的高8位。第3个和第4个字节是TH、TL的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这3个字节的内容在每一次上电复位时被刷新。第6、7、8个字节用于内部计算。第9个字节是冗余检验字节图7 DS18B20的内部结构(4)DS18B20 的测温原理:DS1820测温原理如下图所示。图中低温度系数晶振的振荡频率受温度影响很小,

21、用于产生固定频率的脉冲信号送给计数器1。沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 7 页图 8 DS18B20测温原理高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,DS1 8B20测量温度原理停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。在正常测

22、温情况下,DS18B20 的测温分辨力为0.5,可采用下述方法获得高分辨率的温度测量结果:首先用DS18B20 提供的读暂存器指令(BEH)读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分TZ,然后再用BEH 指令取计数器1 的计数剩余值CS 和每度计数值CD。考虑到DS18B20测量温度的整数部分以0.25、0.75为进位界限的关系,实际温度TS 可用下式计算:TS=(TZ0.25) (CDCS)/CD。2.1 单片机片子在当今新科学技术飞速发展的年代里,单片机的应用已越来越受到人们的重视,它被广泛的应用于家电、医疗、智能仪表、工业自动

23、化等各个领域。单片机全称单片微型计算机,是将计算机的基本部分微型化,使之集成在一块芯片上的微机。目前市场上较为流行的单片机有 Intel公司和 Philip公司的 8051系列单片机Motorola 公司的 M 6800系列单片机。Intel 公司的 MCS96系列单片机以及 Microchip 公司的 PIC 系列单片机。片内含有 CPU、ROM、RAM、并行 I/O口、串行 I/O口、定时/计数器、A/D、D/A、中断控制、系统时钟及系统总线等。本课题是利用 Intel的 89c51控制整个系统。89c51 单片机包含下列几个部件:1 个 8位 CPU、1 个片内震荡器及时钟电路、4KB

24、ROM程序存储器、128B RAM数据存储器、可寻址 64KB外部数据存储器和 64KB外部程序存储器的控制电路、32 条可编程的 I/O线、2 个 16位的定时/计数器、1 个可编程全双工串行接口、5沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 8 页个中断源、2 个优先级嵌套中断结构。本课题运用 Intel公司的 8051进行系统控制,运用到了复位电路,时钟电路,串口,I/O口。复位电路:无论哪种单片机,都会涉及到复位电路。如果复位电路不可靠,在工作中就有可能出现“死机” , “程序走飞”等现象。所以,一个单片机复位电路的好坏,直接影响到整个系统工作的可靠性。

25、复位操作完成单片机片内电路的初始化,使单片机从一种确定的状态开始运行。当89C51单片机的复位引脚RST出现5ms以上的高电平时,单片机就完成了复位操作,如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序,因此要求单片机复位后能脱离复位状态。复位操作通常有上电和开关复位。上电复位要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。图10 .复位电路时钟电路:89c51单片机的时钟信号通常用内部振荡和外部振荡方式。在引脚XTAL1和XTAX2外接晶体振荡器,就够成了内部振荡方式。由于单片机内部有一个高增益反相

26、放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。晶振通常选用6MHZ、12MHZ或24MHZ。内部振荡器方式如下。如图11,电容器C1、C2起稳定振荡频率、快速起振的作用,电容值一般为5-30PF。内部振荡方式所得的时钟信号比较稳定。外部振荡方式是把已有的时钟信号引入单片机内,这种方式适于用于用来使单片机的时钟与外部信号保持一致。沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 9 页图11 时钟电路串口:串行通信是CPU与外界交换的一种基本方式。单片机运用于数据采集或工业控制时,往往作为前端机安装在工作现场,远离主机,现场数据采用串行通信方式主机并进行处

27、理,以降低通信成本,提高通信可靠性。51系列单片机自身有全双工的异步通信接口,通过软件编程,它可以作为通用异步接受和发送器使用,也可作为同步移位寄存器。I/O口:计算机对外设进行数据操作时,外设的数据是不能直接连到CPU的数据线上的,必须经过接口。这是由于CPU的数据线是外设或存储器和CPU进行数据传输的唯一公共通道,为了使数据线的使用对象不产生使用总线的冲突,以及协调快速的CPU和慢速的外设,CPU和外设之间必须有接口电路,接口起着缓冲、锁存数据、地址译码、信息格式转换、传递状态、发布命令等功能,I/O接口有并行接口、串行接口、定时/计数器、A/D、D/A等,根据外设的不同情况的应用要求,选

28、择不同的接口。单片机的I0 口一般是双向的 既可以做输入。 也可以做输出。以51系列为例,其P0、P 1、P2、P3均为双向口,且可位操作。P0口具有双重功能:可以作为输入/输出用,外接输入/输出设备;在有外接存储器和I/O接口时常作为低8位地址/数据总线,即低8位地址与数据线分时使用P0口。此时低8位地址由ALE信号的下跳沿使它锁存到外部地址锁存器中,尔后,P0口出现数据信息。P1口具有单一接口功能,P1口每一位都能作为可编程的输入或输出口线。P2口具有双重功能:作为输入口或输出口使用,外接输入/输出设备;在有外接存储器I/O接口时,作为系统的地址总线。输出高位地址,与P0口低8位地址一起组

29、成16位地址总线。P3口为双重功能口:可以作为输入/输出口,外接输入/输出设备;作为第二功能使用。沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 10 页XTAL218XTAL119ALE30 EA31 PSEN29RST9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 3P0.7/AD7 32P1.01 P1.12 P1.23P1.34 P1.45 P1.56P1.67 P1.78P3.0/RXD10P3.1/TXD1P3.2/INT0 12P3.3/INT1 1

30、3P3.4/T0 14P3.7/RD17P3.6/WR16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 2P2.2/A10 23P2.3/A1 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51p0.7+5vP3.7X1CRYSTALC127pC227pC32uR14k7R0R1R2R3C0C1C2C3DINLOADCLKRXDTXD图 12 单片机2.2 显示电路设计本课题要将传感器的温度信号显示出来,利用单片机89c51传输控制信号。本课题要用到MAX7219串行LED驱动显示器,此显示器具有接口简单占用资源少、控制灵活

31、方便、LED级联扩展便利的优点。MAX7219是串行输出共阴极显示驱动芯片,每片可驱动8个LED,具有级联功能可控制更多的LED 。MAX7219为24引脚芯片,除与LED显示相连的线外,与微控制器只需3根连线相接:芯片端管脚分别为CLK.DINLOAD,其中CLK为时钟输入端,DIN为数据输入端,LOAD为锁存信号。MAX7219的工作时序为:时钟的上升沿MAX7219把DIN引脚数据移入内部移位寄存器, 在时钟下降沿MAX7219把数据移向DOUT端, 而LOAD的上升沿则锁存最后移入的16位串行数据。对MAX7219的控制操作很方便,其片内具有8个位寄存器和6个控制寄存器。位寄存器对应L

32、ED的具体内容,控制寄存器决定LED的工作方式。控制寄存器分别为:不工作方式寄存器、译码方式寄存器、亮度控制寄存器。扫描个数寄存器、关闭寄存器。显示测试寄存器。寄存器的操作格式为2字节的串行数据,第一个字节为寄存器地址,第二个字节为控制命令或待显示数据。MAX7219是在脉冲控制下工作的,因此其抗干扰就更为重要。一般在其电源和地之间接一十几 f 的电容。另外,当MAX72l9和其他串行芯片共用I/O引脚时,最好在其外边加一上拉电阻。P1口内部有上拉电阻,如不在其外部接上拉电阻,有时出现驱动能力不足的现象。要用MAX7219控制多于8个的LED时,可以将多个MAX7219级联使用。各芯片的CLK

33、和沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 11 页LOAD端并接在一起。上一级MAX7219的DOUT端接下一级的D 端。级联显示时,如欲控制次级的MAX7219,只需向前几级的MAX7219的不工作方式寄存器送空操作数:本级则送欲显示的数据。另外,需注意,LOAD信号只需执行一次清O和置位,分别在整个过程的始末。即:级联调用WrTwoByte程序时,应将程序里的LOAD清O和置位语句屏蔽掉。只在级联显示的开始和最后分别将LOAD置O和1。本课题用了一个 LED数码管,具体连接如下图:VCXTAL218XTAL119ALE301PSN29RST9P0./AD

34、039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/AD63.7/72P1.0/T21./EX2P1.23.34P1.45.56P1.67.78P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47U5AT89C51234567891RP1RESPACK-8图 13 显示电路图3 软件设计整个系统的功能是由软件电路配合硬件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能

35、不同可分为两大类:一是监控软件(主程序) ,它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序) ,它是用来完成各种实质性的功能如测量、显示。每一个执行软件也就是一个小的功能执行模块。3.1主程序方案主程序采用模块化思想,温度采集程序, LED 显示程序。温度检测程序:利用 DS18B20智能温度测试仪进行温度测量,并传入 PIC16F877A单片机进行相关处理。LED显示程序:单片机向晶体管输入数字,LED 输出相应的数字。主程序流程图如图 14所示:沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 12 页开 始初始化温度数据采集数

36、据处理数据显示结 束图 14 主程序流程图3.2 各模块子程序3.2.1 温度采集程序(1)DSl8B20 编程简介每一片单总线芯片内部都有一个全球惟一的64 位编码,在多路测温时就是通过匹配每个芯片的ROM编码(ID)来搜寻该路的温度。DS18B20有9个可擦写的内部寄存器,称为便笺式RAM。所有的串行通讯,读写每一个Bit位数据都必须严格遵守器件的时序逻辑来编程,同时还必须遵守总线命令序列,对单总线的DS18B20芯片来说,访问每个器件都要遵守下列命令序列:首先是初始化,其次执行ROM 命令,最后执行功能命令。如果出现序列混乱,则单总线器件不会响应主机。每次访问任何单总线器件,必须严格遵守

37、这个命令序列,如果出现序列混乱,则单总线器件不会响应主机。但是这个准则对于搜索ROM命令和报警搜索命令例外,在执行两者中任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步。在主机发出ROM命令,以访问某个指定的DS18B20,接着就可以发出DS18B20支持的某个功能命令。这些命令允许主机写入或读出DS18B20暂存器,启动温度转换以及判断从机的供电方式。(2)软件实现前面提及单总线器件的ROM命令,在主机检测到应答脉冲后,就可以发出ROM命令。这些命令与各个从机设备的唯一64位ROM代码相关。允许主机在单总线上连接多个从机设备时,指定操作某个从机设备。这些命令还允许主机能够检测到

38、总线上有多少个从机设沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 13 页备,以及其设备类型或者有没有设备处于报警状态。从机设备可能支持5种ROM命令(实际情况与具体型号有关),每种命令长度为8位。主机在发出功能命令之前,必须发送合适的ROM命令。(1)搜索ROMF0h当系统初始上电时,主机必须找出总线上所有从机设备的ROM代码,这样主机就能够判断出从机的数目和类型。主机通过重复执行搜索ROM循环(搜索ROM命令跟随着位数据交换)以找出总线上所有的从机设备。如果总线只有一个从机设备,则可以采用读ROM命令来替代搜索ROM命令。在每次执行完搜索ROM循环后,主机必须

39、返回至命令序列的第一步(初始化)。(2)读ROM33h(仅适合于单节点)该命令仅适用于总线上只有一个从机设备。它允许主机直接读出从机的64位ROM代码,而无须执行搜索ROM过程。如果该命令用于多节点,系统则必然发生数据冲突,因为每个从机设备都会响应该命令。(3) 匹配ROM 55h匹配ROM命令跟随64位ROM代码,从而允许主机访问多节点系统中某个指定的从机设备。仅当从机完全匹配64位ROM代码时,才会响应主机随后发出的功能命令。其它设备将处于等待复位脉冲状态。(4)跳越ROMCCh(仅适合于单节点)主机能够采用该命令同时访问总线上的所有从机设备,而无须发出任何ROM代码信息。例如,主机通过在

40、发出跳越ROM命令后跟随转换温度命令44h,就可以同时命令总线上所有的DS18B20开始转换温度,这样大大节省了主机的时间。值得注意的是,如果跳越ROM命令跟随的是读暂存器BEh的命令(包括其它读操作命令),则该命令只能应用于单节点系统,否则将由于多个节点都响应该命令而引起数据冲突。DS18B20在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求,只有严格遵守通讯协议才能保证数据传输的正确性和完整性。所有时序均以主机为Master,单总线器件为Slave,每次数据的传输均从主机启动写时序开始,如果要求单总线器件回送数据,则在写命令后,主机需启动读时序完成数据接收。数据和命令的传输

41、都是低位在先。 DS18B20的复位时序沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 14 页图15 DS18B20复位时序图 DS18B20的读时序图 16 DS18B20读时序图DS18B20的读时序分读0时序和读1时序两个过程。读时序是主机先把单总线拉低,在之后的15s内必须释放单总线,以便将数据传输到单总线上。DS18B20完成一个读时序至少需要60s。 DS18B20的写时序图 17 DS18B20写时序图DS18B20的写时序也分为写 0时序和写 1时序两个过程。写 0时序和写 1时序的要求不同,写 0时,单总线要被拉低至少 60s,保证 DS18B2

42、0能够在 15-45s 之间正确采样 I/O总线上的“0”电平。写 1时,单总线被拉低,在之后的 15s 内必须释放单总线。DS18B20复位后,就可以编程控制读到其内部RAM所采集到的温度值,并且读取数据时低位在前,高位在后。读出数据后,需判断对应的温度是正值还是负值,当温度值为正值时,直接将二进制数转换为十进制温度值;当温度值为负值时先将二进制补码变为原码,再转换为十进制温度值。DS18B20温度测量与读取软件。3.2.2 显示程序根据系统的要求,单片机不仅要能接收到温度信号,还要将温度信号显示出来,使系统一目了然。对于输入的温度信号的显示是利用 MAX7219驱动进行显示的,MAX721

43、9 是沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 15 页串行输出共阴极显示驱动芯片,此显示器具有接口简单。占用资源少、控制灵活方便等,因此利用 MAX7219驱动显示方便,快捷。首先初始化5个控制寄存器,然后送18个显示数据 一旦送完控制字后,下一步按实际需要可以改变18个数据显示寄存器的内容,MX7219则按显示亮度等初始化规定与待显示的数据自动扫描显示。(1)译码寄存器:译码寄存器( )中数据可初始化为00H、01H、0FH 以及FFH共四种7D0情况,分别表示:对数据显示寄存器中的内容不译码只对 译码而对 0DIG7I不译码;对 译码而对 不译码;对 均

44、译码。在1DIG3I0G7I470译码方式时,只对数据显示寄存器中的 位译码, 位为任意值, 位控30647D制小数点。当 =l时,小数点亮; =O时,小数点熄灭。7 7(2)显示亮度寄存器:其中, 位可任意, 可选择的范围是DI43I00000l111。 的值越大,LED显示器越亮。3I0(3)扫描范围寄存器:其中, 位可任意,而 这三位二进制数排列从7G3 012D000到I11,其中000表示只接有 控制的一个LED 显示器,001表示接有由 和0I 0IG控制的两个LED显示器,由此类推;111则表示 均接有一个LED显示器。1DIG0IG7(4)关闭寄存器:其中, 位可以任意; =0

45、,关闭所有显示器, =0,允许7D1 0显示。(5)显示测试寄存器:其中 位可以任意; =0,LED处于正常工作状态,710D=1,LED处于显示测试状态,即LED所有的段全亮。0初始化MAX7219的程序流程如图18。送完所有控制寄存器的地址和相应的控制命令之后,再按同样的方法送待显示的数据,每次先送某个LED的地址字节,后送待显示的数据字节。由于控制寄存器和数据显示寄存器全部单独编址,所以在送控制字或送显示数据时,均没有规定其先后顺序。沈阳航空航天大学课程设计 基于单片机的温度采集系统设计(DS18B20)第 16 页选择码方式的地址字节选择码方式控制字节送显示亮度寄存器地址送显示亮度控制

46、字节送扫描范围寄存器的地址字节送扫描范围控制字节送关闭寄存器的地址字节送关闭寄存器的控制字节送显示测试寄存器的地址字节送显示测试寄存器的控制字节开始图18 初始化MAX7219的程序流程圈4.联合调试系统进行软件设计时,先要对本课题硬件有一个熟练的掌握,知道系统的组成,数据的传输,信号是如何被控制的,以及信号的显示。然后进行软件设计时,先搞清楚各个部分的子程序及他们的流程图,然后进行编程,最后将它们系统的编程。本文利用Proteus与KEIL C51对单片机多点温度测量系统进行了仿真设计。从本文结果可以看出,利用Proteus进行单片机系统的仿真设计可以极大地简化单片机程序在目标硬件上的调试工

47、作,大幅度节省制作电路板的时间,对于提高产品的开发效率、降低开发成本等有重要作用。硬件电路的简单是以软件的复杂为代价的,所以在程序编写和调试的过程中稍一粗心就会出现错误,包括时间延时不够,设置参数的类型有误,本程序经过反复的调试修改,虽然能达到预期的基本目标,但是还有很多地方需要完善,还可以利用剩余的I/O口挂接更多的DS18B20等。在protues上进行仿真实验,系统软件设计主要包括系统程序和流程图,根据整个系统的要求,完成温度的测量与控制必须经过以下几个步骤:单片机接受传感器的温度信号,并通过MAX7219驱动显示出来,接受控制信号,并将温度显示出来。结束沈阳航空航天大学课程设计 基于单

48、片机的温度采集系统设计(DS18B20)第 17 页5. 课设小结及进一步设想本课题通过分析对比各种不同的温度传感器,选定DS18B20,这种单总线数字温度传感器的通信方式比较独特,软件编写要求的比较新颖,特点突出。用其构建的系统有很多优点:硬件连线简单,省去了使用模拟传感器要进行放大、A/D转换等工作,由于它的级联功能,一条总线可挂接多个传感器测量不同位置的温度,根据DS18B20唯一的序号识别不同传感器在各自位置的温度。需要注意的是, 在系统安装及工作之前应将主机逐个与DS1820 挂接,以读出其序列号。另外,由于DS1820 单线通信功能是分时完成的,遵循严格的时隙概念,因此, 系统对DS1820 和各种操作必须按协议进行,即:初始化DS1820 (发复位脉冲)发ROM功能命令发存储器操作命令处理数据。现场温度直接以“一线总线”的数字方式传输,每一个自带地址,大大减少了系统的电缆数,提高了系统的稳定性和抗干扰性。通过调试成型系统发现了DS18B20除了上述优点外,还有一些缺点,如:简单的硬件连接的代价是复杂的软件时序,DS18B20在测量温度

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报