毕业设计数字温度计的设计.doc

上传人:文库蛋蛋多 文档编号:3974987 上传时间:2023-03-30 格式:DOC 页数:37 大小:519.50KB
返回 下载 相关 举报
毕业设计数字温度计的设计.doc_第1页
第1页 / 共37页
毕业设计数字温度计的设计.doc_第2页
第2页 / 共37页
毕业设计数字温度计的设计.doc_第3页
第3页 / 共37页
毕业设计数字温度计的设计.doc_第4页
第4页 / 共37页
毕业设计数字温度计的设计.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《毕业设计数字温度计的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计数字温度计的设计.doc(37页珍藏版)》请在三一办公上搜索。

1、 毕 业设计(论 文) 级 机电一体化 专业题 目: 数字温度计的设计 毕业时间: 学生姓名: 指导教师: 班 级: 2010 年 11月20日 毕业论文(设计)成绩评定表姓名班级专业机电一体化指导教师第一次指导意见年 月 日指导教师第二次指导意见年 月 日指导教师第三次指导意见年 月 日指导教师评语及评分 成绩: 签字(盖章) 年 月 日答辩小组评价意见及评分成绩: 签字(盖章) 年 月 日教学系毕业实践环节指导小组意见签字(盖章) 年 月 日学院毕业实践环节指导委员会审核意见签字(盖章) 年 月 日说明:1、以上各栏必须按要求逐项填写。2、此表附于毕业论文 (设计)封面之后。数字温度计的设

2、计摘要:在一些温控系统电路中,广泛采用的是通过热电偶、热电阻或PN结测温电路经过相应的信号调理电路,转换成AD转换器能接收的模拟量,再经过采样保持电路进行AD转换,最终送入单片机及其相应的外围电路,完成监控。但是由于传统的信号调理电路实现复杂、易受干扰、不易控制且精度不高。本设计采用一种新型的可编程温度传感器(DS18B20),不需复杂的信号调理电路和AD转换电路能直接与单片机完成数据采集和处理,实现方便、精度高,可根据不同需要用于各种场合。关键词:AT89S51;MAX232;传感器DS18B20目录一、绪论1(一)单片机概述1(二)选题背景及设计意义2(三)设计方案论证3二、硬件设计 4(

3、一)各元器件绍4(二)硬件电路设计8三、软件系统设计 15(一)各部分流程图15(二)汇编语言程序19参考文献31致谢32一 、绪论(一)单片机概述单片机的结构特征是将组成计算机的基本部件微型化集成在一块晶体芯片上,构成一台功能独特的单片微型计算机。一台典型的单片机的基本组成结构包括中央处理器(CPU),存储器(ROM和RAM),并行I/O口,串行I/O口,定时器/计数器,定时电路及元件。由此可见,单片机在结构上突破了常规的按逻辑功能划分芯片。由多片构成了微型计算机的设计思想,将构成计算机的许多功能集成在一块晶体芯片上。1.单片机的特点(1)受密度限制:芯片存储器存储容量较小,一般ROM小于4

4、/ 2KB,RAM小于256字节。(2)可靠性良好:单片机是按照工业控制要求设计的,其抗工业噪声干扰优于一般的 CPU,程序指令及常数数据都烧在ROM内,其许多信号通道均在同一芯片内,因此可靠性较高。(3)易扩充:单片机具有一般微电脑所必须的器件,可以扩充为各种规模的微电脑系统。(4)控制功能强:为了满足工业控制要求,单片机指令除了输入/输出控制指令,逻辑判断指令外,还有更为丰富的条件分支跳跃指令。2.单片机的应用领域(1)家用电器领域:目前国内各种家用电器已普遍采用单片机控制取代传统的控制电路,做成单片机控制系统。(2)办公自动化领域:现代办公室所使用的大量通信,信息产品多数采用了单片机。在

