首页 电子温度计

电子温度计

举报
开通vip

电子温度计兰州理工大学技术工程学院毕业设计(论文)题目:基于单片机的电子温度计的设计系别:电气工程系专业:电子信息工程学生姓名:魏万龙指导教师:柳莺2012年5月5日摘要在我的论文中,是以AT89C51单片机为核心的,对温度的检测与显示进行了简单的设计与阐述。本次设计可以说是软硬结合,又以硬件为主。电子温度计温度采集系统由主控制器、温度采集电路、温度显示电路、报警控制电路及键盘输入控制电路组成。它利用单片机AT89C51做控制及数据处理器、智能温度传感器DS18B20做温度检测器、LED数码显示管做温度显示输出设备。硬件电路...

电子温度计
兰州理工大学技术工程学院毕业 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 )题目:基于单片机的电子温度计的设计系别:电气工程系专业:电子信息工程学生姓名:魏万龙指导教师:柳莺2012年5月5日摘要在我的论文中,是以AT89C51单片机为核心的,对温度的检测与显示进行了简单的设计与阐述。本次设计可以说是软硬结合,又以硬件为主。电子温度计温度采集系统由主控制器、温度采集电路、温度显示电路、报警控制电路及键盘输入控制电路组成。它利用单片机AT89C51做控制及数据处理器、智能温度传感器DS18B20做温度检测器、LED数码显示管做温度显示输出设备。硬件电路比较简单,成本较低,测温范围大,测量精度高,读数显示直观,使用方便。关键词:数字;温度;传感器;单片机;控制AbstractisbasedonAT89C51microcontrollerasthecore,thetemperaturedetectionanddisplayforasimpledesignandelaborate.Thisdesigncanbesaidtocombinesoftandhardon,hehardwarebased.thedigitalmulti-channeltemperaturegatheringsystembythemastercontrolregulator,thetemperaturegatheringelectriccircuit,thetemperaturedisplaycircuit,reportstothepolicethecontrolcircuitandthekeyboardentrycontrolcircuitiscomposed.Itmakesthecontrolandthedataprocessor,intelligenttemperaturesensorDS18B20usingmonolithicintegratedcircuitAT89C51makesthetemperaturedetector,theLEDnumericalcodedisplaytubemakesthetemperaturedemonstrationoutputunit.Thehardwareelectriccircuitquiteissimple,thecostislow,thetemperaturemeasurementscopeisbig,andthemeasuringaccuracyishigh,readingdemonstrationisdirect-viewing,easytooperate.Keywords:numeral;temperature;sensor;monolithicintegratedcircuit;control目录绪论11一线总线介绍41.1一线总线器件工作原理41.1.1一线总线技术简介41.1.2一线总线工作原理51.2总线协议简介52电子式温度采集系统硬件电路设计82.1 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 选择82.1.1传感器部分82.1.2主控制部分92.1.3系统方案92.2温度采集电路设计102.2.1DS18B29简介102.2.2温度采集电路结构132.3单片机控制电路设计142.3.1单片机芯片选择142.3.2AT89C51单片机工作基本电路设计152.4 显示电路设计152.4.1LED数码显示管静态显示工作原理152.4.2显示电路结构152.4.3显示电路工作过程162.5报警控制电路设计162.5.1报警控制电路结构162.5.2报警控制电路工作过程172.6电源电路设计172.7看门口电路设计183电子式温度采集系统硬件电路设计193.1主程序设计193.2子程序设计193.2.1DS18B20的通信协议193.2.2子程序204系统调试与仿真244.1系统调试244.2系统的仿真254.3系统的运行25结论26致谢27参考文献28附录A英文原文30附录B汉语翻译37附录C电路图43附录D源程代码44附录E元件清单56附录F实物照片57绪论温度是人们日常生活中接触最多的物理量,人们的日常生活、动植物的生存繁衍和周围环境的温度息息相关,石油、化工、冶金、纺织、机械制造、航空航天、制药、烟草、档案保管、粮食存初等领域对温度也有着较高的要求。例如:印刷车间的温度控制水平对印刷质量有很大的影响;为防止库存武器弹药、金属材料等物品霉烂、生锈,必须保持环境温度不能过高和干燥;而水果、种子、肉类等的保存也需要保证一定的温度;在矿山、棉麻、塑料、食品生产加工等企业的生产环境中,如果空气温度不适应,极易发生不良反应。随着科学技术的发展,许多新兴产业对环境提出了更高的要求:制造大规模集成电路需要极高的空气洁净度,生物化学制药需要精确的温度控制。因此,对温度的监测和控制己成为生产过程中非常重要的技术要求[1]。目前,温度传感器已广泛应用于气象、农林、冶金、化工、纺织、食品、家用电器、仓储等许多领域。温度是表征物体冷热程度的物理量,它在工业自动化、家用电器、环境保护、安全生产和汽车工业等行业中都是基本的检测参数之一。温度是温度监控系统中最基本、最为核心的衡量指标,也是测温系统中最为重要的被控参数,因此对温度进行准确的检测一直是一个重要的研究课题。因此,测量温度的仪器在测温系统中占有至关重要的地位。国家 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 GB7665-87对传感器(Sensor)下的定义是:“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。而温度传感器是最早开发,应用最广的一类传感器[2]。温度传感器的使用范围广,数量多,居各种传感器之首。温度传感器的发展大致经历了以下3个阶段:(1)传统的分立式温度传感器(含敏感元件),主要是能够进行非电量和电量之间转换;(2)模拟集成温度传感器/控制器;(3)智能温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、集成化、智能化及网络化的方向发展。温度传感器按传感器与被测介质的接触方式可分为两大类:一类是接触式温度传感器,一类是非接触式温度传感器。接触式温度传感器的测温元件与被测对象要有良好的热接触,通过热传导及对流原理达到热平衡,显示值即为被测对象的温度。这种测温方法精度比较高,并可测量物体内部的温度分布。但对于运动的、热容量比较小的及对感温元件有腐蚀作用的对象,这种方法将会产生很大的误差。非接触测温的测温元件与被测对象互不接触。常用的是辐射热交换原理[3]。此种测温方法的主要特点是可测量运动状态的小目标及热容量小或变化迅速的对象,也可测量温度场的温度分布,但受环境的影响比较大。(1)热电偶传感器热电偶传感器是工业测量中应用最广泛的一种分立式温度传感器,它与被测对象直接接触,不受中间介质的影响,具有较高的精度;测量范围广,可从-50℃—1600℃进行连续测量,特殊热电偶如金铁-镍铬,最低可测到-269℃,钨-铼最高可达2800℃。(2)模拟集成温度传感器集成传感器是采用硅半导体集成工艺制成的,因此亦称硅传感器或单片集成温度传感器。模拟集成温度传感器是在20世纪80年代问世的,它将温度传感器集成在一个芯片上、可完成温度测量及模拟信号输出等功能。模拟集成温度传感器的主要特点是功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温,不需要进行非线性校准,外围电路简单。(3)智能温度传感器智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。目前,国际上己开发出多种智能温度传感器系列产品。智能温度传感器内部包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。随着科技的不断发展,智能温度传感器发展的新趋势:提高测温精度和分辨力;增加测试功能。另外,智能温度传感器正从单通道向多通道的方向发展,这为研制和开发多路温度测控系统创造了良好条件。课题研究内容本课题研究的是基于单片机AT89C51和传感器DS18B20的温度测量系统中的温度监测和显示部分的实现。在翻阅了大量资料后,决定以智能温度传感器应用技术和单片机应用技术为核心进行开发。其中,涉及到了一线总线技术开发应用;单片机技术开发应用;智能传感器应用等。论文结构第一部分介绍了一线总线协议,并且详细介绍了单片机AT89C51和温度传感器DS18B20的优点和特性。第二部分论述了温度测量系统的总体方案设计,给出了测量的总体电路图,介绍了本系统的硬件设计给出了数据采集部分和数据接受部分的框图和硬件接口电路。第三部分介绍了本系统的软件设计,介绍了测温系统的整体软件框图;详细介绍了数据采集流程及程序。第四部分讲述了系统调试及性能分析。1一线总线介绍一线总线(1-WireBus)技术采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的,其线路简单、硬件开销少、成本低廉、软件设计更方便,因此具有无可比拟的优势[4,]。1.1一线总线器件工作原理1.1.1一线总线技术简介目前,常用的微机与外设串行总线主要有我们熟知的I2C总线,SPI总线,SCI总线等等。其中I2C总线是以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线是以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线),SCI总线是以异步方式进行通信(一条数据输入线,一条数据输出线)。这些总线至少需要有两条或两条以上的信号线。近年来,美国的达拉斯半导体公司(DALLASSEMICONDUCTOR)推出了一线总线(1-WireBus)技术,与上述的总线不同,它采用一单根信号线,既传输时钟,又传输数据,而且数据传输是双向的,其具有线路简单,减少硬件开销,成本低廉,便于总线的扩展和维护等优点。图1.1单主机多节点结构示意图一线总线适用于单个主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机则是一线总线器件[8]。它们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系统操作;当有多个从机设备时,则系统按多节点系统操作器,从机则是一线总线器件[6]。它们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系统操作;当有多个从机设备时,则系统按多节点系统操作。1.1.2一线总线工作原理顾名思义,一线总线只有一根数据线,系统中的数据交换、控制都在这根线上完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,这样允许设备不发送数据时释放总线,以便其他设备使用。其内部等效电路如下图2.2所示。图1.2一线总线硬件接口示意图一线总线要求外接一个约4.7k的上拉电阻,这样,当总线闲置时,其状态为高电平。主机和从机之间的通信总体上说是通过以下3个步骤完成的:初始化1-wire器件;识别1-wire器件;交换数据。由于二者是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-wire器件都必须严格遵循一线总线命令序列:初始化、ROM命令、功能命令[9]。如果出现顺序混乱,1-wire器件就不会响应主机(搜索ROM命令,报警搜索命令除外)。通信信号方式要求所有的一线总线器件要求遵循严格的通信协议,以保证数据的完整性。1.2一线总线协议简介一线总线系统网络的主机和从机之间,遵循一线总线协议进行通信。目前大多数传感器系统是采用放大、传输、数模变换这种处理模式。这种模式中传输的方式采用并口或采用串口,这两种方式一般要占用数根数据/控制线,限制了单片机使用功能的扩展[10]。一线总线协议就解决了这种问题。数字式传感器的核心之一就是采用什么协议能最大限度的高速安全的传输数据,另外就是如何更好的节省硬件资源。一线总线协议通过一根总线实现主设备对从设备的控制(主设备往往是微控器等),一线总线器件在采用这种工作方式时就充当着从设备的作用[11]。由于只有一根线,并且没有译码功能,所以这些器件是一线总线系统唯一的从设备,所有的数据和命令都在这根总线上传送,数据和命令字节传送顺序是从低位到高位。为了使其它的设备也能使用这根线,一线总线协议通过一个三态门转换传输状态,使得每一个设备在不传送数据时空出该数据线给其它设备[12]。因为一线总线在外部有一个上拉电阻,所以在总线空闲时是高电平。为保证信号的完整性,一线总线协议定义了以下几种信号:复位脉冲、存在脉冲、读写0或1。除存在脉冲外,其它的信号均由主设备发出。RX和TX分别是内部数据的发送和接收端,外界的环境量变化引起敏感膜的变化,产生的电信号被编码成数字量,存储在专用寄存器当中,经由DQ端读入到单片机当中。主设备给低电平并保持480s就空出总线并进入接收模式RX。此时上拉电阻器使总线为高电平,即空闲状态。一旦一线总线器件检测到这一上升沿,就会等待15-60s,并给出存在脉冲使总线保持60-240s的低电平。而写操作均在读、写时隙之间进行,在每个时隙中,系统只传送一个二进制位。1-Wire协议定义的几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1时序,组成了所有总线上传输的信号。也就是说,所有的一线总线命令序列(初始化、ROM命令、功能命令)都是由这些基本的信号类型组成的。这些信号,除了应答脉冲外,都是由主机发出,并且发送的所有命令和数据都是字节的低位在前。另外,初始化时序同时包括主机发出的复位脉冲和从机发出的应答脉冲。主机通过拉低一线总线至少480s,以产生TX复位脉冲;然后主机释放总线,并进入RX接收模式。当主机释放总线时,总线由低电平跳变为高电平时产生一个上升沿,一线总线器件检测到这上升沿后,延时15-60s,接着一线总线器件通过拉低总线60-240s,以产生应答脉冲。主机接收到从机应答脉冲后,说明有一线总线器件在线,然后主机就可以开始对从机进行ROM命令和功能命令操作。综上所述,在一线总线上进行数据传输时,一线总线器件和主机之间必须遵循严格的读时序和写1、写0时序。在每一个时序中,总线只能传输一位数据。所有的读、写时序至少需要60s,且每两个独立的时序之间至少需要ls的恢复时间。读、写时序均起始于主机拉低总线。在写时序中,主机拉低总线后,在15s之内释放总线,向一线总线器件写1;若主机拉低总线后,保持至少60s的低电平,则向一线总线器件写0。一线总线器件仅在主机发出读时序时才向主机传输数据,所以,当主机向一线总线器件发出读数据命令后,必须马上产生读时序,以便一线总线器件能传输数据。在主机发出读时序之后,一线总线器件才开始在总线上发送0或1,若一线总线器件发送1,则保持总线高电平,若发送0,则拉低总线。一线总线器件发送数据之后,保持有效时间15s,因而,主机在读时序期间必须释放总线,并且必须在15s之内采样,从而接收到从机发送的一位数据。2电子温度计硬件电路设计2.1方案选择温度检测系统有则共同的特点:。环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降。所以温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。2.1.1传感器部分方案一:采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂。另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。方案二:在测温系统中,传统的测温方法是将模拟信号远距离采样进行AD转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输测量切换及放大电路零点漂移等造成的误差补偿问题。采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于AT89C51可以带多个DSB1820,因此可以非常容易实现多点测量。轻松的组建传感器网络。采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。2.1.2主控制部分方案一:此方案采用PC机实现。它可在线编程,可在线仿真的功能,这让调试变得方便。且人机交互友好。但是PC机输出信号不能直接与DS18B20通信。需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦!方案二:此方案采用AT89C51八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信。运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统,实现远程控制。另外AT89C51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。2.1.3系统方案由于PC机不能与DS18B20直接连接,所以使用不方便。因为其结构复杂,稳定性不强不能在任何条件下长期工作,且PC机体积庞大,携带不便。而AT89C51可与DS18B20直接工作,硬件实现简单,系统稳定,适合各种环境下应用。综上所述,温度传感器以及主控部分都采用第二方案。按照系统设计功能的要求,系统由5个模块组成:主控制器、温度采集电路[1]、温度显示电路、报警控制电路、看门狗电路。电子温度计总体电路结构框图如图2.1所示。图2.1电子温度计硬件统结构框图采用智能温度传感器(DS18B20)采集环境温度并进行简单的模数转换;单片机(AT89C51)执行程序对温度传感器传输的数据进行进一步的分析处理,转换成环境对应的温度值,通过I/O口输出到数码显示管(LED)显示;由键盘输入控制选择某采集电路检测温度及显示;报警电路对设定的最高最低报警温度进行监控报警。2.2温度采集电路设计温度采样处理电路由温度传感器、放大电路、A/D转换电路等组成。采用分块结构的温度采样处理电路,其硬件电路结构复杂,也不便于数据的处理。采用智能温度传感器采样处理电路,能够方便的进行温度的采集及简单的数据处理。并且可以达到设计的技术指标要求。本系统选择智能温度传感器DS18B20作为温度采集电路的核心器件。由DS18B20及辅助电路构成温度采集电路。2.2.1DS18B20简介(1)DS18B20的性能特点DS18B20是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等温度传感器相比,它能够直接读出被测温度,并可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以在93.75ms至750ms内完成相应9位至12位的数字量转换。它的测温精度可达到0.0625℃/LSB。它的测温范围是-55~+125℃。从DS18B20读出或写入信息仅需要一根口线,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,无需额外电源。因而选用DS18B20是恰当的。(2)DS18B20的外形和内部结构DS18B20采用3脚PR-35封装,其外形和内部结构框图分别如图2.2图2.3所示。图2.2DS18B20外形结构图2.3DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。64位光刻ROM的位结构图如图2.4所示。64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。图2.464位ROM结构DS18B20温度传感器的内部存储器包括一个非易失性的可电擦除E2PRAM和一个高速暂存RAM。E2PRAM包括存放高温度和低温度的触发器TH、TL和结构寄存器。非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限。高速暂存RAM的结构为9字节的存储器,结构图如图2.5所示。头2个字节包含测得的温度信息。第3、4字节是TH和TL的拷贝,每次上电复位时被刷新。第5字节为配置寄存器,用于确定温度值的数字转换分辨率。第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。第5字节配置寄存器各位的定义如图2.6所示;低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式;R1和R0决定温度转换的精度位数(即设置分辨率),定义方法见表2.1。图2.5高速缓存RAM结构图2.6配置寄存器表2.1DS18B20分辨率的定义规定 R1 R0 分辨率/位 温度最大转换时间/ns 0011 0101 9101112 93.75187.53757509位分辨率时,精度为0.5℃/LSB;10位分辨率时,精度为0.25℃/LSB;11位分辨率时,精度为0.125℃/LSB;12位分辨率时,精度为0.0625℃/LSB。转换精度越高所需转换时间越长。为了达到本系统的技术指标,选择12位分辨率。(3)DS18B20供电方式外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。在外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V时,依然能够保证测量精度。所以本系统采用外部电源供电方式。在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上可以挂接任意多个DS18B20传感器,组成多点测温系统。外部电源供电方式如图2.7所示。在外部供电方式下,DS18B20的GND引脚必须接地,不能悬空,否则不能转换温度,读取的温度总是85℃。图2.7DS18B20外部电源供电2.2.2温度采集电路结构温度采集电路结构如图2.8所示。图中给出了温度采集电路,1只智能温度传感器DS18B20的信号输出端都连接到单片机的P1.7端,电阻R6作为上拉电阻。如果需要增加,可以在P1.7端再连接更多的智能温度传感器DS18B20。工作时,由程序控制读取某智能温度传感器DS18B20采集的温度数据,送单片机处理。图2.8电子温度计温度采集电路2.3单片机控制电路设计单片机控制电路核心是单片机芯片,其加上工作基本电路,就可以展开控制工作。2.3.1单片机芯片选择MCS8031和AT89C51都具有4个8位I/O接口,但MCS8031没有内部程序存储器,需要外接,增加了电路的复杂性;AT89C2051和AT89C51都具有FlashROM,可以省去外接程序存储器;但AT89C2051接口少,不利于功能扩展;故选用AT89C51。AT89C51单片机内部结构及主要性能特点:40个引脚,双列直插式封装;有4个8位I/O接口;有全双工增强型UART,可编程串行通信;2个16位定时/计数器;5个中断源,2个中断优先级;有片内时钟振荡器(全静态工作方式,0~24MHz);有128字节内部RAM,4KBFlashROM(可以擦除1000次以上,数据保存10年);电源控制模式灵活(时钟可停止和恢复,空闲模式,掉电模式)。2.3.2AT89C51单片机工作基本电路设计AT89C51单片机正常工作,必须连接基本电路。基本电路包括晶振电路和复位电路。(1)晶振电路单片机的时钟信号通常有两种产生方式:一是内部时钟方式,二是外部时钟方式。内部时钟方式是利用单片机内部的振荡电路产生时钟信号。外部时钟方式是把外部已有的时钟信号引入到单片机内。本设计采用内部时钟方式,电路如图2.9中所示。在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),作为单片机内部振荡电路的负载,构成自激振荡器,可在单片机内部产生时钟脉冲信号。C1和C2可以稳定振荡频率,并使快速起振。本电路选用晶振12MHz,C1=C2=30pF。(2)复位电路复位是使单片机处于某种确定的初始状态。单片机工作从复位开始。在单片机RST引脚引入高电平并保持2个机器周期,单片机就执行复位操作。复位操作有两种基本方式:一种是上电复位,另一种是上电与按键均有效的复位。本设计采用后一种复位电路。电路如图2.9中所示。当RST获得高电平,随着电容C3的充电,RST引脚的高电平将逐渐下降。若该高电平能保持足够2个机器周期,就可以实现复位操作。选择C3=10µF,R1=10KΩ。综上所述,单片机控制电路如图2.9所示。图2.9单片机控制电路2.4显示电路设计显示电路采用LED数码管显示。LED数码显示管有静态显示方式和动态显示方式,本系统采用串行输出的静态显示方式。利用3片串转并芯片74LS164将控制器输出的串行数据转换成并行数据输出,用来驱动3位LED数码显示管显示数据。2.4.1LED数码显示管静态显示工作原理LED显示器工作于静态显示方式时,各位的阴极(或阳极)选择线连接在一起并接地(或+5V);每位的段码线分别与1个8位的锁存器输出连接。各LED显示某一字符时,相应段的发光二极管恒定地导通或截止,直到送入另一个字符的段码为止。静态显示可以得到较高的显示亮度。静态显示有并行输出和串行输出两种方式。并行输出显示的十进制位数多时,需要并行I/O接口芯片的数量较多。串行输出可以大大节省单片机的内部资源。2.4.2显示电路结构显示电路由单片机AT89C51的P3.0端作数据输出,连接到低位74LS164的数据输入引脚端,其余2片74LS164的数据输入端分别接到它前面一位74LS164的数据输出端的最高位引脚端。单片机AT89C51的P3.1、P1.4端分别接到一个与门电路的输入端,与门电路的输出端分别与每片74LS164的输出允许控制端相连接。每片74LS164的输出端分别连接到一个数码显示管。显示电路结构图如图2.10所示。图2.10显示电路图2.4.3显示电路工作过程AT89C51单片机工作在串行口方式0下(移位寄存器方式),P3.0(RXD)为数据输出端,P3.1(TXD)为移位脉冲输出端,P1.4为74LS164允许输出控制端。串行口发送缓冲区的数据在移位脉冲的作用下,一位一位地从P3.0口移入到74LS164中,并在控制信号的控制作用下,通过LED数码显示管显示。2.5报警控制电路设计报警控制电路采用压电式蜂鸣器作发声体,用三极管对蜂鸣器发声进行控制。2.5.1报警控制电路结构报警控制电路由单片机AT89C51的P3.7端作输出,通过一个限流电阻与三极管C945的基极相连接。三极管C945集电极连接压电蜂鸣器(BUZZER)的一端。压电蜂鸣器的另一端连接电源。报警控制电路如图2.11所示。图2.11报警工作电路2.5.2报警控制电路工作过程(1)压电蜂鸣器工作原理压电蜂鸣器以压电陶瓷制作而成。压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,电流的变化与压力的变化密切相关。反之,当在压电陶瓷上加上一定频率的电压,就会在内部产生一定频率的电流,从而就会引起压电陶瓷微小形变,这一形变带动空气发生振动。如果频率适当,就产生蜂鸣声,可以被人耳所听见。(2)报警控制电路工作过程报警控制信号由单片机AT89C51的P3.7端输出,通过一个限流电阻加到三极管C945的基极。当P3.7端的输出信号发生变化时,则三极管C945将交替的工作于截止、饱和状态,形成高低电平的波,从而使压电蜂鸣器发出声音。2.6电源电路设计电源电路由变压器、单相桥式整流电路、滤波电路和三端稳压电路构成。其电路图如图2.12所示,图中“output”端输出为+5V。图2.12电源电路电子设备中常使用输出电压固定的集成稳压器。三端式稳压器只有输入、输出和公共引出端,由启动电路、基准电压电路、取样比较放大电路、调整电路和保护电路等部分组成。在本系统中,要求电源电压为+5V,由于三端式稳压器输出电压固定,故在设计中选择三端式稳压器L7805。三端式稳压器的输入与输出之间电压差为2~3V,整流桥的输出电压是输入电压(有效值)的1.2倍,根据有效值与峰-峰值的关系选择220V/6V的变压器。由于L7805的最大输出电流为1A,电压为稳定的+5V,输出功率为5W,加上三端式稳压器L7805的消耗,故本系统选择降压比为220V/6V、功率为10W的变压器。图13中C4、C5为低频滤波电容,根据经验选择电解电容,其容值分别为C4=220μF、C5=47μF;C6、C7为高频滤波电容,均选0.1μF的无极性电容。发光二极管用于指示电源是否接通,选择FG1112004发光二极管,根据FG1112004正向电流为5mA及管压降为+2V,选择限流电阻R5=680Ω。2.7看门狗电路图2.13看门狗电路在实际应用与生活中。考虑到底层电路板的工作环境相对恶劣,单片机会受到周围环境的干扰,因而出现程序跑飞、死机等一些不可预知的不正常工作现象,工作人员也不可能到现场对单片机重起,本设计为单片机电路添加一个外部看门狗电路,定时查询单片机的工作状态,一旦发现异常即对单片机延时重起,以保证系统安全可靠的运行。其电路如图2.13所示。3电子温度计的温度采集系统程序设计3.1主程序设计主程序主要功能是控制调用子程序,实现温度的实时显示、读出并处理DS18B20的测量温度值(温度测量每1s进行一次)。其程序流程图如图3.1所示。图3.1电子温度计主程序流程图3.2子程序设计3.2.1DS18B20的通信协议根据DS18B20的通讯协议,主机(单片机AT98C51)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行初始化操作,初始化成功后发送一条存储器操作命令(ROM指令),最后处理数据(发送RAM指令),这样才能对DS18B20进行预定的操作。所用各ROM、RAM操作指令分别如表3.1、表3.2所示。表3.1ROM指令表 指令 约定代码 功能 读ROM 33H 读DS18B20温度传感器ROM中的编码(即64位地址) 符合ROM 55H 发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之做出响应,为下一步对该DS18B20的读写做准备. 搜索ROM 0F0H 用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。为操作各器件作好准备。 跳过ROM 0CCH 忽略64位ROM地址,直接向DS18B20发温度变换命令。适用于单片工作。 告警搜索命令 0ECH 执行后温度超过设定值上限或下限的片子才能做出响应。表3.2RAM指令表 指令 约定代码 功能 温度转换 44H 启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。 读暂存器 0BEH 读内部RAM中9字节的内容。 写暂存器 4EH 发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。3.2.2子程序(1)键盘扫描子程序键盘扫描子程序对按下的键进行判断,并转到按下的相应键对应的程序段,执行相应的功能。其程序流程图如图3.2所示。(2)温度转换命令子程序温度转换命令子程序主要是发送温度转换开始命令。在发送匹配ROM命令后,紧跟着发送要进行测温的DS18B20的64位ROM序列(这个序列号一般由厂方提供或通过实验的方式获得)。采用12位分辨率,转换时间约为750ms。其程序流程图如图3.3所示。图3.2键盘扫描子程序流程图图3.3温度转换命令子程序流程图(3)读出温度子程序读出温度子程序主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图3.4所示。(4)计算温度子程序从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。在系统采用12位转换精度,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。通过观察可以发现一个十进制值和二进制值之间有很明显的关系。低字节的高半字节乘以0.0625恰好就是原整数。因此,把二进制的高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制值化为十进制值后,就恰好是温度值的百、十、个位值;剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。小数部分因为是半个字节,所以二进制值范围是0~F,转换成十进制小数值就是0.0625的倍数。这样需要4位的数码管来显示小数部分,实际应用不必有这么高的精度,采用1位数码管来显示小数,可以精确到0.1℃。表3.5就是二进制和十进制小数的近似对应关系。其程序流程图如图3.5所示。表3.5小数部分二进制和十进制的近似对应关系表 小数部分二进制数 0 1 2 3 4 5 6 7 8 9 A B C D E F 十进制数 0 0 1 1 2 3 3 4 5 5 6 6 7 8 8 9图3.4读出温度子程序流程图图3.5计算温度子程序流程图(5)显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲区中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。其程序流程图如图3.6所示。图3.6显示数据刷新子程序流程图图3.7报警控制子程序流程图(6)报警控制子程序当设定的最高报警温度值大于显示缓冲区中的数据时,发出报警,提示温度超过设定的最大值。其程序流程图如图3.7所示。4系统调试与仿真4.1系统调试系统调试分为硬件调试和软件调试两步。1、硬件调试硬件调试比较简单,首先检查电路的焊接是否正确及电路中有没有虚焊等问题,然后可用万用表测试或通电检测电路。实物焊出来之后,先要进行硬件调试。电路的调试过程是检验、修正设计方案的实践过程,也是应用理论知识来解决实践中各类问题的关键环节,是电路设计者必须掌握的基本技能。把电子元器件连接起来,实现特定功能的关键一步是调试。调试方法有两种:分块调试法和整体调试法。具体的调试步骤如下:(1)电前检查。任何组装好的电子电路,在通电调试之前,必须认真检查电路连线是否有误。检查的方法是对照电路图,按一定的顺序逐级对应检查。特别是注意电源是否接错,电源与地是否有短接,集成电路和晶体管的引脚是否接错,轻轻拨一拨元器件,观察焊点是否牢固等(2)通电检查。先调试好所需电源电压数值,然后再给电路接通电源。电源一经接通,先要观察是否有异常现象,如冒烟、异常气味、放电的声光、元器件发烫等。如果有,应立即关断电源,待故障排除后,方可重新接通电源。然后,测量每个集成块的电源引脚电压是否正常,以确信集成电路是否已通电工作。(3)分块调试。分块调试时应明确本部分的调试要求,按调试要求测试性能指示和观察波形。调试顺序按信号的流向进行,这样可以把前面调试过的输出信号作为后一级的输入信号,为最后的整机联调创造条件。(4)整机联调。整机联调时应观察各单元电路连接后各级之间的信号关系,主要观察动态结果,检查电路的性能和参数,分析测量的数据和波形是否符合设计要求。实物经过硬件调试后还要进行软件调试,即将程序写入到单片机存储器中,实现设计功能。2软件调试软件调试以程序为主。先编写一段显示程序对硬件的正常工作进行检验,然后进行主程序、匹配ROM子程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序等的编程及调试。软件调试到能显示温度值,而且在有温度变化时(例如用手去接触)显示温度能够改变就基本完成软件调试。由于DS18B20与单片机采用单线串行数据传送,因此,对DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。4.2系统的仿真此设计的电路在Proteus软件中进行仿真,运行Proteus的ISIS程序后,进入该仿真软件的主界面。主界面由菜单栏、工具栏、预览窗口、元件选择按钮、元件列表窗口、原理图绘制窗口和仿真进程控制按钮组成(如图7-2所示)。通过元件选择按钮P(从库中选择元件命令)命令,在弹出的PickDevices窗口中选择电路所需的元件,放置元件并调整其相对位置,对元件参数设置及元器件间连线,完成单片机系统的硬件原理图绘制。用制作的测温系统和已有的成品温度计(如水银温度计)来同时测量环境温度,并对测量的结果进行比较分析。由比较分析及DS18B20的特点可得,用本系统进行测温时,精度很高,误差指标可以限制在0.1℃以内;另外在-55~+125℃的测温范围内使得该系统完全适合一般的应用场合。4.3系统的运行(1)首先启动KEILC51软件的集成开发环境,从桌面上双击uVision图标以启动软件。(2)建立工程文件。通常单片机应用系统软件包含多个源程序文件,KEILC51使用工程这一概念,将这些参数设置和所需的所有文件都加在一个工程中。因此,需要建立一个工程文件,并为这个工程选择CPU,确定编译,汇编,连接的参数,指定调试的方式。(3)建立并添加源文件。使用菜单或者单击工具栏的新建文件按钮,出现文本便捷窗口,在该窗口中输入新编制的源程序并保存该文件。然后,我打开已经画好的仿真图,再将生成的HEX文件导入单片机里,点击开始按钮,电路正常工作,并且能够实现预先设想的所有功能,而且效果很好,从而验证了我的程序的正确性。结论基于单片机的电子温度计主要实现了温度的测试与显示功能。在复杂和恶劣的环境中能稳定而有效的完成测试与显示。在我的毕业设计中,主要是以AT89C51单片机为核心的,对温度的检测与显示进行了简单的设计与阐述。本次设计可以说是软硬结合,又以硬件为主。硬件设计中主要运用了TA89C51单片机和DS18B20温度传感器。还设计了像显示电路、温度采集电路、报警电路等辅助电路。以DS18B20为温度传感器的温度采集电路主要作用是随时感应周围环境的温度变化,再通过AT89C51单片机作为媒介,就可以在LED显示屏上显示出温度。本设计的不足之处是:本设计只能监测、采集与显示周围环境的温度变化,但不能改变其温度。致谢值此之际,向在我毕业设计期间给予我谆谆教诲的唐朝仁老师表示衷心的感谢!唐朝仁老师所具有的渊博深厚的专业知识、严谨的治学作风、使我得以在学术研究上受益匪浅,同时其孜孜不倦的工作作风和对科学事业的执着追求给我留下了深刻的印象,并将成为我今后工作、学习的榜样。感谢大学期间所有教过我的老师,有了他们的悉心教导和无私教授,我才得以顺利毕业。感谢我所有的同学在四年期间给我的关心和帮助,和他们一起相处的日子是非常开心愉快的,度过了我人生中难忘的大学时光。感谢我的亲人、我的朋友,是他们一直以来给予我的爱和支持为我提供了无尽的力量。参考文献[1]王涌.MCS-51系列单片机基本实验.华北电力大学信息工程综合实验室,1996:84-93[2]林继鹏,王君,凌振宝.温度传感器和一线总线协议.吉林:传感器技术,2002,21(2):44-45[3]美国德克萨斯仪器公司TTL集成电路特性应用手册.上海半导体器件工业公司,上海半导体器件研究所,1976:57-58[4]罗文广.单总线数字温度传感器的自动识别技术.电子产品世界,2002(8):68-71[5]D.皮茨,L.西索姆,著.葛新石等译.传热学.北京:科学出版社,200:17-185[6]魏智.解析DALLAS通用的单总线网络.Semiconductortechnology.2001,26(12):15-16[7]王彦平,任延群,危胜军,等著.Protel99电路设计指南.清华大学出版社[8]1-Wire网络可靠设计指南.DallasSemiconductor应用笔记148,3-10[9]姬铁兰,康碗德,孟兆明.火灾报警系统的研究.科技情报开发与经济.2004,14(6):198-199[10]陈志英,李光辉.单总线技术及其应用.电气时代.2003,l:74-75[11]黄攀,王俊杰.单总线数字温度传感器DS1820及其应用.清华大学自动化系.北京:元器件与应用.2001,12:29-31[12]龚荣胜,张阿卜.一线总线的软件接口.自动化技术及应用.2003,22(2):40-42[13]李江华,谢红,于蕾.用“一线总线”实现多点高速测温的方案.应用科技.北京:2001,28(10):40-41[14]郑宏军,黎听,孟样国.1-Wire单总线器件技术 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 及应用研究.电子技术.2004,9:39-42[15]吴为民,王仁丽.温度控制系统的发展概况.工业炉.2002,24(2):18-21[16]栾成强.基于热敏电阻的温度监测系统.ELECTRONICPRODUCTSCHINA,2002,12:27-28[17]张艾萍,万瑞军.基于数字温度传感器的电缆故障在线监测及火灾预警系统.电力自动化设备.2003,23(10):57-59[18]黄浩,程菲,段三丁,陈光东.常用串行总线数据操作的C5l编程.微型机与应用.2003,5:19-21[19]DALLAS最新一线数字温度传感器DS18B20简介.http://www.teachersong.com[20]DS18B20HighPrecision1-WireDigitalThermometer.DALLASSEMICONDUCTOR[21]KenWendel.ReliabilityReportforDS18B20.DallasSemiconductor,2004:3-4[22]A.V.Oppenheim,R.W.Schafer,J.R.Buck,Prentice-Hall,Inc.《Discrete-timeSignalProcessing》(SecondEdition).2000:3-4[23]MinimalRemote1-WireMasterProtocol.DallasSemiconductorApplicationNote2966.2002:8-31[24]Smiczek,David,JanKristoffersen,JergenBaekke.CommunicationwithDallasSemiconductorMicroLANdevicesinsensorsonremotelocations.IEEE1451.4.1998:49-67附录A外文文TheseriesSCMofAT89from《Diste-timeSignalProcessing》1.1AT89C511.DescriptionTheAT89C51isalow-power,high-performanceCMOS8-bitmicrocomputerwith4KbytesofFlashprogrammableanderasablereadonlymemory(PEROM).ThedeviceismanufacturedusingAtmel’shigh-densitynonvolatilememorytechnologyandiscompatiblewiththeindustry-standardMCS-51instructionsetandpinout.Theon-chipFlashallowstheprogrammemorytobereprogrammedin-systemorbyaconventionalnonvolatilememoryprogrammer.Bycombiningaversatile8-bitCPUwithFlashonamonolithicchip,theAtmelAT89C51isapowerfulmicrocomputerwhichprovidesahighly-flexibleandcost-effective.2.PinConfigurations3.PinDescriptionVCC—Supplyvoltage.GND—GrounFigureA1Port0Port0isan8-bitopen-drainbi-directionalI/Oport.Asanoutputport,eachpincansinkeightTTLinputs.When1sarewrittentoport0pins,thepinscanbeusedashigh-impedanceinputs.Port0mayalsobeconfiguredtobethemultiplexedlow-orderaddress/databusduringaccessestoexternalprogramanddatamemory.InthismodeP0hasinternalpullups.Port0alsoreceivesthecodebytesduringFlashprogramming,andoutputsthecodebytesduringprogramverification.Externalpullupsarerequiredduringprogramverification.Port1Port1isan8-bitbi-directionalI/Oportwithinternalpullups.ThePort1outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort1pinstheyarepulledhighbytheinternalpullupsandcanbeusedasinputs.Asinputs,Port1pinsthatareexternallybeingpulledlowwillsourcecurrent(TTL)becauseoftheinternalpullups.Port1alsoreceivesthelow-orderaddressbytesduringFlashprogrammingandverification.Port2Port2isan8-bitbi-directionalI/Oportwithinternalpullups.ThePort2outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort2pinstheyarepulledhighbytheinternalpullupsandcanbeusedasinputs.Asinputs,Port2pinsthatareexternallybeingpulledlowwillsourcecurrent(TTL)becauseoftheinternalpullups.Port2emitsthehigh-orderaddressbyteduringfetchesfromexternalprogrammemoryandduringaccessestoexternaldatamemorythatuse16-bitaddresses(MOVX@DPTR).Inthisapplication,itusesstronginternalpullupswhenemitting1s.Duringaccessestoexternaldatamemorythatuse8-bitaddresses(MOVX@RI),Port2emitsthecontentsoftheP2SpecialFunctionRegister.Port2alsoreceivesthehigh-orderaddressbitsandsomecontrolsignalsduringFlashprogrammingandverification.Port3Port3isan8-bitbi-directionalI/Oportwithinternalpullups.ThePort3outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort3pinstheyarepulledhighbytheinternalpullupsandcanbeusedasinputs.Asinputs,Port3pinsthatareexternallybeingpulledlowwillsourcecurrent(TTL)becauseofthepullups.Port3alsoservesthefunctionsofvariousspecialfeaturesoftheAT89C51aslistedbelow:Port3alsoreceivessomecontrolsignalsforFlashprogrammingandverification.RSTResetinput.AhighonthispinfortwomachinecycleswhiletheoscillatorisrunningresetsthedevicePSENProgramStoreEnableisthereadstrobetoexternalprogrammemory.WhentheAT89C51isexecutingcodefromexternalprogrammemory,PSENisactivatedtwiceeachmachinecycle,exceptthattwoPSENactivationsareskippedduringeachaccesstoexternaldatamemory.ALE/PROGAddressLatchEnableoutputpulseforlatchingthelowbyteoftheaddressduringaccessestoexternalmemory.Thispinisalsotheprogrampulseinput(PROG)duringFlashprogramming.InnormaloperationALEisemittedataconstantrateof1/6theoscillatorfrequency,andmaybeusedforexternaltimingorclockingpurposes.Note,however,thatoneALEpulseisskippedduringeachaccesstoexternalDataMemory.Ifdesired,ALEoperationcanbedisabledbysettingbit0ofSFRlocation8EH.Withthebitset,ALEisactiveonlyduringaMOVXorMOVCinstruction.Otherwise,thepinisweaklypulledhigh.SettingtheeliminatethepossibilityofanunexpectedwritetoaportpinwhenIdleisterminatedbyreset,theinstructionfollowingtheonethatinvokesIdleshouldnotbeonethatwritestoaportpinortoexternalmemory.7.Power-downModeInthepower-downmode,theoscillatorisstopped,andtheinstructionthatinvokespower-downisthelastinstructionexecuted.Theon-chipRAMandSpecialFunctionRegistersretaintheirvaluesuntilthepower-downmodeisterminated.Theonlyexitfrompower-downisahardwarereset.ResetredefinestheSFRsbutdoesnotchangetheon-chipRAM.TheresetshouldnotbeactivatedbeforeVCCisrestoredtoitsnormaloperatinglevelandmustbeheldactivelongenoughtoallowtheoscillatortorestartandstabilize.8.ProgramMemoryLockBitsOnthechiparethreelockbitswhichcanbeleftunprogrammed(U)orcanbeprogrammed(P)toobtaintheadditionalfeatureslistedinthetablebelow.9.ProgrammingtheFlashTheAT89C51isnormallyshippedwiththeon-chipFlashmemoryarrayintheerasedstate(thatis,contents=FFH)andreadytobeprogrammed.Theprogramminginterfaceacceptseitherahigh-voltage(12-volt)oralow-voltage(VCC)programenablesignal.Thelow-voltageprogrammingmodeprovidesaconvenientwaytoprogramtheAT89C51insidetheuser’ssystem,whilethehigh-voltageprogrammingmodeiscompatiblewithconventionalthirdpartyFlashorEPROMprogrammers.TheAT89C51isshippedwitheitherthehigh-voltageorlow-voltageprogrammingmodeenabled.Therespectivetop-sidemarkinganddevicesignaturecodesarelistedinthefollowingtable.TheAT89C51codememoryarrayisprogrammedbyte-bybyteineitherprogrammingmode.Toprogramanynonblankbyteintheon-chipFlashMemory,theentirememorymustbeerasedusingtheChipEraseMode.ProgrammingAlgorithm:BeforeprogrammingtheAT89C51,theaddress,dataandcontrolsignalsshouldbesetupaccordingtotheFlashprogrammingmodetableandFigure3andFigure4.ToprogramtheAT89C51,takethefollowingsteps.(1)Inputthedesiredmemorylocationontheaddresslines.(2)Inputtheappropriatedatabyteonthedatalines.(3)Activatethecorrectcombinationofcontrolsignals.(4)RaiseEA/VPPto12Vforthehigh-voltageprogrammingmode.(5)PulseALE/PROGoncetoprogramabyteintheFlasharrayorthelockbits.Thebyte-writecycleisself-timedandtypicallytakesnomorethan1.5ms.(6)Repeatsteps1through5,changingtheaddressanddatafortheentirearrayoruntiltheendoftheobjectfileisreached.DataPolling:TheAT89C51featuresDataPollingtoindiatetheendofawritecycle.Duringawritecycle,anattemptedreadofthelastbytewrittenwillresultinthecomplementofthewrittendatumonP0.7.Oncethewritecyclehasbeencompleted,truedataarevalidonalloutputs,andthenextcyclemaybegin.DataPollingmaybeginanytimeafterawritecyclehasbeeninitiated.Ready/Busy:TheprogressofbyteprogrammingcanalsobemonitoredbytheRDY/BSYoutputsignal.P3.4ispulledlowafterALEgoeshighduringprogrammingtoindicateBUSY.P3.4ispulledhighagainwhenprogrammingisdonetoindicateREADY.ProgramVerify:IflockbitsLB1andLB2havenotbeenprogrammed,theprogrammedcodedatacanbereadbackviatheaddressanddatalinesforverification.Thelockbitscannotbeverifieddirectly.Verificationofthelockbitsisachievedbyobservingthattheirfeaturesareenabled.ChipErase:TheentireFlasharrayiserasedelectricallybyusingthepropercombinationofcontrolsignalsandbyholdingALE/PROGlowfor10ms.Thecodearrayiswrittenwithall“1”s.Thechiperaseoperationmustbeexecutedbeforethecodememorycanbere-programmed.ReadingtheSignatureBytes:Thesignaturebytesarereadbythesameprocedureasanormalverificationoflocations030H,031H,and032H,exceptthatP3.6andP3.7mustbepulledtoalogiclow.Thevaluesreturnedareasfollows.(030H)=1EHindicatesmanufacturedbyAtmel(031H)=51Hindicates89C51(032H)=FFHindicates12Vprogramming(032H)=05Hindicates5Vprogramming1.2AT89C52TheAT89C52isalow-power,high-performanceCMOS8-bitmicrocomputerwith8KbytesofFlashprogrammableanderasablereadonlymemory(PEROM).ThedeviceismanufacturedusingAtmel’shigh-densitynonvolatilememorytechnologyandiscompatiblewiththeindustry-standard80C51and80C52instructionsetandpinoutTheon-chipFlashallowstheprogrammemorytobereprogrammedin-systemorbyaconventionalnonvolatilememoryprogrammer.Bycombiningaversatile8-bitCPUwithFlashonamonolithicchip,theAtmelAT89C52isapowerfulmicrocomputerwhichprovidesahighly-flexibleandcost-effectivesolutiontomanyembeddedcontrolapplications.TheAT89C52providesthefollowingstandardfeatures:8KbytesofFlash,256bytesofRAM,32I/Olines,three16-bittimer/counters,asix-vectortwo-levelinterruptarchitecture,afull-duplexserialport,on-chiposcillator,andclockcircuitry.Inaddition,theAT89C52isdesignedwithstaticlogicforoperationdowntozerofrequencyandsupportstwosoftwareselectablepowersavingmodes.TheIdleModeserialport,andinterruptsystemtocontinuefunctioning.ThePower-downmodesavestheRAMcontentsbutfreezestheoscillator,disablingallotherchipfunctionsuntilthenexthardwarereset.Features:CompatiblewithMCS-51™Products8KBytesofIn-SystemReprogrammableFlashMemoryEndurance:1,000Write/EraseCyclesFullyStaticOperation:0Hzto24MHzThree-levelProgramMemoryLock256x8-bitInternalRAM32ProgrammableI/OLinesThree16-bitTimer/CountersEightInterruptSourcesProgrammableSerialChannelLow-powerIdleandPower-downModesPinDescription:VCC:SupplyvoltageGND:Ground附录B汉语翻译中文翻译AT89系列单片机摘自《Diste实时信号处理》1.1AT89C511、特性内含4KB的flash存储器,擦写次数1000次;具有可编程的3级程序锁定器;内含128字节的RAM;具有32根可编程的I/O线;具有2个16位可编程定时器;具有6个中断源;两种低功耗工作模式,即空闲模式和掉电模式;2、概述AT89C51是一种低功耗,高性能,采用CMOS工艺的8KB的可在线编程的Flash存储器。该单片机采用了ATMEL公司的高密度、非易失性存储器技术,与工业标准型MCS-51单片机的指令系统和引脚完全兼容;片内的Flash存储器可在线重新编程,或使用通用的非易失性存储器编程器;通用的8位CPU与在线可编程Flash集成在一块芯片上,从而使AT89C51功能更加完善,应用更加灵活;具有较高的性能价格比.3、AT89C51单片机的封装形式4、引脚描述VCC—电源电压输入引脚。GND—电源地。P0口—8位、开漏极、双向I/O口。P0口可用作通用I/O口,但须外接上拉电阻,每个引脚可吸收8个TTL灌电流,当作为输入时,首先应将引脚置1。P0口也可用作访问外部程序存储器和数据存储器时的低8位地址/数据总线的复用线。在该模式下,P0口含有内部上拉电阻。在Flash编程时,P0口接收代码字节数据;在编程校验时,P0口输出代码字节数据。P1口—8位、双向I/O口,内部含有上拉电阻。P1口可作普通I/O口。输出缓冲器可驱动4个TTL负载;用作输入时,先将引脚置1,由片内上拉电阻将其抬到高电平。P1口的引脚可由外部负载拉到低电平,通过上拉电阻提供拉电流。在Flash并行编程和校验时,P1口可输入地字节地址。P2口—具有内部上拉电阻的8位双向I/O口。P2口用作输出口时,可驱动4个TTL负载;用做输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外输出电流。CPU访问外部16位地址的存储器时,在Flash并行编程和校验时,P2口可输入高字节地址和某些控制信号。在P3口—具有内部上拉电阻的8位双向口。P3口用做输出口时,输出缓冲器可吸收4个TTL的灌电流;用做输入口时,首先将引脚置1,由内部上拉电阻抬为高电平。若外部的负载是低电平,则通过内部上拉电阻向外输出电流。在与Flash并行编程和校验时,P3口可输入某些控制信号。P3口除了通用I/O功能外,还有替代功能。RST—复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期(即24个晶振周期)以上的高电平,将器件复位。—片外程序存储器读选通信号PSEN(ProgramStoreEnable),低电平有效。当AT89C51执行来自外部程序存储器的指令代码时,每个机器周期两次有效。在访问外部数据存储器时,无效。ALE/—低字节地址锁存信号ALE(AddressLatchEnable)。在系统扩展时,ALE的下降沿将P0口输出的低8位地址琐存在外接的地址琐存器中,以实现低字节地址和数据的分时传送。此外,ALE端连续输出正脉冲,频率为晶振频率的1/6,可用做外部定时脉冲使用。但要注意,每次访问外RAM时要丢失一个ALE脉冲。再编程期间,该引脚输入编程脉冲()。如果需要,则通过SFR(8EH)的第0位置1,可禁止ALE操作,但在使用MOVC或MOVX指令时,ALE仍然有效。也就是说,ALE的禁止位不影响对外部存储器的访问。/Vpp—外部程序存储器访问允许信号EA(ExternalAccessEnable)。当信号接地时,CPU只执行片外程序存储器中的程序;当接Vcc时,CPU首先执行片内程序存储器中的程序(0000H-0FFFH),然后自动转向执行片外程序存储器中的程序(1000H-FFFFH)。如果程序锁定位LB1被编程,那么值将在复位时由片内锁存。在与Flash并行编程时,该引脚可接入12V的编程电压Vpp。XTAL1—是片内振荡器反相放大器和时钟发生器的输入端。XTAL2—是片内振荡器反相放大器的输出端。5、振荡器的特性当使用片内振荡器时,片外振荡源和电容与XTAL1和XTAL2的接法如图B3所示。可以使用晶体谐振器和陶瓷谐振器。当使用外部振荡器信号时,外部时钟信号接入XTAL1引脚,XTAL2引脚悬空。对外部时钟信号的占空比没有要求,但高低电平持续时间不应过短。6、空闲模式在空闲模式下,CPU处于睡眠状态,振荡器和所有片内外围电路仍然有效。空闲模式可由软件设置进入。在这种模式下,片内RAM和SFR中的内容保持不变。空闲模式可通过任何一个允许中断或硬件复位退出。若用硬件复位方式结束空闲模式,则在片内复位控制逻辑发生作用前长达约两个机器周期时间内,器件从断点处开始执行程序。片内硬件禁止访问内部RAM,但不禁止访问端口。为避免采用复位方式退出空闲模式时对端口的不应有的访问,在紧随设置进入空闲指令的后面,不能是写端口或外部RAM的指令。7、掉电模式在掉电模式下,振荡器停止工作,CPU和片内所有外围部件均停止工作,但片内RAM和SFR中的内容保留不变,直到掉电模式结束。复位可重新设置SFR中的内容,但不改变片内RAM中的内容。在Vcc电源恢复到正常值并维持足够长的时间之后,允许振荡器恢复并达到稳定,方可进行复位,以退出掉电模式。8、程序存储器锁定位AT89C51内含3个程序锁定位,可维持原来的非编程状态(U),或对其进行编程(P),从而得到不同的保护性能。9、Flash存储器的编程方式AT89C51是在芯片擦除的状态下准备编程的,编程接口接受高电压或低电压编程信号。低电压编程为用户系统提供了一个方便的编程方式,而高电压编程与一般常用的EPROM编程器兼容。AT89C51有低电压和高电压编程两种模式,其顶端标志和型号。AT89C51存储器在编程状态下都是一个字节编程,Flash中各个单元是非空的,应先将芯片擦除后,方可进行编程。其编程算法是在编程之前,必须将地址、数据、控制信号按表B5和图B5和B6设置,变成可按下列步骤:在地址线上输入存储单元地址;在数据线上输入对应数据;组合正确的控制信号;对于高电压编程模式,将/Vpp升至12V;向ALE/输入一个编程负脉冲,字节写周期由片内自动定时,一般不超过1.5ms;改变地址和数据,重复(1)—(5)步,直到目标文件编程结束。数据查询:AT89C51可通过数据查询来判断编程是否结束。在写周期内,若试图读取刚写入的字节,则在P0.7引脚上得到写入数据的反码。一旦写周期完成,所有输出线上都将出现刚写入的真实数据,可以开始下个字节的编程。在写周期启动后,数据查询可在任何时刻开始。准备就绪/忙信号:字节的编程进程也可以通过准备就绪/忙输出信号检测。编程期间ALE/端变为高电平后,P3.4引脚被拉成低电平,表示忙;当编程完成后,P3.4引脚又被拉到高电平,表示准备就绪。编程校验:如果锁定位LB1和LB2没有被编程,那么代码数据可由数据线读出,用于校验。锁定位不能直接被校验,只有通过观察其特性是否被允许而间接得到证实。片擦写:整个Flash的所有存储单元和3个锁定位的擦除,可通过控制信号的正确组合并保持ALE/引脚10ms的低电平来完成。在芯片擦除操作中,代码阵列全被写成1。任何非空白字节被编程之前,首先进行擦除操作。读标志字节:读标志字节与对030H,031H,032H单元的读取校验过程相似,只不过要求P3.6和P3.7引脚必须为低电平。读取的字节数据如下:(030H)=1EH,表示ATMEL公司生产;(031H)=51H,表示89C51;(031H)=61H,表示89LV51;(032H)=FFH,表示编程电压Vpp=12V;(032H)=05H,表示编程电压Vpp=5V1.2AT89C52AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器材采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作方式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。主要性能参数:与MCS—51产品指令和引脚全兼容8k字节可重擦写Flash闪速存储器1000次擦写周期全静态操作;0Hz—24MHz三级加密程序存储器256×8字节内部RAM32个可编程I/O口线3个16位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式附录C电路图图B系统的硬件电路图附录D程序代码;*************************************************************;*************************************************************;工作内存区定义。BITSEQU20HTIMEOKBITBITS.1;1秒定时到标志。TEMPONBITBITS.2;第一次温度转换标志。TEMPLEQU26H;从DS18B20中读取温度低位的存放处。TEMPHEQU27H;从DS18B20中读取温度高位的存放处。TEMPCLEQU28H;转换后温度的小数位与个位存放处。TEMPCHEQU29H;转换后温度的十位与百位存放处,如果温度为负,则百位为符号位。TEMPHEADEQU36H;从DS18B20高速缓存RAM中读出数据的存放处的第一位。;*************************************************************;常数定义。K0EQUP2.0;按键K0定义。K1EQUP2.1;按键K1定义。DQEQUP1.7;数据传送脚定义。;*************************************************************;多路温度采集系统源程序。;*************************************************************ORG0000HLJMPSTARTORG000BHLJMPDVTO;T0中断入口地址。;*************************************************************;系统初始化。ORG0030HSTART:MOVSP,#60H;数据存储区20H—80H清“0”。CLS:MOVR0,#20HMOVR1,#60HCLS1:MOV@R0,#00HINCR0DJNZR1,CLS1CLRP1.4;关移位脉冲。CLRP3.6;关闭报警器。MOVTMOD,#21H;选择定时器0工作方式1;MOVTH0,#0E0H;20ms定时初值。MOVTL0,#0B1HMOVSCON,#00H;选择串行口工作方式0;NOPNOPSETBET0;开定时器T0。计时开始。SETBTR0SETBEAMOVPSW,#00HCLRTEMPONELJMPMAIN;*************************************************************;主程序。MAIN:LCALLKEYBORD;调用键盘扫描子程序。LOOP1:LCALLDISP;调用显示子程序。JNBTIMEOK,LOOP1;测温每1秒一次。CLRTIMEOKJNBTEMPONE,LOOP2;上电时先温度转换一次。LCALLREADTEMP;读出温度值子程序。LCALLTEMPBCD;温度BCD码计算处理子程序。LCALLDISPBCD;显示区BCD码温度值刷新子程序。LCALLALARM;最高温度报警子程序。LOOP2:LCALLTEMPCONV;温度开始转换子程序。SETBTEMPONESJMPMAIN;*************************************************************;定时器T0中断服子程序。DVT0:PUSHPSWMOVPSW,#10HMOVTH0,#0E0HMOVTL0,#0B1HINCR7CJNZR7,#32H,DVT01MOVR7,#00HSETBTIMEOK;1秒定时到标志。DVT01:POPPSWRETI;*************************************************************;键盘扫描子程序。KEYBORD:JBK0,L1JNBK0,$LCALLFUNCTIONLJMPKEYBORDL1:JBK1,L2JNBK1,$LCALLFUNCTION1LJMPKEYBORDL2:RETFUNCTION0:MOV40H,#28H;第一路DS18B20的64位序列号装入存储单元40H——47H。MOV41H,#0D6HMOV42H,#0B1HMOV43H,#8AHMOV44H,#00HMOV45H,#00HMOV46H,#00HMOV47H,#0E3HRETFUNCTION0:MOV40H,#28H;第二路DS18B20的64位序列号装入存储单元40H——47H。MOV41H,#0D6HMOV42H,#0B1HMOV43H,#8AHMOV44H,#00HMOV45H,#00HMOV46H,#01HMOV47H,#0E3HRET;*************************************************************;DS18B20复位子程序。RETET:SETBDQNOPNOPCLRDQMOVR6,#0A0H;延时480usDJNZR6,$MOVR6,#0A0HDJNZR6,$SETBDQMOVR6,#32H;延时70usDJNZR6,$MOVR6,#3CHRESET1:MOVC,DQJCRESET2DJNZR6,RESET1MOVR6,#64H;延时200usDJNZR6,$SJMPRESETRETRESET2:SETBDQRET;*************************************************************;读DS18B20子程序,从DS18B20中读出一个字节的数据。READ:MOVR7,#08HSETBDQNOPNOPREAD1:CLRDQNOPNOPNOPSETBDQMOVR6,#07H;延时15us。DJNZR6,$MOVC,DQMOVR6,#3CH;延时120us。DJNZR6,$RRCASETBDQDJNZR7,READ1MOVR6,#3CH;延时120us。DJNZR6,$RET;*************************************************************;写DS18B20子程序,给DS18B20中写入一个字节的数据。WRITE:MOVR7,#08HSETBDQNOPNOPWRITE1:CLRDQMOVR6,#07H;延时15us。DJNZR6,$RRCAMOVDQ,CMOVR6,#34H;延时104us。DJNZR6,$SETBDQDJNZR7,WRITE1RET;*************************************************************;温度开始转换子程序。TEMPCONV:LCALLRESETMOVA,#55H;发送匹配ROM命令。LCALLWRITEMOVR6,#34H;延时104us。DJNZR6,$MOVR7,#08H;发送64位ROM编码。MOVR0,#40HTEMPVONV1:MOVA,@R0LCALLWRITEINCR0DJNZR7,TEMPCONV1;64位ROM编码发送完没有?MOVR6,#34H;延时104us。DJNZR6,$MOVA,#44H;发送启动温度转换命令。LCALLWRITEMOVR6,#34H;延时104us。DJNZR6,$RET;*************************************************************;读出温度值子程序。READTEMP:LCALLRESETMOVA,#55H;发送匹配ROM命令。LCALLWRITEMOVR6,#34H;延时104us。DJNZR6,$MOVR7,#08H;发送64位ROM编码。MOVR0,#40HREADTEMP1:MOVA,@R0LCALLWRITEINCR0DJNZR7,TEMPCONV1MOVR6,#34H;延时104us。DJNZR6,$LCALLWRITEMOVR6,#34H;延时104us。DJNZR6,$MOVR5,#09HMOVR0,#TEMPHEADMOVB,#00HTEADTEMP2:LCALLREADMOV@R0,AINCR0READTEMP3:LCALLCRCDJNZR5,READTEMP2MOVA,BMOVR0,#TEMPHEDAMOVTEMPL,@R0;读取转换后的温度低位到TEMPL中。INCR0MOVTEMPH,@R0;读取转换后的温度高位到TEMPH中。READTEMP4:RET;*************************************************************;温度BCD码计算处理子程序。TEMPBCD:MOVA,TEMPHANLA,#80HJZTEMPBCD1;温度值为正。CLRC;温度值为负时,求补码。MOVA,TEMPLCPLAADDA,#01HMOVTEMPL,AMOVA,TEMPHCPLAADDCA,#00HMOVTEMPH,AMOVTEMPCH,#0BH;执符号位“-”。SJMPTEMPBCD2TEMPBCD1:MOVTEMPCH,#0AH;执符号位“+”。TEMPBCD2:MOVA,TEMPCHSWAPAMOVTEMPCH,AMOVA,TEMPL;小数部分处理。ANLA,#0FHMOVDPRT,#TEMPDOTTABMOVCA,@A+DPRTMOVTEMPCL,A;小数位放入TEMPL低位中。MOVA,TEMPL;整数部分处理。ANLA,#0F0HSWAPAMOVTEMPL,AMOVA,TEMPHANLA,#0FHSWAPAORLA,TEMPLLCALLHEXBCDMOVTEMPL,AANLA,#0F0HSWAPAORLA,TEMPCHMOVTEMPCH,AMOVA,TEMPLANLA,#0FHSWAPAORLA,TEMPCLMOVTEMPCL,AMOVA,R7JZTEMPBCD3ANLA,#0FHSWAPAMOVR7,AMOVA,TEMPCHANLA,#0FHORLA,R7MOVTEMPCH,ATEMPBCD3:RET;*************************************************************;小数部分码表。TEMPDOTTAB:DB00H,01H,01H,02H,03H,03H,04H,04H,05H,06H,DB06H,07H,07H,08H,09H,09H;*************************************************************;显示区BCD码温度值刷新子程序。DISPBCD:MOVA,TEMPCLANLA,#0FHMOV70H,AMOVA,TEMPCLSWAPAANLA,#0FHMOV71H,AMOVA,TEMPCHANLA,#0FHMOV72H,AMOVA,TEMPCHSWAPAANLA,#0FHMOV73H,AMOVA,TEMPCHANLA,#0F0HCJNEA,#10H,DISPBCD1SJMPDISPBCD2DISPBCD1:MOVA,TEMPCHANLA,#0FHJNZDISPBCD2;十位数是0。MOVA,TEMPCHSWAPAANLA,#0FHMOV73H,#0AH;符号位不显示。MOV72H,A;十位数显示符号。DISPBCD2:RET;*************************************************************;显示子程序。DISP:MOVR7,#04HMOVR0,#70HSETBP1.4DISP1:MOVA,@R0;MOVDPTR,#TABMOVCA,@A+DPTRMOVSUBF,AJNBRI,$CLRRIINCR0DJNZR7,DISP1CLRP1.4;关移位脉冲,并行输出4位显示码。RETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H;“0”、“1”、“2”、“3”、“4”、“5”。DB82H,0F8H,80H,90H,9FFH,9BFH;“6”、“7”、“8”、“9”、“不亮”、“-”。;*************************************************************;单字节十六进制数转BCD。HEXBCD:MOVB,#64HDIVABMOVR7,AMOVA,#0AHXCHA,BDIVABSWAPAORLA,BRET;*************************************************************;CRC码计算子程序。CRC:PUSHACCMOVR7,#0BHCRC1:XRLA,BRRCAMOVA,BJNCCRC2XRLA,#18HCRC2:RRCAMOVB,APOPACCRRAPUSHACCDJNZR7,CRC1POPACCRET源程序结束附录E元件清单表E元件清单 编号 元件名称 型号及规格 数量 1 单片机芯片 AT89C51 1 2 感温元件 DS18B20 2 3 七段数码显示器 LED 4 4 串转并芯片 74LS164 4 5 晶振 12MH 1 6 按键 -- 3 7 三极管 C945 1 8 压电蜂鸣器 -- 1 9 整流二极管 1N4007 4 10 发光二极管 FG1112004 1 11 电阻 10Ω 2 12 电阻 100Ω 1 13 电阻 680Ω 1 14 电阻 4.7Ω 1 15 电阻 10KΩ 1 16 电容 0.1μF 2 17 电容 30pF 2 18 电容 47μF/50V 1 19 电容 100μF/50V 1 20 电容 220μF/50V 1 21 与门 74LS08 1附录F实物照片图F实物图微控制器(主机)一线总线器件#1一线总线器件#2一线总线器件#3一线总线器件#4单片机温度传感器电源显示电路看门狗电路报警电路调用显示子程序1s到?初次上电?读出温度值温度计算处理显示数据刷新发出温度转换开始命令NYYN初始化发出报警YN温度超过报警值?调用键盘扫描子程序开始确定键号有键按下?开始Y转至相应的程序,执行相应的功能N其它子程序返回发DS18B20复位命令命令匹配ROM、64位地址发温度转换开始命令返回发DS18B20复位命令命令发匹配ROM、64位地址移入温度暂存区发读取温度命令读取RAM中的9个字节9字节完?返回YNYNCRC校验正确?开始�置“+”标志计算小数位温度BCD值计算整数位温度BCD值温度值取补码置“-”标志温度零下?返回结束YN开始�十位数显示符号,百位数不显示十位数0?返回YN温度数据移入显示寄存器百位数0?百位数显示数据(不显示符号)YN开始返回N设定最高温度报警值设定值小于显示缓冲区的值?Y发出报警开始V_1234567897.unknown_1234567901.unknown_1234567903.unknown_1234567904.unknown_1234567902.unknown_1234567899.unknown_1234567900.unknown_1234567898.unknown_1234567893.unknown_1234567895.unknown_1234567896.unknown_1234567894.unknown_1234567891.vsd�1��微处理器RxTxVDDR一线总线DQPIN一线总器件接口RxTx100ΩMOSFET约5μA_1234567892.unknown_1234567890.unknown
本文档为【电子温度计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥12.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
xxj7584
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:0
分类:
上传时间:2020-07-07
浏览量:5