超声波车距报警器 - 程序设计

更新时间:2024-03-17 17:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

超声波车距报警器——程序设计

作者:00000000 李XX 指导老师:刘XX 高级讲师

1 前言

1.1概述

超声波是指超过人的听觉范围以上(16KHZ)的声波。近二、三十年,特别是近十年来,由于电子技术及压电陶瓷材料的发展,使超声检测技术得到了迅速的发展。超声技术是一门以物理、电子、机械、及材料学为基础的通用技术之一。超声技术是通过超声波产生、传播及接收的物理过程而完成的。超声波具有聚束、定向及反射、透射等特性。超声检测技术是利用超声波在媒质中的传播特性(声速、衰减、反射、声阻抗等)来实现对非声学量(如密度、浓度、强度、弹性、硬度、粘度、温度、流速、流量、液位、厚度、缺陷等)的测定。它的基本原理是基于超声波在介质中传播时遇到不同的界面,将产生反射,折射,绕射,衰减等现象,从而使传播的声时,振幅,波形,频率等发生相应变化,测定这些规律的变化,便可得到材料的某些性质与内部构造情况。与传统超声技术完全不同,新的超声技术具有以下特点:在不破坏媒质特性的情况下实现非接触性测量,环境适应能力强,可实现在线测量。 1.2超声波测距特性

1.2.1 超声波用于距离测量的优势

由于超声波频率较高,沿直线传播,绕射小,穿透力强,指向性强,传输过程中衰减少,能量消耗缓慢,在介质中传播的距离较远,遇到杂质或分界面时会产生反射波,因而超声波经常用于距离的测量。超声波有两个特点,一个是能量大,一个是沿直线传播,它的应用就是按照这两个特点展开的。

超声波与一般声波比较,它的振动频率高,而且波长短,因而具有束射特性,方向性强,可以定向传播,其能量远远大于振幅相同的一般声波,并且具有很高的穿透能力。超声波在均匀介质中按直线方向传播,但到达界面或者遇到另一种介质时,也像光波一样产生反射和折射,并且服从几

1

何光学的反射、折射定律。超声波在反射、折射过程中,其能量及波型都将发生变化。 理论研究表明,在振幅相同的情况下,一个物体振动的能量跟振动频率的二次方成正比。超声波在介质中传播时,介质质点振动的频率很高,因而能量很大。

1.2.2 超声波测距仪

一些传统的距离测量方式在某些特殊场合存在不可克服的缺陷。例如,液面测量就是一种距离测量,传统的电极法是采用差位分布电极,通过给电或脉冲检测液面,电极长期浸泡于水中或其它液体中,极易被腐蚀电解,失去灵敏性利用超声波测量距离可以解决这些问题,因此超声波测量技术在工业控制勘测,机器人定位和安全防范等领域得到了广泛应用。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。为了使移动机器人能自动避障行走,就必须装备测距系统,以使其及时获取距障碍物的距离信息(距离和方向)。

超声波测距仪广泛应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如联合收获机割台割幅、液位、井深、管道长度等的实时测量场合,也可用于使移动机器人能自动避障行走。要求测量范围在0.10~6.00 m,测量精度1mm,测量时与被测物体无自接接触,能够清晰稳定地显示测量结果。 1.3设计要求

1.3.1 内容及任务

熟悉掌握单片机与传感器的相关知识。具备基本的模块电路设计能力,例如:温度检测电路,超声波发射及控制电路,超声波接受及信号处理电路,显示电路,以及RS—232通信接口等等。具备宏观设计硬件能力,利用所掌握的语言(汇编或C语言)实现软件设计,要求硬件布局合理,软件设计精练。

1.熟悉单片机与传感器相关知识 2.设计出相关电路模块的硬件 3.超声波测距仪的软件设计

1.3.2 拟达到的要求或技术指标

(1)测量距离范围要求为<6M

2

(2)精度要求优于1% (3)进行温度补偿

(4)显示方式为数码管显示

(5)具有RS-232通信功能,便于扩展

2 总体设计

2.1方案的选择

2.1.1传感器的选择

? 方案一

磁致式传感器:按结构方式不同,磁致式传感器可分为动圈式和磁阻式。磁致式超声波传感器主要由铁磁材料和线圈组成。超声波的发射原理是:把铁磁材料置于交变磁场中,产生机械振动,发射出超声波。其接收原理是:当超声波作用在磁致材料上时,使磁致材料振动,引起内部磁场变化,根据电磁感应原理,使线圈产生相应的感应电势输出。

