《毕业设计(论文)-多点温度检测系统(22页).doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-多点温度检测系统(22页).doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-毕业设计(论文)-多点温度检测系统-第 - 18 - 页毕业设计(论文)论文题目 多点温度检测系统 目 录一、绪论- 1 -(一)系统背景- 1 -(二) 系统概述- 1 -(三) 传感器发展趋势- 1 -二、方案论证- 2 -(一) 方案选择与论证- 2 -1、方案一- 2 -2、方案二:- 2 -(二) 本系统方案- 3 -三、系统硬件电路构成- 4 -(一)整体电路简介- 4 -(二)电源电路介绍:- 4 -1、单相桥式整流电路工作原理:- 4 -(三)控制单元AT89S51单片机- 5 -1AT89S51单片机的基本组成- 6 -(四)温度测量单元DS18B20- 8 -1、DS18
2、B20的主要特征:- 8 -2、DS18B20的4个主要的数据部件:- 9 -3、DS18B20工作原理及应用:- 9 -4、控制器对18B20操作流程:- 10 -5、DS28B20芯片ROM指令表:- 12 -6、DS18B20复位及应答关系示意图:- 12 -(五)按键电路- 13 -(六)系统的整体框图- 13 -四、系统的软件设计- 15 -(一)概述- 15 -(二)主程序方案- 15 -(三)1Wire总线接口:- 16 -(四)1Wire总线读取数据子程序流程:- 17 -1Wire总线读取流程图:- 17 -2、1Wire总线对DS18B20 功能命令集- 17 -3、读取子
3、程序:- 18 -结束语- 19 -参考文献- 20 -附录- 21 -致谢辞- 30 -多点温度检测系统内容摘要摘 要:本设计是运用AD89S51为控制核心、以DS18B20为检测单元、以C语言为程序语言的一个多点温度检测系统。DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单。DS18B20 是美国DALLAS 公司生产的单线数字温度传感器,它具有微型化、低功耗、高性能、抗干拢能力强、易配微处理器等优点,特别适合于构成多点温度测控系统, 可直接将温度转化成串行数字信号供微机处理, 而且每片DS18
4、B20 都有唯一的产品号并可存入其ROM 中, 以便在构成大型温度测控系统时在单线上挂接任意多个DS18B20 芯片。本设计基于DS18B20智能温度传感器在温度测量系统的硬件和软件的设计。DS18B20是一种高精度数字式温度传感器,分辩率可达到0.0625。且其具有1Wire总线(单总线)串行数据传输的独特优点,可以使用户轻松地组建起传感器网络,使多点温度测量电路变得简单、可靠,具有组网快、成本低等特点。 对于DS18B20数字温度传感器实现各点现场温度检测,通过1Wire总线传输,再由AT89S51单片机进行数据处理,并通过数码管显示温度值,则完成温度检测。其可使用于仓库测温、楼宇空调控制
5、和工业生产过程监控等领域。关键字:温度检测 单总线(1Wire) DS18B20 AT89S51Abstractthis design is to make use of AD89 S51 for control core, take DS18 B20 as to examine unit and take C language as much aer system that order a temperature examination of procedure language.The DS18 B20 is a kind of can the high accuracy number t
6、ype temperature of set net spread a feeling machine, because it has the special advantage of single total line, can use a door easily the set start to set up to spread a feeling machine network, and can make to order more temperature diagraph the electric circuit become simple.DS18B20 produced by th
7、e U.S. DALLAS-wire digital temperature sensor, it has a miniaturized, low power, high performance, anti-dry Long strong, easy with the advantages of microprocessors, particularly suited to constitute a multi-point temperature measurement and control system can be directly the temperature into a seri
8、al digital signal for computer processing, and each piece has a unique product number DS18B20 can be stored in its ROM in order to constitute a large-scale temperature measurement and control system mounted on a single line any number of DS18B20 chips.The design is based on DS18B20 Smart temperature
9、 sensor in the temperature measurement system hardware and software design. DS18B20 is a high-precision digital temperature sensor resolution up to 0.0625 . And its a 1-Wire bus (single bus) serial data transmission unique advantages, enabling users to easily set up from sensor networks that enable
10、multi-point temperature measurement circuit becomes simple, reliable, fast networking and low cost characteristics.For DS18B20 digital temperature sensor to achieve all the points on-site temperature detection, through the 1-Wire bus transfer, then AT89S51 microcontroller for data processing, and th
11、rough digital tube display temperature value, then the completion of temperature detection. Its storage temperature can be used, building air-conditioning control, and industrial process monitoring and other fields.Keywords: Temperature testing a single bus (1-Wire) DS18B20 AT89S51一、绪论(一)系统背景温度控制是很多
12、企业常见的控制装置。如在啤酒生产领域中,经常需要检测和控制发酵罐中温度,使之能够稳定在一定的温度范围之内,使之得以高效发酵。只有这样,才能得出可靠的、优质的、合格的产品,这就要求系统对温度的检测具有足够的精度和实时性。控制要有足够的精度,并且尽可能具有较低的成本,这样的产品质量等到保证,同时经济效益也大大的提高。则DS18B20恰好具有这样的优势,由于其体积小,可用单总线数据传输,可直接输出数字量,不需要AD转换,与单片机容易接口,成为新一代广为使用的理想温度传感器。应用于现代工、农业生产和日常生活中的温度检测。随着电子技术以及应用需求的发展,单片机得到了迅速的发展,在高集成度,高速度,低功耗
13、以及高性能方面取得了很大的进展。伴随着科学技术的发展,电子技术有了更高的飞跃,我们现在完全可以运用单片机来代替人工测量,这样既省时又省力。(二) 系统概述本系统设计主要是多点温度检测的检测系统。系统由主控单元和检测单元两部份组成,主控与检测单元间是串行数据传输通信方式。主控单元含有微处理器AT89S51单片机,其直接通过串行总线数据传输实现对检测单元温度数据的读取、转换以及温度值显示。检测单元主要由DS18B20对检测点现场温度采集,为AT89S51提供数据信号,再由四位二进制7段数码管来显示。由于DS18B20利用单总线的特点可以方便的实现多点温度的测量,轻松的组建传感器网络,系统的抗干扰性
14、好、设计灵活、方便。则该使用了两个DS18B20温度传感器实现对两点的温度进行检测,在主控现场可以通过开关的选择来选举1号或是2号检测点,由显示器实时显示当前各点的温度值,从而获取该点的实际温度大小,实现该系统的功能。而系统在软件设计上没有需要进行获取各个DS18B20的序列号,从而缩短了温度的读取时间。硬件上由于只有两个温度传感器,由拨动开关直接选择各温度检测点,而且不需要经过软件对按键的处理,减少了软件设计的复杂性。同时,起到缩短读取时间,检测更加快捷。(三) 传感器发展趋势现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。传感器属于信息技术的
15、前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。近百年来,温度传感器的发展大致经历了以下三个阶段;(1)传统的分立式温度传感器(含敏感元件);(2)模拟集成温度传感器控制器;(3)智能温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。二、方案论证(一) 方案选择与论证温度检测系统都有共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因
16、素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。所以多点温度检测系统的设计关键在于:温度传感器的选择、检测数据的传输和主控单元的控制设计。1、方案一传统上热敏电阻是最常见的温度传感元件,采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂.另外,这种测温装置的一根线上只能挂一个传感器,
17、不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。2、方案二:在多点测温系统中,传统的测温方法是将模拟信号远距离采样进行AD转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输,多点测量切换及放大电路零点漂移等造成的误差补偿问题。采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线(1Wire)的数据传输,具有体积小,结构简单,操作灵活,检测
18、温度范围为:- 55至128,温度分辨率可达0.0625,无须外接电路的优点。由数字温度计DS1820和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号。这样,测温系统的结构就比较简单,体积也不大,且由于AT89C51可以带多个DSB1820,因此可以非常容易实现多点测量.轻松的组建传感器网络。在使用过程中,可由一根I/O数据线既供电又可传输数据,传输上信号相对模拟信号稳定,适用于复杂的环境中。 采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避免外界的干扰,提高测量电路
19、的精确度。所以集成芯片的使用将成为电路发展的一种趋势。综上比较分析,我们选择方案二,以更高的精度、更快点响应时间,实现温度测量。(二) 本系统方案系统采用AT89S51单片机作为主控机来实现, AT89C2051为控制核心, DS18B20传感器实现温度数据采集,四位二进制7段数码管来显示温度值。本系统适宜小规模的多点温度检测,单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,可以针对修改内部程序,而实现另外的功能。而且体积小,硬件实现简单,使用灵活,安装方便。既可以单独对多个DS18B20控制工作。使得外围电路设计简单,而软件设计相对比较的复杂。系统原理图如图2-1所示:
20、主控单元AT89S51显示器按键检测单元DS18B20检测单元DS18B20测温点2测温点1图2-1三、系统硬件电路构成(一)整体电路简介电源电路先由220V交流电提供主电源,再经降压变压器降压到9V,再经三端稳压管提供最后电路版所需的5V电压源。在主控单元部分,由AT89S51单片机连接复位电路与晶震电路构成主控制单元最小模块,控制显示电路和DS18B20的数据传输;显示电路由4位8段数码管连接而成,显示两路DS18B20的传输数据;温度检测电路由两块DS18B20温度传感进行温度检测,经I/O接口串行传输温度数据。系统电路的功能主要包括:多点温度测试及其相关处理,实时显示温度信息,单总路线
21、(1Wire)串行传输温度数据。硬件设计主要包括以下几个模块:5V直流稳压电源电路,按键以及显示电路,温度测试电路,AT89S51与串口接线电路。下面对电路分模块进行说明(二)电源电路介绍:因为单片机及温度传感器工作电源为+5V直流电源,且系统电路功耗很小。采用220V/9V小功率变压器输出9V 交流低压再通过桥式整流,加上7805端稳压片即可满要求。具体电路图如图3-1所示:图3-1 电源原理图图3-2 电源工作电路图1、单相桥式整流电路工作原理:VCC GND为单片机提供电源,T为电源变压器,将220V交流电压变成整流电路要求的交流电压u2,四只整流二极管VD1-VD4接成电桥,把交流电转
22、为直流电;4个整流二极管,电解电容C1构成整流滤波电路;7805为三端稳压管,输出5V电压为单片机及DS18B20提供电压源;C2,C4用于消除7805三端稳压器的自激;C1,C3是滤波电容,C3小于C1的容量,以免掉电时C3通过7805向C1充电.(三)控制单元AT89S51单片机单片机又称为单片微型计算机,是指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种功能部件,包括CPU(Central Processing Unit)、随机存取存储器RAM(Random Access Memory)、只读存储器ROM(Read-only Memory)、基本输入/输出(Input/Out
23、put)接口电路、定时器/计数器等部件都制作在一块集成芯片上,构成一个完整的微型计算机,从而实现微型计算机的基本功能。单片机内部结构示意图如图3-3所示。 图3-3 单片机内部结构示意图AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式
24、控制系统提供了一种灵活性高且价廉的方案。因此,本系统使用AT89S51单片机作为微处理器。AT89S51引脚图如图3-4。图3-4 AT89S51管脚图 图3-5微处理器电路图它主要具有如下特点:完全兼容51全部字系列产品,4K字节可编程FLASH存储器,0Hz- 33 KHz全静态工作,三级程序存储器保密锁定,128*8位内部RAM,32条可编程I/O线,两个16位定时器/计数器,6个中断源,双工UART串行通道,看门狗(WDT)电路,片内振荡器和时钟电路,ISP在线编程功能。AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器
25、,串行口,外中断系统可继续工作掉电模式冻结振荡器,因而可以保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。1AT89S51单片机的基本组成AT89S51单片机的基本组成请参见图3-6。 (1) 中央处理器(CPU)中央处理器是单片机的核心,完成运算和控制功能。AT89S51的CPU能处理8位二进制数或代码。(2) 内部数据存储器(内部RAM)AT89S51芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。图3-6 AT89S51单片机结构框
26、图(3) 内部程序存储器(内部ROM)AT89S51共有4 KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。(4) 定时/计数器 AT89S51共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。 (5) 并行I/O口 AT89S51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。在实训中我们已经使用了P1口,通过P1口连接8个发光二极管。(6) 串行口AT89S51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也
27、可作为同步移位器使用。 (7) 中断控制系统AT89S51单片机的中断功能较强,以满足控制应用的需要。AT89S51共有5个中断源,即外中断两个,定时/计数中断两个,串行中断一个。全部中断分为高级和低级共两个优先级别。 (8) 时钟电路AT89S51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6 MHz和12 MHz。从上述内容可以看出,AT89S51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此,实际上它已是一个简单的微型计算机系统了。2. AT89S51的信号引脚 AT89S51是标准的40引脚双列直插式集
28、成电路芯片,引脚排列请参见图3-7。 1) 信号引脚介绍 P0.0 P0.7: P0口8位双向口线。 P1.0 P1.7 :P1口8位双向口线。 P2.0 P2.7 :P2口8位双向口线。 P3.0 P3.7 :P3口8位双向口线。 图3-7ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。:外部程序存储器读选通信号。在读外部ROM时,有效(低电平),以实现外部ROM单元的读操作。:访问程序存储控制信号。当信号为低电平时,对ROM的读操
29、作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VSS:地线。VCC:+5 V电源。以上是AT89S51单片机芯片40条引脚的定义及简单功能说明,读者可以对照实训电路找到相应引脚,在电路中查看每个引脚的连接使用。(四)温度测量单元DS18B201、DS18B20的主要特征:
30、; 全数字温度转换及输出。 先进的单总线数据通信。 最高12位分辨率,精度可达土0.5摄氏度。 12位分辨率时的最大工作周期为750毫秒。 可选择寄生工作方式。 检测温度范围为55C +125C (67F +257F) 内置EEPROM,限温报警功能。 64位光刻ROM,内置产品序列号,方便多机挂接。 多样封装形式,适应不同硬件系统。 DS18B20芯片封装结构:图3-8DS18B20引脚功能: GND 电压地 DQ 单
31、数据总线 VDD 电源电压 NC 空引脚 DS18B20的内部结构如下图所示:图3-9 DS18B20 内部结构图2、DS18B20的4个主要的数据部件:(1) 64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。(2) 温度灵敏元件。(3)非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。(4)配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值。配置寄存器与分辨率关系表 :R0R1温度计分辨率/bit最大转换时间/us00993.750110187.
32、51011375111275064位ROM芯片内部有经过激光修正的ROM,内含64位ROM编码,包括产品系列号(高8位),产品序号(中间48位)和CRC编码(低8位)。3、DS18B20工作原理及应用: DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。18B20共有三种形态的存储器资源,它们分别是: ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上5
33、6的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。 RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校
34、验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。RAM及EEPROM结构图:图3-10我们在每一次读温度之前都必须进行复杂的且精准时序的处理,因为DS18B20的硬件简单结果就会导致软件的巨大开消,也是尽力减少有形资产转化为无形资产的投入,是一种较好的节约之道。4、控制器对18B20操作流程: (1) 复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。当18B20接到此复位信号后则会在1560uS后回发一个芯片的存在脉冲。 (2) 存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,
35、以便于在1560uS后接收存在脉冲,存在脉冲为一个60240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲。(3) 控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区
36、别,一般只挂接单个18B20芯片时可以跳过ROM指令。(4) 控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。 (5) 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为50
37、0uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。 若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据。DS18B20芯片与单片机的接口:图3-11如图所示,DS18B20只需要接到控制器(单片机)的一个I/O口上,由于单总线为开漏所以需要外接一个4.7K的上拉电阻。如要采用寄生工作方式,只要将VDD电源引脚与单总线并联即可。但在程序设计中,寄生工作方式将会对总线的状态有一些特殊的要求。 图3-125、DS28
38、B20芯片ROM指令表:Read ROM(读ROM)33HMatch ROM(指定匹配芯片)55HSkip ROM(跳跃ROM指令)CCHSearch ROM(搜索芯片)F0HAlarm Search(报警芯片搜索)ECHWrite Scratchpad (向RAM中写数据)4EHRead Scratchpad (从RAM中读数据)BEHCopy Scratchpad (将RAM数据复制到EEPROM中)48HConvert T(温度转换)44HRecall EEPROM(将EEPROM中的报警值复制到RAM)B8HRead Power Supply(工作方式切换)B4H6、DS18B20复位
39、及应答关系示意图:图3-13每一次通信之前必须进行复位,复位的时间、等待时间、回应时间应严格按时序编程。 DS18B20读写时间隙: DS18B20的数据读写是通过时间隙处理位和命令字来确认信息交换的。 写时间隙: 图3-14写时间隙分为写“0”和写“1”,时序如图3-14。在写数据时间隙的前15uS总线需要是被控制器拉置低电平,而后则将是芯片对总线数据的采样时间,采样时间在1560uS,采样时间内如果控制器将总线拉高则表示写“1”,如果控制器将总线拉低则表示写“0”。每一位的发送都应该有一个至少15uS的低电平起始位,随后的数据“0”或“1”应该在45uS内完成。整个位的发送时间应该保持在6
40、0120uS,否则不能保证通信的正常。 读时间隙: 图3-15读时间隙时控制时的采样时间应该更加的精确才行,读时间隙时也是必须先由主机产生至少1uS的低电平,表示读时间的起始。随后在总线被释放后的15uS中DS18B20会发送内部数据位,这时控制如果发现总线为高电平表示读出“1”,如果总线为低电平则表示读出数据“0”。每一位的读取之前都由控制器加一个起始信号。在通信时是以8位“0”或“1”为一个字节,字节的读或写是从高位开始的,即A7到A0.字节的读写顺序也是如图2自上而下的。 (五)按键电路按键有单片机复位电路的复位按键,还有温度传感器的选择拨动开关,由拨动开关直接选择一路温度传感器,实现该
41、路的温度检测。(六)系统的整体框图显示器采用的是共阴极七段数码管直接与AT89S51单片机I/O相接,显示方式是动态扫描显示。具体电路图如下:图3-17传感器在单总线上的连接方式:AT89S51DS18B20DS18B20DS18B20、广泛地方 RS NDS18B20(N)VCC=5V4.7K1WIRE图3-18 DS18B20构成的多点测温电路四、系统的软件设计(一)概述系统软件设计说明:整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。
42、二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。在进行单片机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。在单片机控制系统中,大体上可分为数据处理、温度值显示两个基本类型。数据处理包括:数据的采集、变换等。温度值显示程序主要是使单片机按一定的方法进行计算,然后再输出。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,有数组定义、端口定义、驱动DS18B20驱动程序、算法子程序显示子程序还
43、有主函数。(二)主程序方案 LED数码管清零向总线写一个数据字节程序结构数值正、负号判断DS18B20复位读取温度值向总线写一个数据位主函数温度处理从总线读取一个数据字节图4-1程序结构图主程序调用了3子程序,分别是DS18B20复位程序和温度处理程序讯程序、数码管显示程序。 将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序。将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能块。(三)1Wire总线接口:1Wire总线(单总线)标准为外设器件沿着一条数据线进行双向数据传输。任何单总线系统都包含一台主机和一
44、个从机,它们共用一条数据线。这条数据线被地址、控制和数据信息复用,全部器件完全依靠从数据线获得电源供电和数字信号,也可以外部电源供电。当数据线为高电平时,电荷存储在器件内部;当数据线为低电平时,器件利用这些电荷提供能量。R为上拉电阻,以提高电信号的驱动能力.顾名思义单总线只有一根数据线设备主机或从机通过一个漏极开路或三态端口连接至该数据线这样允许设备在不发送数据时释放数据总线以便总线被其它设备所使用单总线端口为漏极开路其内部等效电路如图1 所示单总线要求外接一个约5k 的上拉电阻这样单总线的闲置状态为高电平不管什么原因如果传输过程需要暂时挂起且要求传输过程还能够继续的话则总线必须处于空闲状态位
45、传输之间的恢复时间没有限制只要总线在恢复期间处于空闲状态高电平如果总线保持低电平超过480 s 总线上的所有器件将复位另外在寄生方式供电时为了保证单总线器件在某些工作状态下如温度转换期间EEPROM 写入等具有足够的电源电流必须在总线上提供强上拉如图4-2所示:图4-2(四)1Wire总线读取数据子程序流程:1Wire总线读取流程图:开始温度数据处理LED数码管清零读取温度DS18B20检测系统初始化温度显示图4-2在主机发出ROM 命令以访问某个指定的DS18B20 接着就可以发出DS18B20 支持,的某个功能命令这些命令允许主机写入或读出DS18B20 暂存器启动温度转换以及判断。从机的
46、供电方式DS18B20 的功能命令总结于表4-1 2、1Wire总线对DS18B20 功能命令集表4-13、读取子程序:void write_byte(uchar val) /向1-WIRE 总线上写1个字节 uchar i; for(i=8;i0;i-) DQ=1;_nop_();_nop_(); /从高拉倒低 DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 us DQ=val&0x01; /最低位移出 位运算 delay(6); /66 us val=val/2; /右移1位 DQ=1; delay(1); /*DS18B20读1字节函数*/ uchar read_byte(void) /从总线上读取1个字节 uchar i; uchar value=0; /将返回值初始化为0for(i=8;i0;i-) /连续读取8个数据位 DQ=1;_nop_();_nop_(); value