5、商业营销系统已广泛使用的电子秤,收款机,条形码阅读器,仓库安全监控系统,商场保安系统,空气调节系统等,目前已纷纷采用单片机构成专用系统。(3)工业自动化:如工业过程控制,过程监测,工业控制器及机电一体化系统等,这些系统除一些小型工控机之外,许多都是以单片机为核心的单机或多机网络系统。(4)智能仪表与集成智能传感器传统的控制电路:目前各种变送器,电气测量仪表普遍采用单片机应用系统替代传统的测量系统,使测量系统具有各种智能化功能。将单片机和传感器相结合可以构成新一代的智能传感器。他将传感器初级变换后的电量做进一步的变换,处理,输出能满足远距离传送,能与微机接口的数字信号。(5)汽车电子与航空航天电

6、子系统:通常在这些电子系统中的集中显示系统,动力监测控制系统,自动驾驭系统,通信系统,以及运行监视器(黑匣子)等,都要都成冗余的网络系统。(二)选题背景及设计意义1.选题背景最早的温度计是在1593年由意大利科学家伽利略发明的。他的第一只温度计是一根一端敞口的玻璃管,另一端带有核桃大的玻璃泡。使用时先给玻璃泡加热,然后把玻璃管插入水中。随着温度的变化,玻璃管中的水面就会上下移动,根据移动的多少就可以判定温度的变化和温度的高低。这种温度计,受外界大气压强等环境因素的影响较大,所以测量误差大。荷兰人华伦海特在1709年利用酒精,在1714年又利用水银作为测量物质,制造了更精确的温度计。把一定浓度的

7、盐水凝固时的温度定为0,把纯水凝固时的温度定为32,把标准大气压下水沸腾的温度定为212,用代表华氏温度,这就是华氏温度计。 2. 设计意义本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。它具有结构简单,不需外接元件,采用一根I/ O 数据线既可供电又可传输数据、并可由用户设置温度报警界限等特点,可广泛用于食品库、冷库、粮库等需要控制温度的地方。该设计控制器使用单片机AT 89S51,测温传感器使用DS18B20,,实现温度显示,能准确达到以下要求:(1)测温范围-55125 (2)精度误差

8、小于0.5(3)LED数码管直读显示 (4)可以任意设置温度的上下限报警功能(三)设计方案论证方案一:本电路是温度计的设计,在测温电路中利用热敏电阻器件的感温效应,将随被测温变化的电压或电流采集过来,进行A/D转换后,用单片机进行数据处理,经显示电路就可以显示出来。方案二:在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。方案三:基于单片机的温度传感器设计的数字温度计已经很成熟,各种精度很高的温度计不断推出。数字温度计要求检测的精度必须高于

9、控制的精确度,否则无从实现控制的精度要求。所以精度已经成为数字温度计的一项重要的性能参数。因此追求高精度是数字温度计的一个目标。不仅如此,检测还涉及国计民生各个部门,可以说在所以科学技术领域无时不在进行检测。科学技术的发展和检测技术的发展是密切相关的。现代化的检测手段能达到的精度、灵敏度及测量范围等,在很大程度上决定了科学技术的发展水平。同时,科学技术的发展达到的水平越高,又为检测技术、传感器技术提供了新的前提手段。目前市场上出现了很多传感器,很多精度高的传感器已经出现,而且精度越来越高。数字温度计未来将会更精确、更人性化,为我们做出更多贡献。为此我们选择方案三的设计如图1所示单片机复位报警点

10、按键时钟振荡主控制器LED显示温 度传感器图1 设计方案温度计电路设计总体设计方框图如图所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用四位LED数码管以串行口传送数据实现温度显示。二 硬件设计(一)各元器件介绍1.AT89S51 AT89S51 是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能 CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造计术制造,与工业标准的 MCS-51指令集和输出管脚相兼容,并有ISP管脚,只需要将单片机的ISP引脚接入专用的下载线上就可以编程。由于将多功能8位CPU和闪烁存储器组合在这个芯片中,ATMEL的 AT89

