智能数字式温度测量系统毕业论文_第1页
智能数字式温度测量系统毕业论文_第2页
智能数字式温度测量系统毕业论文_第3页
智能数字式温度测量系统毕业论文_第4页
智能数字式温度测量系统毕业论文_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、智能数字式温度测量报警系统毕业论文 摘 要随着现代工农业技术的发展及人们对生活环境要求的提高,AbstractAlong with modern industry and agriculture technology development and people to living conditions request enhancement, The temperature occupied the people to live the important position, Widely was already applied in each domain. Spread the feel

2、ing machine and a machines combine together, making it not only had the function of examination, but also had the information processing, logic judgment, from examine a patient etc. artificial intelligence, automate to the information processing and science technique progress rise count for much fun

3、ction.This article introduced the intelligence digital temperature survey alarm system is and transforms the simulated signal by the temperature sensor gathering temperature signal, In transforms after the A/D switch the simulated signal the digitalsignal to send in the monolithic integrated circuit

4、 input end. Monolithic integrated circuit digital signal which receives according to the input termination, Through software procedure which composes beforehand, Demonstrates the digital signal by the nixietube monitor. By keyboard establishment temperature bound, when the temperature surpasses the

5、establishment the bound temperature value reports to the police.Keyword: transducer, figures, tube 目 录第一章 绪论11.1课题的意义11.2目前需解决的问题及发展情况2第二章 系统总体设计32.1系统概述32.2工作原理32.3 设计思路4第三章 系统硬件设计53.1温度采样模块53.2控制模块133.3输出显示173.4报警电路203.5键盘控制器203.7系统硬件连接22第四章 系统软件设计244.1 DS18B20的工作过程244.2 DS18B20工作程序254.3 LED数码显示器的

6、程序29第五章 结论30致谢31参考文献32第一章 绪论1.1课题的意义温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。2.2工作原理图2-1 系统总体组成框图如图2-1所示智能数字式温度测量报警系统 DOWN :在输人上下限温度时,该键按下一次,被调整位减一。 确认键 RET :当该键第一次按下时,确认所调上限温度,当该键第二次按下时,确认所调下限温度,同时退出设置状态。设置键(SET)通过P1.0口引脚接入,加一键(UP)通过P1.1口引脚接入,减一键 DOWN 通过P1.2口引脚接入,确认键

7、RET 通过P1.3口引脚接入。声音报警蜂鸣器通过 Pl.7引脚控制。LED数码显示管采用动态扫描显示法,P0.0P0.7控制LED数码显示管的段选信号,P2.0P2.2控制LED数码显示管的位选信号。第三章 系统硬件设计3.1温度采样模块1.温度传感器温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器,模拟集成温度传感器,智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从

8、集成化向智能化、网络化的方向飞速发展。在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。为了克服上面提到的三个问题,采用了新型数字温度传感器DS1820,在对其测温原理进行详细分析的基础上,既提出了提高DS1820测量精度的方法,又取得了良好的测温效果。DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 2、 每只 DS18B20 具有一个独有的、不可修改的 64 位序列号,根据序列号访问对应的器件。 3、 低压供电,电源范围从 3 5V ,可以本地供

9、电,也可以直接从数据线上窃取电源(寄生式供电)。 4、 测温范围为-55+125,在-1085范围内误差为±0.55、 可编程数据为912 位,转换12位温度时间为750ms (最大)。 6、 用户可自设定报警上下限温度。7、 报警搜索命令可识别和寻址哪个器件的温度超出预定值。 8、 DS18B20的分辨率可由用户通过 EEPROM 设置为912位。9、 DS18B20 可将检测到温度值直接转化成数字量,并通过串行通信的方式与主控制器进行数据通信。10、具有3引脚T0-92小体积封装形式。管脚排列DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方

