超声波测距仪设计毕业论文设计.doc

上传人:laozhun 文档编号:3993831 上传时间:2023-03-30 格式:DOC 页数:31 大小:315KB
返回 下载 相关 举报
超声波测距仪设计毕业论文设计.doc_第1页
第1页 / 共31页
超声波测距仪设计毕业论文设计.doc_第2页
第2页 / 共31页
超声波测距仪设计毕业论文设计.doc_第3页
第3页 / 共31页
超声波测距仪设计毕业论文设计.doc_第4页
第4页 / 共31页
超声波测距仪设计毕业论文设计.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《超声波测距仪设计毕业论文设计.doc》由会员分享,可在线阅读,更多相关《超声波测距仪设计毕业论文设计.doc(31页珍藏版)》请在三一办公上搜索。

1、毕业论文设计超声波测距仪设计目录摘要1Abstract21 绪论31.1 设计项目概述31.2 设计要求31.3 超声波测距原理32 超声波测距仪硬件系统设计52.1 超声波传感器52.1.1超声波传感器结构52.1.2 超声波传感器工作原理62.2 总体方案设计72.3 超声波发射电路设计82.4 超声波接收电路的设计92.5 显示电路的设计103 单片机AT89S52123.1 AT89S52单片机的构成123.2 AT89S52单片机的工作原理133.3 AT89S52单片机特性143.3.1 AT89S52标准功能143.3.2 管脚说明154 软件设计174.1 程序设计总体分析17

2、4.2 程序流程图174.3 电路程序设计184.4 电路搭建与程序调试26结论27致谢28参考文献29超声波测距仪设计摘要:本文阐述了超声波测距的原理,介绍如何用AT89S52单片机实现超声波测距,分析各个部分的工作原理,并给出了原理图和源程序。此超声波的测距电路由超声波传感器、单片机、发射/接收电路和LED显示器组成。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波被广泛应用于距离的测量。利用超声波检测比较迅速、方便,计算简单,已做到实时控制,并且在测量精度方面能达到工业实用要求,测量时与被测物体无直接接触等,这些优点使其广泛应用于倒车雷达、建筑施工工地等场合。关键词:

3、超声波 测距 单片机 The design of ultrasonic rangefinderAuthorYang ShengTeacherHu YonggangAbstract:This paper expounds the principle of ultrasonic ranging and describes how to use AT89S52 SCM realizing ultrasonic ranging. It also analysis of the working principle of each part and gives the principle diagram

4、and the source program. The ultrasonic ranging is composed by ultrasonic sensors, SCM circuit, launch/receiving circuit and LED display. Due to the strongly directivity, slowly energy consumption and long transmission distance in a medium, thus ultrasonic is widely used in distance measurement. Ultr

5、asonic is quickly, convenient, simple calculation and achieves real-time control. And it can also reach the industrial practical requirements in the measurement precision and without directly contacted with object to be tested. All These advantages make it widely used in reverse radar, construction

6、site and so on. Ultrasonic ranging based on the AT89S52 SCM easily overcome shortcomings, and is used very extensive. Keywords: Ultrasonic wave; Range finding; One-chip computer; widely1 绪论1.1 设计项目概述 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波被广泛应用于距离的测量。利用超声波检测往往比较迅速、方便,计算简单,已做到实时控制,并且在测量精度方面能达到工业实用要求,测量时与被

7、测物体无直接接触等,这些优点使其广泛应用于倒车雷达、建筑施工工地以及一些工业现场,例如液位测量、精深测量等场合。目前国内一般实用专用集成电路设计超声波测距仪,但是成本高,没有显示,操作不便,操作使用不方便,创展不灵活。基于单片机的超声波测距易克服了上述缺点,应用非常广泛。 1.2 设计要求设计一个超声波测距仪,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。具体要求如下:(1)测量范围在0.5-4m,测量精度1cm。(2)测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。 1.3 超声波测距原理采用单片机作为主控制器,用LED数码管

