《数字温度计设计.doc》由会员分享,可在线阅读,更多相关《数字温度计设计.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流数字温度计设计.精品文档.目录摘要2Abstract2绪论3第1章 任务与要求31.1传感器31.2 任务与要求31.2.1 设计任务及指标4第2章 智能温度传感器与单片机92.1 智能温度传感器的产品分类92.2 智能温度传感器典型产品的技术指标92.3 单片机AT89C2051的简介102.4 单片机AT89C2051的引脚图11第3章DS18B20数字温度计113.1 DS18B20温度传感器的性能特点113.2 DS18B20温度传感器的内部结构框图及设置113.3 DS18B20温度传感器与单片机的接口电路14第4章 数字温度计的设
2、计154.1 总体设计方案154.2方案的总体设计框图154.2.1主控制器154.2.2显示电路174.2.3温度传感器174.2.3DS18B20温度传感器与单片机的接口电路174.3系统整体硬件电路184.3.1主板电路184.3.2显示电路184.4系统软件算法分析194.4.1主程序194.4.2读出温度子程序204.4.3温度转换命令字程序214.4.4计算温度子程序214.4.5显示数据刷新子程序21第5章 硬件225.1 系统硬件主要构成225.2调试及性能分析22总结22参考文献23附录23摘要温度作为一个常用的物理量在我们的气场生活中起着十分重要的作用,所以对温度计的设计也
3、十分必要。在此介绍一种智能数字温度计,这种温度计有许多优点,并且它的应用范围非常广泛。它的主要元件是:控制器AT89C2051、温度传感器DS18B20、数码管LED,所以这种温度计不仅设计起来简单并且轻便、便宜,总体来说这种温度计的性价比是很高的。它的主要原理是利用DS18B20可以很好的转换温度值,并且直接显示温度值,它的性能优于传统的感温元件并且省去了AD、和模拟开关的设计。此外AT89C2051体积小并且还可以直接驱动LED,这样大大化简了设计的难度并且降低了成本。【关键词】 智能 数字 温度计 温度AbstractThe temperature took a commonly use
4、d physical quantity is playing the extremely vital role in ours gas field life, therefore extremely is also essential to the thermometer design.In this introduced one kind of intelligent numeral thermometer, this kind of thermometer has many merits, and its application scope is extremely widespread.
5、Its key element is: Controller - AT89C2051, temperature sensor - DS18B20, nixietube - LED ,not only therefore this kind of thermometer designs simple and is facile, is cheap, generally speaking this kind of thermometer performance-to-price ratio is very high.Its main principle is uses DS18B20 to be
6、possible the very good transformation temperature value, and demonstrates the temperature value directly, and its performance surpassed traditional the bulb to omit A D, and the analog switch design.And in addition at89C2051 volume small also may direct drive LED, and simplified the design difficult
7、y to reduce the cost like this greatly. Key word Intelligence Numeral Thermometer Temperature前言单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强
8、,能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。而现在的单片机在农业上页有了很多的应用。 温度是日常生活、工业、医学、环境保护、化工、石油等领域最常用到的一个物理量。测量温度的基本方法是使用温度计直接读取温度。最常见到得测量温度的工具是各种各样的温度计,例如:水银玻璃温度计,酒精温度计,热电偶或热电阻温度计等。它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,有直观准确。第一章 设计的要求及任务1.1传感器传感器是将感受到的外界信息,
9、按照一定的规律转换成所需的有用信息的装置,它获取的信息可以是各种物理量、化学量和生物量,而转换后的信息也有各种形式。例如:光、温度、声、委位移、压力等物理量,可以通过传感器相互转化。但是通常是将非电量或电量转换成易于处理和传输的电量,有些传感器的这种转换是可逆的,即输入量为电量而输出量为机械量或热工艺量等。1.2 任务与要求1.2.1 设计任务及指标1:设计任务:利用单片机和数字温度传感器,实现一个能精确测量并显示温度的实际应用系统,为低成本的数字温度测量系统设计提出一种新的解决方案。并需说明设计方案的构思依据、设计思路、系统原理、设计过程及系统工作流程图。2:技术指标: 系统稳定性高; 使用
10、四位数码管显示温度值; 测量精度达0.1; 要求系统具备复位功能;第2章 智能温度传感器与单片机2.1 智能温度传感器的产品分类智能温度传感器采用了数字化技术,能以数据形式输出被测温度值。其测温误差小、分辨率高、抗干扰能力强、能远程传输数据、用户可设定上、下限,具有越限自动报警功能并且带串行总线接口,适配各种微控制器。按照串行总线划分有单线总线(1Wire)、二线总线(含SMBUS、I2C总线)三线总线(含SPI总线)几种类型。典型产品有DS18B20(单线总线)、LM75(I2C总线)和LM75(SPI总线)。多通道智能温度传感器除具有内置温度传感器之外,还专门增加了若干个远程测温通道,通过
11、在总线上接多片同种型号的芯片,很容易将通道扩展到几十路,这就为研制多路温度测控系统创造了便利条件。多通道智能温度传感器的典型产品有MAX1668、AD7417、AD7817、MAX1805和LM83。2.2 智能温度传感器典型产品的技术指标智能温度传感器典型产品的技术指标,详见表21表2-1智能温度传感器典型产品的技术指标2.3 单片机AT89C2051的简介单片机AT89C2051 具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携式产品的设计使用,系统可用二节电池供电. AT89C2051 提供如下的标准功能:2KB 闪速存贮器,128B 内部RAM,15 根I/
12、O 口引线,两个16 位定时器/计数器,一个五向量两极中断结构,一个全双工串行口,一个精密模拟比较器以及片内振荡器和时钟电路。此外,AT89C2051 采用可降到0 频率的静态逻辑操作设计,并支持两种可选的软件节电工作方式,即空闲方式和掉电方式。在空闲方式下,CPU 停止工作,但允许内部RAM、定时器、计数器、串行口和中断系统继续工作。在掉电方式 下,保存RAM 的内容,但振荡器停止工作,并禁止所有其部件工作,直到下一个复位。 AT89C51 的结构框与AT89C51 类似。现将AT89C51 的主要特性归纳如下: 和MCS51 产品兼容。 2KB可重编程闪速存储器。 耐久性:1000次写/擦
13、除周期。 2.76V的工作范围。 全静态操作:0Hz24MHz。 128字节内部RAM。2.4 单片机AT89C2051的引脚图 图2-2单片机AT89C2051引脚图第3章DS18B20数字温度计3.1 DS18B20温度传感器的性能特点DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电
14、,电压范围为3.05.5;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;3.2 DS18B20温度传感器的内部结构框图及设置DS18B20采用脚PR35封装或脚SOIC封装,其内部结构框图如图4-1所示。C64 位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器VddI/O图3-1 DS18B20内部结构64位ROM的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的CR
15、C检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为字节的存储器,结构如图4-2所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低位一直为,是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用
16、户要去改动,R1和0决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRC图3-2 DS18B20字节定义由表3-1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该
17、数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表4-2是一部分温度值对应的二进制温度数据。表3-1 DS18B20温度转换时间表DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、T字节内容作比较。若TH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来
18、计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振
19、产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。表3-2一部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.125
20、0000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令
21、处理数据。3.3DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图4-3 所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。 图3-3 DS18B20与单片机的接口电路第4章 数字温度计的设计4.1
22、 总体设计方案在单片机电路设计中,使用传感器,是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。4.2方案的总体设计框图温度计电路设计总体设计方框图如5-1所示,控制器采用单片机AT89C2051,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。主 控 制 器LED显 示温 度 传 感 器单片机复位时钟振荡报警点按键调整 图4-1总体设计方框图4.2.1主控制器在第三章中已经提到单片机AT89C2051,在此详细介绍一下各引脚的功能及其有优点。单片机AT89C2051具有低电压供电和体积
23、小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。AT89C2051 的引脚 AT89C2051 采用引脚双列直插式封装,现将各引脚的功过能说明如下。 Vcc(20):电源电压端。 GND(10):地端。 RST(1):复位输入端。当RST 引脚出现两个机器周期的高电平时,单片机复位。复位后,AT89C2051 内部专用寄存器及I/O 口的处置与8051的情况一样,而内部的状态保 持不变。 XTAL1(5):振荡器反相放大器的输入和内部时钟发生器的输入端。 XTAL1(4):振荡器反相放大器的输出端。 P1 口:P1口是一个8位双向I
24、/O 口。P1.2-P1.3 引脚内部接有上拉电阻。P1.0 和P1.1 分别作为片内精密模拟比较器的同相输入(AIN0)和反相输入(AIN1)。P1 口输出缓冲器可吸收20mA 电流并能直接驱动LED 显示。当P1 口的锁存器写入“1”时,P1 口可作为输入 端。当引脚P1.2-P1.7 用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流(II1 )。P1 口还在闪速编程和程序校验期间接受代码数据。 P3 口:P3 口的P3.0-P3.5 和P3.7 是带有内部上拉电阻的七个双向I/O 引脚。P3.6 用于固定输入片内比较器的输入信号并且它作为一通用I/O 引脚而不能访问。P3 口缓冲
25、器 可吸收20mA 电流。当P3 口锁存器写入“1”时,它们被上拉电阻拉高并可作为输入端。用作输入时,被外部拉低的P3 口引脚将由于上拉电阻而流出电流(Ii1 )。P3 口还接收一些用于闪速存储器编程和程序校验的控制信号。 P3 口还用于实现AT89C2051 的一些特殊功能,这些特殊功能定义如下: 口线 特殊功能 P3.0 RXD(串行口输入端) P3.1 TXD(串行口输出端) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(定时器0外部输入) P3.5 T1(定时器1外部输入)下面就目前国内全胜较多的两种单片机,讨论一下2051的性能价格比1、与8
26、0C31系统相比较如果需要构成一个80C31的最小系统的话,除了CPU之外,至少需要一片27C64,而系统的有效引脚和89C2051基本相同。从元器件的成本,电路板的面积和加密性来看,使用89C2051都是合算的。 2、与PIC单片机比较目前,国内小型的单片机全胜较多的有PIC系列,89C2051与PIC相对应芯片比较有如下特点:89C2051的价格高于PIC的OTP型号,但大大低于PIC的EPROM型,89C2051片内不含WatchDog,这是89C2051的不足之处,中断系统堆栈结构、串等通讯笔定时器系统都大大强于PIC系统。由于PIC芯片中无标准串等口,所以在单片机的联网应用上面,PI
27、C不太适合。与PIC相比2051更适合于较复杂的应用场合,适合一些软件需要多次修改的应用。3、在应用方面就目前中国市场的情况来看,89C2051有很大的市场。其原因有下列几点:(1)2051采用的是MCS51的核心,十分容易为广大用户所接受;(2)2051内部基本保持了80C31的硬件I/O功能;(3)2051的Flash存贮器技术,可重复擦/写1000次以上,容易解闷调试手段;(4)更适合小批量系统的应用,容易实现软件的升级。89C2051适合于家用电器控制,分布式测控网络,I/O量不足不是很大的应用系统。4.2.2显示电路显示电路采用3位共阳LED数码管,从P3口RXD,TXD串口输出段码
28、。4.2.3温度传感器DS18B20 的测温原理如图4-2 所示. 图中低温度系数晶振的振荡频率受温度的影响很小,用于产生的信号作为减法计数器1;高温度系数晶振随温度变化其振荡频率明显变,所以产生的信号作为减法计数器2 的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20 对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器1、温度寄存器中,减法计数器1和温度寄存器被预置在55所对应的一个基数值。图4-2 DS18B20 测温原理图减法计数器1对低温度系数晶振产生的脉冲信号进行减法
29、计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0 时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。图28中的斜 率累加器用于温度补偿和修正测温过程中的非线形性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值。 另外,由于DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时很重要。系统对DS18B20 的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉
30、冲) 发ROM功能命令发存储器操作命令 处理数据。4.2.3DS18B20温度传感器与单片机的接口电路 图4-3:DS18B20的测温电路与单片机的连接电路4.3系统整体硬件电路4.3.1主板电路系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,如图4-1 所示。图5-1中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。 图4-4 单片机主板电路图4-4 中的电路是上电之后单片机的外部连接电路,使用比较
31、方便。4.3.2显示电路 图4-5硬件原理图 图4-6硬件原理图4.4统软件算法分析系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。4.4.1主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4-7所示。Y发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNY初始化调用显示子程序1S到?初次上电读出温度值温度计算处理显示数据刷新发温度转换开始命令NYNY图4-7
32、主程序流程图 图4-8读温度流程图4.4.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图4-8示发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束 图4-9 温度转换流程图5.4.3温度转换命令字程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图4-11所示5.4.4计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序
33、流程图如图4-10所示。 开始温度零下?温度值取补码置“”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“+”标志NY温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号) 结束NNYY图4-10计算温度流程图 图4-11显示数据刷新流程图4.4.5显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图4-11。第5章 硬件5.1 系统硬件主要构成整个系统硬件可以分为主控制器模块,测温电路模块和显示电路模块。每个模块执行其相应的功能,共同组成了一个有序,协调的
34、系统。主要元件有控制器AT89C2051,温度传感器DS18B20、数码管LED。5.2调试及性能分析系统调试以程序为主。硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。软件调试可以先编写显示程序并进行硬件正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示刷新等子程序的编程及调试,由于DS18B20 与单片机采用串行数据传送,因此,对DS18B20 进行读写编程时必须严格的保证读写时序,否则将无法读取测量结果。本程序采用单片机汇编编写,用 wave3.2 编译器编程调试。软件调试到能显示温度值,而且在有温度变化时(例如用手去接触
35、)显示温度能改变就基本完成。性能测试可用制作的温度计和已有的成品温度计来同时测量比较,由于DS18B20 的精度很高,所以误差指标可以限制在0.1 以内,另外55 至+125 的测温范围使得该温度计完全适合一般的应用场合,其低压供电特性可作成用电池供电的手持电子温度计。图5-1为它的暂存器操作命令流程图。图5-1暂存器操作命令流程图总结在这次设计中,经过自身的努力,不但加深了对单片机与传感器的进一步的认识和理解,并将所学的知识充分应用于实践中。通过毕业设计,使我认识到理论联系实际的重要性,在实践中扩展了知识面,不但掌握了本专业的相关知识,而且对其他专业的知识也有所了解,从各方面提高了自身的综合
36、素质。经过这次一个较完整的产品设计和制作过程,对于将来学习和工作也是有所裨益的。 在设计过程中,得到了老师的悉心指导与帮助,在我做毕业设计的过程中给我提出了很多指导性的意见,使我受益匪浅。参考文献1李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,19982李广弟.单片机基础.北京:北京航空航天大学出版社,19943阎石.数字电子技术基础(第三版). 北京:高等教育出版社,19894廖常初.现场总线概述J.电工技术,19995 李道华,李玲,朱艳编著.传感器电路分析与设计M.武汉:武汉大学出版社,2003 6 沙占友编著.智能化集成温度传感器原理与应用M.北京:机械工业
37、出版社,2002 7 方佩敏编著.新编传感器原理应用电路详解M.北京:电子工业出版社,1993附录:源程序代码:ORG 0000H ; 0-125度的温度计TEMPER_L EQU 41H ;用于保存读出温度的低8位 TEMPER_H EQU 40H ;用于保存读出温度的高8位FLAG1 EQU 38H ;是否检测到DS18B20标志位A_BIT1 EQU 30H ;数码管小数点位数存放内存位置B_BIT1 EQU 31H ;数码管个位数存放内存位置C_BIT1 EQU 32H ;数码管十位数存放内存位置D_BIT1 EQU 33H ;数码管百位数存放内存位置DQ EQU P3.7 ;30H,
38、31H,32H,33H: 小数点位 个位 十位 百位MOD7: MOV SP,#60H LCALL GET_TEMPER ;调用读温度子程序 LCALL TEMPCOV LCALL DISPLAY ;调用数码管显示子程序 AJMP MOD7 TEMP0: INC A AJMP TEMP1 TEMPCOV:MOV A,TEMPER_L ;数据处理子程序TEMPCOV MOV B,#10H DIV AB JB B.3,TEMP0 TEMP1: MOV 34H,A ;将TEMPER_L的高四位右移四位,存入34H中(温度值) MOV A,B ;将TEMPER_L的低四位X10/16得小数后一位数 M
39、OV B,#0AH MUL AB MOV B,#10H DIV AB MOV 30H,A ;将小数后一位数.存入30H中 MOV A,TEMPER_H ;TEMPER_H中存放高8位数,权重16 MOV B,#10H MUL AB ADD A,34H ;34H中存入温度值的整数部分 MOV B,#0AH DIV AB MOV 31H,B ;个位存入31H中 MOV B,#0AH DIV AB MOV 32H,B ;十位存入32H中 MOV B,#0AH DIV AB MOV 33H,B ;百位存入33H中 MOV A,TEMPER_H MOV 34H,#10H JB ACC.7,EXIT7 MOV 34H,#00H EXIT7: RET; ;这是DS18B20复位初始化子程序 INIT_1820: SETB DQ NOP CLR DQ ;主机发出延时537微秒的复位低脉冲 MOV R1,#03H TSR1: MOV R0,#6BH DJNZ R0,$ DJNZ R1,TSR1 SETB DQ ;然后拉高数据线 NOP NOP NOP MOV R0,#25H TSR2: JNB DQ,TSR3 ;等待DS18B20回应 DJNZ R0,TSR2 LJMP TSR4 ;延时TSR3: SETB FLAG1 ;置标志位,表示DS1820存在 L
限制150内