




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录设计总说明IInstructionIII1 绪论11.1 系统背景11.2 系统概述12 系统设计方案32.1 系统各部分设计方案32.1.1 主控制器部分32.1.2 扩展电路部分32.1.3 人机界面部分62.2 系统设计总框图83 硬件电路设计93.1 按键及键盘接口93.2 DS1302实时时钟103.2.1 DS1302芯片简介103.2.2 数字时钟的硬件电路133.3 DS18B20数字温度传感器133.3.1 DS18B20简介133.3.2 DS18B20的硬件电路183.4存储模块CSI24WC02电路193.4.1 存储器CSI24WC02简介193.4.2 系统中CAT24WC02连接电路203.5 LCD1602液晶显示器203.5.1 LCD1602简介203.5.2 LCD1602硬件电路234 软件程序设计244.1 独立式按键244.2 DS1302实时时钟254.2.1 DS1302时序254.2.2 DS1302程序264.3 DS18B20数字温度传感器284.3.1 DS18B20时序284.3.2 DS18B20程序304.4 存储模块CSI24WC02334.4.1 I2C总线的定义及时序334.4.2 CSI24WC02的程序设计344.5 LCD1602液晶显示器384.5.1 LCD1602时序384.5.2 LCD1602程序385 系统的仿真与调试425.1 各模块的仿真调试425.2 系统的仿真调试436 参考文献457 附录467.1 系统的整体原理图467.2 系统的程序流程图477.3 系统的整体程序478 致谢65华北科技学院2014届优秀毕业设计(论文)智能多点测温系统的设计设计总说明在电冰箱、空调机生产厂家的产品检测中,需要同时检测大量测点的温度变化情况。而要如何快速准确的测量这些温度,就成了关键。作为一种高精度的数字网络温度传感器,DS18B20可以很容易的用来建立传感器网络,依靠这种特殊的单总线接口,DS18B20可以使传感器网络简单可靠。本文介绍了DS18B20在单片机控制下的应用。本课题主要介绍基于AT89S52单片机和DS18B20数字温度传感器的多点温度测量系统。该系统采用AT89S52单片机分别采集各个点的温度,实现温度显示功能。它以AT89S52单片机作为主控芯片,采用数字温度传感器DS18B20S实现多路温度的测量,测量精度可达到0.5。该系统采用LCD1602液晶显示模块,LCD1602作为显示器,可以形象直观的显示测出的温度值。本文首先在绪论中介绍了此系统的背景及功能。第二章确定设计方案。第三章系统的论述了总体的设计过程,确定了技术指标及器件的选择并且描述了系统的硬件电路设计,确定了技术指标及器件的选择,并且描述了所使用的各种芯片功能与特性。第四章重点剖析了软件设计过程。第五章中具体论述了系统的调试步骤和应注意的问题。基于AT89S52单片机的单总线多点温度测控系统具有硬件组成简单、多点温度检测、读数方便、精度高、测温范围广等特点,在实际工程中得出到了广泛的应用。1)在主控制器部分,我用的是AT89S52单片机,它完全兼容51单片机,是51单片机的升级版,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。2)在扩展电路部分,我用到了数字温度传感芯片DS18B20,实时时钟芯片DS1302,和存储芯片24C02。8个D18B20用来测量8个不同测温点的温度,实时时钟芯片用来提供系统时间,24C02用来存储必要的信息。本设计的一个突出点是DS18B20的并行连接。传统的单总线上挂多个DS18B20,不仅耗时,而且还需要必要的驱动电流,给电路的设计和程序的设计带来诸多不便。而本系统采用的并行连接,在理论上8个温度转换所消耗的时间和一个温度转换所消耗的时间是相同的。大大提高了系统的效率。 3)在人机界面部分,显示电路我用的是液晶显示,如果采用数码管显示,需要比液晶更大的功率,同时因为要显示的信息很多,也需要数量很多的数码管,这样会造成不必要的浪费。按键电路中,我用的是独立按键,因为单片机有剩余的IO口,硬件电路简单,软件编程也简单。如果采用矩阵式的键盘,会增加软件的复杂度,给系统设计带来不便。通过以上的模块部分的组合,最终实现了这个完整的系统。从总体来看这个设计还是比较完善的,功能上也基本实现。当然我的系统还存在着很多的不足,还有待进一步的完善。关键词:多点测温;单片机;数字温度传感器;液晶巡回显示InstructionSometimes, a large number of temperature changes of many measuring point, especially in the refrigerator, air conditioner manufacturers product testing, need to be tested at the same time. And how to accurately measure the temperature is the key point. As a kind of high-accuracy digital net temperature sensor, DS18B20 can be used building a sensor net easily. It can also make the net simple and reliable with its special 1-wire interface .This paper introduces the application of DS18B20 with single chip processor.The project mainly introduces the DS18B20 temperature sensor that based on multiple spot temperature measurement system and AT89S52 single chip. Use MCU AT89S52, the system can collect the temperature of all measuring points and prepare for display. Of course the MCU AT89S52 is used as a micro-control chip, and digital temperature sensor DS18B20 is used to testify the multi-channel temperature, Its measurement accuracy can reach 0.5. The display module is made up of LCD1602 modules. As a display module, LCD1602 can visually and vividly show the temperature that is tested out.Firstly, at the introduction section, this article introduces the backgrounds and the function of this system. The second chapter established the design blueprint. The third chapter discusses the overall design process, and established the technical specifications, the choices of devices and the description of the hardware circuit design. At the same time describer the function and the attribution of micro-chip used in the system in the same chapter. The fourth chapter analyzes the software design process. The fifth chapter discusses the debug process concretely and what we should notice. The system based on MCU AT89S52 single chip with DS18B20 of single-bus multi-point temperature measurement and control. Whats more, this system is make up of simple hardware components, reading easily, high-accuracy, wide temperature range, and other characteristics, so this system are used widely in actual projects.1) In the main controller part, I am using AT89S52 single chip microcomputer, fully compatible with 51 single chip microcomputer, it is an updated version of 51 single-chip microcomputer and the programming of it is freedom and big, and it can be programmed to achieve a variety of arithmetic and logic control algorithm. And small volume, simple hardware implementation, convenient installation makes it easy to use.2) In the extension circuit part, I use the digital temperature sensor chip DS18B20, real time clock chip DS1302, and memory chips24C02. Eight D18B20 used to measure the temperature in the eight different temperature measuring point, real-time clock chip used to provide the system time, 24C02 is used to store the necessary information. A prominent point of this design is DS18B20 in parallel connection. The traditional way is hanged multiple DS18B20 on a single bus, it is not only time-consuming, but also need the necessary drive current, giving circuit and program design a lot of inconvenience. But this system adopts parallel connection, in theory, the time that eight DS18B20 consumed by a temperature conversion is the same as one DS18B20 consumed by a temperature conversion. And thus greatly improve the efficiency of the system.3) In the part of man-machine interface, I use a liquid crystal 1602 to display. If using digital tube to display, it will need a bigger power than LCD, because a lot of information to be displayed at the same time, it will also need a lot of number of digital tube, this will cause unnecessary waste. Key circuit, I was using a separate button, because MCU have the rest of the I/O port, the hardware circuit is simple, and the software programming is simple. If using the matrix keyboard, it will increases the complexity of the software, bring inconvenience to the system design.Based on the above part of module combination is the complete system. From the overall, this project is relatively complete, and the function is almost also achieved. My system, of course, exist a lot of shortage, and remains to be further perfected.Key words:multi-point temperature measure; digital thermometer; single chip processor; LCD back and forth displayIII1 绪论1.1 系统背景在工、农业生产和日常生活中,对温度的测量及控制占据着极其重要地位。首先让我们了解一下多点温度检测系统在各个方面的应用领域:消防电气的非破坏性温度检测,电力、电信设备之过热故障预知检测,空调系统的温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械等设备温度过热检测。温度检测系统应用十分广阔。近年来,由于集成电路芯片的技术进步,单片机应用系统越来越多的采用串行接口电路进行扩展。这样通常省去了专门的母版和插座,而直接用导线进行器件连接,使系统的硬件设计简化,体积减小,可靠性提高。因此,采用串行总线扩展方法是当前单片机应用系统设计的流行趋势。目前单片机常用的串行器件有:一线总线器件DS18B20温度传感器;二总线器件AT24CXX系列存储器(属于Inter IC Bus,即I2C总线器件);三线总线器件DS1302时钟芯片及TLC5615 D/A转换器和TLC549 A/D转换器(属于Serial Peripheral Interface,即SPI总线器件)。DALLAS公司的DS18B20数字温度传感器是“一线总线”的典型代表,DS18B20的温度测量范围为-55+125,在-10+85范围内,精度为0.5。采用一线总线传输,可以大大提高系统的抗干扰能力,所以DS18B20广泛应用于温度采集及监控领域。作为三线总线的代表,DS1302含有实时时钟日历和31 B静态RAM,与单片机之间采用3线同步串行方式通信,采用DS1302进行计时,一方面可以使系统具有良好的精度,同时还可以有效的减小单片机的负担。1.2 系统概述在温度测量模块方面,本系统采用的是DS18B20多点并行测温,与传统的多点串行测温相比较,具有以下特点:可以省掉烦琐的总线上器件序列号的查询操作以节省时间,并可节省大量的存储空间(原用于存储总线上器件的序列号所用的空间)。同时不需要外加驱动电路增加单片机的驱动电流。但是此方法是以消耗单片机的IO口为代价的,但是综合来说,这样做的益处是大于敝处的。在显示方面,本系统采用的是1602液晶显示,与传统的数码管电路相比较,减少了译码存储所需的芯片,能够很好的节省不必要的资源,同时液晶显示集控制和驱动于一体,易于驱动,可以循环显示,可以自定义字符显示。在按键方面,有独立按键和矩阵键盘按键两种方式,独立按键需要消耗很大程度的IO口,一般来说,一个独立按键需要消耗一个IO口,而矩阵键盘可以很大程度的节省IO口,但是以编程的相对复杂为代价的,由于本系统所用的单片机IO口很少,还有很多剩余的IO口,所需的按键也很少,所以采用独立按键,省去了编程的相对复杂性。此外,在消抖方面,采用的是软件消抖。在时钟模块方面,本系统采用的是DS1302,一方面可以使系统具有良好的精度,同时还可以有效的减小单片机的负担。很好的满足了设计要求。同时,在数据存储方面,本系统可以存储必要的数据,具有掉电保护的功能,采用24C02可以查询近期存储的2K的数据,方便简洁。本系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量。本系统可以应用在大型工业及民用常温多点监测场合,如粮食仓储系统、楼宇自动化系统、温控制程生产线之温度影像检测、医疗与健诊的温度测试、空调系统的温度检测、石化、机械等。2 系统设计方案温度检测系统有着共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。所以多点温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。2.1 系统各部分设计方案2.1.1 主控制器部分主控制器部分有两种方案,以下分别对这两种方案做了分析,选择了简洁方便的方案二。方案一:此方案采用PC机实现。它可在线编程,可在线仿真的功能,这让调试变得方便。且人机交互友好。但是PC机输出信号不能直接与DS18B20通信。需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦!方案二:此方案采用AT89S52 8-bit单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信。运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统,实现远程控制。另外AT89S52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。2.1.2 扩展电路部分温度传感器电路模块,有三种方案可供选择,分别如下:方案一:采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等。但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂。另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量。即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。方案二:在MCU的一个IO口连接多个DS18B20,如图2.1:图2.1 DS18B20串行接法这种方法虽然可以但是响应速度很慢,对于实时性要求很高的场合,显然不适用。响应慢的原因如下:在一线制总线上串接多个DS18B20器件时,实现对其中一个DS18B20器件进行一次温度转换和读取操作主要包括以下13个步骤(所有的操作都是通过DQ线进行信号传输的):主机MCU发复位脉冲DS18B20发应答脉冲(即MCU接收该应答信号,以确认器件在总线上)主机发匹配ROM命令主机发64位器件序列号(器件序列号与总线上的某个DS18B20器件一一对应)主机发温度转换指令总线保持高电平50ms主机发复位命令DS18B20发应答脉冲主机发匹配ROM命令主机发64位器件代码主机发读数据寄存器指令主机接收数据主机发复位脉冲参考DS18B20的数据手册可知,当DS18B20的精度设置为12位精度表示时,依据上面的步骤完成对一个器件的测温、读取温度值的过程,大概会消耗掉1秒钟的时间。而如果总线上存在8个DS18B20器件的话,完成一次8个器件的查询需要8秒的时间,这不还没计算在系统初始化时,对总线上的器件序列号进行初始化过程所消耗的时间。如前所述,可以总结出,影响查询多点DS18B20温度速度的最主要因素有如下几个: 每次操作都需要附加两次对64位序列号的匹配过程;多个器件串接,完成全部的查询就需要与器件个数成倍增长的耗时。这样的应用在一些对实时性要求相对较高的系统当中,是非常占用资源的(虽然省掉了端口资源,但CPU不得不等待N长时间后方可获取多点的温度值),所以使用起来总会有些遗憾。图2.2 DS18B20并行接法此外,由于寄生电源的作用,电路会在 IO或VDD引脚处于高电平时“偷”能量。进行温度转换期间,IO要提供足够的能量。由于DS18B20的工作电流达到 1mA所以仅靠5K的上拉电阻提供电源是不行的, 尤其是当几只DS18B20挂在同一根IO线上并同时想进行温度转换时,这个问题变得更加尖锐,更加需要提供很强的驱动电流。方案三:仍然是采用DS18B20数字温度传感器,由原来的一个IO端口挂多个DS18B20改为一个端口挂一个DS18B20。如图2.2。DS18B20的一线制总线在时序上的严格要求,也从另一方面意味着在一定的弹性范围内,不同DS18B20器件的时序细节上的一致性应该是非常好,所以可以将系统设计成利用MCU的并行端口同时对多个DS18B20进行统一的操作,不过这时候并行端口上的每一个端口连接着一个DS18B20器件而已。由于DS18B20的特征,当一线制总线上仅有一个DS18B20器件时,可以用skip ROM操作(即跳过ROM匹配)命令来代替64位序列号的匹配过程,这点也是使用单个DS18B20器件的系统常用的方法。这个方案正是以端口的消耗为代价,换取对多点DS18B20温度查询的速度,并在程序结构的设计上采用一些巧妙的处理方法,使得系统对DS18B20的操作上花更少的时间。2.1.3 人机界面部分对于按键接口有两个设计方案:方案一:矩阵式键盘,矩阵式键盘采用行列式结构,按键设置在行列的交点上,当口线数量为8时,可以将4根口线定义为行线,4根口线定义为列线,形成44键盘,可以配置16个键。矩阵式键盘的扫描方法有两种,一是逐行扫描,二是线反转法。矩阵键盘的程序设计相对比较复杂,但是可以节约IO口,所以在IO口资源不够用的时候可以选择矩阵式键盘来作为按键输入。方案二:独立式按键,独立式按键就是各个按键相互独立,每个按键单独占用一个IO口线,每根IO口线的按键工作不会影响到其他IO口线上的工作状态,因此通过检测输入线的电平状态可以很容易判断那个按键被按下了,独立式按键的接口电路配置灵活,软件结构简单,但每个按键需要占用一个IO口,在按键数量较多时,IO口浪费大,因此独立式按键用于按键较少或操作速度较高的场合。在单片机应用系统中,通常将按键开关和拨码开关作为简单的输入设备,按键开关主要用于进行某项工作的开始或结束命令,而拨码开关主要用于工作状态的预置和设定。本系统比较简单,按键数量也不是很多,占用的IO口不多,所以在DS1302的调时模块,采用独立式按键,在DS18B20显示模块,由于涉及温度的设定观察,所以采用拨码开关比较好。对于显示模块,有两个设计方案:方案一:采用数码管显示电路。这种方法数码管是一种显示屏,可以通过对其不同的管脚输入相对的电流 并使其发亮,发光从而显示出数字能够显示出时间、日期、温度 等所有可用数字表示的参数由于它的价格便宜,使用简单,在电器,特别是家电领域应用极为广泛。在空调,热水器,冰箱,等等绝大多数,热水器用的都是数码管,其他家电 也用液晶屏与,荧光屏等等。有三个特点:1)坚固耐用2)高节能3)寿命长。但是它的耗电还是比液晶要高,当要显示的位数过多时,动态显示虽然节省IO口,但是其稳定度不如静态显示方式。而且在显示位数较多时CPU要轮番扫描,占用CPU较多的时间。同时,数码管只能显示简单的数字字母,有的英文字母,比方说“X”就很难显示,并且,数码管也需要译码电路,加上本系统要显示的位数很多,既有时间的显示,又有温度的显示,必要的时候温度还是循环显示,需要较多的数码管,比较浪费成本 。所以本系统不选用数码管显示。方案二:采用液晶显示:而液晶分为1601,1602,12864液晶显示,1601是单行16字显示,1602是两行16字的显示,12864可以显示84 行1616 点阵的汉字和字符,由于本系统需要循环显示8个测温端的温度,同时需要显示时间,采用1601不能实现,采用12864造成显示屏和成本的浪费,所以本系统采用1602液晶。和数码管显示模块相比之下,它有的优点是:1)位数多,可以显示32位,而32个数码管体积相当庞大;2)显示内容丰富,可显示所有数字和大、小写字母;3)程序简单,如果用数码管动态显示,会占用很多时间来刷新显示,而1602自动完成此功能。1602液晶模块内部的字符发生存储器(CGROM)已经存储了不同的点阵字符图形,这些字符有,阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,其中数字与字母同ASCII码兼容。2.2 系统设计总框图经过上述方案的分析,系统设计的总框图如下图2.3:P0口主控制器AT89S52P1口P2口P3口液晶显示模块DS18B20模块实时时钟模块键盘接口晶振电路复位电路电源电路模块下载接口图2.3 系统设计总框图3 硬件电路设计3.1 按键及键盘接口独立按键分为按键开关和拨码开关两种,DS1302选用按键开关来调节校准时间,但是按键开关在闭合断开时,触点会存在抖动现象,按键的抖动现象如下图3.1所示:稳定波形释放抖动按下抖动理想波形实际波形图3.1 按键的抖动现象按键的抖动时间一般为10ms左右,抖动会产生一次按键多次处理的问题,应该采取措施消除抖动的影响。单个按键可以使用硬件进行消抖,如电容的充放电电路。当有多个按键时,采用硬件消抖会增加设计的成本,造成资源的浪费,所以宜采用软件延时消抖,软件延时消抖是检测到有按键按下时,先延时10ms,然后再检测按键的状态,若是扔闭合则确定为按键的按下,然后执行确定的操作。本系统所使用的是软件的延时消抖,DS1302的调时按键开关连接如下图3.2:图3.2 DS1302的调时按键开关连接DS18B20温度显示模块选用的是拨码开关,用以检测不同测温点的温度,连接图如下图3.3:图3.3 DS18B20温度显示模块的拨码开关3.2 DS1302实时时钟3.2.1 DS1302芯片简介DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM,通过简单的串行接口与单片机进行通信实时时钟/日历电路。提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24或12小时的格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:一是 RES 复位,二是I/O 数据线,三是SCLK串行时钟。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。DS1302 工作时功耗很低,保持数据和时钟信息时功率小于1mW。DS1302 是由DS1202 改进而来,增加了以下的特性。双电源管脚用于主电源和备份电源供应Vcc1,为可编程涓流充电电源附加七个字节存储器。它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域。DS1302的引脚功能排列及描述如下图3.4所示:图3.4 DS1302的引脚排列图各引脚的功能为:Vcc1:主电源;Vcc2:备份电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2 Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出。I/O:三线接口时的双向数据线。RST:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,RST开始控制字访问移位寄存器的控制逻辑;其次,RST提供结束单字节或多字节数据传输的方法。DS1302有下列几组寄存器: DS1302有关日历、时间的寄存器。此类寄存器共有12个,其中有7个寄存器(读时81h8Dh,写时80h8Ch),存放的数据格式为BCD码形式,如表3.1所示:表3.1 DS1302有关日历、时间的寄存器读写BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0范围81h80hCH10秒秒00-5983h82h10分分00-5985h84h12/24010/AM/PM时时1-12/0-2387h86h0010日日1-3189h88h00010月月1-128Bh8Ah00000周日1-78Dh8Ch10年年00-998Fh8EhWP0000000-小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是 ,当为1时,表示PM。在24小时模式时,位5是第二个10小时位。秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。DS1302有关RAM的地址DS1302中附加31字节静态RAM的地址如表3.2所示:表3.2 RAM地址寄存器读地址写地址范围C1hC0h00-FFhC3hC2h00-FFhC5hC4h00-FFhFDhFCh00-FFh DS1302的工作模式寄存器所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。突发模式寄存器如表3.3所示:表3.3 DS1302工作模式寄存器工作模式寄存器读寄存器写寄存器时钟突发寄存器CLOCK BURSTBFhBEhRAM突发寄存器RAM BURSTFFhFEh此外,DS1302还有充电寄存器等。DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如表3.4。控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1(A4A0):指示操作单元的地址;位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。表3.4 DS1302的控制字(即地址及命令字节)765432101RAMA4A3A2A1A0RDCKWR3.2.2 数字时钟的硬件电路DS1302数字时钟在本系统中的硬件连接电路如图3.5所示:其中,S1用来开启外部中断,以读取EEPROM存取的数据。S2和S3分别用来设置时钟的时和分,以进行时钟的调时。图3.5 DS1302的连接电路3.3 DS18B20数字温度传感器3.3.1 DS18B20简介DS18B20是DALLAS公司生产的单线式数字温度传感器,具有3引脚TO92小体积封装形式。测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。DS18B20支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 DS18B20内部结构(1) DS18B20的内部结构如下图3.6所示。高速缓冲存储器存储器和控制器温度灵敏元件低温触发器TL高温触发器TH配置寄存器8位CRC生成器64位ROM和单线接口电源检测图3.6 DS18B20内部结构原理图DS18B20有4个主要的数据部件: 64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位 (28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用 是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 温度灵敏元件。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以 0.0625/LSB形式表达,其中S为符号位。如下表3.5所示:表3.5 12位的DS18B20温度值格式表Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0LSB232221202-12-22-32-4Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8MSBSSSSS262524这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际 温度。 例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H 。下面表3.6给出了典型的温度值对应表:表3.6 典型的温度值对应表温度/二进制表示十六进制表示+12500000111 1101000007D0H+25.062500000001 100100010191H+10.12500000000 1010001000A2H+0.500000000 000010000008H000000000 000000000000H-0.511111111 11111000FFF8H-10.12511111111 01011110FF5EH-25.062511111110 01101111FE6FH-5511111100 10010000FC90H DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器 TH、TL和结构寄存器。非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限值。 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如表3.7所示:表3.7 配置寄存器结构TMR1R011111其中,TM:测试模式标志位,出厂时被写入0,不能改变;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表3.8所列,出厂时R0、R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。表3.8 配置寄存器与分辨率关系表 :R0R1 温度计分辨率/bit最大转换时间/us00993.750110187.510113751145750(2) 高速暂存存储器高速暂存存储器由9个字节组成,其分配如下表3.9所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表3.9是对应的一部分温度值,第九个字节是冗余检验字节。根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行 复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后 释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。下表3.10和表3.11给出了ROM指令和RAM指令。表3.9 DS18B20暂存寄存器分布寄存器内容温度低位LSB温度高位MSB高温限值TH低温限值TL配置寄存器保留保留保留CRC校验值字节地址012345678表3.10 ROM指令表指令约定代码功能读ROM33H读DS1820温度传感器ROM中的编码(即64位地址)匹配ROM55H发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之做出响应,为下一步对该 DS1820 的读写做准备。搜索ROMF0H用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。跳过ROMCCH忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。告警搜索命令ECH执行后只有温度超过设定值上限或下限的片子才做出响应表3.11 RAM指令表指令约定代码功能温度变换44H启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3 、4字节的内容复制到EEPROM中。重调EEPROMB8H将EEPROM中内容恢复到RAM中的第3 、4字节。读供电方式B4H读DS1820的供电模式。寄生供电时DS1820发送“ 0 ”,外接电源供电 DS1820发送“ 1 ”。DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。硬件连接电路如下图3.7:AT89S52DS18B2020#DS18B203#DS18B202#DS18B201#VCC=5V4.7K图3.7 常用的DS18B20多点测温系统本系统为常用的多点温度测试,DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但实践应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城管招聘面试题及答案
- 汽车肇事测试题及答案
- ARDS考试题及答案
- 湖北省荆州市沙市区沙市中学2026届化学高三第一学期期末达标测试试题含解析
- 经验法则面试题及答案
- 好评制度面试题及答案
- 磨工技师试题及答案
- 任现职期间工作总结
- 认知障碍老人护理全解析
- 家电公司客户分类管理规章
- 船舶拖带协议书
- 2025年房地产市场的变化趋势试题及答案
- 风电场危险源辨识、风险评价和风险控制清单
- 儿童血压测量课件
- 医疗AI算法揭秘如何构建高效的疾病预测模型
- 电商外包客服合同协议
- 糖尿病性黄斑水肿护理查房
- 《铁路建设项目安全穿透式管理实施指南》知识培训
- 企业研究院管理制度
- 工业管道安全评估方法-全面剖析
- 施工现场排水方案
评论
0/150
提交评论