基于DS18B20的智能温度检测系统

上传人:2127513****773577... 文档编号:66912495 上传时间:2022-03-29 格式:DOC 页数:91 大小:2.29MB
返回 下载 相关 举报
基于DS18B20的智能温度检测系统_第1页
第1页 / 共91页
基于DS18B20的智能温度检测系统_第2页
第2页 / 共91页
基于DS18B20的智能温度检测系统_第3页
第3页 / 共91页
点击查看更多>>
资源描述
精选优质文档-倾情为你奉上浙 江 科 技 学 院 本科学生毕业设计(论文)题 目 基于DS18B20的智能温度检测系统 系 别 自动化与电气工程学院 专业班级 02自动化A班 姓 名 许 浩 学 号 指导教师 张 丽 职 称 助 教 2006年 6 月 1 日摘 要:本文主要讨论了当今温度传感器的发展方向,介绍了用单片机控制的、基于数字温度传感器DS18B20的温度测量系统。重点阐述了DS18B20的工作原理、指令系统、单片机与DS18B20之间的接口、数据传递、通信协议,建立了基于DS18B20的单点、多点温度测量系统。最后用RS232总线实现了测温系统与PC机的通讯,实现了温度的实时检测与显示。关键字: DS18B20,多点温度测量,通讯Abstract :After mainly discussing the development direction of current temperature sensor, the paper introduces the temperature measurement system based on the digital temperature sensor DS18B20,which is controlled by 89S52 single chip microcomputer. The working princip1e of the DS18B20, instruction sets, data transmission, the interface and the communication protoco1 between the DS18B20 and single chip microcomputer is expounded specially. The detail design project and concrete implementation of the single and multiple temperature measurement system,which is made up of DS18B20 and 89S52 single chip microcomputer are discussedThe temperature measurement system can communicate with PC by RS232 bus, which can be realized the measurement and display of temperature in the real time in this paper.Keywords:DS18B20, multipoint temperature measurement, communication 目录摘 要.I1 绪论.12 几种常用温度传感器的原理及发展 22.1 引言.22.2 传感器的分类.22.3 传感器的原理及发展22.3.1 传统的分立式温度传感器热电偶传感器22.3.2 集成(IC)温度传感器.32.4 智能温度传感器发展的新趋势.52.4.1 提高测温精度和分辨力52.4.2 增加测试功能.52.4.3 总线技术的标准化与规范化.62.4.4 可靠性及安全性设计.62.4.5 虚拟温度传感器和网络温度传感器.72.5 小结.73 DS18B20测温系统的设计.83.1 现实测温遇到的问题83.2 方案论证及比较.83.3 DS1820数字温度传感器的原理与构造93.3.1 DS18B20的内部结构.103.3.2 DS18B20温度传感器的存储器.113.4 DS1820单点测温系统设计.143.4.1 CPU 模块.143.4.2 数据采集模块.153.4.3 显示模块.153.4.4 系统软件设计.153.5 DS18B20多点测温系统的设计.253.5.1 硬件说明.253.5.2 软件设计.254 DS1820测温系统与PC上位机通讯.294.1 RS-232C介绍.294.2 RS232硬件接口设计304.2.1 硬件说明.304.3 程序设计314.3.1 单片机内通信程序的设计.314.3.2 PC 机内通信程序的设计.325 总 结38致 谢39参考文献.40附录1.41附录2681 绪 论温度是一个基本的物理量,自然界中的一切过程无不与温度密切相关。随着科学技术的不断进步与发展,温度传感器的种类日益繁多,应用逐渐广泛,并且开始由模拟式向着数字式、单总线式、双总线式和三总线式方向发展。而数字温度传感器更因适用于各种微处理器接口组成的自动温度控制系统具有可以克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端等优点,被广泛应用于工业控制、电子测温计、医疗仪器等各种温度控制系统中。其中,比较有代表性的数字温度传感器有DS1820、MAX6575、DS1722、MAX6635等。在工业过程控制和检测过程中,温度是最重要的参数之一,很多情况下需要进行温度的现场测量。而在众多的温度传感器中,智能温度传感器DS18B20将温度传感器、A/D转换器、寄存器、接口电路集成在一个芯片中。可实现直接数字化输出、测试及控制功能强、传输距离远、抗干扰能力强、微型化、微功耗、可适配各种微控制器(MCU)或微型计算机进行数据处理及温度控制。在很多智能化的温度传感器中,大多使用同步串行总线技术,如 (Philips)、SMBus (Intel) 、SPI(Motorola)、 Microwire/Plus(NSC)等串行总线协议,而DS18B20采用的是单线(1-Wire)总线协议。单线(1-Wire)是DALLAS公司的一项专有技术,它采用一根信号线实现信号的双向传输,具有接口简单,节省I/O口线,便于扩展和维护等优点。随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统已经应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件,热敏电阻成本低,但需要后续信号处理电路,而且热敏电阻的可靠性相对较差,测量温度的准确度低,检测系统的精度差。我们选用了美国DALLAS公司最新推出的DS18B20数字式温度传感器,DS18B20是DS1820的更新产品,它与传统的热敏电阻温度传感器不同,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式,可以分别在93.75ms和750ms内将温度值转化9位和12位的数字量。因而使用DS18B20可使系统结构更趋简单,可靠性更高在本设计中我使用智能温度传感器DS18B20构建温度检测系统,该系统实现了温度的实时检测及监测,检测数据精度高,范围大。2 几种常用温度传感器的原理及发展2.1 引言 科学技术离不开测量。测量的目的就是要获得被测对象的有关物理或化学性质的信息,以便根据这些信息对被测对象进行评价或控制,完成这一功能的器件就我们称之为传感器。传感器是信息技术的前沿尖端产品,被广泛用于工农业生产、科学研究和生等领域,尤其是温度传感器,使用范围广,数量多,居各种传感器之首。温度传感器的发展大致经历了以下3个阶段:(1)传统的分立式温度传感器(含敏感元件);主要是能够进行非电量和电量之间转换。(2)模拟集成温度传感器/控制器。(3) 智能温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。2.2 传感器的分类传感器分类方法很多,常用的有2种:一种是按被测的参数分,另一种是按变换原理来分。通常按被测的参数来分类,可分为热工参数:温度、比热、压力、流量、液位等;机械量参数:位移、力、加速度、重量等;物性参数:比重、浓度、算监度等;状态量参数:颜色、裂纹、磨损等。温度传感器属于热工参数。 温度传感器按传感器于被测介质的接触方式可分为2大类:一类是接触式温度传感器,一类是非接触式温度传感器,接触式温度传感器的测温元件与被测对象要有良好的热接触,通过热传导及对流原理达到热平衡,这时的示值即为被测对象的温度。这种测温方法精度比较高,并在一定程度上还可测量物体内部的温度分布,但对于运动的、热容量比较小的、或对感温元件有腐蚀作用的对象,这种方法将会产生很大的误差。非接触测温的测温元件与被测对象互不接触。目前最常用的是辐射热交换原理。此种测温方法的主要特点是可测量运动状态的小目标及热容量小或变化迅速的对象,也可测温度场的温度分布,但受环境的影响比较大。2.3 传感器的原理及发展2.3.1 传统的分立式温度传感器热电偶传感器热电偶传感器是工业测量中应用最广泛的一种温度传感器,它与被测对象直接接触,不受中间介质的影响,具有较高的精确度;测量范围广,可从-50-1600进行连续测量,特殊的热电偶如金铁-镍铬,最低可测到-269,钨-铼最高可达2800。热电偶传感器主要按照热电效应来工作。将两种不同的导体A和B 连接起来,组成一个闭合回路,即构成感温元件,如图2.1所示。当导体A和B的两个接点1和2之间存在温差时,两者之间便产生电动势,因而在回路中形成一定大小的电流,这种现象即称为热电效应,也叫温差电效应。热电偶就是利用这一效应进行工作的。热电偶的一端是将A、B两种导体焊接在一起,称为工作端,置于温度为t的被测介质中。另一端称为参比端或自由端,放于温度为t0的恒定温度下。当工作端的被测介质温度发生变化时,热电势随之发生变化,将热电势送入计算机进行处理,即可得到温度值。图2.1热电偶两端的热电势差可以用下式表示:Et=E(t)-E(t0)式中:Et热电偶的热电势E(t)温度为t时的热电势E(t0)温度为t0时的热电势当参比端的温度t0恒定时,热电势只于工作端的温度有关,即Et=f(t)。当组成热电偶的热电极的材料均匀时,其热电势的大小与热电极本身的长度和直径无关,只与热电极的成分及两端的温度有关。2.3.2 集成(IC)温度传感器2.3.2.1 模拟集成温度传感器 集成传感器是采用硅半导体集成工艺而制成的,因此亦称硅传感器或单片集成温度传感器。模拟集成温度传感器是在20世纪80年代问世的,它是将温度传感器集成在一个芯片上、可完成温度测量及模拟信号输出功能的专用IC。模拟集成温度传感器的主要特点是功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控测,不需要进行非线性校准,外围电路简单。目前在国内外仍普遍应用的一种集成传感器,下面介绍一种具有高灵敏度和高精度的IC温度传感器AN6701。AN6701的原理图如图2.2所示,它由温度检测电路、温度补偿电路以及缓冲放大器3部分组成。图2.2IC温度传感器的检测电路是利用晶体管对两个发射极的电流密度差产生基极-发射极之间的电压差(VbC)的原理而工作的。图2.3所示为温度检测及温度补偿电路图。图1.2中,T1-T5为检测电路,T8-T11及RC组成的电路产生正比其绝对温度的电流,该电流通过T12和T13注入T7,即可获得对应于注入电流的补偿温度。RC为外接电阻,使传感器的校准比较方便。图2.32.3.2.2 智能温度传感器 传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。目前,国际上已开发出多种智能温度传感器系列产品。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化和谐也取决于软件的开发水平。 2.4 智能温度传感器发展的新趋势 21世纪后,智能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。2.4.1 提高测温精度和分辨力21世纪90年代中期最早推出的智能温度传感器,采用的是8位A/D转换器,其测温精度较低,分辨力只能达到1。目前,国外已相继推出多种高速度、高分辨力的智能温度传感器,所用的是912位A/D转换器,分辨力一般可达0.50.0625。由美国DALLAS半导体公司新研制的DS1624型高分辨力智能温度传感器,能输出13位二进制数据,其分辨力高达0.03125,测温精度为0.2。为了提高多通道智能温度传感器的转换速率,也有的芯片采用高速逐次逼近式A/D转换器。以AD7817型5通道智能温度传感器为例,它对本地传感器、每一路远程传感器的转换时间分别仅为27s、9s。2.4.2 增加测试功能温度传感器的测试功能也在不断增强。例如,DS1629型单线智能温度传感器增加了实时日历时钟(RTC),使其功能更加完善。DS1624还增加了存储功能,利用芯片内部256字节的E2PROM存储器,可存储用户的短信息。另外,智能温度传感器正从单通道向多通道的方向发展,这就为研制和开发多路温度测控系统创造了良好条件。传感器都具有多种工作模式可供选择,主要包括单次转换模式、连续转换模式、待机模式,有的还增加了低温极限扩展模式,操作非常简便。对某些智能温度传感器而言,主机(外部微处理器或单片机)还可通过相应的寄存器来设定其A/D转换速率(典型产品为MAX6654),分辨力及最大转换时间(典型产品为DS1624)。2.4.3 总线技术的标准化与规范化智能温度传感器的总线技术也实现了标准化、规范化,所采用总线主要有单线(1-Wire)总线、I2C总线、SMBus总线和SPI总线。温度传感器作为从机可通过专用总线接口与主机进行通信。2.4.4 可靠性及安全性设计A/D转换器大多采用积分式或逐次比较式转换技术,其噪声容限低,抑制混叠噪声及量化噪声的能力比较差。新型智能温度传感器(例如TMP03/204、LM74、LM83)普遍采用了高性能的-式A/D转换器不仅能滤除量化噪声,而且对外围元件的精度要求低;由于采用数字反馈方式,因此比较器的失调电压及零点漂移都不会影响温度的转换精度。这种智能温度传感器兼有抑制串模干扰能力强、分辨力高、线性度好、成本低等优点。为了避免在温控系统受到噪声干扰时产生误动作,在AD7416/7417/7817、LM75/76、MAX6625/6626等智能温度传感器的内部,都设置了一个可编程的“故障排队(fault queue)”计数器,专用于设定允许被测温度值超过上、下限的次数。仅当被测温度连续超过上限或低于下限的次数达到或超过所设定的次数n(n=14)时,才能触发中断端。若故障次数不满足上述条件或故障不是连续发生的,故障计数器就复位而不会触发中断端。这意味着假定n=3时,那么偶然受到一次或两次噪声干扰,都不会影响温控系统的正常工作。76型智能温度传感器增加了温度窗口比较器,非常适合设计一个符合ACPI(Advanced Configuration and Power Interface,即“先进配置与电源接口”)规范的温控系统。这种系统具有完善的过热保护功能,可用来监控笔记本电脑和服务器中CPU及主电路的温度。微处理器最高可承受的工作温度规定为tH,台式计算机一般为75,高档笔记本电脑的专用CPU可达100。一旦CPU或主电路的温度超出所设定的上、下限时,INT端立即使主机产生中断,再通过电源控制器发出信号,迅速将主电源关断起到保护作用。此外,当温度超过CPU的极限温度时,严重超温报警输出端(T_CRIT_A)也能直接关断主电源,并且该端还可通过独立的硬件判断电路来切断主电源,以防主电源控制失灵。上述三重安全性保护措施已成为国际上设计温控系统的新观念。为防止因人体静电放电(ESD)而损坏芯片。一些智能温度传感器还增加了ESD保护电路,一般可承受10004000V的静电放电电压。通常是将体等效于由100pF电容1.2k电阻串联而成的电路模型,当人体放电时,TCN75型智能温度传感器的串行接口端、中断/比较器信号输出端和地址输入端均可承受1000V的静电放电电压。LM83型智能温度传感器则可随4000V的静电放电电压。最新开发的智能温度传感器(例如MAX6654、LM83)还增加了传感器故障检测功能,能自动检测外部晶体管温度传感器(亦称远程传感器)的开路或短路故障。MAX6654还具有选择“寄存阻抗抵消”(Parasitic Resistance Cancellation,英文缩写为PRC)模式,能抵消远程传感器引线阻抗所引起的测温误差,即使引线阻抗达到100,也不会影响测量精度。远程传感器引线可采用普通双绞线或者带屏蔽层的双绞线。2.4.5 虚拟温度传感器和网络温度传感器 虚拟传感器是基于传感器硬件和计算机平台、并通过软件开发而成的。利用软件可完成传感器的标定及校准,以实现最佳性能指标。最近,病因B&K公司已开发出一种基于软件设置的TEDS型虚拟传感器,其主要特点是每只传感器都有唯一的产品序列号并且附带一张软盘,软盘上存储着对该传感器进行标定的有关数据。使用时,传感器通过数据采集器接至计算机,首先从计算机输入该传感器的产品序列号,再从软盘上读出有关数据,然后自动完成对传感器的检查、传感器参数的读取、传感器设置和记录工作。2.5 小结随着工业生产效率的不断提高,自动化水平与范围的不断扩大,对温度传感器的要求也越来越高,归纳起来有以下几个方面:l、扩展测温范围:目前工业常用的测温范围为-200-3000,随着工业的发展,对超高温、超低温的测量要求越来越迫切,如在宇宙火箭技术中常常需要测量几千度的高温。2、提高测量精度:随着电子技术的发展,信号处理仪表的精度有了很大的提高,特别是微型计算机的使用使得对信号的处理精度更加提高。3、扩大测温对象:随着工业和人们日常生活要求的提高,现在已由点测量发展到线、面测量。在环境保护、家用电器上都需要各种各样的测温仪表。4、发展新产品,满足特殊需要:在温度测量中,除了进一步扩展与完善管缆热电偶、热电阻,以及晶体管测温元件、快速高灵敏度的普通热电偶外,而且根据被测对象的环境,提出了许多特殊的要求。如防硫、防爆、耐磨的热电偶,钢水连续测温,火焰温度测量等。5、显示数字化:温度仪表不但具有读数直观、无误差、分辨率高、测量误差小的特点,而且给温度仪表的智能化带来很大方便。6、检定自动化:由于温度校验装置将直接影响温度仪表质量的提高,值得在这方面花大力气进行研究。我国已研制出用微型机控制的热电偶校验装置。3 DS18B20测温系统的设计3.1 现实测温遇到的问题在现实测温中,由于器件限制和精度要求,导致了测温系统外围电路十分复杂,系统可维护性以及可重用性差,并且许多测温系统是通过A/D,D/A转换来获得温度信息的,这在获取高精度的温度信息时就造成了转换时间长,器件要求高,提高了系统设计和实现的成本和复杂度。3.2 方案论证及比较 方案一 : 采用模拟分立元件,如电容、电感或晶体管等非线形元件,实现多点温度的测量及显示,该方案设计电路简单易懂,操作简单,且价格便宜,但采用分立元件分散性大,不便于集成数字化,而且测量误差大。 方案二: 采用集成的单片机主控,通过温度传感器、 A/D转换采集数据信息,经过含有单片机的检测系统检测,将结果传送到单片机控制的主控器,数据通过显示器显示。原理框图如下: 方案三: 此方案是在方案二的基础上改进的,温度信号的输入处理过程与方案二是相同的,但方案三的系统控制器是由 PC机控制的,用鼠标代替键盘,在主控端更直观的观察多路测量结果,并且可以在系统改变运行操作程序,框图如下: 方案四:利用智能温度传感器作为温度信号的输入,通过单片机检测与处理,送入PC机控制器,在主控端更直观的观察多路测量结果,并且可以在系统改变运行操作程序。综上所述,方案三电路虽然与方案二类似,都较方案一调整方便、可兼顾的指标多,方案三利用 PC机平台实现软件操作,在操作运行上更胜一筹,简单明了,但方案四利用智能温度传感器在系统复杂度和可维护性上是最好的,且兼有方案二,三的优点,所以我选择第四种方案。3.3 DS18B20数字温度传感器的原理与构造DALLAS最新单线数字温度传感器DS18B20是新的“一线器件”体积更小、适用电压更宽、更经济。Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、 DS1822 “一线总线”数字化温度传感器 同DS1820一样,DS18B20也 支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。DS1822的精度较差为 2C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。3.3.1、DS18B20的内部结构图3.1DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图3.1所示:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。光刻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为符号位。这是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的数字输出为FC90H3.3.2、DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。该字节各位的意义如下:TM R1 R0 1 1 1 1 1低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)分辨率设置表R1R0分辨率温度最大转换时间009位96.75ms0110 位187.5ms1011位375ms1112位750ms 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。(a)初始化时序(b)写时序(c)读时序DS18B20的工作时序图3.4 DS18B20单点测温系统设计主控制电路、硬件原理说明装置的构成原理图如图3.2所示。 图3.2 温度检测装置原理图 该系统以高性价比的89S52为核心,采用新型单片数字温度传感器DS18B20来测量温度。整个系统结构紧凑,性能可靠;不仅适用于工业环境温度的检测与控制,也可适用于水温检测与控制。3.4.1 CPU 模块 采用AT89S52单片机作为控制机构的核心。AT89S52 是一种低功耗、高性能的CMOS型 8位微型计算机。它带有8K Flash 可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和82C52的指令系统及引脚兼容,片内Flash 集成在一个芯片上,可用于解决复杂的问题,且成本较低。AT89S52提供了8K字节Flash ,256字节RAM,32线I/O口,3个16位定时/计数器,6向量两极中断,一个双工串行口,具有片内自激振荡器和时钟电路等标准功能。此外, AT89S52设有静态逻辑,用于运行到零频率,并支持软件选择的节电运行方式和空闲方式使CPU停止工作,而允许RAM、定时/计数器、串行口和中断系统继续工作。在掉电方式下,片内振荡器停止工作,由于时钟被冻结,一切功能都停止,只有片内RAM的内容被保存,直到硬件复位才恢复正常工作。3.4.2 数据采集模块该部分主要完成对温度信号的采集和转换工作,由DS18B20及其与单片机的接口部分组成。由于采用了该芯片,温度测量电路变得非常简单。DS18B20就像三极管一样,有一根地线,一根信号线DQ和一根电源线。通过DQ线与单片机的I/O口线相连,就能实现单片机对DS18B20模式控制、温度值的读取等操作。3.4.3 显示模块采用4位LED数码管分别显示温度的两位小数和两位整数,通过两片锁存器74HC373来控制LED的显示。3.4.4 系统软件设计软件采用模块化设计方式,将各个功能分成独立的模块。本装置的软件包括主程序、显示子程序以及有关DS18B20的程序(初始化子程序、写程序和读程序等)。主程序完成的功能是:检测DS18B20是否存在,DS18B20初始化,读写程序,LED显示程序。全部的工作软件流程图情况如下: 主程序框图 读温度子程序LED显示子程序程序代码:;这是关于单个DS18B20的测温程序,数据脚为P3.3,晶振是11.0592MHZ;温度传感器18B20采用器件默认的12位转化,最大转化时间要750毫秒;内存分配声明TEMPER_L EQU 29H;用于保存读出温度的低字节TEMPER_H EQU 28H;用于保存读出温度的高字节T_DF EQU 27H ;FORMAT后的小数部分(DECIMAL FRACTION),半字节的温度小数(存在低四位)T_INTEGER EQU 26H ;FORMAT后的整数部分(INTEGER),将两字节的温度整合成1字节FLAG1 BIT 50H;位地址50H是字节2AH的最低位,用作是否检测到DS18B20的标志位KEYFLAG EQU 24H;选通位DEL EQU 40HA_BIT EQU 20H ;十位数存放内存位置B_BIT EQU 21H ;个位数存放内存位置C_BIT EQU 22H ;个位小数D_BIT EQU 23H ;十位小数ORG 0000H LJMP 0100HORG 0100HMAIN: LCALL INIT_RS232 LCALL T_CONVERSION;调用读温度子程序 LCALL T_FORMAT;将读出的2字节温度格式化 LCALL DISPLAY;调用LED显示子程序 LCALL PASS; 调用传送子程序 LJMP MAIN;-DS18B20的温度转换子程序-T_CONVERSION: LCALL INIT_1820 JB FLAG1,T_C0 RETT_C0: MOV A,#0CCH LCALL WRITE_1820 MOV A,#44H LCALL WRITE_1820 LCALL DISPLAY;延时750毫秒 LCALL INIT_1820 MOV A,#0CCH LCALL WRITE_1820 MOV A,#0BEH LCALL WRITE_1820 LCALL READ_1820 RET;-DS18B20复位初始化程序-INIT_1820: SETB P3.3 NOP CLR P3.3 MOV R0,#2INIT0: MOV R1,#250 DJNZ R1,$ DJNZ R0,INIT0 SETB P3.3 NOP MOV R0, #15INIT1: JNB P3.3, INIT3 DJNZ R0, INIT1 LJMP INIT4INIT3: SETB FLAG1 LJMP INIT5INIT4: CLR FLAG1 LJMP INIT6INIT5: MOV R0, #120 DJNZ R0, $INIT6: SETB P3.3 RET;-写DS18B20的子程序-WRITE_1820: MOV R2,#8WR0: CLR P3.3 MOV R3,#6 DJNZ R3,$ RRC A MOV P3.3,C MOV R3,#20 DJNZ R3,$ SETB P3.3 NOP NOP DJNZ R2,WR0 SETB P3.3 RET;-读DS18B20的程序-READ_1820: MOV R4,#2 MOV R1,#TEMPER_LRE0: MOV R2,#8RE1: SETB P3.3 NOP NOP CLR P3.3 NOP NOP SETB P3.3 MOV R3,#5 DJNZ R3, $ MOV C,P3.3 MOV R3,#20 DJNZ R3, $ RRC A DJNZ R2,RE1 MOV R1,A DEC R1 DJNZ R4,RE0 RET;-整合读出的两字节温度-T_FORMAT: MOV A, #0FH ANL A, TEMPER_L MOV T_DF, A MOV A, TEMPER_L SWAP A MOV TEMPER_L, A MOV A, TEMPER_H SWAP A MOV R0, #TEMPER_L XCHD A, R0 MOV T_INTEGER, A RET;-LED显示的子程序-DISPLAY: MOV A, T_INTEGER MOV B,#10 DIV AB MOV A_BIT,A MOV B_BIT, B MOV A, T_DF MOV R0, #C_BIT MOV R2, #2 D0: MOV B, #10 MUL AB MOV B, #16 DIV AB MOV R0, A INC R0 MOV A, B DJNZ R2, D0;- LEDDISPLAY- MOV DEL,#200DSY: MOV R0,#20H MOV R1,#02HLOOP: MOV P2,R1 MOV A,R0 MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A LCALL D1MS INC R0 MOV A,R1 RL A MOV R1,A JNB ACC.5,LOOP DJNZ DEL,DSY RET TABLE: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H ;-二进制到ASCII码转换-PASS: MOV A, #30H ORL A_BIT, A ;传送到PC上位机 LCALL TX_CHAR ORL B_BIT, A LCALL TX_CHAR ORL C_BIT, A LCALL TX_CHAR ORL D_BIT, A LCALL TX_CHAR RET;-1MS延时-D1MS: MOV R7,#250LOOP0: NOP NOP DJNZ R7,LOOP0 RET;-1S延时 -D1S: MOV R6,#4LOOP2: MOV R5,#250LOOP1: LCALL D1MS DJNZ R5,LOOP1 DJNZ R6,LOOP2 RETINIT_RS232:MOV SCON,#50HMOV TMOD,#20H ;定时器T1工作方式2MOV TH1,#0FDHSETB TR1SETB TIRET;-TX_CHAR:JNB TI,$CLR TIMOV SBUF, ARET;-END3.5 DS18B20多点测温系统的设计DS18B20是DALLAS公司生产的单总线数字温度传感器,可以通过在单线上串接多个DS18B20来达到多点测温和降低硬件复杂。DS18B20多点测温系统硬件原理图如下所示:3.5.1 硬件说明将多个DS18B20串接在89S52的P3.3上,采用电源供电,利用上拉电阻R1保证温度信息的正常传送,由于多个DS18B20串接在同一口上,在获取温度信息时需进行ROM匹配,以保证所获取的温度信息与目标相同。同时在系统硬件上可以通过扩展键盘来进行传感器的片选。3.5.2 软件设计每一片DSl820 在其ROM 中都存有其唯一的48 位序列号在出厂前已写入片内ROM中主机在进入操作程序前必须逐一接入18B20 用读ROM(33H)命令将该18B20 的序列号读出并记录。当主机需要对众多在线18B20 的某一个进行操作时,首先要发出匹配ROM 命令(55H) ,紧接着主机提供64 位序列(包括该18B20 的48 位序列号) ,之后的操作就是针对该18B20 的。而所谓跳过ROM 命令即为之后的操作是对所有18B20 的。框图中先有跳过ROM 即是启动所有18B20 进行温度变换之后,通过匹配ROM 再逐一地读回每个18B20 的温度。数据在18B20 组成的测温系统中,主机在发出跳过ROM 命令之后再发出统一的温度转换启动码44H 就可以实现所有18B20 的统一转换,再经过1s 后就可以用很少的时间去逐一读取这种方式使其T 值往往小于传统方式。由于采取公用的放大电路和A D 转换器只能逐一转换显然通道数越多这种省时应就越明显。多路测温程序框图DS18B20 序列号获得; -读出DS18B20 序列号应用程序,P3.3 接DS18B20-ORG 0000HAJMP MAINORG 0020HMAIN:MOV SP,#60HCLR EA ;使用DS18B20 一定要禁止任何中断产生LCALL INT ;初始化DS18B20MOV A,#33HLCALL WRITE ;送入读DS18B20 的ROM 命令LCALL READ ;开始读出当前DS18B20 序列号MOV 40H,ALCALL READMOV 41H,ALCALL READMOV 42H,ALCALL READMOV 43H,ALCALL READMOV 44H,ALCALL READMOV 45H,ALCALL READMOV 46H,ALCALL READMOV 47H,ASETB EASJMP $INT: ;初始化DS18B20 子程序CLR EAL0:CLR P3.3 ;DS18B20 总线为低复位电平
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!