11、S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89S51如图2所示图2 AT89S51(1)主要特性:a) AT89S51与MCS-51兼容b) 4K字节可编程FLASH存储器(寿命:1000写/擦循环) c) 全静态工作:0Hz-24KHzd) 三级程序存储器保密锁定e) 128*8位内部RAMf) 32条可编程I/O线g) 两个16位定时/器计数器h) 6个中断源i) 可编程串行通道j) 低功耗的闲置和调电模式k) VCC:供电电压l) GND: 接地 (2)各引脚及功能说明P0口:P0口为一个8位漏极开路双向I/O口。P0口能用于外部程序数据存储器,它

12、可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FALSH进行校验时,P0口输出原码,此时P0口外部必须被拉高。P1口: P1口是 一个内部提供上拉电阻的8位双向I/O口。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流。在FALSH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口。当P2口被写入“1”时,其管脚被内部上拉电阻拉高,且作为输入。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P2口在FLASH编程和校验时接收高八位地址信号和控制信号

13、。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口。当P3口写入“1”后,它们被内部上拉为高电平并用作输入。P3口同时为编程和校验接收一些控制信号。P3口除作I/O口使用外,还有特殊功能如下表所示 P3口特殊功能表P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(计时器0外部输入)P3.5T1(计时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁

14、存允许的输出电平用于锁存地址的低位字节。在FALSH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6.因此它可用作外部数据存储器时,将跳过一个ALE脉冲。如果想禁止ALE的输出可在SFR8EH地址上置0.此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器,注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电

15、平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入XTAL2:来自反向振荡器的输出ISP:在线编程引脚P1.5、P1.6、P1.7、RST四个引脚可以作为在系统编程引脚(3)振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动件,XTAL2应不接。其余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证,脉冲的高低电平要求的宽度。2.MAX232MAX232是一种双组驱动

16、器接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA-232-E电平,每个接收器将EIA/TIA-232-E 电平输入转换为5 V TTL/CMOS电平。这些接收器具有1.3 V的典型门限及0.5V的典型迟滞,而且可以接收30的输入,每个驱动器将TTL/CMOS输入电平转换为 EIA/TIA-232-E电平,其主要特点为:(1)单5V电源工作(2)LinBiCMOSTM工艺技术(3)两个驱动器及两个接收器(4)30V输入电平(5)低电源电流:典型值是8mA(6)符合ANSI标准EIA/TIA-232-E及ITU推荐标准 V.28 (7)ESD保护大于MIL-STD-8

17、83 标准的2000V3.DS18B20 (1)DS18B20基本知识DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。(2)DS18B20产品的特点:a)只要求一个端口即可实现通信。b)在DS18B20中的每个器件上都有独一无二的序列号。c)实际应用中不需要外部任何元器件即可实现测温。d)测量温度范围在55。C到125。C之间。e)数字温度计的分辨率用户可以从9位到12位选择。f)内部有温度上、下限告警设置。DS18B20采用脚PR35封装或脚SO

18、IC封装,其内部结构框图如图3所示。C64 位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器VddI/O图3 DS18B20内部结构(二)硬件电路的设计1.单片机最小系统(1)时钟电路时钟电路用于产生单片机工作所需的时钟信号,时序是指令执行中各信号之间的相互关系。单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在AT89S51单片机内部带有时钟电路,因此,只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件(晶体振荡器和电容),即可构成一个稳定的自激振荡器。在A

19、T89s51芯片内部有一个高增益反相放大器,而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容。在单片机的XTAL1脚和XTAL2脚之间并接一个晶体振荡器就构成了内部振荡方式。AT89S51单片机内部有一个高增益的反相放大器,XTAL1为内部反相放大器的输入端,XTAL2为内部反相放大器的输出端,在其两端接上晶振后,就构成了自激振荡电路,并产生振荡脉冲,振荡电路输出的脉冲信号的频率就是晶振的固有频率。在实际应用中通常还需要在晶振的两端和地之间各并上一个小电容。AT89S51的时钟电路如图4所示图4 AT89S51的时钟电路图中,电容器C1、C2常称为微调电容,其作用有三个:快速

