课程设计(论文)数字温度传感器测温显示系统说明书_第1页
课程设计(论文)数字温度传感器测温显示系统说明书_第2页
课程设计(论文)数字温度传感器测温显示系统说明书_第3页
课程设计(论文)数字温度传感器测温显示系统说明书_第4页
课程设计(论文)数字温度传感器测温显示系统说明书_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、北京交通大学机械与电子控制工程学院数字温度传感器测温显示系统说明书学院:机械与电子控制工程学院班级:组长:组员:时间:2011-7-1目录任务书-3摘要-4正文-4总体设计方案第1章 主控制器1.1at89c51 特点及特性-41.2管脚功能说明-51.3振荡器特性-71.4芯片擦除-7第2章 温度采集部分设计2.1.ds18b20 技术性能描述-72.2.ds18b20 管脚排列及内部结构-82.3.ds18b20 工作原理-82.4.ds18b20 控制原理-112.5.ds18b20 与单片机地接口电路-12第3章 硬件电路与系统软件的设计及分析3.1.主板电路-133.2.软件程序分析

2、(流程图)-14第4章 总结与体会-19参考文献-20附录-21任务书扩展数字温度传感器ds18b20进行温度检测,显示器采用六位共阴极数码管显示,设计按键4个。控制系统能够实现:1、系统实时检测室内温度并在数码管上显示;2、采用按键对温度控制的上下限进行设定(用4个按键分别对最低限、最高限温度值进行增一减一操作);3、当超过温度上限时,蜂鸣器报警(或绿色发光二极管亮);低于下限时,红色发光二极管亮。任务分配:工作分配表软硬件设计及仿真,协调工作焊接电路板,上机调试课程设计论文的编写ppt制作在设计过程中随时需要查找资料摘要随着现代社会的发展,单片机在我们的日常生活中扮演了越来越重要的角色。它

3、已逐渐深入到我们生活,工作等各个领域。其中,数字温度传感器就是一个很好的例子。与传统温度计相比,数字温度传感器具有读数方便,测量范围广,测量准确等特点。本次课程设计就为大家详细介绍基于单片机控制的数字温度传感器控制系统。它可以设置温度控制的上下限,当温度高于上限时,蜂鸣器报警,当低于下限时,发光二极管发光。本文介绍了数字温度传感器ds18b20的结构特征及控制方法,并对以此传感器和89c51单片机为控制器构成的温度控制系统的工作原理及程序设计进行了相关介绍。正文关键词:蜂鸣器、发光二极管、数字温度传感器ds18b20、at89c51单片机第1章 主控制器1.1.at89c51 特点及特性4k字

4、节flash存储器的低电压、高性能cmos 8位微处理器。它是带2k字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,at89c2051是它的一种精简版本。at89c单片机为很多统嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚排列如图所示:主要特性:与mcs-51 兼容4k字节可编程flash存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0h

5、z-24mhz三级程序存储器锁定1288位内部ram32可编程i/o线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路1.2.管脚功能说明vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏极开路双向i/o口,每脚可吸收8ttl门电流。当p0口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流

6、。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。

7、p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,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(外部数据存储器

8、写选通) p3.7 /rd(外部数据存储器读选通) p3口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才

9、起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振

10、荡器的输出。1.3.振荡器特性: xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。1.4.芯片擦除:整个perom阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ale管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,at89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持

11、两种软件可选的掉电模式。在闲置模式下,cpu停止工作。但ram,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存ram的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 第2章 温度采集部分设计2.1.ds18b20 技术性能描述独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯。测温范围为55+125,固有测温分辨率0.5。支持多点组网功能,多个ds18b20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。工作电源: 35v/dc。 在使