10、式时接地) ON-BOARD 专利技术,全部传感元件及转换电路集成在形如一只三极管的集成电路内。4.内部结构DS18B20是实现单总线测控网络的关键器件,它的内部结构如图3-2所示。主要包括:寄生电源、温度传感器、64位激光ROM 和单总线接口、存放中间数据的高速暂存器RAM、用于存储用户设定温度上下限值的TH和TL触发器、存储与控制逻辑、8位循环冗余校验码 CRC 发生器等七部分。图3-2 DS18B20内部结构DS18B20内部存储器由ROM、RAM和E2ROM组成,如表3-1所示。其中,ROM 由64位二进制数字组成,共分为8个字节,字节0的内容是该产品的厂家代号28H,字节1字节6的内

11、容是48位器件序列号,字节7是ROM前56位的CRC校验码。由于64位ROM 码具有唯一性,在使用时作为该器件的地址,通过读ROM命令可以将它读出来。表 3-1 DS18B20内部存储器结构字节ROMRAM0产品代号 28H 温度低8位148位温度高8位E2ROM2器件序列号TH TH3TL TL 4配置寄存器配置寄存器5-6保留7CRC保留8CRCRAM是由9个字节的高速暂存器和非易失性电擦写E2ROM组成。其中字节0、1存储当前温度,字节2、3存储上、下限报警温度TH和TL,字节4是配置寄存器,字节8是RAM前64位的CRC校验码。RAM 中EEROM用于存储TH、TL和配置寄存器的值。数

12、据先写人RAM,经校验后再传给E2ROM。通过DS18B20功能命令对RAM进行操作。CRC的函数表达式为: (3-1)DS18B20中的温度传感器可完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H,如表3-2所列。表 3-2 温度测量值与数字量输出对照温度数字量输出 二进制 数字量输出 十六进制 +1250000 0111 1101 000007D0H+25.06250000 0001 1001 00010

13、191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1111 0110 1111FF6FH-551111 1100 1001 0000FC90HDS18B20的温度测量范围是-55 +125 ,分辨率的默认值12位。表3-3是温度存储格式与配置寄存器控制字的格式。由表3-3中可知,检测温度由两个字节组成,字节1的高5位s代表符号位

14、,字节0的低四位是小数部分,中间7位是整数部分;字节4是配置寄存器控制字的格式,当R1R0的值为00B、01B、10B、llB9、10、11、12位,转换时间为93ms、187ms、375ms、750ms。R1,R0的设定值与位数,分辨力和最大转换时间的关系具体如表3-4所示,可见位数每减少一位,分辨率同比减少而转换时间则加快一倍。器件上电默认分辨率为12位10。表3-3 温度存储格式与配置寄存器控制字格式Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0字节0232221202-12-22-32-4字节1SSSSS262524字节20R1R011111表 3-4 配位寄存器设置

15、R1R0分辨力/最大转换时间/ms有效位数000.593.759位 bit11-bit3 010.25187.5010位 bit11-bit2 100.125375.0011位 bit11-bit1 110.0625750.0012位 bit11-bit0 当主机发出温度转换命令 44H 时,便启动了温度转换过程,转换时间最长750mS。主机通过读暂存器功能命令 BEH ,将温度值读出。通过写暂存器功能命令,改变分辨率的设置。5. DS18B20的通讯协议根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位复位成功后发送一

16、条ROM指令最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。DS18B20测温精度的途径DS18B20有两种供电方式:3.0V5.5V的电源供电方式和寄生电源供电方式 直接从数据线获取电源 。电源检测电路用于判定供电方式。DS1820正常使用时的测温分辨率为0.5,在对DS1820测温原理详细分析的基础上,我们采取直接读取DS1820内部暂存寄存器的方法,将DS1820的测温分辨率提高到0.10.01 DS1820内部暂存

17、寄存器的分布如表1所示,其中第7字节存放的是当温度寄存器停止增值时计数器1的计数剩余值,第8字节存放的是每度所对应的计数值,这样,我们就可以通过下面的方法获得高分辨率的温度测量结果。首先用DS1820提供的读暂存寄存器指令 BEH 读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位 LSB ,得到所测实际温度整数部分T整数,然后再用BEH指令读取计数器1的计数剩余值M剩余和每度计数值M每度,考虑到DS1820测量温度的整数部分以0.25、0.75为进位界限的关系,实际温度T可用下式计算得到: T实际 T整数0.25 + M每度M剩余 /M每度DS18B20使用中的注意事项DS1