20、起振、稳定振荡频率、微调振荡频率。AT89S51单片机允许外接033M Hz的晶振,电容器C1、C2可取5pF33pF。一般情况下,使用频率较低的晶振时,C1、C2的容量可选大一点。为了更好地保证振荡器稳定可靠地工作,在实际装配电路时,晶振X和电容C1、C2应尽可能地安装在XTAL1、XTAL2引脚附近。内部振荡方式所得到时钟信号比较稳定,在实际电路中,一般是选用内部振荡方式。用晶振和电容构成谐振电路。电容大小与晶振频率和工作电压有关。但电容的大小影响振荡器的稳定性和起振的快速性,为了提高精度,本实验板采用30pF的电容作为微调电容。在设计电路板时,晶振、电容等均应尽可能靠近芯片,以减小分布电

21、容,保证振荡器振荡的稳定性。(2)复位电路复位是单片机的初始化操作,其目的是使CPU和系统中各部分处于一个确定的状态,并从这一状态开始工作。系统上电路或死机后都要进行复位操作。单片机复位时,将程序计数器PC初始化为0000H,表明复位后程序从0000H地址单元开始执行,同时复位时输出控制信号ALE,PSEN均为高电平。复位后,P0P3口输出高电平,且使准双向口均处于输入状态。复位不改变片内RAM单元的内容,但使各特殊功能寄存器SFR回复到初始状态,复位后各特殊功能寄存器值如表1所示:表1 主要特殊功能寄存器复位初始值表特殊功能寄存器 初始值特殊功能寄存器初始值ACC00HTCON00HB00H

22、TMOD00HPSW00HTL000HSP07HTH000HDPTR0000HTL100HP0P3FFHTH100HPCON0XXX 0000BT2CON00HAUXRXXX0 0XX0BT2MODXXXX XX00BAUXR1XXXX XXX0BRCAP2L00HIE0X00 0000BRCAP2H00HIPXX00 0000BTL200HSCON00HTH200HSBUFXXXX XXXXXBWDTRSTXXXX XXXXB上表中部分符号的含义如下:PSW=00H:表明复位后自动选择第0组工作寄存器组为当前工作寄存器SP=07H:表明堆栈指针指向片内RAM07H单元,堆栈的压入操作为先加后

23、压,所以第一个被压入的数据存放在08H单元中P0P3=FFH:表明各端口写入1,此时各端口既可作输入口,也可以作输出口AUXR=XXX0 0XX0:表明ALE引脚在CPU不访问外部存储器期间有脉冲信号输出AUXR1=XXXX XXX0:表明选择DPTR0作数据指针IE=00H:表明各中断均关闭TCON=00H:表明T0,T1 均被停止SCON=00H:表明串口处于方式0,允许发送,不允许接收PCON=00H:表明SMOD=0,波特率不加倍。PD=0,IDL=0,单片机处于正常工作方式。单片机的RST引脚为复位引脚,振荡电路正常工作后,RST端加上持续两个机器周期的高电平后,单片机就被复位。复位

24、电路有3种基本方式:上电复位,开关复位和看门狗复位。这里只介绍上电复位和开关复位。a)上电复位 所谓上电复位就是单片机只要一上电就自动实现复位操作。常用的上电复位电路如图5所示 (a) (b)图5单片机上电复位电路图图a、图b所示电路在本质上是一样,它们都是RC微分复位电路。由于单片机的RST端对地存在一个等效电阻R,图a中的微分电阻为R1与R的并联电阻,图b中的微分电阻取至RST端的等效电阻R。上电时,电源通过微分电阻对电容充电,由于电容两端电压不能突变,所以RST端出现一个正脉冲。过一段时间后,电容两端电荷充满,电容等效为开路,于是RST端所加电压为低电平,单片机完成复位。从图中可以看出,

25、RST端高电平持续时间取于RC电路的充电时间常数。合理选择C1和R1就可以实现上电复位。由于上电后,振荡电路起振要经历一个振荡建立时间,不同频率的振荡器,起振荡建立时间不同,所以不同振荡频率下,上述上电复位电路的参数不同。通常要求上电时RST复位高电平能持续10ms以上,R、C的取值一般为:C1=1030F,R1=1K10K当晶振频率为6MHz时,可取R1=1 K,C1=22F晶振频率为12MHz时,可取C1=10F,R1=8.2 Kb)开关复位开关复位是指通过接通按钮开关,使单片机进入复位状态。开关复位电路一般不单独使用。在应用系统设计中,若需使用开关复位电路,一般的做法是将开关复位与上电复