8、作为显示仪器来显示所测的距离。由单片机发射和接受超声波信号,再经过单片机计算输出显示被测距离,即超声波发生器T在某一时刻发出一段超声波信号,当超声波遇到障碍物(被测物体)后返回被接收器R接受。测距的原理如图1.1。 RTT2 T1 图1.1 测距的原理这样只要计算出发射超声波和接收到超声波之间的时间,就可以计算出超声发射器与反射物体的距离。距离计算公式为: 其中:d为被测物与测距仪的距离 s为声速的来回路程 c为声速 t为声波来回所用的时间超声波是指频率高于20KHZ的机械波。为了以超声波作为检测手段,必须产生超声波和接收超声波,完成这种功能的装置就是超声波传感器,习惯称之为超声波换能器或超声

9、波探头。超声波传感器有发送器和接收器两种,但是一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器利用压电效应的原理将超声波和电能相互转换,即在发射超声波的时候,将电能转换为超声波,而在收到回波的时候,则将超声振动转换为电信号。超声波测距的原理一般采用渡越时间法。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的生源与障碍物之间的距离,超声波测距适用于高精度的中长距离测量,因为超声波在标准空气中的传播速度为332.45m/s。单片机使用12MHZ晶振,所以此系统的测量精度理论可以达到毫米级。 单片机显示模块超声波接收器R超声波发生器T电源电路 图1.2

10、基于单片机的超声波测距仪系统框图2 超声波测距仪硬件系统设计2.1 超声波传感器超声波传感器是根据超声波的特性而研制成的传感器。超声波是一种机械波,其振动频率高于声波,由换能晶片在电压的激励下发生振动产生。超声波的频率高、波长短、绕射现象小,方向性好、能够成为射线而定向传播。超声波传感器是利用压电效应的原理将电能和超声波相互转换,即在发射超声波的时候,转换电能,发射超声波,在收到回波的时候,则将超声波振动转换为电信号。超声波发生器一般分为两类:一类是用电气方式产生超声波,另一类使用机械的方式产生超声波。超声波测距仪属于近距离测量,可以采用常用的压电式超声波换能器来实现。2.1.1超声波传感器结

11、构超声波探头主要由压电晶片组成,既可以发射超声波,也可以接收超声波。小功率超声探头多作探测作用。它有许多不同的结构,可分直探头、斜探头、表面波探头、兰姆波探头、双探头等。超声波传感器结构如图2.1所示。超声探头的核心是其外套中的一块压电晶片。构成晶片的材料可以有许多种。晶片的大小,如直径和厚度也各不相同,因此每个探头的性能是不同的,使用前必须预先了解它的性能。共振板压电晶片电极图2.1 超声波传感器结构 图2.2 超声波传感器的实物图2.1.2 超声波传感器工作原理压电型超声波传感器是利用压电效应的原理,压电效应有逆效应和顺效应,由于超声波传感器是一种可逆元件,超声波发送器就是利用压电逆效应的

12、原理。在压电元件上施加电压,元件随之变形,即称应变,压电逆效应如图2.3所示。如果在图a所示的已被极化的压电陶瓷上加一个图b所示极性的电压,压电陶瓷的极化正电荷与外部正电荷相互排斥,同时,外部负电荷与极化负电荷相互排斥。由于相互排斥的作用,压电陶瓷的厚度变小,长度伸长。若外部施加相反极性的电压,如图c所示那样,则压电陶瓷厚度变厚,长度缩短。图2.3 压电逆效应图超声波传感器采用的是双晶振子,即把双压电陶瓷片以相反极化方向背向粘在一起,则在长度方向上,一片伸长,另一片缩短。在双晶振子的两面涂敷薄膜电极,其上面用引线通过金属板接到一个电极端,下面用引线直接接到另一个电极端。双晶振子为正方形,正方形

13、的左右两边由圆弧形凸起部分支撑着。这两处的支点就成为振子振动的节点。金属板的中心有圆锥形振子。发送超声波时,圆锥形振子有较强的方向性,因而能高效率地发送超声波;接收超声波时,超声波的振动集中于振子的中心,所以,能产生高效率的高频电压。采用双晶振子的超声波传感器,若在发送器的双晶振子(谐振频率为40kHz)上施加40kHz的高频电压,压电陶瓷片就根据所加的高频电压极性伸长与缩短,于是就能发送40kHz频率的超声波。超声波以疏密波形式传播,传送给超声波接收器。超声波接收器是利用压电效应的原理,即在压电元件的特定方向上施加压力,元件就发生应变,则产生一面为正极,另一面为负极的电压。若接收到发送器发送