18、8B20虽然具有测温系统简单、测温精度高、连接方便占用口线少等优点,但在实际应用中也应注意以下几方面的问题: 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。 在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测

19、温系统设计时要加以注意。 连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死

20、循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,A

21、T89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。图3-6 AT89C51引脚2.主要功能特性:? 兼容MCS51指令系统? 32个双向I/O口? 两个16位可编程定时/计数器? 1个串行中断? 两个外部中断源? 可直接驱动LED? 低功耗空闲和掉电模式? 4k可反复擦写 1000次Flash ROM? 可编程UARL通道? 全静态操作0-24MHz? 128x8bit内部RAM? 共6个中断源? 3级加密位? 软件设置睡眠和唤醒功能管脚说明:VCC:供电电压。GND:接地。P0口:P0

22、口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲

23、器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平

24、,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地

25、位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/VPP:当/EA保持低电平

26、时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的

27、宽度。整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。7段译码器MC14558,把译码器与驱动器电路集成在一起的BCD7段译码器驱动器MC14547,进一步把锁存器、译码器和驱动器集

28、成在一起的BCD7段锁存译码驱动器MC14513和十六进制输出的锁存译码驱动器MC14495等。(2)软件译码当LED显示器用于微处理器或微控制其应用系统时,利用微处理器强大的功能,通过软件查表方式对所需要显示的字符到笔段字型码的变换实现译码不是一件困难的事,所以目前大多数嵌入式系统应用都是采用这种软件译码方式。3.LED显示器驱动方式LED显示器驱动方式可以分为静态显示驱动和动态显示驱动两种。静态显示驱动一般是通过数字集成电路对所需要显示的字符笔段连续施加电压;而动态显示驱动则是利用矩阵扫描方式间断向所需要显示的字符笔段轮流施加电压。(1)静态显示驱动当LED显示器工作与静态显示驱动方式时,

29、不同数位的LED数码管的公共极(共阴极或共阳极)将被连接在一起并接地或+5V,而每个数位的8根笔段线分别和一个8位锁存器相连。不同数位的数码管相互独立,分别用不同的驱动器件进行驱动,它们的显示字符一旦确定,只要不改变显示字符,相应的锁存器的输出就一直不变。这种驱动方式的优点是编程容易、管理简单、显示亮度高、稳定性好,占用CPU时间较少;其缺点是占用硬件电路和微处理器系统接口资源较多、引线多、印刷版布线复杂、硬件投入成本高。(2)动态显示驱动当LED显示器工作于动态显示驱动方式时,通常把不同位数的同名笔段互连起来,共用一个显示驱动器。每一个位数的字符显示都需要靠笔段字型驱动和位数驱动相配合,如果

30、需要在不同数位上显示不同字符,可以依次传送需要显示字符笔段的字型码,接着选通相应数位显示该字符,持续施加一段时间的电压,然后再显示下一个数位的字符。动态显示驱动方式的优点是引线少、线路简单、硬件成本相对较低。其缺点是需要不断刷新,当采用软件扫描时,占用CPU的时间较多;当采用硬件扫描时,又会增加硬件成本,LED显示数位越多,显示亮度越低,若处理不好或位太多,将会引起显示闪烁。4.数据输入接口方式(1)并行输入数据并行输入方式是以并行方式传送数据,其优点是传送数据速度快,其缺点是需要占用较多的I/O接口线。(2)串行输入数据串行输入方式是以串行方式传送数据,其优点是占用I/O接口资源少,其缺点是

31、传送数据速度相对慢。5. 七段LED显示器结构与原理7段显示器由7条发光二极管组成显示字段,这7段发光管分别称为a、b、c、d、e、f、g,有的还带有一个小数点dp。将7段发光管阴极都连在一起,成为共阴极接法,当某个字段的阳极为高电平时,对应的字段就点亮。共阳极接法就是将LED显示器所有阳极并接后连到+5V电源上,当某一字段的阴极为0时,对应的字段就点亮。通过7段的不同组合控制,可以显示09和AF共16个数字、字母、实现十六进制显示。 加在7段阳极上的电压可以用数字量表示,对于共阳极,如果某位为1,则对应段发光;如为零,则不发光。数字量与段的对应关系如下: D7 D6 D5 D4 D3 D2

