超声波测距仪的设计毕业设计

上传人:仙*** 文档编号:28583242 上传时间:2021-09-01 格式:DOC 页数:30 大小:415.52KB
返回 下载 相关 举报
超声波测距仪的设计毕业设计_第1页
第1页 / 共30页
超声波测距仪的设计毕业设计_第2页
第2页 / 共30页
超声波测距仪的设计毕业设计_第3页
第3页 / 共30页
点击查看更多>>
资源描述
目录摘要:2第1章 系统方案比较与选择31.1 方案一:利用分立模块的超声波测距仪31.2 方案二:基于AT89S51单片机的超声波测距仪第2章 理论分析与计算2.1 测量与控制方法2.2 理论计算第3章 电路与程序设计3.1 检测与驱动电路设计3.1.1 主要器件选择:3.2 总体电路图3.3 软件设计与工作流程图第4章 系统调试4.1 超声波测距误差分析4.1.1 发射接收时间对测量精度的影响分析4.1.2 当地声速对测量精度的影响分析4.2 提高精度的方案及系统设计4.2.1 温度校正的方法提高测距精度4.2.2 测量结果4.2.3 标杆校正的方法提高测距精度第5章 系统设计总结参考文献附录一:原理图与PCB图附录二:系统程序超声波测距仪的设计摘要:电子测距仪要求测量范围在0.105.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于液位、井深、管道长度的测量等场合。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。 关键词:超声波传感器,测距仪,AT89S51单片机Abstract:Ultrasonic Ranging, can be used in car reversing, the construction site and the location of some industrial site monitoring, can also be used if the level, depth and length of the pipeline, such as measurement occasions. Measurement of the requirements in the 0.10-5.00 m, precision 1 cm, with the measurement of detected objects without direct contact, being able to clearly show stable measurement results. Because of the strong point of ultrasonic energy consumption slow, medium of communication in the longer distance, thus frequently used ultrasonic distance measurement, such as the range finder and level measurement and so on can be achieved by ultrasound. Use of ultrasonic testing is often more rapid, convenient and simple terms, easy to achieve real-time control, and measurement accuracy can meet the practical requirements of industry, in the mobile robot has been developed on a wide range of applications.Keyword:Pivotal word: I2C bus AT89C2051 Security Cryptography Electronic Cipher Lock第1章 系统方案比较与选择1.1 方案一:利用分立模块的超声波测距仪 系统包括超声波测距模组、LED数码显示模组、驱动模组控制模组及电源五部分。超声波测距模块主要由发射部分和接收部分组成,超声波的发射受主控制器控制(如图1所示);超声波换能器谐振在40KHz的频率,模块上带有40KHz方波产生电路。 显示模块是一个8位段数码显示的LCD;测量结果的显示用到三位数字段码,格式为X点XX米,同时还用两位数字段码显示数据的个数。电源采用9V的DC电源输入,经稳压管后得出5V以及3.3V的电源供系统各部分电路使用。系统结构图1 超声波测距模块组硬件框图优点:具有历史数据存储功能、出错管理功能。缺点:能测的最小距离比较长,不能实现双向测距,电路复杂性能稳定性不高。1.2 方案二:基于AT89S51单片机的超声波测距仪超声波测距仪主要以单片机AT89S51为核心,其发射器是利用压电晶体的谐振带动周围空气振动来工作的.超声波发射器向某一方向发射超声波,在发射的同时开始计时 ,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器接收到反射波就立即停止计时。一般情况下,超声波在空气中的传播速度为340m/ s,根据计时器记录的时间t ,就可以计算出发射点距障碍物的距离 s,即s=340t/2, 这就是常用的时差法测距。在测距计数电路设计中,采用了相关计数法,其主要原理是:测量时单片机系统先给发射电路提供脉冲信号,单片机计数器处于等待状态,不计数;当信号发射一段时间后,由单片机发出信号使系统关闭发射信号,计数器开始计数,实现起始时的同步;当接收信号的最后一个脉冲到来后,计数器停止计数。超声波测距仪的系统主要有几下部分组成(如图2所示): LED显示模块,AT89S51芯片,超声波发射模块,超声波接收模块,电源模块等五大模块组成。AT89S51主控制器1602液晶显示模块报警电路超声波发射模块超声波接收模块稳压电源模块图2 系统设计总体框图优点:双向测距,精度高,功耗低。在电路中我们采用AT89S51芯片它的优点是:精简指令使其执行效率大为提高;基于上述两种方案的比较,方案一,测量盲区较长,结构复杂且稳定性不高。方案二,能进行双向测距,精度高,功耗低,模块简单,稳定性高,性价比高。所以选用方案二。第2章 理论分析与计算2.1 测量与控制方法声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射;反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从声源到达目标然后返回声源的时间可以测量得到,从声波到目标的距离就可以精确地计算出来。超声波传感器的结构如图3所示。图3 超声波传感器结构由于此超声波测距仪可以实现双向测距,所以需进行测距选择,而这个测距选择就以自动选择功能来实现。2.2 理论计算图4 测距的原理如图4所示为反射时间法,是利用检测声波发出到接收到被测物反射回波的时间来测量距离其原理如图所示,对于距离较短和要求不高的场合我们可认为空气中的声速为常数,我们通过测量回波时间T利用公式S=C*(T/2) 其中,S为被测距离、V为空气中声速、T为回波时间(T=T1+T2),可以计算出路程,这种方法不受声波强度的影响,直接耦合信号的影响也可以通过设置“时间门”来加以克服。这样可以求出距离:S=C(T1-T2)/2第3章 电路与程序设计3.1 检测与驱动电路设计3.1.1 主要器件选择本系统在设计过程中主要选取了以下一些器件:1.AT89S51:测距仪的核心2.CD4011:与非门芯片,做功率放大3.CX20106:红外线专用接收集成芯片4.发射探头R40-165.接受探头T403.1.2 主要芯片介绍AT89S51单片机是一种低功耗、低价位、高性能且系统内带有4KB可编程Flash存储器的8位微处理器。它将通用CPU和在线可编程Flash存储器集成在一个芯片上,形成功能强大、使用灵活和具有较高性价比的单片微机。其主要特性及功能如下:l 8位CPU;l 内含4KB Flash程序存储器,可在线编程,擦写周期可达1000次 ;l 内含128字节的RAM;l 4个8位并行I/O接口,共32根线;l 2个16位可编程定时/计数器;l 具有6个中断源,5个中断矢量,2级中断优先级的中断系统;l 全双工串行通信口;l 具有片内看门狗定时器;l 26个特殊功能寄存器;l 具有两个数据指针DPTR0和DPTR1;l 具有在线可编程功能ISP端口;l 具有上电标志POF;l 具有掉电状态下的中断恢复模式;l 具有低功耗节电运行模式;l 振荡器和时钟电路稳定,工作主频为033MHz;l 电源电压范围为DC4.05.5V 图5 AT89S51单片机其内部最核心的部分是CPU,其主要功能是产生各种控制信号,利用各种特殊功能寄存器设置控制字及反映控制状态,从而控制存储器、输入/输出端口进行数据传输、数据运算及逻辑运算和位操作等处理。 CD4011 CD4011是一个与非门芯片,在电路应用中作为反相器使用 图6 CD4011芯片CX20106 集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电机红遥控接收器。其内部结构如图7所示: 图7 CX20106内部结构图 超声波发射接收头 以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。3.1.3 发射电路原理发射电路如图7所示,单片机P2.5端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。 图7 超声波发射电路由图7所示发射部分由单片机产生高频震荡、单脉冲发生器、编码调制器、功率放大器及超声换能器组成。 单脉冲发生器在振荡器的每个周期内都被触发,产生固定脉宽的脉冲序列,来自单片机的编码信号对脉冲序列进行编码调制,经功率放大后,通过超声换能器发射超声波。3.1.4 接收电路原理如图8所示考虑到红外遥控常用的载波频率38 kHz与测距的超声波频率40 kHz较为接近,可以利用它制作超声波检测接收电路(如图2-3)。图8 接收电路原理 实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。3.1.5 电源系统在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一的能量来源,稳压电源的主要任务是将50Hz的电网电压转换成稳定的直流电压和电流,从而满足负载的需要,直流稳压电源一般由整流、滤波、稳压等环节组成。不过该电路为了力求电路的简洁和低成本,电路采用直流供电,用稳压性能好成本低的集成三端稳压器lm7805作为稳压源。稳压电路如图5所示: 图9 电源模块3.1.6 单片机主控系统及显示系统 超声波测距仪主控系统及显示模块如图10所示: 图10 主控及显示模块3.2 总体电路图 图11 总体电路图3.3 软件设计与工作流程图超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中图12 软件设计流程框图断程序及显示子程序组成。我们知道汇编语言程序具有较高的效率且容易精细计算程序运行的时间,超声波测距仪要求精细计算程序运行时间(超声波测距时),所以控制程序汇编语言编程。程序流程如图14所示:其工作流程是:上电后首先对系统进行初始化,紧接着调用显示子程序,显示完后判断有没有超声波被接收,若有,则停止计时并将计时值送入距离计算子程序,然后将所测距离显示1秒,最后返回进行下一轮测量,若没有信号进来,则继续调用显示子程序。其流程图如图13所示。图13工作流程图第4章 系统调试超声波测距仪的制作和调试都比较简单,其中超声波发射和接收采用15的超声波换能器TCT40-10F1(T发射)和TCT40-10S1(R接收),中心频率为40kHz,安装时应保持两换能器中心轴线平行并相距415cm,其余元件无特殊要求。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。根据测量范围要求不同,可适当调整精调电阻RP2的值可以设置带通滤波器的中心频率(f0阻值越大,中心频率越低)以获得合适的接收灵敏度和抗干扰能力。硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。根据所设计的电路参数和程序测距仪能测的范围为0.105.0m,测距仪最大误差不超过1cm。系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。4.1 超声波测距误差分析 4.1.1 发射接收时间对测量精度的影响分析 采用 TR40 压电超声波传感器,脉冲发射由单片机控制,发射频率 40KHz ,忽略脉冲电路硬件产生的延时,可知由软件生成的起始时间对于一般要求的精度是可靠的。对于接收到的回波,超声波在空气介质的传播过程中会有很大的衰减,其衰减遵循指数规律。设测量设备基准面距被测物距离为h,则空气中传播的超声波波动方程为:由以上公式可知,超声波在传播过程中存在衰减,且超声波频率越高,衰减越快,但频率的增高有利于提高超声波的指向性。 经以上分析,超声波回波的幅值在传播过程中衰减很大,收到的回波信号可能十分微弱,要想判断捕获到的第一个回波确定准确的接受时间,必须对收到的信号进行足够的放大,否则不正确的判断回波时间,会对超声波测量精度产生影响。 4.1.2 当地声速对测量精度的影响分析 当地声速对超声波测距测量精度的影响远远要比收发时间的影响严重。超声波在大气中传播的速度受介质气体的温度、密度及气体分子成分的影响,即: 由上式知,在空气中,当地声速只决定于气体的温度,因此获得准确的当地气温可以有效的提高超声波测距时的测量精度。工程上常用的由气温估算当地声速的公式如下: 式中C0=331.4m/s ; T为绝对温度,单位K 。 此公式一般能为声速的换算提供较为准确的结果。实际情况下,温度每上升或者下降 1oC, 声速将增加或者减少 0.607m /s ,这个影响对于较高精度的测量是相当严重的。因此提高超声波测量精度的重中之重就是获得准确的当地声速。4.2 提高精度的方案及系统设计 4.2.1 温度校正的方法提高测距精度 由上述的误差分析知,如果能够知道当地温度,则可根据公式 求出当地声速,从而能够获得较高的测量精度。而问题的关键在于获得温度数据的方法。采用热敏电阻、热电耦、集成温度传感器都可以获得较为准确的温度值。 为了便于对温度信号的数据采集及处理,我们认为采用 DALASS 公司生产的 DS18B20 集成温度传感器。 DS18B20 采用了 DALASS 公司的 1-WIRE 总线专利技术,能够仅在占用控制器一个 I/O 口的情况下工作(芯片可由数据线供电),极大的方便了使用者的调试使用,而且其在 10oC 85oC 的工作环境下可以保持 0.5% 的使用精度,在这个空间内足以保证为超声波测距设备提供足够的精度范围。 通过 DS18B20 芯片获得的数据信号经由 1-WIRE 总线传至 MCU ,由软件进行声速换算。为了更好的实现换算过程同时兼顾设备的使用成本,我们采用宏晶公司的最新推出的 STC12C5410 单片机实现超声波测距的各项功能。 STC12C5410 采用了低成本、低功耗、强抗干扰设计,并且在最高支持 48MHz 的前提下能够实现 1 个时钟 / 机械周期的运行速度。由于能够使用高频率的晶振,因此相对于普通单片机来说可以有效的减少由计时问题带来的量化误差,能够满足较高精度超声波测距仪的设计要求。 4.2.2 测量结果按照设计的硬件电路和软件,做成成品,调试好后,对系统进行测试,测量单位:cm。表1 测距数据实际距离12131415161718192025测量距离13141516171819212326误 差0111111331实际距离303540455061708090100测量距离313741465061708090100误 差1211000000实际距离130150200250270280300310315320测量距离130149199247269277298308312318误 差0113132232实际距离323327333338343348352359362367测量距离325330335340345350355360365370误 差23222231334.2.3 标杆校正的方法提高测距精度 在复杂环境下,如果难于获得环境温度,或者不便获得环境温度时,如果仍旧要求较高的测量精度,我们采用所谓标杆校正的方法实现超声波测距精度的校正。标杆校正的示意图如图14 所示。图14 标杆校正的示意图超声波测距装置首先测量距离已知为 h 的基平面(标杆)声波往返所用的时间,而后由测得的时间和距离 h 根据公式 求出当地声速。通过这样的方法,我们也能够顺利的求出声速,省去了使用传感器测量温度所带来的麻烦。因此,只用为测距设备设定“标定”和“测量”两种状态,即能够实现温度校正所能实现的高精度测距功能。第5章 系统设计总结 .创新发挥设想能实现双向测距。设计能实现双向测距,分别由两个发光二极管来去分测距方向,并且自动选择测量距离短的一面。可以校准。当测距不是很准确的时候可以用定位器来进行校准,反应速度在0.1ms内,测量精确度在1cm内。能实现双向测距而且单项测距范围13cm-300cm,所以双向测距的总长度达到了600cm。而且在测距1m内,测量误差小于3cm精度较高,最小分辨率也达到了1cm,测试盲区13cm,而且精度高。因为声波的速度与温度有关,测量值在非室温下准确度会下降,所以测距仪受温度的影响,每升高1度距离加快4m/s。在本应用中引入了一个电位器来进行测距距离补偿,可以使系统在很大的温度范围内精确测量。如果需要测得的距离数据可以存储在FLASH 存储器中。加上额外增益和使用多态LCD 来读出尽可能多的位数也可以增大测量范围。.使用说明本电路的使用非常的简单,它的设计有五个按键,其中实际用到的只有一个复位键,而其他的都是扩展按键。当要测试一个物体的距离的时候,接上电源,按一次复位键等下单片机就可测出物体的实际距离。其中的原理就是按照声速在不同的温度下传播的速度,用发送的接受的时间差除以二就可得到距离.系统设计结论对所设计的电路进行测量、校准发现其测量范围15cm500cm内的平面物体做了多次测量发现,其最大误差为3cm,显示最小分辨率为0.01 m,测量盲区小于0.15米,且重复性好。该测距仪具有稳定性比较高、灵敏度比较高,盲区范围小,分辨率小于0.01m, 被测目标不需要垂直于超声波测距仪角度保持在正负30度,被测目标表面不需要平坦;但是在检测过程中会有一些不便的地方:1.测量时在超声波测距仪周围没有其他可反射超声波的物体,由于发射功率有限,测距仪无法测量5m外的物体。2.不能够实现不同温度下的测距功能。3.因为超声波是将空气作为媒介所以受电磁干扰比较大。参考文献1 胡萍.超声波测距仪的研制.计算机与现代化,2003.102 时德刚,刘哗.超声波测距的研究.计算机测量与控制,2002.10 3 华兵.MCS-51单片机原理应用.武汉:武汉华中科技大学出版社,2002 .54 李华.MCU-51系列单片机实用接口技术.北京:北京航空航天大学出版社, 1993. 65 陈光东.单片机微型计算机原理与接口技术(第二版).武汉:华中理工大学出版社,1999.46 徐淑华,程退安,姚万生.单片机微型机原理及应用.哈尔滨:哈尔滨工业大学出版社,1999. 6.7 苏长赞.红外线与超声波遥控.北京:人民邮电出版社,1993.78 张谦琳.超声波检测原理和方法.北京:中国科技大学出版社,1993.109 九州.放大电路实用设计手册.沈阳:辽宁科学技术出版社,2002.510 樊昌元,丁义元. 高精度测距雷达研究.电子测量与仪器学报,2000.1011 苏伟,巩壁建.超声波测距误差分析.传感器技术,2004.12 永学等.1-Wire总线数字温度传感器DS18B20及应用.电子产品世界,2003.1213 胜全.D18B20数字温度计在微机温度采集系统中的序编制. 南京:南京大学出版社1998. 314 恒清,张靖.加强单片机系统抗干扰能力的方法.通化师范学院学报,2004.1015 刘同法,陈忠平,睦仁武.单片机基础与最小系统实践.北京:北京航空航天大学出版社,200716 杨欣,王玉凤.51单片机应用从零开始.北京:清华大学出版社,200717 楼然苗,李光飞.单片机课程设计指导.北京:北京航空航天大学出版社, 2007附录一:原理图与PCB图 图15 原理图 图16 PCB图附录二:系统程序RS BIT P2.2; R_W BIT P2.1; 引脚定义 E BIT P2.0 DB0_DB7 EQU P0;ORG 0000HLJMP STARTORG 0003HLJMP PINT0;中断0ORG 000BHRETIORG 0013HRETIORG 001BHLJMP INTT1;计数器1ORG 0023HRETIORG 002BHRETI 主 程 序 *START:MOV SP,#60H MOV R0,#40H ;40H-43H为显示数据存放单元(40H为最高位) MOV R7,#08H LCALL INITIAL; LCALL CLS; MOV A,#0000000B; LCALL WRITE_COM; MOV DPTR,#LIN2; LCALL DISP; MOV A,#11000101B; LCALL WRITE_COM; MOV DPTR,#LIN1; LCALL DISP;CLEARDISP: MOV R0,#00H INC R0 DJNZ R7,CLEARDISP MOV TMOD,#10H ;T1为 16位定时器 MOV TH1,#00H MOV TL1,#00H MOV PSW,#10H CLR A MOV R1,A MOV R2,A ;最大值初态R1R2,R1为高位 MOV R3,#0FFH MOV R4,#0FFH;最小值初态R3R4,R3为高位 MOV R5,A MOV R6,A; 累加和初值R5R6R7 MOV R7,A MOV R0,#4 ;N=4 MOV PSW,#00H SETB PX0 SETB ET1 SETB EA SETB TR1 ;开启测距定时器start1: LCALL DISPLAY JNB 00H,START1 ;收到反射信号时标志位为1 CLR EA CLR TR1 LCALL DAVG ; MOV R2,#50;测量间隔控制(约4*50=200MS)LOOP: LCALL DISPLAY DJNZ R2,LOOP CLR 00H MOV TH1,#00H MOV TL1,#00H SETB TR1 ;重新开启测距定时器 SETB EA SJMP start1;T1中断,发超声波用 ;T1中断,65毫秒中断一次INTT1: CLR EX0 MOV TH1,#00H MOV TL1,#00H ;启动计数器T0,用以计 MOV R4,#4intt11:CPL P2.5 ;40KHZ nop nop nop nop nop nop nop nop nop DJNZ R4,intt11 ;超声波发送完毕, MOV R4,#200INTTAA:NOP NOP ;延时1毫秒,避开发射的直达声波信号 DJNZ R4,INTTAA; SETB EX0 ;开启接收回波中断 RETI;外中断0,收到回波时进入PINT0:JB p3.2,ZDA; CLR TR1 ;关计数器 CLR EX0 ; MOV 44H,TL1;将计数值移入处理单元 MOV 45H,TH1; mov TH1,#00H mov TL1,#00H JNB P3.2,$; SETB 00H ;接收成功标志 CPL P2.4ZDA: RETIDAVG:PUSH PSW PUSH ACC MOV PSW,#10H MOV DPH,45H MOV DPL,44H MOV A,DPL ADD A,R7 MOV R7,A MOV A,DPH ADDC A,R6 MOV R6,A ;累加输入值 MOV A,R5 ADDC A,#00H MOV R5,A CLR C MOV A,R2 SUBB A,DPL MOV A,R1 ;原最大值减去输入值 SUBB A,DPH JNC DAV1 MOV R1,DPH MOV R2,DPL ;输入值大于原最大值DAV1:CLR C MOV A,DPL SUBB A,R4 MOV A,DPH ;输入值减去原最小值 SUBB A,R3 JNC DAV2 MOV R3,DPH MOV R4,DPL;输入值小于原最小值DAV2:DJNZ R0,DAV3 CLR C MOV A,R7 ;累加和初值R5R6R7 SUBB A,R2 MOV R7,A MOV A,R6 SUBB A,R1 MOV R6,A ;累加值减去最大值 MOV A,R5 SUBB A,#00H MOV R5,A CLR C MOV A,R7 ;累加和初值R5R6R7 SUBB A,R4 MOV R7,A MOV A,R6 SUBB A,R3 MOV R6,A ;累加值减去最小值 MOV A,R5 SUBB A,#00H MOV R5,A CLR C MOV A,R5 RRC A MOV R5,A MOV A,R6 ;除以2 RRC A MOV R6,A MOV A,R7 RRC A MOV R7,A MOV 45H,R6; 保存数值 MOV 44H,R7; LCALL WORK ;重新初始化 CLR A MOV R1,A MOV R2,A ;最大值初态R1R2,R1为高位 MOV R3,#0FFH MOV R4,#0FFH;最小值初态R3R4,R3为高位 MOV R5,A MOV R6,A; 累加和初值R5R6R7 MOV R7,A MOV R0,#4 ;N=4DAV3:POP ACC POP PSW RET ;38H-3BH为显示缓冲WORK:MOV R2,#00H; MOV R3,#170; MOV R6,45H; MOV R7,44H; LCALL QMUL; LCALL H_BCD; MOV A,34H; SWAP A; ANL A,#0FH; MOV 38H,A; MOV A,35H; ANL A,#0FH; MOV 39H,A; MOV A,35H; SWAP A; ANL A,#0FH; MOV 3AH,A; MOV A,36H; ANL A,#0FH; MOV 3BH,A; RET;被乘数存放在R2、R3,R2为高位。乘数存放在R6、R7,R6为高位。;积存放在R4、R5、R6、R7。R4是高字节。QMUL:MOV A,R3; MOV B,R7; MUL AB; XCH A,R7; MOV R5,B; MOV B,R2; MUL AB; ADD A,R5; MOV R4,A; CLR A; ADDC A,B; MOV R5,A; MOV A,R6; MOV B,R3; MUL AB; ADD A,R4; XCH A,R6; XCH A,B; ADDC A,R5; MOV R5,A; MOV F0,C; MOV A,R2; MUL AB; ADD A,R5; MOV R5,A; CLR A; MOV ACC.0,C; MOV C,F0; ADDC A,B; MOV R4,A; RET;H_BCD:CLR A; MOV 30H,R7; MOV 31H,R6; MOV 32H,R5; MOV 33H,#00; MOV 34H,#00; MOV 35H,#00; MOV 36H,#00; MOV R7,#24;IBTL2:CLR C; MOV A,30H; RLC A; MOV 30H,A; MOV A,31H; RLC A; MOV 31H,A; MOV A,32H; RLC A; MOV 32H,A; MOV A,33H; ADDC A,33H; DA A; MOV 33H,A; MOV A,34H; ADDC A,34H; DA A; MOV 34H,A; MOV A,35H; ADDC A,35H; DA A; MOV 35H,A; MOV A,36H; ADDC A,36H; DA A; MOV 36H,A; DJNZ R7,IBTL2; RETDISPLAY: ; 38,39,3A,3B MOV A,#11000111B; LCALL WRITE_COM;DIS1:MOV DPTR,#TAB; MOV A,3BH MOVC A, A+DPTR; LCALL WRITE_DATA MOV A,3AH MOVC A, A+DPTR; LCALL WRITE_DATA MOV A,39H MOVC A, A+DPTR; LCALL WRITE_DATA MOV A,#10 MOVC A, A+DPTR; LCALL WRITE_DATA MOV A,38H MOVC A, A+DPTR; LCALL WRITE_DATA RET;DEL1MS: MOV R6,#02H;DEL1: MOV R7,#0FFH; DJNZ R7,$; DJNZ R6,DEL1; RET;*显示字符串到LCM子程序*DISP: PUSH ACC;DISP_LOOP: CLR A; MOVC A,A+DPTR; JZ END_DISP; LCALL WRITE_DATA; INC DPTR; AJMP DISP_LOOP;END_DISP: POP ACC; RET;?*启动LCM子程序*INITIAL: MOV A,#00111000B;DB3为1时为二行,为0是为1行。 LCALL WRITE_COM; MOV A,#00001100B; LCALL WRITE_COM; MOV A,#00000110B; LCALL WRITE_COM; RET;*查询忙碌标志信号子程序*CHECK_BUSY: PUSH ACC; MOV P0,#0FFHBUSY_LOOP: CLR E; SETB R_W; CLR RS; SETB E; MOV A,DB0_DB7; CLR E; JB ACC.7,BUSY_LOOP; POP ACC; LCALL YS2MS; RET;*写指令到LCM子程序*WRITE_COM:LCALL CHECK_BUSY; CLR E; CLR RS; CLR R_W; SETB E; MOV DB0_DB7,A; CLR E; RET;*写数据到LCM子程序*WRITE_DATA:LCALL CHECK_BUSY; CLR E; SETB RS; CLR R_W; SETB E; MOV DB0_DB7,A; CLR E; RET;*清除LCM子程序*CLS : MOV A,#00000001B; LCALL WRITE_COM; RET;*延时2.7ms子程序*YS2MS: MOV R6,#5;YS2MS1: MOV R7,#24; DJNZ R7,$; DJNZ R6,YS2MS1; RET;TAB: DB 0123456789. LIN1: DB L=000.0cm,00H;LIN2: DB Dang Qian Ju Li ,00H END 第 页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!