14、的超声波,振子就以发送超声波的频率进行振动,于是,就产生与超声波频率相同的高频电压,当然这种电压是非常小的,必须采用放大器放大。图2.4 传感器的方向性2.2 总体方案设计单片机采用AT89S52,系采用12MHZ高精度晶振得到较为稳定的时钟频率以减小测量误差。用单片机P1.0端口输出40KHZ方波信号,再经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、积分整形及一系列处理,送至单片机,利用外中断0检测接收返回的超声波信号。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控

15、制七段数码管显示出来。其时序图如图2.5所示。图2.5 时序图单片机在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。该测距装置是由超声波传感器、单片机、发射/接收电路和LED显示器组成。传感器输入端与发射接收电路相连,接收电路输出端与单片机相连接,单片机的输出端与显示电路输入端相连接。2.3 超声波发射电路设计超声波发射采用推挽形式将P1.0端口发出的方波加到超声波换能器两端以提高超声波发射的强度。发射电路主要有74LS04和超声波换能器构成用单片机P1

16、.0端口输出40KHZ方波信号一路经一级反向后送到超声波换能器的一个电极,另一路经两级反向后送到超声波换能器的另一个电极。图2.6为发射电路。图2.6 超声波发射电路2.4 超声波接收电路的设计超声波接收采用的是常用于电视红外遥控接收器的芯片CX20106A。考虑到红外遥控常用的载波频率38KHZ与测距超声波频率40KHZ较为接近,可以利用它作为超声波检测电路。实验证明其具有很高的灵敏度和较强的抗干扰能力。适当改变超声波接收探头两端电容的大小,可以接收电路的灵敏度和抗干扰能力。图2.8为接收电路。图2.8 超声波接收电路其中,CXA20106A为红外线接收专用芯片,可以用于超声波的接收.。各引

17、脚说明如表2.2。表2.2 CXA20106A各引脚说明引脚号说明1超声信号输入端,该脚的输入阻抗约为40k。2该脚与地之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值能改变前置放大器的增益和频率特性。增大电阻R1或减小C1,将使负反馈量增大,放大倍数下降,反之则放大倍数增大。但C1的改变会影响到频率特性,一般在实际使用中不必改动,推荐选用参数为R1=4.7,C1=1F。3该脚与地之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为3.3f。4接地端。 5该脚与电源间接入

18、一个电阻,用以设置带通滤波器的中心频率f0,阻值越大,中心频率越低。例如,取R=200k时,f042kHz,若取R=220k,则中心频率f038kHz。6该脚与地之间接一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短。7遥控命令输出端,它是集电极开路输出方式,因此该引脚必须接上一个上拉电阻到电源端,推荐阻值为22k,没有接受信号是该端输出为高电平,有信号时则产生下降。8电源正极,4.55.5V。2.5 显示电路的设计数码管的结构数码管由7个发光二极管组成,行成一个日字形,它门可以共阴极,也可以共阳极,通过解码电路得到的数码接通相应的发光二极而形成相应的字,这就是它的工作原

19、理。数码管按各发光二极管电极的连接方式分为共阳数码管和共阴数码管两种。数码管符号和引脚如图2.9(a),共阳数码管内部连接如图2.9(b),共阴数码管内部连接如图2.9(c)。图2.9 数码管数码管要用驱动电路来驱动数码管的各个段码,可以分为静态显示和动态显示两类。(1) 动态显示:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8 个显示笔划“a, b, c, d, e, f, g, dp“的同名端连在一起,另外为每个数码管的公共极COM 由位选通控制电路控制,位选通由各自独立的I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是

20、那个数码管会显示出字形,取决于单片机对位选通COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,但是能够节省大量的I/O 端口,功耗更低。(2)静态显示驱动:静态驱动是指每个数码管的每一个段码都由一个单片机的I/O 端口

