




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档基于AT89C52的数字温度计设计与仿真谭亚平(吉首大学物理科学与信息工程学院,湖南 吉首 416000)摘 要温度采集显示及报警系统是一个应用于需要对温度进行精准控制报警的系统,实现了对温度进行精准采集显示和越限声光报警的功能。以方便系统使用者能够更好的了解当前温度安全状况,使相应地区场所的安全得到保证。本系统以AT89C52单片机为微控制器,采用数字温度传感器DS18B20作为测温元件,温度传感器DS18B20采集温度信号送给单片机处理,单片机再把处理后的温度数据送到LED上显示出来。能够实现快速、准确的测温功能和越限声光报警功能。本论文完成了系统硬件电路的设计,给出了软件流程框图,编写了相关的软件程序,并记录了仿真与实现的过程。关键词:温度报警;单片机(AT89C52);数字温度传感器(DS18B20);Keil C51 Digital Thermometer Design and Simulation Based on AT89C52TanYaPing(College of Physics Science and Information Engineering,Jishou University,Jishou,Hunan 416000)AbstractThe temperature acquisition display and alarm system is used a need for precise temperature control of the alarm system to achieve accurate temperature acquisition of the more limited display and sound and light alarm function. With convenient system users to better understand the current temperature security situation,it make corresponding regional sites safety guaranteed. The system uses AT89C52-SCM as Microprogrammed Control Unit and adopts digital temperature sensor DS18B20 as the temperature component. The temperature sensor DS18B20 collects temperature signals and sends them to SCM for dealing with, then SCM transfers the processed temperature data to LED for dispalying which can realize the fast and accurate temperature measurement function and the more limited sound and light alarm function. This thesis has completed the design of the system hardware, procided the software flow diagram,compiled the related software program,and recorded the simulation and realization process.Keywords:Temperature Alarm; Single-Chip microcomputer(AT89C52);digital temperature sensors applications DS18B20; Keil C51.目录第一章 绪 论11.1 研究背景11.2 本课题的研究内容1第二章 系统硬件设计22.1 总体设计22.2 AT89C52简介22.2.1 主要性能22.2.2 引脚介绍32.3 DS18B20 介绍42.3.1 DS18B20性能特点52.3.2 DS18B20内部结构及功能52.3.3 DS18B20的通信协议72.4 复位电路设计92.5 时钟电路设计92.6 DS18B20与单片机接口电路设计10第三章 系统软件设计113.1 软件设计总体思路及主程序流程图113.2 底层基本操作113.3 指令操作123.4 仿真结果12总结14参考文献15附件16附件1 源程序16附件2 元器件清单2223欢迎下载23欢迎下载23欢迎下载23欢迎下载23欢迎下载23欢迎下载23欢迎下载。第一章 绪 论1.1 研究背景现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。近百年来,温度传感器的发展大致经历了以下三个阶段;(1)传统的分立式温度传感器(含敏感元件);(2)模拟集成温度传感器/控制器;(3)智能温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。智能温度传感器发展的新趋势进入21世纪后正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。例如:提高测温精度和分辨力;增加测试功能;总线技术的标准化与规范化;可靠性及安全性设计;单片测温系统等。 1.2 本课题的研究内容采用智能温度传感器DS18B20,它直接输出数字量,精度高,电路简单,只需要模拟DS18B20的读写时序,根据DS18B20的协议读取转换的温度2。本设计使用了美国 Dallas 半导体公司的新一代数字式温度传感器DS18B20,它具有独特的单总线接口方式 ,即允许在一条信号线上挂接数十甚至上百个数字式传感器 ,从而使测温装置与各传感器的接口变得十分简单 ,克服了模拟式传感器与微机接口时需要的A/D转换器及其它复杂外围电路的缺点。工作时由控制信号进行具体测量点识别,这使得布线工作大大简化,可以方便地构成多传感器测量网络。此外,与传统的热敏电阻传感器相比,DS18B20具有更高的测量精度。所以,相对于传统温度传感器而言,DS18B20数字温度传感器具有更高的经济性、灵活性、抗干扰性和精确度,在科学研究和生产实际中得到了广泛的应用3。精品文档第二章 系统硬件设计2.1 总体设计本方案设计的系统模块由单片机系统、温度传感器模块、数码管显示模块和电源模块组成,其总体架构如图2.1。报警电路温度传感器电路数码管显示电路单片机控制电路 按键输入图2.1系统结构图该系统可以实时地显示当前环境的温度。系统是以AT89C52 单片机为核心,在开始运行它时主机先发送初始化命令使设备启动,再发送温度转换命令使数字温度传感器DS18B20 把测得的模拟温度转换为串行数字信号供单片机采集。同时,显示器上显示出目前环境的实际温度,当温度低与或高与设定的温度,系统会通过蜂鸣器发出警报。2.2 AT89C52简介2.2.1 性能特点与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、 全静态操作:0Hz33Hz 、 三级加密程序存储器 、 32个可编程I/O口线 、三个16位定时器/计数器 八个中断源 、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 4。片内有4KB可在线重复编程的快闪擦写存储器 ;存储数据保存时间为10年 ;宽工作电压范围:VCC可为2.7V到6V ;全静态工作:可从0Hz至16MHz ;程序存储器具有3级加密保护 ;128*8位内部RAM ;32条可编程I/O线 ,两个16位定时器/计数器 ;中断结构具有5个中断源和2个优先级 ,可编程全双工串行通道 ,空闲状态维持低功耗和掉电状态保存存储内容。2.2.2 引脚介绍AT89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器5。AT89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52。AT89C52引脚如图2.2所示:图2.2 AT89C52引脚图P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下所示。在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能 P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下所示。在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。2.3 DS18B20 介绍2.3.1 DS18B20性能特点采用单总线技术,与单片机通信只需要一根I/O线,在一根线上可以挂接多个DS18B20。每只DS18B20具有一个独有的,不可修改的64位序列号,根据序列号访问地应的器件。低压供电,电源范围从35V,可以本地供电,也可以直接从数据线上窃取电源(寄生电源方式)。测温范围为-55+125,在-1085范围内误差为0.5。可编辑数据为912位,转换12位温度时间为750ms(最大)。用户可自设定报警上下限温度。报警搜索命令可识别和寻址哪个器件的温度超出预定值。DS18B20的分辩率由用户通过EEPROM设置为912位。DS18B20可将检测到温度值直接转化为数字量,并通过串行通信的方式与主控制器进行数据通信7。2.3.2 DS18B20内部结构及功能DS18B20的内部结构如下图2.3所示,主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分图2.3 DS18B20内部结构温度和数字量的关系如图2.4所示,ROMRAM操作命令如表2.12.2所示。图2.4 温度和数字量的关系表2.1 ROM操作命令指令说明读ROM命令(33H)读18B20的序行号搜索ROM命令(F0H)识别总线上各器件的编码匹配ROM命令(55H)用于多个DS18B20的定位跳过ROM命令(CCH)此命令执行后,存储器操作将针对总线上的所有操作报警搜索ROM命令(ECH)仅温度超限的器件对此命令做出响应表2.2 RAM操作命令指令说明温度转换(44H)启动温度转换读暂存器(BEH)读全部暂存器内容,包括CRC字节写暂存器(4EH)写暂存器第2,3和4个字节的数据复制暂存器(48EH)将暂存器中的TH,TL和配置寄存器内容复制到EEPROM中读EEPROM(B8H)将TH,TL和配置寄存器内容从EEPROM中回读至暂存器各字节在ROMRAM中的设置如表2.3所示,温度配置寄存器如表2.4所示,分辨率设置如表2.5所示。表2.3 各字节在ROMRAM中的设置字节ROMRAM0产品代号温度低8位148位器件序列号温度高8位2TH3TL4配置寄存器5保留6保留7CRC保留8CRC表2.4 温度配置寄存器0R1R211111表2.5分辩率设置R1R2分辩率设置/位测温精度/C转换时间/ms0090.593.7501100.25187.510110.1253751112(默认)0.06257502.3.3 DS18B20的通信协议DS18B20采用严格的单总线通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。除了应答脉冲所有这些信号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节的低位在前。1. 初始化序列:复位脉冲和应答脉冲在初始化过程中,主机通过拉低单总线至少480s,以产生复位脉冲(TX)。然后主机释放总线并进入接收(RX)模式。当总线被释放后,5k的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15s60s,通过拉低总线60s240s产生应答脉冲。初始化波形如图2.5所示。图 2.5 初始化脉冲2. 读和写时序在写时序期间,主机向DS18B20写入指令;而在读时序期间,主机读入来自DS18B20的指令。在每一个时序,总线只能传输一位数据。读/写时序如图2.6所示。(1) 写时序存在两种写时序:“写1”和“写0”。主机在写1时序向DS18B20写入逻辑1,而在写0时序向DS18B20写入逻辑0。所有写时序至少需要60s,且在两次写时序之间至少需要1s的恢复时间。两种写时序均以主机拉低总线开始。在写时序开始后的15s60s期间,DS18B20采样总线的状态。如果总线为高电平,则逻辑1被写入DS18B20;如果总线为低电平,则逻辑0被写入DS18B20。(2) 读时序图2.6 DS18B20读/写时序图DS18B20只能在主机发出读时序时才能向主机传送数据。所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20能够传送数据。所有读时序至少60s,且在两次独立的读时序之间至少需要1s的恢复时间。每次读时序由主机发起,拉低总线至少1s。在主机发起读时序之后,DS18B20开始在总线上传送1或0。若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20发出的数据在读时序下降沿起始后的15s内有效,因此主机必须在读时序开始后的15s内释放总线,并且采样总线状态。DS18B20 在使用时,一般都采用单片机来实现数据采集。只需将DS18B20 信号线与单片机1 位I/O线相连,且单片机的1 位I/O 线可挂接多个DS18B20 ,就可实现单点或多点温度检测8。2.4 复位电路设计 复位电路工作原理:电容在上接高电平,电阻在下接地,中间为RST。这种复位电路的工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程序,即为低电平,单片机开始正常工作9。复位电路如图2.7所示。图2.7复位电路2.5 时钟电路设计 时钟电路作用:单片机外部必须接上振荡器(也可以是内部振荡器),其提供的高频脉冲经过分频处理后,成为单片机内部时钟信号,作为片内各部件协调工作的控制信号。 如果没有时钟信号,触发器的状态就不能改变,单片机内部的所有电路在完成一个任务后将最终达到一个稳定状态而不能再继续进行其它任何工作了。时钟电路如图2.8所示:图2.8时钟电路2.6 DS18B20与单片机接口电路设计温度计电路设计原理图如下图2.9所示,控制器使用单片机AT89S52,温度传感器使用DS18B20,用4位共阴LED数码管以动态扫描法实现温度显示10图2.9 DS18B20与单片机接口电路精品文档第三章 系统软件设计3.1 软件设计总体思路及主程序流程图本系统采用汇编语言编写,主程序主要由三部分构成,系统通电后首先初始化系统,依次完成温度采集、温度处理、数据显示等三项功能。温度采集部分主要完成温度数据采集任务;温度处理部分主要是将采集到的温度数据转换成十进制数据;数据显示部分主要实现温度数据的显示,显示方式为固定显示。系统软件主流程图如3.1所示:开始初始化读取温度温度转换温度显示返回图3.1 系统软件总流程图3.2 底层基本操作初始化:初始化是DSl8B20 的底层基本操作之一。通过单线总线进行的所有操作都从一个初始化序列开始。初始化序列包括一个由CPU 发出的复位脉冲及其后由DS18B20 发出的存在脉冲。存在脉冲让CPU 知道DS18B20 在总线上且已做好操作准备。数据写:数据写是DS18B20的底层基本操作之一, 所有的指令、数据发送均由该操作完成。DS18B20的写操作都是逐位进行的,因此,采用C5l中的位右移操作来实现。数据读:数据读是DS18B20的底层基本操作之一, 温度值和其它状态信息的传回均由该操作完成。3.3 指令操作DSl8B20提供了一系列指令来控制传感器的工作。下面只简单介绍本系统所用到的最基本的几条。1. Skip ROM CCH用于1条I/O总线上只挂1个DS18B20的情况,使DS18B20跳过多个传感器的识别过程。如果一条I/O总线上挂了不止1个传感器,总线上就会发生数据冲突。2. Convert T 44H启动一次温度转换过程。温度转换命令被执行后,DS18B20保持等待状态。3. Read Scratchpad BEH用于读取暂存器的内容。温度转换的结果和其它状态信息均以此命令读出。读取将从字节0开始, 一直进行下去, 直到字节8读完。如果不想读完所有字节, 控制器可以在任何时间发出复位命令来中止读取。3.4 仿真结果本论文设计在Proteus上仿真实现了所需要求,仿真结果如图3.2、图3.3所示图3.2 仿真实验图图3.3 仿真实验图精品文档总结程序在编译过程中,出现了一些语法错误,经过细心修改得以纠正。但是,将程序下载到单片机之后,发现串口显示模块一直显示“127.5”,经过推断得知,读取的温度值为全“1”,出现这个问题,全是因为DS18B20有严格的时序和通信协议,在每次读取温度数据时,都有其严格的时序要求,经过检查,发现程序中有一个地方少加了一个1毫秒左右的延时,按照DS18B20的时序原理,把忘记加的延时加上之后,就可以让单片机读取传感器的温度值了。此次数字温度计设计,让我学会了规范化程序的编写、程序调试的各种方法以及解决调试过程中出现的一系列的问题。更重要的是让我明白程序的优化是多么重要。要想编写出一个系统的程序,就必须十分清楚硬件电路中所用芯片的工作原理以及使用它们的一些注意事项,比如这次设计中所用的DS18B20数字温度传感器,它的时序要求十分严格,由于它是采用单总线结构的输入输出方法,它的时序中所用到的延时必然很关键,时间过长了会使整个温度计的反应时间变慢,延时时间过短会使传感器不能正常工作。本课题的重点、难点是:(1) 初步接触温度传感器,要对传感器的原理、结构、应用等各方面从头开始琢磨;(2)了解并掌握了传感器的基本理论知识,更深入的掌握单片机的开发应用和PC编程控制。为以后从事单片机软硬件产品的设计开发、PC软件开发打下了良好的基础,树立了独立从事产品研发的信心,并在这种能力上得到了比较充分的锻炼。精品文档参考文献1 陈跃东.DS18B20集成温度传感器原理及其应用J.安徽工程科技学院学报,2002.8(4):34-38.2 周月霞,孙传友.DSl8B20硬件连接及软件编程J.传感器世界杂志,2001.12(3):25-29.3 魏英智.DSl8B20在温度控制中的应用J.黑龙江科技学院学报,2005.46(3):92-93.4 谢维成,杨加国.单片机原理与应用及C51程序设计M.北京:清华大学出版社,2006.5 赵亮,侯国锐.单片机C语言编程与实例M.北京:人民邮电出版社,2003.6 张粤,倪伟.DSISB20在分布式测温系统中的应用J.淮阴工学报,2002.11(5):57-59.7 藏荣,游风荷,周景霞.由单片机和多片DS1820组成的多点电温度测控系统J.国外电子元器件,2002(1):60-62.8 况荣华,容太平.I2C总线在单片机上的实现J.国外电子元器件,2001(6):46-49.9 陈世利等.SP1串行Flash在数据存储系统中的应用J.国外电子元器件.2001(10):20-23.10 邓建华.可缩程看门狗监控EEPROM芯片J,电子世界,2001(5):31-32.11 何立民.单片机应用技术选编M.北京航空航天大学出版,1996.12 吴江,陈尚松.单总线技术在测控系统中的应用J.电测与仪表,1999(9).精品文档附 件附件1:源程序清单TEMP1 EQU 5AH ; 符号位和百位公用的存放单元TEMP2 EQU 5BH ; 十位存放单元TEMP3 EQU 5CH ; 个位存放单元TEMP4 EQU 5DH ;TEMP5 EQU 5EHTEMP6 EQU 5FH ; 数据临时存放单元TEMP7 EQU 60HTEMP8 EQU 61HORG 0000HAJMP MAINORG 0020HMAIN:MOV SP,#70H LCALL INT ; 调用DS18B20初始化函数MAIN1:LCALL GET_TEMP ; 调用温度转换函数LCALL CHULI ; 调用温度计算函数LCALL DISP ; 调用温度显示函数AJMP MAIN1 ; 循环INT:L0:SETB P3.7 ; 先释放DQ总线MOV R2,#250 ; 给R2赋延时初值,同时可让DQ保持高电平2usL1:CLR P3.7 ; 给DQ一个复位低电平DJNZ R2,L1 ; 保持低电平的时间至少为480usSETB P3.7 ; 再次拉高DQ释放总线MOV R2,#25 L2:DJNZ R2,L2 ; 保持15us60usCLR CORL C,P3.7 ; 判断是否收到低脉冲JC L0MOV R6,#100L3:ORL C,P3.7 DJNZ R6,L3 ; 存在低脉冲保持保持60us240usJC L0 ; 否则继续从头开始,继续判断SETB P3.7 RET ; 调用温度转换函数GET_TEMP:CLR PSW.4SETB PSW.3 ; 设置工作寄存器当前所在的区域CLR EA ; 使用DS18B20前一定要禁止任何中断LCALL INT ; 初始化DS18B20MOV A,#0CCH ; 送入跳过ROM命令LCALL WRITEMOV A,#44H ; 送入温度转换命令LCALL WRITELCALL INT ; 温度转换完成,再次初始化18b20MOV A,#0CCH ; 送入跳过ROM命令LCALL WRITEMOV A,#0BEH ; 送入读温度暂存器命令LCALL WRITELCALL READ MOV TEMP4,A ; 读出温度的低字节存在TEMP4LCALL READMOV TEMP5,A ; 读出温度的高字节存在TEMP5SETB EARETCHULI : MOV A,TEMP5 ; 将温度的高字节取出JNB ACC.7,ZHENG ; 判断最高位是否为0,为0则表示温度为正,则转到ZHENGMOV A,TEMP4 ; 否则温度为负,将温度的低字节取出CPL A ; 求反INC A ; 加1MOV TEMP8,A ; 存到TEMP8中ANL A,#0FH ; 保留低四位LCALL MULD ; 调用乘以625子程序LCALL HB2 ; 调用双字节16进制数转换成BCD码子程序MOV A,R4 ; 将结果的千位百位取出ANL A,#0F0H ; 保留千位SWAP A ; MOV TEMP7,A ; 把小数结果保存在TEMP7中MOV A,TEMP4 ; 再次取出温度的低字节ANL A,#0FFH ; 判断是否为0JZ XX ; 为0则转到XX执行MOV A,TEMP5 ;CPL A ; 不为0则直接将温度的高字节取反SJMP YY XX:MOV A,TEMP5 ; 为0则求补码CPL A ;INC A ;YY:ANL A,#0FH ; 保留高字节的低四位SWAP A ; 将其换到高4位MOV R5,A ; 暂时保存于R5中MOV A,TEMP8 ; 取出求反后的低位字节ANL A,#0F0H ; 取其高4位SWAP A ; 将其换到低4位ORL A,R5 ; 合并成温度的整数部分MOV TEMP6,A ; 将整数部分存到TEMP6中LCALL HBCD ; 调用一字节的16进制数转换BCD数的子程序MOV TEMP1,#0BH ; 将-号的段选值存到符号位MOV A,TEMP2 ; 取出十位CJNE A,#00H,NEXT MOV TEMP2,#0CH ; 十位为0不显示RET ZHENG: MOV A,TEMP4 ; 将温度的低字节取出ANL A,#0FH ; 保留低四位LCALL MULD ; 调用乘以625子程序LCALL HB2 ; 调用双字节16进制数转换成BCD码子程序MOV A,R4 ; 将结果的千位百位取出ANL A,#0F0H ; 保留千位SWAP A ;MOV TEMP7,A ; 把小数结果保存在TEMP7中MOV A,TEMP4 ; 再次取出温度的低字节ANL A,#0F0H ; 保留高4位SWAP A ; 换到低4位MOV R5,A ; 暂时保存于R5中MOV A,TEMP5 ; 取出温度的高字节ANL A,#0FH ; 保留低4位SWAP A ; 换到高4位ORL A,R5 ; 合并成温度的整数部分MOV TEMP6,A ; 整数部分存到TEMP6中LCALL HBCD ; 单字节的16进制数转换成BCD码MOV A,TEMP1 ; 取出百位CJNE A,#00H,NEXT ; 百位不为0则转NEXTMOV TEMP1,#0CH ; 为0则不显MOV A,TEMP2 ; 取出十位CJNE A,#00H,NEXT MOV TEMP2,#0CH ; 十位为0也不显NEXT: RET ; 小数部分乘以625转换子程序MULD:MOV B,#71HMUL ABMOV R7,AMOV R6,B MOV B,#02HMUL ABADD A,R6MOV R6,ARET ; 写字节到18b20子程序WRITE: MOV R3,#8 ; 一个字节共8位WR1: SETB P3.7 ; 先释放总线MOV R4,#8RRC A ; 把要写的字节的最低位右环移到C中CLR P3.7 ; 写开始WR3:DJNZ R4,WR3 ; 保持低电平015us,等待MOV P3.7,C ; 将C中的位写到DQ总线上MOV R4,#20 DJNZ R4,$ ; 18b20在15us60us期间对DQ总线进行采样DJNZ R3,WR1 ; 判断8位是否写完,没完则继续写下一位RET ;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国纳迪克酸酐行业应用动态及投资盈利预测报告
- 2025年事业单位工勤技能-海南-海南电工五级(初级工)历年参考题库含答案解析
- 中医药现代化进程中纳米比亚市场拓展前景分析报告
- 工业互联网平台微服务架构性能测试报告:2025年技术演进与市场前景
- 新能源二手车市场2025年流通渠道创新与评估模型研究报告
- 音乐产业2025年版权运营技术突破与音乐科技创新前景分析报告
- 2025-2030中国空白印刷电路板标签(PCB 标签)发展趋势及投资动态预测报告
- 2025年事业单位工勤技能-河南-河南汽车驾驶与维修员一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-河南-河南放射技术员四级(中级工)历年参考题库典型考点含答案解析
- 2024版医用外科口罩购销合同
- 各分项工程质量保证措施
- 国税编制管理办法
- 特种畜禽管理办法
- 消防员心理健康教育课件教学
- 医院学术委员会组织职责
- 重庆临时摊点管理办法
- 藏族课件模板
- 学校德育管理工作
- 【生物 四川卷】2025年四川省高考招生统一考试真题生物试卷(真题+答案)
- GB/T 45745-2025道路货物运输车辆装载规范
- 梯子安全培训
评论
0/150
提交评论