12、用中不需要任何外围元件;测量结果以912位数字量方式串行传送;不锈钢保护管直径 6 。适用于dn1525, dn40dn250各种介质工业管道和狭小空间设备测温。pvc电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为3.0 v至5.5 v 无需备用电源 测量温度范围为-55 c至+125 。华氏相当于是-67 f到257华氏度 -10 c至+85 c范围内精度为0.5 c。ds18b20可以程序设定912位

13、的分辨率,精度为0.5c,温度转换为12位数字格式最大值为750毫秒。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在eeprom中,掉电后依然保存。2.2.ds18b20 管脚排列及内部结构ds18b20引脚定义:(1)dq为数字信号输入/输出端; (2)gnd为电源地; (3)vdd为外接供电电源输入端(在寄生电源接线方式时接地)。ds18b20内部结构主要由四部分组成:64位光刻rom、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。该装置信号线高的时候,内部电容器 储存能量通由1线通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到

14、来重新充电。 ds18b20的电源也可以从外部3v-5 .5v的电压得到。2.3.ds18b20 工作原理ds18b20的读写时序和测温原理与ds1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 ds18b20测温原理如图3所示。 ds18b20 内部结构图图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值

15、减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。 ds18b20测温原理框图ds18b20有4个主要的数据部件: (1)光刻rom中的64位序列号是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码。64位光刻rom的排列是:开始8位 (28h)是产品类型标号,接着的48位是该ds18b20自身的序列号,最后8位是前面56位的循环冗余校验码(

16、crc=x8+x5+x4+1)。光刻rom的作用 是使每一个ds18b20都各不相同,这样就可以实现一根总线上挂接多个ds18b20的目的。 (2)ds18b20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以 0.0625/lsb形式表达,其中s为符号位。 ds18b20温度值格式表这是12位转化后得到的12位数据,存储在18b20的两个8比特的ram中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实

17、际 温度。 例如+125的数字输出为07d0h,+25.0625的数字输出为0191h,-25.0625的数字输出为fe6fh,-55的数字输出为fc90h 。(3)ds18b20温度传感器的存储器 ds18b20温度传感器的内部存储器包括一个高速暂存ram和一个非易失性的可电擦除的eepram,后者存放高温度和低温度触发器 th、tl和结构寄存器。 (4)配置寄存器 该字节各位的意义如下:r1r0分辨率温度最大转换时间009位93.75ms 0110位187.5ms 1011位375ms 1112位750ms 温度分辨率设置表寄存器内容 字节地址温度值低位 (ls byte)0温度值高位 (

18、ms byte)1高温限值(th)2低温限值(tl)3配置寄存器4保留5保留6保留7crc校验值8ds18b20 暂存寄存器分布2.4.ds18b20 控制原理根据ds18b20的通讯协议,主机(单片机)控制ds18b20完成温度转换必须经过三个步骤:每一次读写之前都要对ds18b20进行 复位操作,复位成功后发送一条rom指令,最后发送ram指令,这样才能对ds18b20进行预定的操作。复位要求主cpu将数据线下拉500微秒,然后 释放,当ds18b20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主cpu收到此信号表示复位成功。指 令 约定代码功 能读rom33h读ds

19、1820温度传感器rom中的编码(即64位地址) 符合 rom55h发出此命令之后,接着发出 64 位 rom 编码,访问单总线上与该编码相对应的 ds1820 使之作出响应,为下一步对该 ds1820 的读写作准备。 搜索 rom 0foh用于确定挂接在同一总线上 ds1820 的个数和识别 64 位 rom 地址。为操作各器件作好准备。 跳过 rom0cch忽略 64 位 rom 地址,直接向 ds1820 发温度变换命令。适用于单片工作。告警搜索命令0ech执行后只有温度超过设定值上限或下限的片子才做出响应。 rom指令表指 令 约定代码功 能温度变换44h启动ds1820进行温度转换,