21、进行驱动,或者使用如BCD 码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O 端口多,如驱动5个数码管静态显示则需要5840 根I/O 端口来驱动,要知道一个89S52单片机可用的I/O 端口才32 ,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。此设计显示电路采用简单实用的4位共阳LED数码管,段码输出端口为单片机的P0口,位码输出端口分别为单片机的P2.0、P2.1、P2.2、P2.3口,数码管位驱运用74LS07驱动。为了减少硬件开销,提高系统可靠性并降低成本,此超声波测距的单片机控制系统采用动态扫描显示,并且软件消影。显示电路如图2

22、.10。图2.10 数码管显示电路图3 单片机AT89S52 3.1 AT89S52单片机的构成AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52单片机引脚图如图3.1。图3.1 AT89S52单片机引脚图3.2 AT89S52单片机的工作原理单片机是通过执行程

23、序来工作的,机器执行不同程序就能完成不同的运算任务。因此,单片机执行程序的过程实际上也体现了单片机的基本工作原理。为此,先从指令程序谈起。1.单片机的指令系统和程序编制前面已经介绍,指令是一种可以供机器执行的控制代码,故它又称为指令码(Instruction Code)。指令码由操作码(Operation Code)和地址码(Address Code)构成:操作码用于指示机器执行何种操作;地址码用于指示参加操作的数在哪里。其格式为:操作码地址码指令码的二进制形式既不便于记忆,又不便于书写,故人们通常采用助记符形式来表示,表3.1所列。表3.1 指令的三种形式指令的二进制形式指令的十六进制形式指

24、令的汇编形式01110100 data174 data1MOV A,#data1;Adata100100100 data224 data2ADD A,#data2;Adata1+data210000000 111111080 FESJMP $;停机2.单片机执行程序的过程程序通常是顺序执行的,因此程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度

25、决定,以指向下一条指令的起始地址,保证指令顺序执行。 3.3 AT89S52单片机特性3.3.1 AT89S52标准功能 (1)与MCS-51单片机产品兼容 (2)8K字节在系统可编程Flash存储器 (3)1000次擦写周期 (4)全静态操作:0Hz33Hz (5)三级加密程序存储器 (6)32个可编程I/O口线 (7)三个16位定时器/计数器 (8)八个中断源 (9)全双工UART串行通道 (10)低功耗空闲和掉电模式 (11)掉电后中断可唤醒 (12)看门狗定时器 (13)双数据指针 (14)掉电标识符 3.3.2管脚说明(1) VCC:电源 (2) GND:地 (3) P0口:P0口是

26、一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时, P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。 (4) P1口:P1 口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL 逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输出口使用。作输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)

27、 ,具体如表3.2所示。 在flash编程和校验时,P1口接收低8位地址字节。 表3.2 P1口第二功能引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入) ,时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用) (5) P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4个TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流

28、(IIL) 。 在访问外部程序存储器或用16位地址读取外部数据存储器 (例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送 1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 (6) P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p2 输出缓冲器能驱动 4 个TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(II

29、L) 。 P3口亦作为AT89S52特殊功能(第二功能)使用,如表3.3所示。 在flash编程和校验时,P3口也接收一些控制信号。 表3.3 P3口第二功能引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断 0)P3.3INT0(外部中断 0)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通) P3.7RD(外部数据存储器写选通)(7) RST: 复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器 AUXR(地址 8E

30、H)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。 (8) ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。 在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。 如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置 “1”,ALE仅在执行 MOVX 或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的

31、SFR的第0位)的设置对微控制器处于外部执行模式下无效。 (9) PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。 当 AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。 (10) EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。 为了执行内部程序指令,EA应该接VCC。 在flash编程期间,EA也接收12伏VPP电压。 (11) XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 (12) XTAL2:振荡器反相放大器

32、的输出端。4 软件设计4.1 程序设计总体分析超声波测距仪软件设计主要由主程序、超声波发射子程序、超声波接收中断程序及显示子程序组成。 超声波主程序首先对系统初始化,设置定时器的初值和工作方式,使总中断允许位EA=1,并给显示端口清零。然后调用超声波发生子程序送出一个超声波脉冲,为避免超声波从发射器直接传送到接收器引起的直接波触发,需延时0.1ms(这也就是测距仪会有一个最小可能测距的原因)后,才能打开外中断0接收返回的超声波信号。由于采用12MHZ的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按下式计算即可测得被测物体与测距仪之间的距

