单片机课设,数字温度计.doc_第1页
单片机课设,数字温度计.doc_第2页
单片机课设,数字温度计.doc_第3页
单片机课设,数字温度计.doc_第4页
单片机课设,数字温度计.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

精品摘 要随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于89C51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。关键词:单片机;温度检测;温度传感器目录1 绪论11.1技术概述11.2本课题的背景和意义22 系统设计简介32.1 数字温度计简介32.2 设计要求32.3 设计方案论证32.4 硬件设计电路53 设计语言及软件介绍63.1 汇编语言介绍63.2 wave6000软件介绍64 软件设计94.1 概述94.2 系统程序设计模块94.2.1主程序94.2.2读出温度子程序104.2.3温度转换命令子程序104.2.4计算温度子程序114.2.5显示数据刷新子程序124.3 控制源程序134.3.1汇编程序134.3.2程序清单244.4 调试及仿真25结 论26参考文献27感谢下载载精品1 绪论1.1技术概述随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器。在当今信息化时代展过程中,各种信息的感知、采集、转换、传输和处理的功能器件已经成为各个应用领域中不可缺少的重要技术工具。传感器是信息采集系统的首要部件,是实现现代化测量和自动控制的主要环节,是现代信息产业的源头,又是信息社会赖以存在和发展的物质与技术基础。可见理解和撑握传感器的知识与技术有着其极重要的意义。传感器知识面广,如果在实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节的局面。任随书本上把单片机技术介绍得多么重要、多么实用多么好用,同学们仍然会感到那只是空中楼阁,离自己十分遥远,或者会感到对它失去兴趣,或者会感到它高深莫测无从下手,这些情况都会令课堂教学的效果大打折扣。本次设计的目的就是让我们在理论学习的基础上,通过完成一个传感品器件的设计,使我们学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。1.2本课题的背景和意义数字温度计采用进口芯片组装精度高、高稳定性,误差0.5%,内电源、微功耗、不锈钢外壳,防护坚固,美观精致。 数字温度计采用进口高精度、低温漂、超低功耗集成电路和宽温型液晶显示器,内置高能量电池连续工作5年无需敷设供电电缆,是一种精度高、稳定性好、适用性极强的新型现场温度显示仪。是传统现场指针双金属温度计的理想替代产品,广泛应用于各类工矿企业,大专院校,科研院所。 温度数我们日常生产和生活中实时在接触到的物理量,但是它是看不到的,仅凭感觉只能感觉到大概的温度值,传统的指针式的温度计虽然能指示温度,但是精度低,使用不够方便,显示不够直观,数字温度计的出现可以让人们直观的了解自己想知道的温度到底是多少度。 数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED、LCD或者电脑屏幕等显示出来给人观察。这样就完成了数字温度计的基本测温功能。 数字温度计根据使用的传感器的不同,AD转换电路,及处理单元的不同,它的精度,稳定性,测温范围等都有区别,这就要根据实际情况选择符合规格的数字温度计。 数字温度计有手持式,盘装式,及医用的小体积的等等。2 系统设计简介2.1 数字温度计简介数字温度计可以准确的判断和测量温度,以数字显示,而非指针或水银显示。故称数字温度计或数字温度表。数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观察。这样就完成了数字温度计的基本测温功能。2.2 设计要求1、利用温度传感器(DS18B20)测量某一点环境温度2、测量范围为-55125,精度为0.5。3、测量温度由LED数码管直读显示。2.3 设计方案论证根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示等功能。选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用4位共阳LED数码管以动态扫描法实现。检测范围-55摄氏度到125摄氏度。按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。本课题以是89C51单片机为核心设计的一种数字温度控制系统,系统整体硬件电路包括,传感器数据采集电路,温度显示电路,单片机主板电路等组成。系统框图主要由主控制器、单片机复位、时钟振荡、LED显示、温度传感器组成。数字温度计总体电路结构框图如图2.3所示。AT89C51主控制器显示电路时钟电路扫描驱动复位电路 图2.3 数字温度计总体电路结构框图图2.4 数字温度计设计电路图2.4 硬件设计电路数字温度计设计电路图如图2.4所示,控制器使用单片机AT89C51,温度计传感器使用DS18B20,用LED实现温度显示。3 设计语言及软件介绍3.1 汇编语言介绍本次设计软件采用汇编语言进行编程。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点: (1)能够直接访问与硬件相关的存储器或I/O端口; (2)能够不受编译器的限制,对生成的二进制代码进行完全的控制; (3)能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁; (4)能够根据特定的应用对代码做最佳的优化,提高运行速度; (5)能够最大限度地发挥硬件的功能。同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点: (1)编写的代码非常难懂,不好维护; (2)很容易产生bug,难于调试; (3)只能针对特定的体系结构和处理器进行优化。3.2 wave6000软件介绍本次设计采用wave6000进行软件设计。伟福仿真品种多、功能强,和国内外同类高档仿真器功能相比,先进的特点如下:1主机+POD组合,通过更换POD,可以对各种CPU进行仿真。对待不同的应用场合,用户往往会选择不同的CPU,从而需要更换仿真器,伟福仿真软。件WINDOWS版本支持本公司多种仿真器。支持多类CPU仿真。仿真器则采用主机+POD组合,通过更换不同的POD,可对各种不同类型的单片机进行仿真。为用户提供了一种灵活的多CPU仿真系统。2双平台DOS版本,WINDOWS版本。其中WINDOWS版本功能强大。中文界面,英文界面可任选,用户源程序的大小不再有任何限制,支持ASM,C,PLM语言混合编程,具有项目管理功能,为用户的资源共享,课题重组提供强有力的手段。支持点屏显示,用鼠标左键点一下源程序中的某一变量,即可显示该变量的数值。有丰富的窗口显示方式,多方位,动态地显示仿真的各种过程,使用极为便利。本操作系统一经推出,立即被广大用户所喜爱。3双工作模式 a 软件模拟仿真(不要仿真器也能模拟仿真)。 b 硬件仿真。4双CPU结构,100% 不占用户资源。全空间硬件断点,不受任何条件限制,支持地址、数据、外部信号、事件断点、支持实时断点计数、软件运行时间统计。5双集成环境编辑、编译、下载、调试全部集中在一个环境下。多种仿真器,多类CPU仿真全部集成在一个环境下。可仿真51系列,196系列,PIC系列,飞利蒲公司的552、LPC764、DALLAS320,华邦438等51增强型CPU。为了跟上形势,现在很多工程师需要面对和掌握不同和项目管理器、编辑器、编译器。他们由不同的厂家开发,相互不兼容,使用不同的界面。学习使用都很吃力。伟福 WINDOWS调试软件为您提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供一个与第三方编译器的接口。由于风格统一,从而大大节省了您的精力和时间。6强大的逻辑分析仪综合调试功能。逻辑分析仪由交互式软件菜单窗口对系统硬件的逻辑或进序进行同步实时采样,并实时在线调试分析,采集深度32K(E2000/L),最高时基采样频率达20M,40路波形的可精确实时反映用户程序运行时的历史时间。系统在使用逻辑分析仪时,除普通的单步运行、键盘断点运行、全速硬件断点运行外,还可实现各种条件组合断点如:数据、地址、外部控制信号、CPU内部控制信号、程序区间断点等。由于逻辑仪可以直接对程序的执行结果进行分析,因此极大地便利于程序的调试。随着科学技术的发展,单片机通讯方面的运用越来越多。在通讯功能的调试时,如果通讯不正常,查找原因是非常耗时和低效的,您很难搞清楚问题到底在什么地方,是波特率不对,是硬件信道有问题,是通讯协仪有问题,是发方出错还是收方出错。有了逻辑仪,情况则完全不一样,用它可以分别或者同时对发送方、接收方的输入或者输出波形进行记录、存储、对比、测量等各种直观的分析,可以将实际输出通讯报文的波形与源程序相比较,可立即发现问题所在。从而极大地方便了调试。7强大的追踪器功能追踪功能以总线周期为单位,实时记录仿真过程中CPU发生的总线事件,其触发条件方式同逻辑分析仪。追踪窗口在仿真停止时可收集显示追踪的CPU指令记忆信息,可追踪记忆指令32K并通过仿真器的断点、单步、全速运行或各种条件组合断点来完成追踪功能。总线跟踪可以跟踪程序的运行轨迹。可以统计软件运行时间。 4 系统软件设计4.1 概述整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。用汇编语言完成对设计的软件编程,程序开始首先对温度传感器DS18B20进行复位,检测是否正常工作;接着读取温度数据,主机发出CCH指令与在线的DS18B20联系,接着向DS18B20发出温度A/D转换44H指令,再发出温度寄存器的温度值BEH指令,并反复调用复位,写入及读取数据子程序,之后再经过数据转换,由数码管显示出来,不断循环。4.2 系统程序设计模块系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序和显示数据刷新子程序等。4.2.1主程序主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的测量温度值。温度测量每1s进行一次(程序见4.3.1节)。主程序流程图如图4.2.1所示。初始化显示调用子程序初次上电?读出温度值温度计算处理显示数据刷新发温度转换开始命令1s到?NYYN图4.2.1 主程序流程图4.2.2读出温度子程序读出温度子程的主要功能是读出RAM中的9字节。在读出时须进行CRC校验,校验有错时不能进行温度数据的改写(程序见4.3.1节)。读出温度子程序流程图如图4.2.2所示。4.2.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令。当采用12位分辨率时,转换时间约为750 ms。在本程序设计中,采用1s显示程序延时法等待转换的完成(程序见4.3.1节)。温度转换命令子程序图4.2.3所示。NNYYDS18B20复位命令跳过ROM命令读取温度命令读取操作,CRC校验9字节完结束CRC校验正确移入温度暂存器 图4.2.2 读出温度子程序流程图4.2.4计算温度子程序计算温度子程序将RAM中读取的值进行BCD码的抓换运算,并进行温度值正负的判断(程序见图4.3.1节)。其流程图如图4.2.4所示。发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束 图4.2.3 温度转换命令子程序图NY开始温度值取补码置“”标志计算小数位温度BCD值计算整数位温度BCD值结束置“+”标志温度零下 图4.2.4 计算温度子程序流程图4.2.5显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位(程序见4.3.1节)。显示数据刷新子程序流程图如图4.2.5所示。YYN N温度数据移入显示寄存器十位数0?百位数0?百位数显示数据(不显示符号)十位数显示符号百位数不显示结束图4.2.5 显示数据刷新子程序流程图 4.3 控制源程序4.3.1汇编程序;DS18B20温度计;采用4位LED共阳显示器显示测温值,显示精度0.1,测温范围-55+125;用AT89C51单片机,12MHz晶振。;=常数定义=TIMELEQU 0E0H ;20ms,定时器0时间常数TIMEHEQU 0B1HTEMPHEAD EQU 36H;=工作内存定义=BITST DATA 20HTIME1SOK BIT BITST.1TEMPONEOKBIT BITST.2TEMPL DATA 26HTEMPH DATA 27HTEMPHC DATA 28HTEMPLC DATA 29H;= 引脚定义=TEMPDIN BIT P3.7;= 中断向量区=ORG 0000HLJMP STARTORG 00BHLJMP T0IT;=系统初始化=ORG100HSTART: MOVSP,#60HCLSMEM: MOV R0,#20HMOV R1,#60HCLSMEM1:MOV R0,#00HINC R0DJNZ R1,CLSMEM1MOV TMOD,#00100001B ;定时器0工作方式1(16BIT)MOVTH0,#TIMELMOV TL0,#TIMEH ;20msSJMPINITERROR:NOPLJMP STARTNOPINIT:NOPSETB ET0SETB TR0SETBEAMOV PSW,#00HCLR TEMPONEOKLJMP MAIN;= 定时器0中断服务程=T0IT:PUSH PSWMOV PSW,#10HMOV TH0,#TIMEHMOV TL0,#TIMELINC R7CJNE R7,#32H,T0IT1MOV R7,#00HSETB TIME1SOK ;1s定时到标志T0IT1:POP PSWRETI;= 主程序=MAIN:LCALL DISP1 ;调用显示子程序JNB TIME1SOK,MAINCLR TIME1SOK ;测温每1s一次JNB TEMPONEOK,MAIN2 ;上电时先温度转换一次LCALL READTEMP1;读出温度值子程序LCALL CONVTEMP ;温度BCD码计算处理子程序LCALL DISPBCD ;显示区BCD码温度值刷新子程序LCALL DISP1 ;消闪烁,显示一次MAIN2: LCALLREADTEMP ;温度转换开始SETB TEMPONEOKLJMP MAIN;=子程序区=;对DS18B20进行复位;=INITDS1820:SETB TEMPDINNOPNOPCLR TEMPDINMOV R6,#0A0H ;延时480usDJNZ R6,$MOV R6,#0A0HDJNZ R6,$SETB TEMPDINMOV R6,#32H ;延时70usDJNZ R6,$MOVR6,#3CHLOOP1820:MOV C,TEMPDINJC INITDS1820OUTDJNZ R6,LOOP1820MOV R6,#064HDJNZ R6,$SJMP INITDS1820RETINITDS1820OUT:SETB TEMPDINRET;=读DS18B20的程序,从DS18B20中读出一个字节的数据=READDS1820:MOV R7,#08HSETB TEMPDINNOPNOPREADDS1820LOOP:CLR TEMPDINNOPNOPNOPSETB TEMPDINMOV R6,#07H ;延时15usDJNZ R6,$MOV C,TEMPDINMOV R6,#3CH ;延时120usDJNZ R6,$RRC ASETB TEMPDINDJNZ R7,READDS1820LOOPMOV R6,#3CH ;延时120 usDJNZ R6,$RET;=写DS18B20的程序,从DS18B20中写一个字节的数据=WRITEDS1820:MOV R7,#08HSETB TEMPDINNOPNOPWRITEDS1820LOP:CLR TEMPDINMOV R6,#07H ;延时15usDJNZ R6,$RRC AMOV TEMPDIN,CMOV R6,#34H ;延时104usDJNZ R6,$SETB TEMPDINDJNZ R7,WRITEDS1820LOPRET;= 读温度 =READTEMP:LCALL INITDS1820MOV A,#0CCHLCALL WRITEDS1820 ;跳过程序存储器 MOV R6,#34H ;延时104usDJNZ R6,$MOV A,#44HLCALL WRITEDS1820 ;开始AD转换MOV R6,#34H ;延时104usDJNZ R6,$RETREADTEMP1:LCALLINITDS1820MOV A,#0CCHLCALL WRITEDS1820;跳过程序存储器MOV R6,#34H ;延时104usDJNZ R6,$MOV A,#0BEHLCALL WRITEDS1820 ;超高速中间结果存储器MOV R6,#34H ;延时104usDJNZ R6,$MOV R5,#09HMOV R0,#TEMPHEADMOV B,#00HREADTEMP2:LCALL READDS1820MOV R0,AINC R0READTEMP21:LCALL CRC8CALDJNZ R5,READTEMP2MOV A,BJNZ READTEMPOUTMOV A,TEMPHEAD+0MOV TEMPL,AMOV A,TEMPHEAD+1MOV TEMPH,AREADTEMPOUT:RET;=处理温度BCD码子程序=CONVTEMP:MOV A,TEMPHANL A,#80HJZ TEMPC1CLR CMOV A,TEMPLCPL AADD A,#01HMOV TEMPL,AMOV A,TEMPH ;-CPL AADDC A,#00HMOV TEMPH,A ; TEMPHC HI=符号位MOV TEMPHC,#0BHSJMP TEMPC11TEMPC1:MOV TEMPHC,#0AH ;+TEMPC11:MOV A,TEMPHCSWAP AMOV TEMPHC,AMOV A,TEMPLANL A,#0FH ;乘0.0625MOV DPTR,#TEMPDOTTABMOVC A,A+DPTRMOV TEMPLC,A ;TEMPLC LOW=小数部分BCDMOV A,TEMPL ;整数部分ANL A,#0F0HSWAP AMOV TEMPL,AMOV A,TEMPHANL A,#0FHSWAP AORL A,TEMPLLCALL HEX2BCD1MOV TEMPL,AANL A,#0F0HSWAP AORL A,TEMPHC ;TEMPHC LOW=十位数BCDMOV TEMPHC,AMOV A,TEMPLANL A,#0FHSWAP A ;TEMPLC HI=个位数BCDORL A,TEMPLCMOV TEMPLC,AMOV A,R7JZ TEMPC12ANL A,#0FHSWAP AMOV R7,AMOV A,TEMPHC ;TEMPLC HI=百位数BCDANL A,#0FHORL A,R7MOV TEMPHC,ATEMPC12:RET;=小数部分码表=TEMPDOTTAB:DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,06H DB 06H,07H,08H,08H,09H,09H;=显示区BCD码温度值刷新子程序=DISPBCD:MOV A,TEMPLCANL A,#0FHMOV 70H,AMOV A,TEMPLCSWAP AANL A,#0FHMOV 71H,AMOV A,TEMPHCANL A,#0FHMOV 72H,AMOV A,TEMPHCSWAPAANL A,#0FHMOV 73H,AMOV A,TEMPHCANL A,#0F0HCJNE A,#010H,DISPBCD0SJMP DISPBCD2DISPBCD0:MOV A,TEMPHCANL A,#0FHJNZ DISPBCD2MOV A,TEMPHCSWAP AANL A,#0FHMOV 73H,#0AH;符号位不显示MOV 72H,A;十位数显示符号DISPBCD2:RET;=显示子程=;显示数据在70H73H单元内,用4位LED共阳数码管显示,P0口输出段码数据,;P3口做扫描控制,每个LED数码管亮1ms时间再逐位循环。DISP1:MOV R1,#70H;指向显示数据首址MOV R5,#0FEH ;扫描控制字初值PLAY:MOV P0,#0FFHMOV A,R5 ;扫描字放入AMOV P3,A ;从P3口输出MOV A,R1 ;取显示数据到AMOV DPTR,#TAB ;取段码表地址MOVC A,A+DPTR ;查显示数据对应段码MOV P0,A ;段码放入P0口MOV A,R5JB ACC.1,LOOP5 ;小数点处理CLR P0.7LOOP5:LCALL DL1MS ;显示1msINC R1 ;指向下一地址MOV A,R5 ;扫描控制字放入AJNB ACC.3,ENDOUT ;ACC.3=0时一次显示结束RL A ;A中数据循环左移MOVR5,A ;放回R5内AJMP PLAY ;跳回PLAY循环ENDOUT:MOV P0,#0FFH ;一次显示结束,P0口复位MOV P3,#0FFH ;P3口复位RET ;子程序返回TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH;共阳段码表 “0”“1”“2”“3”“4”“5”“6”“7”“8”“9”“不亮”“-”DL1MS:MOV R6,#14H ;1ms延时程序,LED显示程序DL1:MOV R7,#19HDL2:DJNZ R7,DL2DJNZ R6,DL1RET;=单字节十六进制BCD=HEX2BCD1:MOV B,#064H;十六进制-BCDDIV AB;B=A%100MOV R7,A;R7=百位数MOV A,#0AHXCH A,BDIV AB;B=A%BSWAP AORL A,BRET;=;Calculate CRC-8Values. Uses The CCITT-8Polynomial,Expressed As;X8+X5+X4+1;=CRC8CAL:PUSH ACCMOV R7,#08H;位字节数CRC8LOOP1:XRL A,B;计算CRCRRC A;Move to CarryMOV A,B;获取CRC最后值JNC CRC8LOOP2;如果DATA等于0,则跳过XRL A,#18H;同步到新的CRC值CRC8LOOP2:RRC A;新的CRC到A中MO

温馨提示

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

评论

0/150

提交评论