20、12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节ram中。 读暂存器 0beh 读内部ram中9字节的内容 写暂存器 4eh 发出向内部ram的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。 复制暂存器 48h 将ram中第3 、4字节的内容复制到eeprom中。 重调 eeprom0b8h将eeprom中内容恢复到ram中的第3 、4字节。 读供电方式 0b4 读ds1820的供电模式。寄生供电时ds1820发送“ 0 ”,外接电源供电 ds1820发送“ 1 ”。 ram指令表2.5.ds18b20 与单片机的接口电路 ds18b20可以采用

21、两种方式供电,一种是采用电源供电方式,此时ds18b20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如所示单片机端口接单线总线,为保证在有效的ds18b20时钟周期内提供足够的电流,可用一个mosfet管来完成对总线的上拉。当ds18b20处于写存储器操作和温度a/d转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时vdd端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于ds18b20 是在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序要求。ds18b20 有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定

22、义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。ds18b20 与单片机的接口电路ds18b20 操作时序第3章 硬件电路与系统软件的设计及分析硬件设计思路:1.p1.0与ds18b20的输入/输出口dq连接;2.p1.2、p1.3、p1.4、p1.5分别连接key1、key2、key3、key4,分别控制最低限温度和最高限温度值的增一和减一操作;3.p1.6用来控制蜂鸣器的开闭,p1.

23、7用来控制红色发光二极管的亮暗。软件的设计思想:1.当对最低限赋得初值大于或等于最高限初值时,系统打开时会显示错误“eroor”,通过直接更改可以消除错误;2.在更改温度限值的时候,会控制最高限温度值大于最低限温度值,最低限温度值小于最高限温度值;应用89c51(52)单片机设计并制作一个单片机最小系统,达到如下基本要求: 1、具有上电复位和手动复位功能。 2、使用单片机片内程序存储器。 3、具有基本的人机交互接口。按键输入、led显示功能。 4、具有一定的可扩展性,单片机i/o口可方便地与其他电路板连接。软件设计的设计思路是:主程序进行键盘扫描,判断采用何种方式进行显示,初始化状态为逐字显示

24、,判断后进入相应额方式显示子程序。设置相应的程序入口,反复调用显示子程序,并在显示过程中反复调用键盘扫描子程序进行延迟,并通过判断是否退出相应的方式显示子程序,进入主程序。设计程序过程中能很好地提高按键响应速度。3.1.主板电路3.2.软件程序分析(流程图)程序主要包括主程序、显示子程序、键扫描程序、检测程序等。主程序流程图显示子程序流程图键扫描程序流程图检测程序流程图第4章 总结与体会我们小组经过近两周的努力,终于完成了数字温度传感器课程设计的任务。在设计过程中我们遇到许多问题,以前只是单纯的编写一些程序或者说学习一些书本上的知识,但这次我们要将理论付诸于实践,许多意想不到的问题便会接踵而至

25、。 通过反复的调试与小组成员之间的讨论,我们终于将完成了课设中亮灯,蜂鸣,按键等内容的任务,还对89c51单片机和ds18b20温度传感器有了更加深入的了解。通过这次单片机课程设计,我们有了不少的收获,总结了以下几点:1、培养了我们查阅手册和文献资料的良好习惯2、培养了我们独立分析和解决实际问题的能力。理论必须联系实际才能发挥它真正的作用。学习知识不能只是纸上谈兵,我们应该以运用为目的。3、增强与同组的组员的团结合作的精神团。队合作很重要。在一个小组中,每个人都有自己擅长的模块,如果合理的分配任务,那么整个工作就会事半功倍。4、更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方

26、法.总之,我们通过这次课设收获颇多,对于今后这方面的学习我们也会更加的努力!参考文献:1赵嘉蔚.单片机原理与接口技术.北京:清华大学出版社,2010.22徐爱钧.单片机原理实用教程:基于proteus虚拟仿真(第2版).北京:电子工业出版社,20113刘君华.传感器技术及应用实例.北京:电子工业出版社,20084侯国章.测试与传感技术m.哈尔滨:哈尔滨工业大学出版社.2000:122-1245贾振国.ds1820及高精度测量的实现j.电子技术应用.2000.6谢维成.单片机原理与应用d.北京:清华大学.20037黄贤,郑筱霞,曲波等.传感器实际应用电路设计m.成都:电子科技大学出版社.1997

