单片机技术课程设计说明书数字温度计设计.doc_第1页
单片机技术课程设计说明书数字温度计设计.doc_第2页
单片机技术课程设计说明书数字温度计设计.doc_第3页
单片机技术课程设计说明书数字温度计设计.doc_第4页
单片机技术课程设计说明书数字温度计设计.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

单片机技术课程设计说明书 数字温度计院 、 部: 电气与信息工程 学生姓名: 指导教师: 王 韧 职称 副教授专 业: 电气工程及其自动化 班 级: 电气本1104班 完成时间: 2014-06 湖南工学院课程设计任务书课 程: 单片机技术 课程设计题目: 数字电子钟 数字频率计 数字电压表 交通灯 抢答器 密码锁 波形发生器 数字温度计 计算器 数字式秒表 适 用 班 级: 电气本11012、电气本11034 电气本1105自本1101 时 间: 20132014学年第二学期 指 导 教 师: 王 韧 单片机技术课程设计任务书一、设计题目:数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密码锁、波形发生器、数字温度计、计算器、数字式秒表。二、适用班级:电气本11012、电气本11034、电气本1105自本1101三、指导教师:王韧四、设计目的与任务:学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在单片机技术中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。五、设计内容与要求 设计内容1、数字电子钟设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。2、数字频率计设计一个能够测量周期性矩形波信号的频率、周期、脉宽、占空比的频率计。该频率计上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态。按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。3、数字电压表设计一个能够测量直流电压的数字电压表。测量电压范围05V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结束键则自动返回“P.”状态。4、交通灯设计一个具有特定功能的十字路口交通灯。该交通灯上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。按开始键则开始工作,按结束键则返回“P.”状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。5、抢答器设计一个具有特定功能的抢答器。该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,显示器显示违规台号。蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。6、密码锁设计一个具有特定功能的密码锁。该密码锁上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。7、波形发生器设计一个具有特定功能的波形发生器。该波形发生器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该波形发生器可以分别产生幅值05V、频率100Hz100KHz范围内的三角波、锯齿波、方波、梯形波和正弦波。8、数字温度计设计一个具有特定功能的数字温度计。该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。测量温度范围099,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。9、计算器设计一个具有特定功能的计算器。该计算器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。能实现(1)基本的加、减、乘、除、平方、开方;(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其他功能。10、数字式秒表设计一个具有特定功能的数字式秒表。该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该数字式秒表应具有开始、暂停、连续、清零和停止功能。设计要求1、以上课题可以任选其一或多选,学生也可以自拟课题;2、编程语言:汇编或C51;3、计算机打印单片机技术课程设计说明书一份;4、设计时间:一周;5、实物制作;6、人员分组:一人一组一实物。六、单片机技术课程设计说明书正文主要内容参照“单片机技术课程设计说明书正文主要内容”文件。七、单片机技术课程设计说明书书写规范格式 参照“单片机技术课程设计说明书书写规范格式”文件。八、参考资料1、马忠梅,单片机的C语言Windows环境编程宝典M, 北京:北京航空航天大学出版社,2003.6; 2、李光飞,单片机C程序设计指导M,北京:北京航空航天大学出版社,2003.01 ;3、李光飞,单片机课程设计实例指导M,北京:北京航空航天大学出版社,2004.9。电气自动化教研室 2014年2月20日摘 要温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生活中的更加广泛的应用,利用新型数字温度传感器实现对温度的测试与控制得到更快的开发,本课程设计设计了一种基于AT89S52单片机的数字温度计。该系统可以方便的实现温度采集和显示。系统由硬件系统和软件系统组成,硬件系统由单片机最小系统、测温电路以及显示电路组成;软件系统由主程序、测温程序、判键程序和显示程序组成。它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。该系统设计和布线简单,结构紧凑,抗干扰能力强,在大型仓库、工厂、智能化建筑等领域的温度检测中有广泛的应用前景。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89S52单片机功能和应用。该电路设计新颖、功能强大、结构简单。关键词:数字温度计;AT89S52;温度传感器ABSTRACTThe temperature detection and control is the process of industrial production is one of the typical applications, with the sensor in the life of a more extensive application, using a new digital temperature sensor to realize the temperature measurement and control get faster development, the curriculum design based on the design of a AT89S52 digital thermometer. The system can facilitate the realization of temperature acquisition and display. The system is composed of the hardware system and software system, the hardware system is composed of MCU minimum system, temperature measurement circuit and display circuit; the software system is composed of a main function procedures, measurement procedures, convicted of key procedures and display program. It is very convenient to use, has high accuracy, wide measuring range, high sensitivity, small volume, low power consumption, suitable for our daily life and industrial and agricultural production, temperature measurement, but also can be used as a temperature processing module embedded in other systems, as the other main system auxiliary extension. The system design and layout is simple, compact structure, strong anti-interference ability, in large warehouses, factories, construction and other areas of intelligent temperature detection has a wide application prospect in the. The text focuses on the software and hardware system are all the parts of the circuit, this paper introduces the integrated temperature sensor DS18B20 principle, function and application of AT89S52 SCM. The circuit design, powerful, simple structure.Key words digital thermometer;AT89S52; temperature sensor目 录1 设计任务、功能要求及总体方案11.1 设计任务11.2 功能要求11.3 总体方案介绍及工作原理说明12 数字温度计硬件系统设计22.1 硬件系统各模块功能设计22.2 电路原理图、PCB图、元件布局图22.3 元器件清单23 数字温度计软件系统设计33.1 单片机资源使用情况33.2 各模块功能简要介绍33.3 程序流程图33.4 程序清单74 设计结论、实物结果、设计体会、误差分析84.1 设计结论84.2 实物结果84.3 设计体会94.4 误差分析9结束语10致谢11参考文献12附录.13附录A13附录B13附录C15附录D17附录E181 设计任务、功能要求及总体方案1.1 设计任务设计一个具有特定功能的数字温度计。1.2 功能要求该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。测量温度范围099,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。1.3 总体方案介绍及工作原理说明(1)方案介绍设计中主控芯片采用八位单片机AT89S52,显示器采用四位一体共阳数码管显示,测温模块采用温度传感器DS18B20,键盘采用独立式按键,其原理框图如图1所示。图1 原理框图(2)工作原理说明:数字温度计原理:该数字温度计供测温比较准确,测温范围为0-99的场所。主要是利用温度传感器DS18B20的操作时序和控制命令字,通过单片机对其操作从单总线上将温度值一位一位的取出来,然后进行处理,将温度数据分为整数位和小数位,然后将相应的温度通过四位一体共阳数码管显示出来,通过独立式键盘S1实现对数字温度计的开启与关闭。2 数字温度计硬件系统设计2.1 硬件系统各模块功能设计该数字温度计的设计可分为单片机最小系统、键盘电路的设计、显示电路的设计和测温电路的设计等。各模块的功能如下:(1)单片机最小系统 由AT89S52单片机、下载电路、时钟电路和复位电路构成。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K可编程Flash存储器。下载电路主要是一个十脚下载口,用于单片机从电脑下载程序。时钟电路由一个12MHz的石英晶体振荡器和两个33pF的的电容组成振荡电路和分频电路。复位电路采用上电复位和按键复位结合的方式对电路进行复位,主要是通过RST引脚送入单片机。单片机最小系统为整个电路的核心。(2)键盘电路设计在单片机应用中键盘用得最多的形式是独立键盘和矩阵键盘。本设计中采用独立式键盘,此系统只要求一个按键便满足所需的要求,按键一端接地,另一端接单片机的1.0口线然后接上拉电阻。其作用是开启与关闭温度计。(3)显示电路设计本设计采用的是共阳的四位一体的数码管,即LED显示器各位数码管的所有段控端(adp)相应地并接在一起,由一个P0口控制,形成段选线多路复用,而各位数码管共阴极要分别由相应的P2.0-P2.3口线控制。 (4)测温电路设计本设计用到温度芯片是DS18B20。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式。测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。设计的系统DS18B20带上拉电阻接到单片机的P3.0口线上。2.2 电路原理图、PCB图、元件布局图Altium Designer与AutoCAD原理图、元器件布局图、PCB图分别见附录A、附录B与附录C。 2.3 元器件清单元器件清单见附录D。3 数字温度计软件系统设计3.1 单片机资源使用情况 本设计采用独立式键盘,键盘直接接在P1.0口线上且按键的结果存贮在单片机的内部数据存储器里面。用到的LED显示器接到了单片机的P0和P2口上。DS18B20接在P3.0口线上。3.2 各模块功能简要介绍(1)主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值。(2)显示数据子程序:显示数据子程序主要功能是智能显示当前温度。(3)DS18B20的复位子程序部分:根据DS18B20的通信协议,每一次读写数据之前都要对DS18B20进行复位,复位要求主机先发出复位低脉冲(大于48us);然后释放,DS18B20收到信号后等待1660us,然后发出60240us的存在低脉冲,主机收到此信号表示复位成功。 (4) 温度处理子程序:温度处理子程序的主要功能是将RAM中读取值进行BCD码的转换运算。(5) DS18B20的写入子程序部分:每个读时隙都由主机发起,至少拉低总线1us,在主机发起读时序之后,单总线器件才开始在总线上发送0 或1。所有读时序至少需要60us。(6) DS18B20的读取子程序部分:当从DS18B20 读数据时,主机生成读时间隙。当主机把数据从高电平拉到低电平时,读时间隙开始,数据线必须保持至少1s;从DS18B20输出的数据在读时间隙的下降沿出现后15s 内有效。因此,主机在读时间隙开始后必须把I/O 脚驱动拉为低电平保持15s,以读取I/O 脚状态。在读时间隙的结尾,I/O 引脚将被外部上拉电阻拉到高电平。所有读时间隙必须最少60s,包括两个读周期至少1s的恢复时间。3.3 程序流程图在本设计中包括了以下九个主要的程序:主程序(MAIN)、RESET_PULSE( DS18B20的复位子程序)、WRITE(DS18B20的写入子程序)、READ(DS18B20的读取子程序)、READ_TEMP(读温度子程序)、和DIR(数码管显示子程序)、DISPLAY(显示数据子程序)、键盘扫描子程序KEY(判断是否有键按下)、PROCESS(温度处理子程序)。(1)主程序(监控程序)流程图如图2所示:图2 主程序流程图(2)DS18B20复位子程序流程图如图3(a)所示,读取子程序流程图如图3(b)所示,写入子程序流程图如图3(c)所示: (a) (b) (c)图3 复位、读取、写入子程序流程图(3)读温度子程序流程图如图4所示:图4 读温度子程序流程图(4)键盘扫描子程序流程图如图所示: 图5 键盘扫描子程序流程图(5)数码管显示子程序流程图如图6所示:图6 数码管显示子程序流程图 (6) 显示数据子程序流程框图如图7所示:图7 显示数据子程序流程图 (7) 温度处理子程序流程框图如图8所示:图8温度处理子程序流程图3.4 程序清单程序清单见附录E。4 设计结论、仿真结果、设计体会、误差分析4.1 设计结论本系统就是充分利用了AT89S52芯片的I/O引脚。该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入测温准备状态。当按下S1键时,温度计开启,数码管显示当前温度值,并显示小数点后两位,当再次按下S1键时,关闭温度计数码管显示提示符“P.”。通过测试和修改,该数字温度计完成了设计任务,符合设计要求。4.2 仿真结果(1)数字温度计上电时,温度计进入准备状态,数码管显示器显示“P.”如图9所示。图9 温度计准备状态(2)当按下S1键时,温度计进入测温状态,数码管显示当前温度如图10所示。图10 温度计测温状态(3)再次按下S1键时关闭温度测量,温度计再次进入准备状态,数码管显示器显示“P.”如图9所示。4.3 设计体会本次课程设计是数字温度机的设计,从用Protel、Proteus画原理图、PCB图,再到编程,通过本次课程设计我学会了很多。首先是学会了利用自己所学的理论知识来解决实际问题,在整个设计过程中,我们把老师以前所讲的芯片的原理、作用及性能都运用到了这次设计中,这样加强了我们对课本知识的理解和巩固。我觉得这次设计不仅加强了我们对课本知识的回顾和温故,而且锻炼了我们运用软件的能力,实现了从理论与实际的结合。经过两个星期课程设计制作,过程之曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时满腹激情到最后汗水背后的复杂心情,点点滴滴令我回味无穷。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过本次课程设计,我才真正领略到“艰苦奋斗”这一词的真正含义。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会。我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋。更加激发了我们对后续专业知识的学习兴趣。对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次课程设计的过程必将成为我人生旅途上一个非常美好的回忆!通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务。同时在此忠心的感谢老师为我们提供了这样一次难得的锻炼机会。4.4 误差分析 在本课程设计中设置DS18B20的分辨率为默认的12位分辨率,其可分辨温度为:0.0625。课程设计功能要求中,要求精确到小数点后两位,读数精度为0.01。由此可知这中间存在着的误差可能的来源有:(1)对所测温度数据进行处理时选择性的只保留了两位小数; (2)由DS18B20的分辨率及其本身所决定。减小误差的方法:从分辨率来看12位分辨率已是DS18B20的最大分辨率,所以无法通过加大分辨率来减小误差,但我们可以通过显示三位或者更多位小数,在数据处理过程中做到减小误差。结束语 在本次课程设计中也遇到了很多问题,比如说:在Keil里调试好的程序载入单片机中运行时会出现问题等。这些问题是在今后的学习和工做中都有可能遇到的,应努力掌握解决的方法。本课程设计的数字温度计与传统的温度计相比,具有读数直观方便、测温范围广、测温准确、其输出温度采用数字显示等优点。系统上电或按键复位后能自动显示系统提示符“P.”,进入测温准备状态。当按下S1键时,温度计开启,数码管显示当前温度值,并显示小数点后两位,当再次按下S1键时,关闭温度计,数码管显示提示符“P.”。通过测试和修改,该数字温度计完成了设计任务,符合设计要求。致谢通过这次课程设计我对单片机有了系统的了解,也有了新的认识,从以前的知其然到现在的知其所以然是这次课程设计最大的收获。 此次课程设计,使我更加扎实的掌握了有关单片机方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践是检验真理的唯一标准,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。当然,此次课程设计的成功也离不开老师和同学的诸多帮助,在此表示衷心的感谢。参考文献1 谢自美.电子线路设计实验测试第三版 武汉:华中科技大学出版 社,2006年. 50130 Xie zimei.Electronic circuit design, experiment, testing M the third edition of wuhan: huazhong university press, 2006. 50 1302 李广弟, 朱月秀,冷祖祁. 单片机基础M.第三版. 北京:北京航空航天大学出版社, 2007.1260 Li Guangdi. Zhu Yuexiu. Leng zuqi. Microcontroller based on M.3rd ed.Beijing: Beijing Aerospace University Press, 2007. 12603 康华光. 电子技术基础(模拟部分)M.第五版.武汉:华中科技大学出版社,2007.20100 kang huaguang. Electronic technology foundation (analog part) M. Fifth edition. Wuhan: huazhong university of science and technology press, 2007.20 100附录AAD原理图 CAD原理图附录B元器件布局图附录CPCB顶层布线图PCB底层布线图附录D元件清单序号名称型号数量1单片机AT89S521块2开关六脚按键式1个3传感器DS18B201个4数码管PLTF-5461BS1个5晶振12MHz1个6三极管85504个7排阻10K1个8电阻0.47K12个9电阻1K2个10电阻4.7K1个11电阻0.2K1个12电容1044个13电容33pF2个14电容22F1个15二极管LED1个17下载口ISP1个18键盘独立式2个19电源接口USB1个20万能板1块21杜邦线3根22短路帽3个附录E程序清单;*;项目名称:数字温度计的设计;设计者:;设计日期:2014年06月07日;功能要求:该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。测量温度范围099,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态.;*;堆栈栈底7FH;*;LED数码管显示器设定;P0.7-P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a;P2.3-P2.0位控线,从左至右(LED3,LED2,LED1,LED0);显示缓冲区设定从左至右依次为7BH,7AH,79H,78H(LED3,LED2,LED1,LED0);*;独立式键盘设定;按键S1接在P1.0口线;*;子程序;DIR(数码管显示子程序);键盘扫描子程序KEY(判断是否有键按下);DELAY(1毫秒延时子程序);DELAY2MS(2毫秒延时子程序);READ_TEMP(读温度程序);RESET_PULSE( DS18B20的复位子程序);WRITE(DS18B20的写入子程序);READ(DS18B20的读取子程序);DISPLAY(显示数据子程序);PROCESS(温度处理子程序);*;常数表格;DSER(共阳数码管字型代码表);DSER1(系统提示符P.字型代码序号表);TABLE_DP1(小数点后第一位字型代码表);TABLE_DP2(小数点后第二位字型代码表);*;键功能程序;KEYAA(按键S1的键功能程序);*;伪指令定义区DATA_BUS BITP3.0FLAGBIT00H;标志位TEMP_LEQU 30H;温度值低字节TEMP_HEQU31H;温度值高字节TEMP_DPEQU32H;温度小数TEMP_INTEQU33H;温度值整数TEMP_SHIEQU34H;温度十位数TEMP_GEEQU35H;温度个位数DIS_SHIEQU36H;显示十位数DIS_GEEQU37H;显示个位数DIS_DP1EQU38H ;显示第一位小数DIS_DP2EQU39H;显示第二位小数;*;系统起始程序区 ORG 0000HSTART:LJMP MAIN;*;系统监控程序区 ORG 0100HMAIN:MOVSP, #7FH ;确立堆栈区 MOV PSW, #00H ;通用寄存器组为第0组 MOV R0, #20H ;用户RAM区首地址 MOV R7, #96 ;RAM区单元个数ML: MOV R0, #00H ;初始化RAM INC R0 DJNZ R7, MLPL: MOVR0,#78H ;显示缓冲存储单元首地址 MOVDPTR,#DSER1 ;提示符P.字型代码表首地址TT: CLRA MOVCA,A+DPTR ;查表送字型代码 MOVR0,A INCR0 INCDPTR CJNER0,#7CH, TTTT1: LCALLDIR ;调显示子程序显示提示符P. LCALLKEY ;调键扫描子程序 JB20H.0,KEYAA LJMPTT1;*;键功能程序;按键S1的功能程序名为KEYAA;实现功能进入温度测试KEYAA:LCALLREAD_TEMP ;调读温度程序 LCALLPROCESS;调数据处理程序 LCALL KEY JNB 20H.0, KEYAA LJMPDISPLAY;*;子程序区;数码管显示子程序DIR;7BH,7AH,79H,78H(LED3,LED2,LED1,LED0)DIR: PUSHPSW SETB RS1 ;改变当前寄存器组为组2 CLR RS0 MOVR0,#78H ;显示缓冲存储单元首地址 MOVR3,#01H ;从右至左显示 MOVA,R3 MOVDPTR,#DSERLD0: MOVP2,A MOVA,R0 ;11送累加器ADIR0: MOVCA,A+DPTR ;查表显示P.DIR1: MOVP0,A LCALLDELAY ;延时1毫秒 INCR0 ;获得新的显示缓冲单元地址 MOVA,R3 ;位控码送A JBACC.3,LD1 ;循环没有结束则继续 RLA ;获得新的位控码 MOV R3,A ;保存新的位控码 LJMPLD0LD1: CLR RS1 CLR RS0 ;恢复当前寄存器组的组号 POPPSW RET;*;延时1ms子程序(晶振频率12MHz)DELAYDELAY:MOVR4,#02HLOOP4:MOVR5,#0FFHLOOP3:NOP NOP DJNZR5,LOOP3 DJNZR4,LOOP4 RET;*;读温度程序READ_TEMPREAD_TEMP:LCALL RESET_PULSE ;调用复位脉冲程序 MOV A, #0CCH ;跳过ROM命令 LCALL WRITE MOV A, #44H ;读温度 LCALL WRITE LCALL DISPLAY;显示温度 LCALL RESET_PULSE;调用复位脉冲程序 MOV A, #0CCH ;跳过ROM命令 LCALLWRITE MOVA, #0BEH;读缓存命令 LCALL WRITE LCALLREAD RET;*;DS18B20的复位子程序RESET_PULSERESET_PULSE:RESET: SETBDATA_BUS NOP CLRDATA_BUS ;主机发出延时511微秒的复位低脉冲 MOV R7,#255 DJNZR7,$ SETB DATA_BUS ;然后拉高数据线 MOV R7,#30 ;延时61微秒 DJNZR7,$ JNB DATA_BUS, SETB_FLAG CLRFLAG AJMPNEXTSETB_FLAG:SETB FLAG ;20H.0置1NEXT: MOV R7,#120 ;延时241微秒 DJNZR7,$ SETB DATA_BUS ;拉高数据线 JNBFLAG,RESET ;FLAG为1返回 RET;*;DS18B20的写入子程序WRITEWRITE:SETBDATA_BUS MOVR6,#8 ;一位共8位数据 CLRC ;C=0WRITING:CLRDATA_BUS ;总线低位,开始写入 MOVR7,#7 DJNZR7,$ ;延时15微秒 RRCA ;把字节DATA分成8个位,循环给C MOVDATA_BUS, C ;写入一个位 MOVR7, #23 DJNZR7,$ ;等待47微秒 SETB DATA_BUS ;重新释放总线 NOP DJNZR6,WRITING SETB DATA_BUS ;重新释放总线 RET;*; DS18B20的读取子程序READREAD:SETB DATA_BUS MOVR0,#TEMP_L ;低位存入TL,高位存入TH MOV R6,#8 ;数据一共有8位 MOVR5,#2 ;读取两个字节的数字 CLRCREADI

温馨提示

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

评论

0/150

提交评论