但由于受外界温度、压力、电磁场的影响及自身结构的限制,在实际操作中产生了各种误差。

? 方案二

压电式传感器:压电式传感器的原理是基于某些晶体材料的压电效应,目前广泛使用的压电材料有石英和磷酸二氢胺等,当这些晶体受压力作用发生机械变形时,在其相对的两个侧面上产生异性电荷,这种现象称为“压电效应”。磷酸二氢胺属于人造晶体,能够承受高温和相当高的湿度,所以已经得到了广泛的应用。

室外用途的超声波传感器必须具有良好的密封性,以便防止露水、雨水和灰尘的侵入。压电陶瓷被固定在金属盒体的顶部内侧。底座固定在盒体的开口端,并且使用树脂进行覆盖。工作频率就是压电芯片的共振频率。当加到它两端的交流电压的频率和芯片的共振频率相等时,输出的能量最大,灵敏度也最高。误差产生小。综合上面所叙,系统的设计中选择用压电式超声波传感器。

2.1.2单片机的选择

单片机是微电子技术与计算机技术的结晶,单片微型计算机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价

3

比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。单片机现在成为集成电路大家族的重要成员 。单片机技术正日臻完善,国内外的单片机热更是经久不衰。单片机不仅用于智能仪器,电器设备,数据采集,自动控制及国防工业等技术领域,而且进入亿万家庭。目前,单片机正朝着兼容性,单片系统化,多功能和低功耗的方向发展。

51系列单片机引脚与封装如图2.1所示。

图2.1 51系列单片机封装图