27、附录源程序key1 bit p1.2key2 bit p1.3key3 bit p1.4key4 bit p1.5minh data 6chminl data 6dhmaxh data 6ehmaxl data 6fhdq bit p1.0 org 0000h ajmp main org 0030hmain: mov sp,#60h ; mov dptr,#0100h ;赋命令/状态寄存器地址 mov a,#00001110b ;设置a、b口为基本输入输出口,并b口为输出口,c口为输出口 movx dptr,a mov 6ch,#09h ;给最低温度限赋初值 mov 6dh,#05h mov

28、6eh,#09h ;给最高限温度赋初值 mov 6fh,#09h mov a,6ch mov b,#10 mul ab add a,6dh mov 30h,a mov a,6eh mov b,#10 mul ab add a,6fh mov 31h,a up: mov a,31h cjne a,30h,gonow ;比较最高限温度与最低限温度值up2: acall display2 ;两温度相等调用显示错误程序 acall key acall check sjmp up ;不断进行比较gonow: jc up2 ;判断进位标志是否为1,如果为1,即最高限温度小于最低限温度,也调用显示错误程序

29、clr p1.6 ;位清零,灯灭 clr p1.7 ;start: lcall readt ;调用温度值子程序 lcall prodata ;调用数据处理子程序,组合温度数据 mov 24h,#20h ;显示温度值并延时loop: acall key acall display ;调用显示子程序 acall check ;调用检测温度是否超过范围程序 djnz 24h,loop ajmp start ;转至start循环readt: push acc push psw setb dq lcall ini ;ds18b20初始化 mov a,#0cch ;跳过rom序列码匹配 lcall wr1

30、8b20 mov a,#44h ;发送温度转换命令 lcall wr18b20 lcall ini ;ds18b20初始化 mov a,#0cch ;跳过rom序列码匹配 lcall wr18b20 mov a,#0beh ;发送读温度命令 lcall wr18b20 lcall rd18b20 ;读俩字节温度值 pop psw pop acc ret;温度转换子程序prodata:push acc push psw ;取两字节温度值组合存入22h单元 mov a,20h anl a,#0f0h ;取第一字节的高4位 mov r5,a mov a,21h anl a,#0fh ;取第二字节的低

31、4位 orl a,r5 swap a mov 22h,a mov a,22h ;温度值存入22h单元 mov b,#0ah ;将22h单元的温度值转换为bcd码 div ab mov 70h,a ;十位数存入70h单元 mov 71h,b ;个位数存入71h单元 pop psw pop acc retini: setb dq ;ds18b20初始化子程序 nop clr dq mov r0,#0fbh djnz r0,$ setb dq mov r0,#24h djnz r0,$ jnb dq,tsr1 ;dq是否为一,有无应答信号 ljmp tsr2tsr1: setb f0 ;置标志位,表

32、示ds18b20存在 ljmp tsr3tsr2: clr f0 ;清标志位,表示ds18b20不存在 ljmp tsr4tsr3: mov r0,#96h djnz r0,$tsr4: setb dq retwr18b20: mov r2,#08h ;编写18b20子程序 clr cwr1: clr dq mov r3,#06h ;延时13us djnz r3,$ rrc a mov dq,c mov r3,#10h ;延时43us djnz r3,$ setb dq nop djnz r2,wr1 setb dq retrd18b20: mov r4,#02h ;读18b20子程序 mov