33、离,设计时取20摄氏度时的声速344m/s,则有:,(其中T0为计数器T0的计数值)。 4.2 程序流程图超声波测距仪程序流程图如图4.1所示。 系统初始化开始发射超声波脉冲接收超声波脉冲计算距离显示结果 图4.1 超声波测距仪程序流程图4.3电路程序设计*中断入口程序*ORG0000H LJMP STARTORG0003H LJMP PINT0ORG000BH LJMP INTT0ORG0013H RETIORG001BH LJMP INTT1ORG0023H RETIORG002BH RETI*主程序*START: MOVSP,#4FH MOVR0,#40H ;40H43H为显示数据存放单

34、元(40H为最高位) MOVR7,#0BHCLEARDISP: MOV R0,#00H INCR0 DJNZR7,CLEARDISP MOV20H,#00H MOVTMOD,#21H; T1为8位自动重装模式,T0为16位定时器 MOV TH0, #00H MOV TL0, #00H MOV TH1, #0F2H MOV TL1, #0F2H;40KHz初值 MOV P0, #0FFH MOV P1, #0FFH MOV P2, #0FFH MOV P3, #0FFH MOV R4,#04H;超声波脉冲个数控制(为赋值的一半) SETB PX0 SETB ET0 SETB EA SETB TR

35、0;;开启测距定时器START1: LCALL DISPLAY JNB 00H,START1; ;收到反射信号是标志为1 CLR EA LCALL MATH; ;计算距离子程序 SETB EA CLR 00H SETB TR0; ;重新开启测距定时器 MOV R2,#64H; ;测量间隔控制(约4ms100=400ms)LOOP: LCALL DISPLAY DJNZ R2,LOOP SJMP START1*显示程序*DISPLAY: MOVR1,#40H ;40H为最高位,43H为最低位,先扫描高位 MOVR5,#0F7HPLAY: MOVA,R5 MOVP0,#0FFH MOVP2,A M

36、OVA,R1 MOVDPTR,#TAB MOVCA,A+DPTR MOVP0,A LCALLDL1MS INCR1 MOVA,R5 JNB ACC.0,ENDOUT RRA MOVR5,A AJMPPLAYENDOUT: MOVP2,#0FFH MOVP0,#0FFH RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH;共阳段码表 “0”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“不亮”,“A”,“”*中断程序*INTT0: CLREA;T0中断,65ms中断一次 CLRTR

37、0 MOVTH0,#00H MOVTL0,#00H SETBET1 SETBEA SETBTR0 ;启动计数器T0,用以计算超声来回时间 SETBTR1 ;开启发超声波用定时器T1OUT: RETIINTT1: CPLVOUT ;T1中断,发超声波用 DJNZR4,RETIOUT CLRTR1 ;超声波发送完毕,关T1 CLRET1 MOVR4,#04H SETBEX0 ;开启接收回波中断RETIOUT: RETIPINT0: CLRTR0 ;外中断0,收到回波时进入,关计数器 CLRTR1 CLRET1 CLREA CLREX0 MOV44H,TL0 ;将计数值移入处理单元 MOV45H,T

38、H0 SETB00H ;接收成功标志 RETI*延时程序*DL1MS: MOVR6,#14HDL: MOVR7,#19HDL1: DJNZR7,DL1 DJNZR6,DL RET *距离计算程序(距离=计数值171000cm)*MATH: PUSHACC PUSHPSW PUSHB MOVPSW,#18H MOVR3,45H MOVR2,44H MOVR1,#00D MOVR0,#17D LCALLMUL2BY2 MOVR3,#03H MOVR2,#0E8H LCALLDIV4BY2 LCALLDIV4BY2 MOV40H,R4 MOVA,40H JNZJ0 MOV40H,#0AH;最高位为0,不点亮J0: MOVA,R0 MOVR4,A MOVA,R1 MOVR5,A MOVR3,#00D MOVR2,#100D LCALLDIV4BY2 MOV41H,R4 MOVA,41H JNZJ1 MOVA,40H ;次高位为0,先看最高位是否为不亮 SUBBA,#0AH JNZJ1 MOV41H,#0AH;;最高位不亮,次高位也不亮J1: MOVA,R0 MOVR4,A MOVA,R1 MOVR5,A MOVR3,#00D

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号