26、位组合在一起形成组合复位电路,上电复位电路完成上电复位功能,开关复位电路完成人工复位。这种组合复位电路如图6所示图6 单片机组合复位电路图图6中C1,R1构成了上电复位电路。上电复位后,电源经R1对C1充满电源,C1等效于开路,RST端为低电平;单片机正常工作。按开关K后,C1两端电荷经R2迅速放电,K断开后,由C1、R1及电源完成对单片机的复位操作。在上述电路中,R2的取值一般为0200,C1、R1按上电复位电路的设计而取值。复位电路的作用非常重要,能否成功复位关系但单片机系统能否正常运行的问题。如果振荡电路正常而单片机系统不能正常运行,其主要原因是单片机没有完成正常复位,程序计数器的值没有

27、回0,特殊功能寄存器没有回到初始状态。这时可以适当地调整上电复位电路的阻容值,增加其充电时间常数来解决问题。2.LED数码管显示电路单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(58、88点阵等)。 (1)静态显示方式LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字形码。送入一次字形码显示字形一直保持,直到送入新字形码为止

28、。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。(2)动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码

29、管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。用共阴LED显示器显示16进制数的编码如表2所示表2 共阴数码管码表0x3f0x060x5b0x4f0x660x6d0233450x7d0x070x7f0x6f0x770x7c6789AB0x390x5e0x790x710x00CDEF无显示3.硬件总电路的设计数字温度计硬件总电路图如图7所示图7 硬件总电路图三、系统软件设计(一)各部分流程图1.系统工作流程图如图8所示2.串行口中断流程图如图9所示3.T0口中断流程图如图10所示4.GET_TEMPER子程序流程图如图11所示(二)汇编语言程序;*;* 汇编语言程序 *

30、;*ENABLE EQU 00HDTSIGN EQU 01HSDSIGN EQU 02HHAVE EQU 03HPSHU EQU 04HLED0 EQU P0.0LED1 EQU P0.1LED2 EQU P0.2LED3 EQU P0.3WR1820 EQU P1.1SEG EQU P2WARNH0 EQU 31HWARNH1 EQU 32HTEMP0 EQU 34HTEMP1 EQU 35HDIS0 EQU 36HDIS1 EQU 37HDIS2 EQU 38HDIS3 EQU 39HSDAT EQU DWORK EQU WPAUSE EQU PERR EQU EORG 0000HAJMP

31、 MAINORG 000BHAJMP T0INTORG 0023HAJMP S_INT;*;* 主程序 *;*ORG 0030HMAIN: MOV SP,#40H ;堆栈栈底放50HMOV WARNH0,#30HMOV WARNH1,#00CALL T0INIT ;初始化T0CALL T1INIT ;初始化T1CALL SINIT ;初始化串口CLR ENABLE ;清使能标志CLR DTSIGN ;清数据标志JNB ENABLE,$ ;查询使能,无效则停机LCALL INT_ENLOOP: CALL DISPLY ;调用显示子程序JNB ENABLE,$ ;查询使能,无效则停机AJMP LO

32、OP;T0初始化T0INIT:ORL TMOD,#01HANL TMOD,#0F1H MOV TH0,#3CH MOV TL0,#0B0H MOV R7,#15H ;软件记数初值RET;T1初始化T1INIT:ORL TMOD,#20HANL TMOD,#02FHMOV TH1,#0FDHMOV TL0,#0FDHCLR ET1 ; 关T1中断SETB TR1 ; T1开始计数RET;串口初始化SINIT: ANL PCON,#7FHMOV SCON,#50HSETB EA ;开全局中断SETB ES ;开串口中断RET;开中断子程序INT_EN: SETB ET0 ;开T0中断SETB TR