32、D1 D0dp g f e d c b a输出显示采用普通的LED数码显示器,并采用了具有一定驱动能力的74LS273集成电路芯片做LED数码管的驱动器。为了节省硬件资源,LED数码管采用动态扫描显示,且字型码由软件产生。3.4报警电路报警电路采用普通的蜂鸣器,蜂鸣器通常工作电流较大,电路上的TTL电平基本上驱动不了蜂鸣器,需要增加一个三极管来增加通过蜂鸣器的电流,见下面硬件原理图。当温度达到设定的上下限时,通过程序控制使P2.3管脚置低电平,从而使蜂鸣器发出嘀嘟报警音。3.5键盘控制器为了达到设定温度上下限超温报警值,本系统采用了键盘输入电路。它可以完成温度上下限报警值的设定,它具有设置(S

33、ET)、加1 UP 、减1 DOWN 、确定(RET)等功能。硬件原理图中,四个按键开关的设置操作如下:按K1?进入温度报警值状态K2?进行温度设定值加1 UP 调整(例如:按5次K2报警值变为+85C)。K3?进行温度设定值减1 DOWN 调整(例如:按5次K3报警值变为+75C)。K4将当前的设定值确认为温度上限报警值,并同时进入温度下限报警设置状态(例如:当时是+10C)。若想将当前设定值提高,按K2?进行温度设定值加1 UP 调整(例如:按3次K2报警值变为+13C)。K3?进行温度设定值减1 DOWN 调整(例如:按3次K3报警值变为+7C)。K4将当前的设定值确认为温度下限报警值,

34、并同时退出设定温度报警值状态简单易用、价格低廉在降压电路中应注意以下事项:输入输出压差不能太大,太大则转换效率急速降低,而且容易击穿损坏2、输出电流不能太大,1.5A是其极限值。大电流的输出,散热片的尺寸要足够大,否则会导致高温保护或热击穿;3、输入输出压差也不能太小,效率很差。图3-7 +5V电源3.7系统硬件连接系统主要硬件如图3-8所示,除了以上介绍的AT89C51、DS18B20、数码显示器、报警电路之外还包括晶振、键盘按钮、三极管、电容、电阻等器件。连接线路如图3-8。整个硬件系统主要以DS18B20和AT89C51为主,DS18B20把测量的温度转化为数字信号传送给AT89C51,

35、由AT89C51对信号进行判断,并给出相应的信号发送各个元件,各个元件得到信号后执行各自功能。图3-8 硬件原理图第四章 系统软件设计智能数字式温度测量报警系统软件的应用程序主要包括:DS18B20工作程序、LED显示子程序、键盘输人程序和温度检测报警程序等。4.1 DS18B20的工作过程DS18B20 的工作遵循严格的单总线协议。主机首先发一复位脉冲,使信号线上所有的DS18B20芯片都被复位,接着发送ROM 操作命令,使序列号编码匹配的DS18B20被激活,准备接收下面的内存访问命令10。内存访问命令控制选中的DS18B20的工作状态,完成整个温度转换、读取等工作 单总线在ROM命令发送

36、之前存储命令和控制命令不起作用 。其测温工作的流程图如图4-1所示,在对DS18B20进行操作的整个过程中,主要包括三个关键过程:主机搜索DS18B20序列号、启动在线DS18B20作温度转换、读取在线DS18B20温度值。工作中系统对DS18B20的操作以ROM命令和存储器命令形式出现。其中ROM操作命令均为8位长,命令代码前面已经做了详细的介绍。图4-1 DS18B20测温工作流程图4.2 DS18B20工作程序DS18B20的命令集ROM操作命令Read ROM 33H 读ROM Match ROM 55H 匹配ROM Skip ROM CCH 跳过ROM Search ROMF0H 搜

37、索ROM Alarm searchECH 告警搜索 存储器操作命令 Write Scratchpad4EH 写暂存存储器 Read ScratchpadBEH 读暂存存储器 Copy Scratchpad 48H 复制暂存存储器 Convert Temperature44H 温度变换 Recall EPROMB8H 重新调出 Read Power supplyB4H 读电源 获取单个ds18B20转化的温度值的应用程序,P1.6接ds18B20ORG 0000H AJMP MAIN ORG 0020H MAIN: MOV SP,#60H LCALL GET_TEMP SJMP $ GET_TE

