版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业设计(论文)学 院 (四号黑体) 专 业 (四号黑体) 学生姓名 (四号黑体) 班级学号 (四号黑体) 指导教师 (四号黑体) 二零壹零年六月摘 要随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单
2、片机技术入手,一切向着数字化控制,智能化控制方向发展。单片机在日用电子产品中的应用越来越广泛,温度则是人们日常生活中常常需要测量和控制的一个量。科学技术的发展和检测技术的发展是密切相关的。现代化的检测手段能达到的精度、灵敏度及测量范围等,在很大程度上决定了科学技术的发展水平。本文作者采用AT89C2051单片机和温度传感器DS18B20从硬件和软件两方面介绍了一款简易数字温度计的设计过程,并对硬件原理图和程序流程图作了简洁的描述。数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所。关键词:单片机 温度传感器 数字温度计ABST
3、RACTWith the progress and development, single-chip technology has spread to our lives, work, research in various fields has become a relatively mature technology, this article will introduce thesingle-chip microcomputer-based control of a digital thermometer, the thermometer are multi-purpose thermo
4、meter, you can set upper and lower temperature alarm, when the temperature range is not set, it could be reported.With the continuous improvement of peoples living standard, single-chip control is undoubtedly one of the objectives pursued, it gives people the convenience can not be negative, in whic
5、h digital thermometer is a typical example, but it is what is required of it more and more people to work, scientific research, life and more convenient to provide better facilities will need to start from the number of single-chip technology, all toward the digital control, intelligent control of d
6、irection.Single-chip electronic products in the daily application of more and more widely, the temperature is often the need for daily life in a measurement and control volume. Development of science and technology development and testing are closely related. Modern methods to achieve the accuracy,
7、sensitivity and measurement range, to a large extent determine the level of development of science and technology. The author of this article using AT89C2051 MCU and temperature sensor DS18B20 from both hardware and software, introduced a simple digital thermometer of the design process, and schemat
8、ic diagram of hardware and procedures were concise description of flow chart. Digital thermometer with a traditional thermometer, compared with a reading of convenience, a wide range of temperature measurement, temperature measurement accuracy, the output of the temperature digital display, mainly u
9、sed for more accurate temperature measurement sites. Key words: single-chip temperature sensor digital thermometer目 录摘 要IABSTRACTII1 绪 论- 1 -11 功能要求与设计方案- 1 -1.1.1 功能要求- 1 - 数字温度计设计方案- 1 -12 数字温度计的应用领域与所需器件- 1 -1.2.1 应用领域- 1 -1.2.2 设计中所需要的器件- 2 -2 数字温度计的结构原理器件介绍- 3 -2.1系统功能原理及硬件组成- 3 - 系统功能原理- 3 -2.
10、1.2 系统硬件组成框图- 3 -2.1.3 原理图,如附录A所示。- 4 -2.2 单片机 AT89C2051功能介绍和应用- 4 -2.2.1 单片机 AT89C2051简介- 4 -2.2.2 主要功能特性- 4 -2.2.3 单片机 AT89C2051引脚功能说明- 5 -2.3 温度传感器 DS18B20功能介绍- 6 -DS18B20的内部结构:- 6 -2.3.2 DS18B20主要特性与新性能- 8 -2.3.3 DS18B20温度传感器的存储器与控制方法- 8 -2.4 74HC244三态八缓冲器/驱动器的简介- 10 -3 数字温度计的程序流程图及程序设计- 12 -3.1
11、 程序设计的一般步骤- 12 -3.2 程序流程图- 12 -3.2.1 DS18B20温度计主程序流程图:- 12 - 读出温度子程序流程图:- 13 -3.3 程序设计见附录B所示- 16 -总 结- 17 -参考文献- 18 -附录A 系统原理图- 19 -附录B 系统程序- 20 -致 谢- 28 -1 绪 论随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,本课程利用集成温度传感器DS18B20设计并制作了一款基于AT89C51的4位数码管显示的数
12、字温度计,其电路简单,软硬件结构模块化,易于实现。目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等。目前的温度计中传感器是它的重要组成部分,它的精度灵敏度基本决定了温度计的精度、测量范围、控制范围和用途等。传感器应用极其广泛,目前已经研制出多种新型传感器。通过“数字温度计的设计”的设计过程,结合所学的课程,掌握目前自动化 仪表的一般设计要求、工程设计方法、开发及设计工具的使用方法,通过这一设计实践过程,锻炼学生的动手能力和分析、解决问题的能力;积累经验,培养按部就班、一丝不苟的工作和对所学知识的综合应用能力。11 功能要求与设计方案
13、 功能要求数字式温度计要求测温范围在-50到110度,精度误差在0.1度以内,4位LED数码管直读显示。 数字温度计设计方案在单片机电路设计中,大多都是使用传感器,这是非常容易想到的,所以可以采用一个温度传感器DS18B20,本数字温度计设计采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测组件,温度范围为-55125,最大分辨率在0.0625。DS18B20可以直接读出温度被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。12 数字温
14、度计的应用领域与所需器件 应用领域随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S2051,测温传感器使用DS18B20,用4位共阳极LED数码管以串口传送数据,实现温度显示。 设计中所需
15、要的器件1、 单片机:AT89C2051 一块;2、 温度传感器:DS18B20 一块;3、 驱动器:74HC244 一块;4、 4位共阳极数码管 一块;5、 30PF电容 2个、10uF 1个;6、 9012三极管 四个;7、 510欧电阻 八个、1K欧 四个、4.7K欧和6.8K欧各 一个、10K欧 二个;8、 12MHZ晶振 一个;9、 5V电源 一个;10、 电路板 一块。2 数字温度计的结构原理器件介绍本章主要是了解设计中的系统功能原理及硬件组成。熟悉单片机89C2051、传感器DS18B20等器件的引脚功能和工作状态,以及对硬件图的掌握。2.1系统功能原理及硬件组成 系统功能原理该
16、数字温度计利用DS18B20集成温度传感器及其接口电路完成温度的测量并对该信号转换,然后送到单片机AT89C51中进行处理变换,最后将温度值显示在D4、D3、D2、D1共位七段码LED显示器上。 系统硬件组成框图系统以AT89C51单片机为控制核心,加上DS18B20测温电路、74HC244驱动、4位温度数据显示电路以及外围电源、时钟电路等组成。系统组成框图如图2.1所示。AT89C2051单片机DS18B20温度传感器74HC244驱动电路显示电路单片机复位时钟振荡图2.1 系统组成框图在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/
17、O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。 原理图,如附录A所示。2.2 单片机 AT89C2051功能介绍和应用 单片机 AT89C2051简介Atmel公司的生产的AT89C2051是一个低电压,高性能CMOS 8位单片机,片内含2k bytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C2051
18、单片机可为您提供许多高性价比的应用场合。 AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。同时AT89C2051的时钟频率可以为零,即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。省电模式中,片内RAM将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。芯片示图2.2如下:图2.2 AT89C2051芯片示图 主要功能特性(1)兼容
19、MCS51指令系统 (2)2k可反复擦写(1000次)Flash ROM(3)15个双向I/O口(4)6个中断源(5)两个16位可编程定时/计数器(6)2.7-6V的宽工作电压范围(7)时钟频率0-24MHz(8)128x8bit内部RAM(9)两个外部中断源(10)两个串行中断(11)可直接驱动LED(12)两级加密位(13)低功耗睡眠功能(14)内置一个模拟比较放大器(15)可编程UARL通道(16)软件设置睡眠和唤醒功能 单片机 AT89C2051引脚功能说明(1)Vcc:电源(2)GND:接地(3)P1口:P1口是一组8位双向I/O口提供内部上拉电阻,P1.0和P1.1内部无上拉电阻,
20、主要是考虑它们分别是内部精密比较器的同相输入端(AIN1),如果需要应在外部接上拉电阻。P1口输出缓冲器可吸收20mA电流并可直接驱动LED.当P1口引脚写入“1”时可作输入端,当引脚用做输入并被外部拉低时,它们将因内部的上拉电阻而输出电流(In)。P1口还在Flash闪速编程及程序校验时接收代码数据。(4)P3口:P3口的是带有内部上拉电阻的7个双向I/O口。P3.6没有引出,它作为一个普通I/O口但不可访问,但可作为固定输入片内比较器的输出信号,P3口缓冲器可吸收20mA电流。当P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端,作输入端时,被外部拉低的P3口将用上拉电阻输出电流(I
21、n)。P3口还用于实现AT89C2051特殊的功能,接收一些用于Flash闪速存储编程及程序校验的控制信号。如下表2.1所示:表2.1 P3口特殊的功能引脚口 功能特性P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INTO(外中断0)P3.3/INT1(外中断1)P3.4T0(定时计数器0输入)P3.5T1(定时计数器1输入) (5)RST:复位输入。RST引脚一旦变成两个机器周期以上电平,所有的I/O都将复位到“1”(高电平)状态,振荡器正在工作时,持续两个机器周期以上的电平便可完全复位,每个机器周期为12个振荡时钟周期。(6) XTAL1:振荡器反相放大器的及内部时钟发
22、生器的输入端。(7) XTAL2:振荡器反相放大器的输出端。2.3 温度传感器 DS18B20功能介绍现代化的检测手段能达到的精度、灵敏度及测量范围等,在很大程度上决定了科学技术的发展水平。同时,科学技术的发展达到的水平越高,又为检测技术、传感器技术提供了新的前提手段。目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等。目前的温度计中传感器是它的重要组成部分,它的精度灵敏度基本决定了温度计的精度、测量范围、控制范围和用途等。传感器应用极其广泛,目前已经研制出多种新型传感器2.3.1DS18B20的内部结构:DS18B20温度传感器是美
23、国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式,如内部结构图2.3:图2.3 内部结构图DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图2.4下:图2.4 DS18B20的管脚排列图DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 DS18B20主要特性与新性能1、 主要特性(1) 一线通讯接口;(2) 电源范围:3.0V
24、5.5V;(3) 测温范围:10+125;(4) 精度:10+85内为+0.5;(5) 可编程分辨率:912位;(6) 12位数据时转换时间750ms(最大值)(7) 负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 DS18B20温度传感器的存储器与控制方法1、 DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是
25、TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。 分辨率设置表2.2:表2.2 DS18B20分辨率设置R1R0分辨率温度最大转换时间009位93.75ms 0110位187.5ms 1011位375ms 1112位750ms 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:(1)初始化(2)执行某个ROM指令(3)执行RAM内存指令(4)数据传输2、 DS18B20温度传感器的控制方法 在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc
26、接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。 DS18B20有六条控制命令,如表2.3所示:表2.3 DS18B20六条控制命令指 令 约定代码 操 作 说 明 温度转换 44H 启动DS18B20进行温度转换 读暂存器 BEH 读暂存器9个字节内容 写暂存器 4EH 将数据写入暂存器的TH、TL字节 复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中 重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节 读电源
27、供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPU CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。2.4 74HC244三态八缓冲器/驱动器的简介1、简要说明:244为三态输出的八组缓冲器和总线驱动器,其管脚图及功能表2.4如下示
28、: 表2.4 74HC244管脚图引出端符号:1A11A4,2A12A4:输入端;/1G, /2G:三态允许端(低电平有效);1Y11Y4,2Y12Y4:输出端。2、逻辑图,如图2.5图2.5 双列直插封装3、极限值:电源电压:7V;输入电压:5.5V;输出高阻态时高电平电压:5.5V;工作环境温度:-55125;存储温度:-651503 数字温度计的程序流程图及程序设计3.1 程序设计的一般步骤程序设计就是指计算机完成某一具体工作任务时,必须按顺序执行一条条指令。一般的程序设计过程大致可分3个步骤:1 确定计算方法,定出运算步骤和顺序,把运算过程画成框图。2 确定数据,包括工作单元的数量,分
29、配存放单元。3 按所使用计算机的指令系统,把确定的运算顺序写成汇编语言程序。系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。3.2 程序流程图 DS18B20温度计主程序流程图:主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次,其程序流程图如图3.1所示。初始化调用显示子程序1S到?初次上电?读出温度值温度计算处理显示数据刷新发温度转换开始命令NYNY图3.1 主程序流程图 读出温度子程序流程图:读出温度子程序的主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,校验有错时不进行温度数据
30、的改写。其程序流程图如图3.2所示。Y发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNY图3.2 读出温度子程序流程图1、 温度转换命令子程序流程图:温度转换命令子程序主要是发温度转换开始命令,当采用12位分辩率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图3.3所示。发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束图3.3 温度转换命令子程序流程图2、 计算温度子程序流程图:计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正
31、负的判定,其流程图如图3.4所示 开始温度零下?温度值取补码置“”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“+”标志NY图3.4 计算温度子程序流程图3、显示数据刷新子程序流程图:显示数据刷新子程序主要是对显示缓冲区中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图3.5所示。温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号) 结束NNYY图3.5 显示数据刷新子程序流程图3.3 程序设计见附录B所示总 结经过将近四个月的单片机课程设计,终于完成数字温度计的设计,虽然没有完全达到设计要求,但从心底里
32、说,还是高兴的,因为这次设计真的让我长进了很多。在本次设计的过程中,我发现很多的问题,单片机课程设计重点就在于软件算法的设计,程序只有在经常的写与读的过程中才能提高,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。从这次的课程设计中,使我意识到在以后的工作中,要理论联系实际,把所学的理论知识用到实际当中。在这四周里我之所以能顺利的完成本次毕业论文的设计,是与很多人的帮助和支持分不开的。 本课程的设计是在张仁武老师的悉心指导下完成的。在此我非常感谢张仁武老师在毕业设计过程中给予我的指导与帮助。感谢工程技术学院全体老师的教导和培养,在此向各位老师致以
33、最诚挚的谢意。同时也感谢同学给予我的帮助和支持。由于时间和知识水平所限,论文中必然会有一些疏漏和不妥之处,恳请各位老师和同学批评指正。学生: 李大朋参考文献1 张洪润、张亚凡单片机原理及应用北京:清华大学出版社2 张百新温度计的诞生和发展濮阳教育学院学报3 何立民单片机应用技术选编M北京:北京航空航天大学出版社,2004.4 杨刚、周群电子系统设计与实践M北京:电子工业出版社,2004.5 白泽生用MCS-51单片机实现温度的检测J现代电子技术,2005年第10期 1-3页.6 张开生、郭国法MCS-51单片机温度控制系统的设计J微计算机信息,2005第21期 68-69页.7 张鹏、雄磊、姚
34、东萍分辨率可编程的一线总线数字温度计DS18B20及其应用北京:交通大学现代通信研究所8 王幸之、王雷、翟成等单片机应用系统抗干扰技术北京:航空航天大学出版社9 康华光电子技术基础高等教育出版社10 万福君、潘松峰等单片机微机原理系统设计与应用中国科学技术大学出版社16 附录A 系统原理图附录B 系统程序数字温度计程序清单S1OK EQU 5FHTEMPUTER EQU 39H TEMPH EQU 5EH TEMPLEQU 5DH MS50 EQU 5CHSIGN EQU 5BH S1 BIT P1.0 S2 BIT P1.1 S3 BIT P1.2 S4 BIT P1.3 ORG 0000H
35、 LJMP MAIN ;无条件转移 ORG 000BH LJMP TOIT ORG 0030HMAIN: MOV SP, #60H ;主程序 栈顶地址60H MOV TMOD, #01H ;定时器T0工作在方式1 MOV TH0, #3CH ;定时时间 MOV TL0, #0B0H SETB ET0 ;启动T0记数 SETB TR0 SETB EA ;允许中断 MOV TEMPH, #30 MOV TEMPL, #9 MOV TEMPUTER, #15 ; 温度最始值 MOV S1OK, #00H MOV SIGN, #00H MOV 38H, #0BH MOV 36H, #0BH MOV 3
36、7H, #0CH ACALL DISP ;显示温度子程序 ACALL T1S ;开机延时主程序START: ACALL T12MS JB S1, NET1 ; 位条件转移 JNB S1, $ ;位条件转移等待 INC SIGN MOV A, SIGN CJNE A, #1, TIAO ;比较之后转移 ACALL TIAOTLTIAO: CJNE A, #2, NET1 ; 比较之后转移 MOV SIGN, #0 ACALL TIAOTH NET1: MOV A, S1OK CJNE A, #1, START ; 比较之后转移 MOV A, TEMPUTER SUBB A, TEMPH ;带借位
37、相减 JNB ACC.7, ALEM ; 位条件转移 MOV A, TEMPUTER SUBB A, TEMPL ;带借位相减 JB ACC.7, ALEM ; 位条件转移 SETB P2.1 ; P2.1置1 ACALL WENDU ;调用 ACALL DISP ;调用 MOV S1OK, #00H AJMP START ; 无条件转移 ALEM: MOV 36H, #0CH MOV 37H, #0CH MOV 38H, #0CH CLR P2.1 ;清0 ACALL DISP ;调用 ACALL T1S LCALL WENDU ;调用子程序 LCALL DISP ;调用 MOV S1OK,
38、 #00H SJMP START ;无条件转移TIAOTL:MOV 50H, TEMPUTER MOV 37H, TEMPL ACALL BIN_BCD ;调用 ACALL DISP ACALL T12MS ACALL T12M ACALL T12MSACALL T12MSMOV 36H, #0AH MOV 37H, #0AH MOV 38H, #0AH ACALL DISP ;调用 ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS JB S2, ADD1 ; 位条件转移 ACALL T12MS JB S2, ADD1 ; 位条件转移 JNB S2
39、, $ ; 位条件转移等待 INC TEMPL ; 加1 MOV A, TEMPL CJNE A, #100, ADD1 ; 比较之后转移 MOV TEMPL, #0 ADD1: JB S3, ADD2 ; 位条件转移 ACALL T12MS ;调用 JB S3, ADD2 ; 位条件转移 JNB S3, $ ; 位条件转移等待 DEC TEMPL MOV A, TEMPL CJNE A, #00 , ADD2 ; 比较之后转移 MOV TEMPL,#100 ADD2: JB S4, TIAOTL ACALL T12MS ;调用 JB S4, TIAOTL ; 位条件转移 JNB S4, $
40、; 位条件转移等待 MOV TEMPUTER, 50H LJMP START ;无条件转移秒定时中段TOIT: PUSH PSW ;入栈指令 PUSH ACC MOV TH0, #3CH MOV TL0, #0B0H INC MS50 ; 加1 MOV A, MS50 CJNE A, #14H, RETURN ; 比较之后转移 MOV S1OK, #1 MOV MS50, #00H RETURN:POP ACC POP PSW ;出栈指令 RETI ;中断服务返回 温度总子程序温度: ACALL INIT_1820 ;保护断点地址 ACALL RE_CONFIG ;调用 ACALL GET_T
41、EMPER ACALL TEMPER_COV RET ;子程序返回; DS18B20初始化程序 INIT_1820: SETB P2.0 ; P2.0置1 NOP ;空操作指令 CLR P2.0 ;清0 MOV R0,#06BH MOV R1,#03HTSR1: DJNZ R0,TSR1 ; 延时 MOV R0,#6BH DJNZ R1,TSR1 SETB P2.0 ; P2.0置1 NOP ;空操作指令 NOP NOP MOV R0,#25HTSR2: JNB P2.0,TSR3 ; 位条件转移 DJNZ R0,TSR2 ; 循环转移 LJMP TSR4 ; 延时TSR3: SETB 20H
42、.1 ; 置标志位,表示DS1820存在 LJMP TSR5TSR4: CLR 20H.1 ; 清标志位,表示DS1820不存在 LJMP TSR7 ;无条件转移TSR5: MOV R0,#06BH MOV R1,#03HTSR6:DJNZ R0,TSR6 ; 延时 MOV R0,#6BH DJNZ R1,TSR6TSR7:SETB P2.0 ; P2.0置1 RET ;子程序返回 重新写DS18B20暂存存储器设定值RE_CONFIG:JB 20H.1,RE_CONFIG1 ; 若DS18B20存在,转RE_CONFIG1 RET ;子程序返回RE_CONFIG1: MOV A,#0CCH ; 发SKIP ROM命令 LCALL WRITE_1820 MOV A,#4EH ; 发写暂存存储器命令 LCALL WRITE_1820 ;调用子程序 LCALL WRITE_1820 MOV A,#1FH ; 选择9位温度分辨率 LCALL WRITE_1820 RET ; 子程序返回读出转换后的温度值GET_TEMPER: SETB P2.0 ; 定时入口 LCALL INIT_1820 ;调用子程序 JB 20H.1,TSS2 ; 位条件转移 RE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论