33、 r1,#20h ;从18b20读两字节数据,存入20h和21h单元rd1: mov r2,#08hrd2: clr c setb dq nop nop clr dq nop nop nop setb dq mov r3,#07h ;延时15us djnz r3,$ mov c,dq mov r3,#16h ;延时45us djnz r3,$ rrc a djnz r2,rd2 mov r1,a inc r1 djnz r4,rd1 ret;键扫描程序key: jnb key1,kkkey2 ;判断key1键是否按下,未按下则查看key2键是否按下 jb key1,$ ;等待key1键释放 m

34、ov a,30h ;将温度最低限值送入累加器 add a,#01h ;给累加器值加一 cjne a,#100,next1 ;将累加器值与100相比,不相等执行next1 mov a,#00h ;如果相等,将累加器重置为0next1: clr c ;清楚进位标志 cjne a,31h,dplay1 ;将累加器内容与温度最高限相比,不相等执行dplay1 sjmp returndplay1: jc dplay3 ;判断进位标志,为1即累加器内容小于最高限温度值,则dplay3 mov a,30h ;否则,将最低限温度值仍给adplay3: mov 30h,a sjmp returnkkkey2:

35、jnb key2,kkkey3 ;判断key2键是否按下,未按下则查看key3键是否按下 jb key2,$ ;等待key2键释放 mov a,30h ;将温度最低限值送入累加器 jz next3 ;判断累加器内容是否为0,为0执行next3,即保持原值 clr c ;累加器内容不为0,进位标志清零 subb a,#01h ;将累加器内容减一 mov 30h,a ;将减一所得数送回最低限温度单元 sjmp return ;next3: mov 30h,#00 ;累加器内容为0,则让最低限温度单元内容继续保持0 sjmp return ;kkkey3: jnb key3,kkkey4 ;判断ke

36、y3键是否按下,未按下则查看key4键是否按下 jb key3,$ ;等待key3键释放 mov a,31h ;将温度最高限值送入累加器 add a,#01h ;给累加器值加一 cjne a,#100,next2 ;将累加器内容与100相比,不相等执行next2 mov a,#99 ;如果相等,将99送给累加器next2: mov 31h,a ;将累加器内容送给最高限温度单元 sjmp return ;kkkey4: jnb key4,return ;判断key4键是否按下,未按下则返回 jb key4,$ ;等待key4键释放 mov a,31h ;将温度最高限值送入累加器 jz retur

37、n ;判断累加器内容是否为0,如果为0,则返回,保持原值不变 clr c ;累加器内容不为0,则将进位标志清零 subb a,#01h ;将累加器内容减一 clr c ;再清除进位标志,准备比较累加器内容与最低限温度单元内容的大小关系 cjne a,30h,dplay2 ;将减一所得数与最低限温度单元内容比较,不相等执行dplay2 mov a,31h ;如果相等,则将最高限温度值保持 sjmp return ;dplay2: jc return ;判断进位标志,进位标志为1,即保持原值 mov 31h,a ;进位标志为0,即累加器内容(最高温度限)大于最低限温度值,则将累加器内容送给 sjm

38、p return ;return: ret;显示子程序display:mov a,30h ;将30h(最低限温度)内容送入累加器 mov b,#10 ; div ab ; mov 6ch,a ;将十位数(最低限温度高位)存入6ch单元 mov 6dh,b ;个位数(最低限温度低位)存入6dh单元 mov a,31h ;将30h(最低限温度)内容送入累加器 mov b,#10 ; div ab ; mov 6eh,a ;将十位数(最高限温度高位)存入6ch单元 mov 6fh,b ;个位数(最高限温度低位)存入6dh单元 mov r0,#6ch ;将要显示内容首地址赋给r0movr2,#01h ;将控制最左一位亮的数赋给r2 mov a,r2 ;ld0:mov dptr,#0103h ;赋c口地址movx dptr,a ;将累加器(控制某位亮)内容送到c口 mov dptr,#dtab ;将查表程序首地址给dptr mov

温馨提示

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

评论

0/150

提交评论