38、MP: CLR PSW.4SETB PSW.3 ;设置工作寄存器当前所在的区域CLR EA ;使用ds1820一定要禁止任何中断产生 LCALL INT;调用初使化子程序 MOV A,#0CCH LCALL WRITE ;送入跳过ROM命令 MOV A, #44H LCALL WRITE ;送入温度转换命令 MOV R7 #0FFHLL:LACALL T0SEV ;调用动态显示子程序 DJNZ R7,LLLCALL INT ;温度转换完全,再次初使化ds18B20 MOV A,#0CCH LCALL WRITE;送入跳过ROM命令 MOV A,#0BEH LCALL WRITE ;送入读温度暂

39、存器命令 LCALL READ MOV R7,A;读出温度值低字节存入R7 LCALL READ MOV R6,A;读出谩度值高字节存入R6 SETB EA RET INT: ;初始化ds18B20子程序 CLR EA L0:CLR P1.6 ;ds18B20总线为低复位电平 MOV R2,#200 L1:CLR P1.6 DJNZ R2,L1 ;总线复位电平保持400us SETB P1.6 ;释放ds18b20总线 MOV R2,#30 L4:DJNZ R2,L4 ;释放ds18B20总线保持60us CLR C ;清存在信号 ORL C,P1.6 JC L0 ;存在吗?不存在则重新来 M

40、OV R6,#80 L5:ORL C,P1.6 JC L3 DJNZ R6,L5 SJMP L0 L3:MOV R2,#240 L2:DJNZ R2,L2 RETWRITE: ;向ds18B20写操作命令子程序 CLR EA MOV R3,#8 ;写入ds18B20的bit数,一个字节8个bit WR1:SETB P1.6 MOV R4,#8RRC A ;把一个字节data A 分成8个bit环移给 C CLR P1.6 ;开始写入ds18B20总线要处于复位 低 状态 WR2:DJNZ R4,WR2 ;ds18B20总线复位保持16us MOV P1.6,C ;写入一个bit MOV R4,

41、#20 WR3:DJNZ R4,WR3 ;等待40us DJNZ R3,WR1 ;写入下一个bit SETB P1.6 ;重新释放ds18B20总线 RET READ: CLR EA MOV R6,#8 ;连续读8个bit RE1:CLR P1.6 ;读前总线保持为低 MOV R4,#4 NOP SETB P1.6 ;开始读总线释放 RE2:DJNZ R4,RE2 ;持续8us MOV C,P1.6 ;从ds18B20总线读得一个bit RRC A ;把读得的位值环移给 A MOV R5,#30 RE3:DJNZ R5,RE3 ;持续60us DJNZ R6,RE1 ;读下一个bit SETB

42、 P1.6 ;重新释放ds18B20总线 RET END#78;取显示数据首址MOVR5,#0FEH;位扫描控制字初值PLAY:MOVA, R5;位扫描控制字放入AANLP2,A;从P2口输出MOVA,R1;取显示数据到AMOVDPTR,#TAB;取段码表地址MOVCA,A+ DPTR;查显示数据对应码段MOVP0,A;段码数据放入P0口LCALLDL1MS;显示1msINCR1;显示数据地址加1MOVA,P2;读入P2端口值至AJNBACC.2,ENDOUT;P2.2为0时一次显示结束RLA,;P2.2不为0,A中数值左移一位MOVR5,A;放回R5内暂存AJMPPLAY;跳回PLAY循环ENDOUT:MOVP2,#0FFH;P2口置一,关显示MOVP0,#0FFH;P0口置一,关显示RET;子程序返回TAB:DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H,共阳代码表显示数 “0”“1”“2”“3”“4”“5”“6”“7”“8”“9”第五章 结论本设计系统具有投资省,制作方便,修理简便,测温精度高,运行稳定可靠等性能,优于传统的温度控制系统。在设计的过程中,系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论