33、0RET ;T0开始计数;关中断子程序INT_DS: CLR ET0 ;关T0中断CLR TR0 ;T0停止计数RET;*;* 显示子程序 *;*DISPLY: PUSH ACC ;保护现场PUSH 06HMOV A,TEMP1 ;温度整数部分送AMOV B,#100HDIV AB ;相除取百位MOV DIS3,A ;百位送DIS3MOV A, B ;余数送 AMOV B,#10DIV AB ;相除取十位MOV DIS2,A ;十位送DIS2MOV DIS1,B ;个位送DIS1MOV DIS0,TEMP0 ;小数部分送DIS0MOV DPTR,#ZIXING ;送字型码首地址MOV A,DI

34、S0 ;取小数MOVC A,A+DPTR ;取对应字型码SETB LED0SETB LED1SETB LED2SETB LED3CLR LED0MOV SEG, A ;送字型码CALL DELAY0MOV A,DIS1 ;取各位MOVC A,A+DPTR ;取对应字型码CLR ACC.7 ;清最高位显示小数点SETB LED0SETB LED1SETB LED2SETB LED3CLR LED1MOV SEG, A ;送字型码CALL DELAY0MOV A, DIS2 ;取十位MOVC A,A+DPTR ;取对应字型码SETB LED0SETB LED1SETB LED2SETB LED3C

35、LR LED2MOV SEG,A ;送字型码CALL DELAY0MOV A,DIS3 ;取百位JNB FSHU,ZHENG ;判断是否为正数MOV A,#16 ;如果不是正数送- ZHENG: MOVC A,A+DPTR ;取对应字型码SETB LED0SETB LED1SETB LED2SETB LED3CLR LED3MOV SEG, A ;送字型码CALL DELAY0OUTDIS: POP 06HPOP ACCRETZIXING: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;共阳数码管字型码DB 80H,90H,88H,83H,0C6H,0A1H

36、,86H,8EH,0BFH;延迟子程序DELAY0: MOV R6,#1FHDEL0: MOV R5,#0bhDEL1: NOPDJNZ R5,DEL1DJNZ R6,DEL0RET; *; * 串口中断 *; *S_INT: PUSH ACCJNB T I,RINT ;若不是发送中断则转接收中断处理CLR TI ;清发中断标志RINT: JBC RI,RXD ;判断是否收中断,若不是退出OUTSint: POP ACCRETIRXD: MOV A,SBUF ; 将输入缓冲送AJNB DTSIGN, COMMEND0 ;判断是否为上位机发送数据MOV R0,A ;若是数据送A里面的数到警报温度

37、RAMINC R0DJNZ R6,OUTSint ; 未送完则退出等待CLR DTSIGN ;送完,清数据标志位AJMP OUTSintCOMMEND0:CJNE A,#SDAT,COMMEND1 ;判断PC是否开始发送数据SETB DTSIGN ;数据标志位置1MOV R6,#04HMOV R0,#WARNH0 ;R0送警报温度首地址AJMP OUTSintCOMMEND1: CJNE A,#WORK,NOTWORK ;判断是否为允许工作命令SETB ENABLE ;若允许工作使能标志置1LCALL INT_EN ;开中断AJMP OUTSintNOTWORK: CJNE A,#PAUSE,

38、NOTPAU ;判断是否为暂停工作命令CLR ENABLE ;若暂停工作使能标志清0LCALL INT_DS ;关中断MOV P0,0FFHMOV P1,0FFHAJMP OUTSintNOTPAU: CJNE A,#ERR,ISERR0 ;判断数据是否错误JB SDSIGN,NOERR MOV R6,#02H ;若为第一个,置发送计数SETB SDSIGN ;发送标志置1MOV R0,#TEMP0 ;温度数据指针NOERR1: MOV A,R0 ;温度数据送AMOV SBUF ,A ;发送温度数据INC R0 ;指针加1DJNZ R6,OUTSintCLR SDSIGN ;清发送标志AJMP OUTSintISERR0: MOV A, #45

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号