5l系列单片机中典型芯片(AT89C51)采用40引脚双列直插封装(DIP)形式,内部由CPU,4kB的ROM,256 B的RAM,2个16b的定时/计数器TO和T1,4个8 b的I/O端:IP0,P1,P2,P3,一个全双功串行通信口等组成。特别是该系列单片机片内的Flash可编程、可擦除只读存储器(E~PROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统中更为有用。

5l系列单片机提供以下功能:4 kB存储器;256 BRAM;32条I/O线;2个16b定时/计数器;5个2级中断源;1个全双向的串行口以及时钟电路。空闲方式:CPU停止工作,而让RAM、定时/计数器、串行口和中断系统继续工作。掉电方式:保存RAM的内容,振荡器停振,禁止芯片所有的其它功能直到下一次硬件复位。

5l系列单片机为许多控制提供了高度灵活和低成本的解决办法。充分

4

利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。所以,单片机选用AT89C51。 2.2 超声波测距的原理

超声波检测通过超声量的测量来进行,其中声速超声量在工业的超声波测量中应用较广。在声速C已测知的媒介中,利用声波传播距离L和传播时间t的关系式L=Ct,就可测得距离。这是超声波测量位移的基本关系式。

实际中,测量位移采用的是脉冲回波法,先激励超声波探头发射超声波,超声波遇到被测物后反射回来即所说的回波,于是探头接收回波,记录下从超声波发射到接收的时间t,由于从发射到接收,超声波所走路程为超声波探头到被测物表面位移的两倍,因此,可以计算出超声波探头到被测物的位移L=Ct/2。C为声速。可以看出,测量位移的关键是要准确的测量处出时间T。在超声波发射器两端输入10个40KHz脉冲串,脉冲电信号经过超声波内部振子,振荡出机械波,通过空气,介质,传播到被测面,由被测面反射,被超声波接受器接收。在超声波接收器两端信号是毫伏级别的正弦波信号,超声波经气体介质转播到接收器的时间,即往返时间,往返时间与气体介质中的声速相乘,就是声波传输的距离。而所测距离为声波传输距离的一半,其关系式如公式2.1所示:

L=1/2 Ct (2.1)

式中:

L为待测距离;

C为超声波的声速; t为往返时间。

采用微处理器脉冲计数的方法,可以精确的测出t的值。假设微处理器的机器周期为T,则t=N×T,则探测距离如公式2.2所示:

L=1/2Ct=1/2CNT (2.2) 2.3总体设计框图

超声波测距系统由超声波发射,回波信号接收,计时测量,数据处理与智能算法,显示报警等功能模块构成。单片机采用89C51,微处理器控制发出超声波信号,经功率放大推动超声波发射器发射出去。超声波接收器将接收到的反射超声波送到放大器进行放大,然后用锁相环电路进行检

5

波,总设计框图如下:

图2.2 超声波测距系统原理框图

整个系统由微处理器控制,超声波信号在空气中传播至障碍物后发生反射,反射的回波经空气传播给超声波接收换能器并转换成电信号,经滤波,放大,整形后,输入到微处理器的外部中断INTO处产生中断,计数器停止计数,此时计数器记得的脉冲数N,即为对应的需要测量时间,由N可通过公式求出间距L。

L=1/2Ct=1/2CNT (2.3)

由于串行通信方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。所以,在本系统的设计中加入了RS232接口。RS-232接口是目前最常用的一种串行通信接口。它采用全双工工作方式,一条发射,一条接收,一条地线。允许一对双绞线上一个发送器驱动多个负载设备,但由于通信距离受驱动器允许的电容负载限制,而且存在共地噪声和不能抑制的共模干扰问题,所以一般用于小于15M的通信距离。在本系统中正好适用。RS-232用于多点互连时非常方便,可以省掉许多信号线。许多工业现场控制系统中一般都采用该总线标准进行数据传输。在数据输入后,通过转换可以输出多种数据。

3 软体设计

3.1显示子程序

根据系统要求,显示部分要有4个LED指示灯。从P0口输出段码,段码用74LS64驱动。本电路的显示方式属于动态方式,在这种动态显示方式中,共享一个74LS64驱动器,实现动态显示的目的。程序和流程图如下:

6

图3.1 显示子程序

SHOWLED:MOV R0,4FH ;指向当前要显示的信息的地址 MOV R2,#10H LEDLOOP:MOV A,@R0 ACALL CHANGE

MOV R4,A ;要显示的数字保存到R4 MOV A,4FH

CJNE A,#48H,SHOWNUM

SHOW INFORMATION ;显示信息时,不合成小数点 AJMP NOTDOP

SHOWNUM:CJNE R2,#00100000B,NOTDOP MOV A,R4 ANL A,#07FH MOV R4,A

7

NOTDOP:MOV A,R4

MOV LEDCHOICEPORT,R2 MOV LEDDATAPORT,A MOV A,R2 RL A

MOV R2,A INC R0

ACALL DELAY

CJNE R2,#01H,LEDLOOP

MOV LEDCHOICEPORT,#00H ;关闭所有的LED RET

END SHOWLED DELAY: ;延时子程序

MOV R6,#38 DELAYLOOP:

MOV P3,#0FFH

MOV A,P3 CJNE A,#0FFH,DELAYRET DJNZ R6,DELAYLOOP

DELAYRET: ;是否接收下个回波 RET

END DELAY 3.2外部中断子程序

MEASURELEN: ;参数R0:#0FFH,测量出错; #0FH

JNB CANCEL,CANMEASURELEN 有效测量信息 CLR CANCEL RET

CANMEASURELEN:

MOV 1EH,#00H ;清标志位 CALL SETTIME

LOOP1:CJNE R0,#0FFH,NOTFLOW

8

;溢出处理,使LED显示ERRO CALL SHOWERRO RET

NOTFLOW:CJNE R0,#0FH,LOOP1 ;还未接受到INT1的有效终止信号

SJMP L ;反馈信号正常 MOV A,TL1

MOV B,#HALFSPEED MUL AB MOV R7,A MOV R6,B MOV A,TH1

MOV B,#HALFSPEED MUL AB ADD A,R6 MOV R6,A MOV A,B

ADDC A,#00H MOV R5,A MOV R4,#00H MOV 1EH,#02H

CALL CUTFIGURE MOV P3,#0FFH RET

END MEASURELEN

9

图3.2外部中断流程

3.3测量距离子程序

测量距离有效时:返回一个浮点形的四位数字。测量距离溢出时:返回出错信息 ERRO。R3存放要显示的信息的地址,并保存当前的结果。 MEASURELEN: ;参数R0:#0FFH,测量出错; #0FH有效测量信息 JNB CANCEL,CANMEASURELEN CLR CANCEL RET

CANMEASURELEN:

MOV 1EH,#00H ;清标志位 CALL SETTIME

LOOP1:CJNE R0,#0FFH,NOTFLOW ;溢出处理,使LED显示ERRO

10

CALL SHOWERRO RET

NOTFLOW:CJNE R0,#0FH,LOOP1 ;还未接受到INT1的有效终号 SJMP L ;反馈信号正常 MOV A,TL1

MOV B,#HALFSPEED MUL AB MOV R7,A MOV R6,B MOV A,TH1

MOV B,#HALFSPEED

MUL AB ADD A,R6 MOV R6,A MOV A,B

ADDC A,#00H

MOV R5,A MOV R4,#00H MOV 1EH,#02H

CALL CUTFIGURE

MOV P3,#0FFH RET

END MEASURELEN

11

图3.3 距离测量流程图

3.4定时中断子程序

定时中断子程序由P1.0口发射1个脉冲,驱动超声波传感器发射超声波,并关外部中断,计数器T0、T1同时开始计时;为防止虚假回波的干扰,在延时一段时间后,开中断,此时判断计数器T1有否溢出中断,单片机根据不同的时间,以查表的方式设置自动增益控制电路的增益;当有外部中断信号时,单片机就停止T0的计时,计算出渡越时间t并存储到E2PROM中。

12

图3.4 定时中断流程图

SETTIME: ;设置T0,T1子程序,并启用 MOV TMOD,#12H ;T0模式2,T1模式1 MOV TH0,#0F4H MOV TL0,#0FFH MOV TH1,#00H MOV TL1,#00H

MOV R0,#00H ;测量时间标志位清零,Ready状态 MOV R1,#01FH ;设置发送脉冲的个数

MOV IE,#10001110B ;开CPU中断,#10000010B; MOV TCON,#01010100B ;启用T0,T1 RET

END SETTIME

IT0P: ;T0中断服务程序,脉冲电平变反 CJNE R1,#00H,TWAVE RETI

TWAVE:DEC R1

CPL WAVEPORT RETI END IT0P

IT1P: ;T1中断服务程序,测量距离溢出 MOV A,1EH

CJNE A,#03H,NOTFORMSECOND

MOV 1EH,#03H ;标志参数

INC 1FH ;FORM SECOND MODE ^T=10 000uS TH1=0D8H TL1=0F0H MOV TH1,#0D8H MOV TL1,#0F8H RETI

NOTFORMSECOND:CLR EA ;关闭CPU中断请求 MOV TCON,#00H ;关闭T0,T1

MOV R0,#0FFH ;设置测量时间标志字符为溢出状态

13

RETI END IT1P 3.5总程序及其流程图

软件采用模块化设计,程序由主程序,预置子程序,发射子程序,接收子程序,显示子程序等模块组成,调试过程中对其中每个功能模块和子程序逐一调试,在每个子程序都完成其指定功能后,再进行综合调试。

根据微处器的I/O接口发出脉冲信号驱动超声波发射器发出信号,与此同时计数器开始计数,当遇障碍物反馈信号到超声波接收器接收,经放大,滤波后产生一个低脉冲,其信号传送给INTO产生中断,调用测距子程序,计算出测量距离,调用显示子程序,根据不同的测量数值在LED上显示距离和报警。

软件设计的主要思路是将预置、发射、接收、显示、声音报警等功能编成独立的模块,在主程序中采用键控循环的方式,当按下控制键后,在一定周期内,依次执行各个模块,调用预置子程序、发射子程序、查询接收子程序、定时子程序,并把测量的结果进行分析处理,根据处理结果决定显示程序的内容以及是否调用声音报警程序。当测得距离小于预置距离

时,声音报警程序被调用。流程图如下所示:

14

图3.5主程序流程图

15

4 总结

4.1设计系统的实用性与价值性

利用51系列单片机设计的测距仪便于操作、读数直观。经实际测试证明,该类测距仪工作稳定,能满足一般近距离测距的要求,且成本较低、有良好的性价比。它不但在工业控制勘测和安全防范等领域得到了广泛应用,而且应用于建筑施工工地以及一些联合收获机割台割幅、液位、井深、管道长度等的实时测量场合。最普遍的用法是移动机器人能自动避障行走和汽车倒车技术。机器人在运动之前都应进行障碍物检测,合理的避障算法对于成功的导航而言显得尤为重要。它也是一套汽车拐弯、泊位、倒车的安全辅助装置,它会帮助分析和运算障碍物的方位和距离及安全状态,从而提高运输效率,障交通安全,缓解交通堵塞,改善城市环境等方面的卓越效能。

中国科学技术的飞速发展使人类进入信息社会,超声波作为信息载体的研究和应用取得了巨大的成就。其技术已广泛应用于国民经济的各个领域:电子、航空、航天、造船、机械、冶金、轻工业、交通、能源、地质勘探、无损探伤、无损检测、通讯、医学、化学、生物、食品、环保等行业,并日益受到各行业的步高度认识和重视,在超声波市场年增长率始终保持在两位数的高速增长势头,中国已并形成许多蕴藏巨大发展潜力的超声波产业市场。超声波将有着广泛的发展前景。 4.2设计系统的不足和改进方法

系统中超声波的发射时间由单片机测取,按键输入开始扫描命令时,

超声波发射器开始发射一次超声波群,同时开始计时,当超声波接收器接受到经反射得到的回波时,单片机产生一次中断,中断中停止计时得到所需时间数据,计算得到障碍物的距离,显示并发往PC机。然后开始下一次测量。此系统中断服务比较多,且由于12M晶振的51系列单片机产生40K的方波信号有很大误差,将使超声波发射接收装置的灵敏度降低。

16

针对误差大灵敏度低等问题,可以用CPLD产生超声波发射器所需的脉冲群机所需的驱动信号,单片机控制装置的开始和结束以及每一次测量的起停。每次测量由单片机计时然后计算处理、显示、传送。把发射驱动信号与接收测量信号分别用CPLD和单片机控制,可以提高精度,保证可靠性。

另外由于该系统中锁相环锁定需要一定时间,测得的距离有误差,在汽车雷达应用中此误差为3C111可忽略不计;但在精度要求较高的工业领域如机器人自动测距等方面,此误差不能忽略,只有通过改变--些硬件的应用实现对超声波的快速锁定,使误差进一步减小到0.31llnl,可以满足更高要求。

由于本人思考的不全面性,本次设计存在或多或少的问题与不足。还请各位老师提出宝贵的意见,在以后的进程中会加以改进,尽量达到完善。

17

※ ※ ※ ※ ※

致谢

经过老师、同学的帮助和自己的努力,我终于完成了本次设计稿。在

此首先感谢我的指导老师,无论是在选题、准备材料,还是在论文设计过程中,老师都给予我极大的支持和耐心的指导。本设计是对我大学四年所学知识的全面总结,是我第一次综合运用所学习的专业知识来独立完成论文设计。在设计过程中,老师始终给予我无私的帮助和指导,给我以完成设计的信心。老师高度的专业知识、丰富的实践经验、严谨的治学态度、热忱的处人处事方式,深深地感染着我,使我受益非浅,在此我深表感谢!

深深感谢老师对我的指导和帮助,感谢所有教授过我课程的老师,感谢所有给予我帮助的老师和同学们!

深深感谢给予我无私和热情关怀的各位良师益友,我会永远记得并庆幸,在即将成为我的过去的大学生活里有你们的存在,因为你们而使我的大学生活变得圆满,谢谢你们!

18

参考文献

[1]沙占友.集成化智能传感器原理与应用[M].北京:电子工业出版社,2004. [2]吴研.超声波倒车雷达系统设计 [J].北京:北京理工大学,2005.

[3] 肖景和,赵健.红外线热释电与超声波遥控电路[M].北京:人民邮电出版社,2003. [4]史谚宾.基于AT89C2051的超声波测距仪设计[J].北京:航空航天出版社,2006 [5]路锦正,王建勤.超声波测距仪的设计[M].成都:成都理工大学,1999. [6] 基于单片机智能系统的设计与实现[M].北京:人民邮电出版社,2005. [7]赖寿宏.微型计算机控制技术[M].北京:机械工业出版社,2002. [8]王兆安,黄俊.电力电子技术[M].北京:机械工业出版社,2003. [9]邱关源.电路[M].北京:高等教育出版社,1999.

[10] 尤一鸣.单片机总线扩展技术第一版[M].北京:北京航空航天大学出版社,1993 [11] 李鸿.单片机原理用应用[M].长沙:湖南大学,2004.

19

附录A 软件编程

超声波测量距离,时间单片机汇编程序;

功能:测量距离,测量时间,记忆最近测量的正确的六组数据 晶振频率:12MHz

显示模块:4位7段共阳极LED数码管 LEDDATAPORT EQU P0 LEDCHOICEPORT EQU P2

KEYMODE EQU 00000001B ;P3.0 KEYFUNCTION EQU 00000010B ;P3.1 KEYUP QU 00010000B ;P3.4 KEYDOWN EQU 00100000B ;P3.5 KEYPORT EQU P3 CHECKNUM EQU 17H CANCEL EQU 00H ;BIT HALFSPEED EQU 170 ; 340/2

WAVEPORT EQU P1.0 ;信号脉冲输出端口 DELAYMIN EQU 00H ;盲区时间延迟下限 DELAYMAX EQU 01H ;盲区时间延迟上限

ORG 0000h ;设置中断向量表 RESET: AJMP MAIN ORG 000BH

JMP IT0P ;T0中断请求服务程序 ORG 0013H

JMP INT1P ;INT1外部中断请求服务程序 ORG 001BH

JMP IT1P ;T1中断请求服务程序 ORG 0030H MAIN: 初始化Ram

20

MOV SP,#50H

CALL RESETMEMORY

CLR CANCEL ;AID TO RESET MEMORY MOV 4EH,#00H MOV A,#00H

MAINLOOP:CALL SHOWLED MOV KEYPORT,#0FFH

MOV A,KEYPORT ;COLECT KEYBORD INFORMATION MOV R0,A KEYMODE SERVE ANL A,#KEYMODE CJNE A,#00H,NEXT1

MOV CHECKNUM,#00H ;CHECK NUMBER IS 0 NOW MOV A,4EH INC A

CJNE A,#01H,MODESPEED CALL SHOWLEN MOV 4EH,A AJMP OK

MODESPEED: CJNE A,#02H,MODESECOND CALL SHOWSPEED MOV 4EH,A AJMP OK

MODESECOND:CJNE A,#03H,RESETMODE CALL SHOWSECOND MOV 4EH,A AJMP OK RESETMODE: MOV 4EH,#01H CALL SHOWLEN AJMP OK OK; MOV R7,#01H

21

CALL WAITKEYRELEASE SJMP MAINLOOP

NEXT1:KEYFUNCTION SERVE MOV A,R0

ANL A,#KEYFUNCTION CJNE A,#00H,NEXT2 MOV CHECKNUM,#00H

CHECK NUMBER IS 0 NOW MOV R7,#02H

CALL WAITKEYRELEASE CJNE R3,#00H,NOTRESTORMEM CALL RESETMEMORY

PRESS FUNCTION KEY FOR A LONG TIME TO CLEAR MEMORY:SETB CANCEL SJMP MAINLOOP

NOTRESTORMEM: MOV A,4EH CJNE A,#01H,SPEED CALL MEASURELEN SJMP MAINLOOP

SPEED:CJNE A,#02H,SECOND CALL MEASSURESPEED SJMP MAINLOOP

SECOND: CJNE A,#03H,MAINLOOP CALL MEASEURSECOND SJMP MAINLOOP DEFAULT:SJMP MAINLOOP NEXT2: KEYUP CHECK SERVE MOV A,R0 ANL A,#KEYUP CJNE A,#00H,NEXT3 MOV R6,#01H CALL CHECK MOV R7,#03H

CALL WAITKEYRELEASE

22

JMP MAINLOOP

NEXT3:KEYDOWN CHECK SERVE MOV A,R0

ANL A,#KEYDOWN

CJNE A,#00H,AIDJMPTOMAINLOOP AJMP AIDNEXT

AIDJMPTOMAINLOOP:JMP MAINLOOP AIDNEXT:MOV R6,#02H CALL CHECK MOV R7,#04H

CALL WAITKEYRELEASE JMP MAINLOOP RET END MAIN

;************************************** ;******* 测量距离子程序 ********* ;**************************************

;操作结果:R3存放要显示的信息的地址,并保存当前的结果 ;测量距离有效时:返回一个浮点形的四位数字 ;测量距离溢出时:返回出错信息 ERRO

MEASURELEN: ;参数R0:#0FFH,测量出错; #0FH有效测量信息 JNB CANCEL,CANMEASURELEN CLR CANCEL RET

CANMEASURELEN:

MOV 1EH,#00H ;清标志位 CALL SETTIME

LOOP1:CJNE R0,#0FFH,NOTFLOW ;溢出处理,使LED显示ERRO CALL SHOWERRO RET

NOTFLOW:CJNE R0,#0FH,LOOP1 ;还未接受到INT1的有效终止信号 SJMP L ;反馈信号正常

23

MOV A,TL1

MOV B,#HALFSPEED MUL AB MOV R7,A MOV R6,B MOV A,TH1

MOV B,#HALFSPEED MUL AB ADD A,R6 MOV R6,A MOV A,B ADDC A,#00H MOV R5,A MOV R4,#00H ;

MOV 1EH,#02H CALL CUTFIGURE MOV P3,#0FFH RET END MEASURELEN

24

本文来源:https://www.bwwdw.com/article/cdd8.html

Top