资源描述
=
《单片机原理及应用》
课程设计报告书
课题名称
基于51单片机超声波测距器设计
姓 名
学 号
专 业
指导教师
机电与控制工程学院
年 月 日
填 写 说 明
1、正文部分:
(1) 标题与正文格式定义标准如下:
一级标题:1.标题1
二级标题:1.1标题2
三级标题:1.1.1标题3
四级标题:1.1.1.1标题4
(2)表格:尽可能采用三线表。
(3)图形:直接插入的插图应有图标、图号,不能直接插入的图应留出插图空位。图中文字、符号书写要清楚,并与正文一致。
(4)文字表述:要求层次清楚,语言流畅,语句通顺,无语法和逻辑错误,无错字、别字、漏字。文字的表述应当以科学语言描述研究过程和研究结果,不要以口语化的方式表达,报告中科技术语和名词应符合规定的通用词语,并使用法定计量单位和标准符号。
2、参考文献:
(1)数量要求:参考文献只选择最主要的列入,应不低于5种。
(2)种类要求:参考文献的引用,可以是著作[M]、论文[J]、专利文献[P]、会议论文等。
(3)文献著录格式及示例。参考文献用宋体五号字。
[1] 作者. 书名[M]. 版次. 出版地: 出版者, 出版年: 起止页码 (著作图书文献)
[2] 作者. 文章名[J]. 学术刊物名称. 年. 卷(期): 起止页码 (学术刊物文献)
示例: [1]王社国,赵建光。基于ARM的嵌入式语音识别系统研究 [J]。微计算机信息,2007,2-2:149-150.
3、附录或附件:(可选项)
重要的测试结果、图表、设计图纸、源程序代码、大量的公式、符号、照片等不宜放入正文中的可以附录形式出现。
4、如果需要可另行附页粘贴。
任 务 书
一、 课题名称
基于51单片机超声波测距器设计
二、 任务要求
设计一个超声波测距器,可以应用于倒车雷达、工地以及一些工业现场,当车在倒的过程中,与物体在0.10-5.00m时,发出响声,提醒驾驶员,使车不至于撞到物体或人,更安全。
目 录
1、绪论………………………………………………………….... 1
2、方案论证……………………………………………................ 2
3、方案说明…………………………………………………….... 4
4、硬件方案设计……………………………………………….... 7
5、软件方案设计……………………………………………… ... 15
6、调试………………………………………………………….... 18
7、技术小结………………………………………………............ 20
8、参考文献…………………………………………………….... 21
9、附录………………………………………............................ ....22
1.绪论
近年来,随着单片机在我国的推广,以其的简单实用、功能强、体积小而日益广泛的被广大设计师所采用,尤其在工业控制领域中应用更为突出。基于单片机的超声波测距器作为单片机众多应用中的佼佼者,无疑为现代的工业生产带来了更多的便利。超声波测距器可以应用于一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。
超声波是指频率在20KHZ以上的声波,它属于机械波的范畴。超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。正是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。
系统的设计主要包括两部分,即硬件电路和软件程序。硬件电路主要包括单片机电路、发射电路、接收电路和显示电路,另外还有复位电路和LED控制电路等。本次课程设计采用AT89S51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路,AT89S51控制计算超声波从发射到接收的传送时间,从而得到待测距离。本系统具有易检测、软件功能完善、工作可靠、准确度高等优点。
1
本文论述了单片机技术研制成功的超声波测距仪的基本原理,测量计算方法,实现方案。采用软件校正,提高了测量精度和整机的可靠性。实际使用表明,极大的提高了安全性、可靠性。
2.方案论证
在当代工业生产中,普遍应用的高科技测距方式有红外测距、激光测距及超声波测距三种。
2.1红外线测距技术
红外线测距的优点是成本便宜、仪器易制、安全性高,但其缺点较多,主要在于测量距离近、精度低、方向性差。自然界红外光分布比较广泛,容易引起测量误差。市场上的红外线测距器一般的测距范围在20cm-150cm之间,只适合于近距离的测量,而其测量的精度就更不值得一提了,只有1cm左右。
2.2激光测距方式
激光测距的优点是精确、距离远,缺点是需要注意人体安全,且制作的难度较大,成本较高,而且光学系统需要保持干净,否则将影响测量结果。
2.3超声波测距方式
声音是与人类生活紧密相关的一种自然现象。当声的频率高到超过人耳听觉的频率极限(根据大量实验数据统计,取整数为2000HZ)时,人们就会觉察不出周围声的存在,因而称这种高频率的声为“超”声。
2
超声波作为一种特殊的声波,同样具有声波传输的基本物理特性——反射、折射、干涉等等。超声波测距就是利用其反射的特性。超声波反射器不断发出某一频率的超声波,遇到被测物体后反射回反射波,然后超声波接收器接收到反射回来的信号,并将其转换为电讯号,测出发射波和反射波的时差,根据光速及计算公式,即可求出待测的距离,超声波测距的优点是比较耐脏污,即使传感器上有尘土,只要没有堵死就可以测量,测距范围比激光近,比红外远,一般为3cm-5cm,精度一般在1cm,有的达到1mm级,超声波测距的缺点是一定距离内有一定的束角,受周围障碍物影响大,适合于室内测量,且测量精度受到温度的一定影响。
超声波的特性有如下几点:
1> 束射特性:由于超声波的波长短,超声波射线可以和光线一样,能够反射、折射,也能够聚焦,而且遵守几何光学上的所有定律。即超声波射线从一种物质表面反射时,入射角等于反射角,当射线透过一种物质进入另一种密度不同的物质时就会产生折射现象,也就是要改变它的传播方向,两种物质的密度差别愈大,则折射率也愈大。
2> 吸收特性:声波在各种介质中传播时,随着传播距离的增加,其强度会逐渐减弱,这是因为介质要吸收掉它的部分能量。对于同一介质,声波的频率越高,介质吸收就越强。对于一个频率一定的声波,在气体中传播时吸收尤为厉害,在液体中传播时吸收就比较弱,在固体中传播时吸收是最小的。
3
3> 超声波的能量传递特性:超声波之所以能在各个工业部门得到广泛的应用,主要原因还在于比声波具有强大得多的功率。为什么会有这么强大得功率呢?因为当声波进入某一介质时,由于声波的作用使物质中的分子也随之振动,振动的频率和声波频率一样,分子振动的频率决定了分子振动的速度。频率愈高速度愈大。物资分子由于振动所获得的能量除了与分子本身的能量有关外,主要是由分子的振动速度的平方决定的,所以如果声波的频率愈高,也就是物质分子愈能得到更高的能量,超声波的频率比普通声波要高出很多,所以它可以使物质分子获得很大的能量;换句话来说,超声波本身就可以供给物质分子足够大的功率。
4> 超声波的声压特性: 当声波进入某物质时,由于声波振动使物质分子相互之间产生压缩和稀疏的作用,将使物质所受的压力产生变化。由于声波的振动引起附加压力现象叫声压作用。
从成本和实用性上来说,超声波测距在现代工业生产应用中是最优的方案选择。随着超声波技术的发展,高端的超声波测距模块在精度上已经达到mm级别,而超声波测距带温度补偿的功能又可以大大的消除温度的影响,使测量更精确、更稳定。超声波测距器比较低廉的成本价格以及比较高的安全性能,也成为人们选择它的不二理由!下表给出了上述三种不同测距方式的比较。
不同测距的方式比较
方式比较
精度
造价
抗干扰
测试距离
激光
7mm
较高
强
较长
超声波
32mm
低
一般
较长
红外线
20cm-150cm
低
弱
短
3.方案说明
4
超声波是指频率高于20KHZ的机械波。为了以超声波作为检测手段,必须产生超声波和接收超声波。完成此功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。
超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距的原理一般采用波越时间法TOF(time of flight),首先测出超声波从发射至遇到障碍物返回所经历的时间,再乘以超声波的速度即得到2倍的声源与障碍物之间的距离。
测量距离的方法有多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量,因为超声波在标准空气中的传播速度为331.45m/s,由单片机计时,单片机使用12.0KHZ的晶振,所以此系统的测量精度理论上可以达到毫米级。
由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量。利用超声波检测距离,设计较方便,计算处理也较简单,并且在测量精度方面也能达到要求。
超声波发生器可以分为2类:一类是用电气方式产生超声波;二是用机械方式产生超声波。该课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。
5
利用超声波测距原理,测量低速行驶车辆与飞机的距离,当车辆与飞机的距离小于安全距离时,发出声光报警,并显示车辆与飞机之间的距离,提醒驾驶员及时采取减速、制动等措施,从而达到避免车辆与飞机碰撞,拖挂等事故。整个系统由超声波发射、超声波接收、51单片机系统和声光报警、距离显示等设备组成,如下图所示:
超声波测距报警装置原理框图
发射部分由高频振荡器、单脉冲发生器、编码调制器、功率放大器及超声换能器组成。单脉冲发生器在振荡器的每个周期内都被触发,产生固定脉宽的脉冲序列,来自单片机的编码信号对脉冲序列进行编码调制,经功率放大后,通过超声换能器发射超声波。
接收部分由超声换能器、接收放大器和编码解调器组成。接收到的超声波反射信号经超声波换能器转换、放大、解调后,送到单片机系统进行处理,并通过距离显示车辆与飞机之间的距离,当该距离小于设定的告警距离时,启动报警系统报警。
在多台车辆同时作业时,某台车辆发射的超声波信号可能被其它车辆接收,从而因造成系统混乱而产生误报。为解决这一问题,系统对不同的车辆进行不同的编码调制,使每辆车只能接收到其本身发射的信号。
6
为有效消除干扰,编码解调采用积累检测解调。系统中的发射和接收部分由单片机控制轮流工作。在单片机编码发送完毕后,即转入接收状态,同时关闭发射部分的单脉冲发生器;当接收一定时间后再转入发射状态重发编码时,同时关闭接收放大器。因此,为保证测距正确,接收时间必须根据实际量程来限制时,众所周知,声波传播的距离s,速度c及传播时间t之间的关系为:s=c×t,若系统量程为5m,则接收时间T应满足:T=2*5/340=29.4ms
4.硬件方案设计
4.1 系统设计
本设计采用AT89S51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器和计数器来完成,超声波测距器的系统框图如下所示:
超声波测距器系统的框图
图中的单片机AT89S51用来协调各个单元,超声波接收电路用来接收要接收的信号,超声波发射电路用来发射需要发射的信号,存储器用来存储接收的信号,用数码管LED显示距离。
4.2 芯片AT89S51介绍
4.2.1 AT89S51单片机的概述
由于此单片机应用于测距仪上,所以本设计选用了低功耗、低价格,小管脚(40脚)的AT89S51单片机,如下图所示:
7
AT89S51芯片引脚图
AT89S51是一个低功耗,高性能CMOS8位单片机,器件采用ATMEL公司的高密度,非易失性存储技术制造,兼容标准MCS-51指令系统及80S51引脚结构,AT89S51具有40个引脚,4KBytes Flash片内程序存储器,128Bytes的随机存取数据存储器(RAM),32个外部双向输入/输出口(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时器计数器,2个全双工串行通行口,看门狗(WDT)电路,片内时钟振荡器。
4.2.2 引脚功能介绍
⑴ Vcc:电源电压
8
⑵ GND:地
⑶ p0口:p0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL。
逻辑门电路,对端口写“1”可作为高阻抗输入端用
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
⑷ p1口:p1是一个带内部上拉电阻的8位双向I/O口,p1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流(IIL)。
Flash编程和程序校验期间,p1接收低8位地址。
P1口的功能
端口引脚
第二功能
P1.5
MOSI(用于ISP编程)
P1.6
MISO(用于ISP编程)
P1.7
SCK(用于ISP编程)
9
⑸ p2口:p2口是一个带有内部上拉电阻的8位双工I/O口,p2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
Flash编程或校验时,p2亦接收高位地址和其它控制信号。
⑹ p3口:p3口是一个带有内部上拉电阻的8位双向工I/O口,p3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对p3口写入“1”时,它们被内部的上拉电阻拉高并可作为输入端口,作输入端时,被外部拉低的p3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口外,更重要的用途是它的第二功能,如下表所示:
⑺ RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能,DISRTO位缺省为RESET输出高电平打开状态。
10
⑻ ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时的目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
⑼ EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程电压Vpp。
⑽ PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据时),每个机器周期为两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。
⑾ XTAL1:振荡器反相放大器及内部时钟发生器的输入端。
⑿ XTAL2:振荡器反相放大器的输出端。
4.3 测距显示电路的设计
LED数码显示管有两种,一种是共阳极数码管,其内部是由八个阳极相连接的发光二级管组成;另一种是共阴极数码管,其内部是由四个阴极相连接的发光二极管组成。二者原理不同但功能相同。其外形和内部结构如图所示:
11
LED的管脚和电路原理
共阴极LED数码显示块的发光二极管阴极连接在一起,形成该模块的公共端(通常称为位选端),因此称为共阴极LED数码显示器,8个数码管的另一端通常称为段选端,当显示器的公共端接低电平,某个发光二极管的阳极接高电平时,该发光二极管被点亮;而共阳极LED数码显示管是将二极管的阳极连接在一起,形成共阳极LED数码显示块的公共端,该公共端必须接高电平,同理在共阳极LED数码显示块中如某个发光二极管的阴极为低电平时,该发光二极管被点亮。
用单片机驱动LED数码管分为静态显示和动态显示。
静态显示就是显示驱动电路具有锁存功能,单片机将所要显示的数据送出后就不再控制LED,直到下次显示时再传送一次新的显示数据。静态显示的数据稳定,占用的CPU时间少。静态显示中,每个显示器都要占用单独的具有锁存功能的I/O接口,该接口用于笔划段字型代码。这样单片机只要把显示的字形代码发送到接口电路,该字段就可以显示发送的字型。显示新的数据时,单片机再发送新的数据。
12
另一种方法是动态扫描显示。由于单片机本生具有较强的逻辑控制能力,所以采用动态扫描软件译码并不复杂。而且软件译码其译码逻辑可随意编程设定,不受硬件译码逻辑限制,采用动态扫描软件译码地方式能大大简化硬件电路结构,降低系统成本,它用分时的方法轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二极管的余辉效应,给人的印象就是一组稳定的显示数据。
静态显示数据稳定,占用很少的CPU时间,但每个显示单元都要单独的显示驱动电路,使用的电路硬件较少;动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。
本设计的显示电路采用四个共阳LED四位数码管,位码用PNP三极管驱动。如下图所示:
测距显示电路
4.4 超声波发射电路的设计
发射电路主要由74LS04和超声波换能器构成,单片机p1.0端口输出40KHZ方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器两端可以提高发射强度,如下图所示。
13
超声波发射电路
4.5 超声波接收电路的设计
超声波接收电路主要由CX20106A和超声波换能器构成,CX20106A是一款红外的专用芯片,考虑到红外遥控常用的载波频率38KH与测距的超声波频率40KHZ较为接近,故利用它制作超声波检测接收电路,如下图所示。
超声波接收电路
14
4.5 探测电路的设计
物体探测电路可以用光电传感器来制作。但光电传感器不能探测透明的物体,红外线传感器在探测物体时需要有像人和动物那样与周围有一定的温度差这个条件。超声波传感器则不受这些条件的限制,对于透明的或其它物体都可以探测,超声波传感器探测物体由直接方式和反射探测方式。
直接探测方式的接收/发射器要相互配置,如果接收到超声波(有信号电压)时,说明接收/发射器中间没有被测物体。反之,接收不到超声波(无电压信号)时,则中间有被测物体。发射探测方式的接收/发射器可以较近配置,有反射波时,说明存在被测物体,发射探测方式的接收/发射器有单独使用与共用两种方式,共用方式就是一个超声波传感即用作接收器,也用作发送器,但需要收发切换电路。
5.软件方案设计
本设计就是以AT89S51单片机为核心。它采用模块化设计,由主程序、发射子程序、接收子程序、定时子程序、显示子程序等模块组成。该系统的主程序处于键控循环工作方式下,当按下测量键时,主程序开始调用发射子程序、查询接收子程序、定时子程序,并把测量结果用显示子程序在数码管上显示出来。虽然用一个单独计时器电路也可以测量超声波的传输时间,但利用AT89S51单片机可以简化设计,便于操作和直观读数。
为了增强系统的可靠性,应在软硬件上采用 一些特殊措施。主程序框图如下所示:
15
主程序框图
超声波发生子程序的作用是通过p1.0端口发送2个左右的超声波信号频率约40KHZ的方波,脉冲宽度为12us左右,同时把计数器T0打开进行计时。超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。
16
定时中断服务子程序完成三方向超声波的轮流发射,外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作,如下图所示:
定时中断子服务子程序 外部中断服务子程序
软件程序见附录二
17
6.调试
6.1 硬件调试
当设计好硬件电路之后,在Protues中画好电路图,然后进行调试。在进行调试之前,先与设计的硬件电路图对照一下,看有没有画错,都确定之后调试,调试无误之后,即可在万能板上焊接。
当焊接的时候,仔细对照仿真图,焊接完了之后再检查一遍,看有没有多焊、漏焊以及错焊等情况。在检查的过程中要预防集成片CX20106A与超声波接收电路中的超声波接收传感器R的管脚接错了,同时在检查的时候要注意硬件电路中各管脚是否有焊接在一起的情况,若有错误改正即可。
在调试的过程中,我发现没什么现象,经过查阅资料,我发现超声波发射和接收电路中所使用的传感器T/R40-16(T发射/R接收)在焊接时应保持两传感器的中心轴线并行并相距4-8cm,而我在焊接时并无注意,改正之后,继续检查,又发现超声波接收电路中的超声波接收传感器的正极端接地了,改正后再经检测没有什么太大问题。
6.2 软件调试
在Keil软件中输入软件程序,当软件程序的主程序以及各部分子程序都编完之后,进行软件编译。
在编译的过程中,下面提示框中提示有几个错误,找到相应的错误区域之后,再对比之前的程序,发现在输入程序的时候出现了错误,对比改正之后再进行编译,发现没有错误。
18
6.3 软、硬件联合调试
当做好硬件、软件调试之后,把它们连接到一起整体调试。把软件的程序下到AT89S51中,观察现象,发现喇叭响,由于在做实验的过程中,器件不是很完善,不能做进一步的检查,数码管上有相应的数字显示,有一定的误差,我再检查一下各个接口,发现有些没有接好,有一定的缝隙,改正之后有一定改善,但还是存在误差(在误差范围内)。
19
7.技术小结
这次课程设计老师采用的是一人一题的做法,所以这次是真正意义上的独立完成。相比之前分工合作有利也有弊,一个人完成课程设计,没有人相互讨论,什么都靠自己很迷茫,但自己可以学习到多方面的东西。
虽然之前有接触过一些Protues和Keil,但不是很熟,在这次课程设计中,很感谢很多同学的帮助,让我对Protues和Keil的基本用法了解透彻。我发现有时一个人的课程设计会让自己吸收到之前很多没有了解的知识。
在本次课程设计中,也接触到了很多之前没有用过的器件,通过同学的帮助和百度,让我顺利的完成了本次课程设计。超声波测距器在人们的生活开车中是一个很有用的器件,通过这次我了解到它可以提醒驾驶员倒车时有效地避开可能对倒车造成危害的障碍物和行人,从而有效避免由于倒车造成的汽车碰撞或擦伤经济损失和人身安全问题,其实在生活中还有很多这样实用的器件。
通过这次课程设计,我发现我们专业可以开发出很多实用的器件来保证大家的生活更加好,让我对我们专业更多了一份了解和喜爱,也激起了我的兴趣,我会继续努力充实自己,锻炼自己动手能力,为以后能够有机会设计好的作品奠定基础。
20
8.参考文献
[1] 贾伯年. 传感器技术.南京:东南大学出版社.2000
[2] 阎石. 数字电子技术基础.北京:高等教育出版社.1998
[3] 赵晶. Protel 99高级应用.北京:人民邮电出版社.2000
[4] 周学毛. 汇编语言程序设计.北京:高等教育出版社.1997
[5] 李叶紫. MCS-51单片机应用教程.北京:清华大学出版社.2002
[6] 马西秦. 自动检测技术.北京:机械工业出版社.2002
[7] 楼然苗. 51系列单片机设计实例.北京:北京航空航天大学出版社.1999
[8] 罗万钧. 汇编语言程序设计.陕西:西安电子科技大学出版社.1995
[9] 马彪. 单片机应用技术.北京:中国轻工业出版社.2010
[10] 张谦琳. 超声波检测原理和方法.中国科技大学出版社.1993
[11] 占操.梁厚琴.曹燕.单片机系统中的软件抗干扰技术.电子技术.2003
[12] 苏长赞. 红外线与超声波遥控.人民邮电出版社.1993
21
9.附录
附录一:
22
硬件电路图
附录二:
软件程序
中断入口程序
ORG 0000H
LJMP START
ORG 0003H
LJMP PINT0
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
ORG 002BH
RETI
主程序
START: MOV SP,#4FH
MOV R0,#40H
23
MOV R7,#0BH
CLEARDISP: MOV @R0,#00H
INC R0
DJNZ R7,CLEARDISP
MOV 20H,#00H
MOV TMOD,#11H
MOV TH0,#00H
MOV TL0,#00H
MOV TH1,#00H
MOV TL1,#00H
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV R4,#04H
SETB PX0
SETB ET1
SETB EA
SETB TR1
START1: LCALL DISPLAY
JNB 00H,START1
CLR EA
24
LCALL WORK
CLR EA
MOV R2,#32H
LOOP: LCALL DISPLAY
DJNZ R2,LOOP
CLR 00H
SETB ET0
MOV TH0,00H
MOV TL0,00H
SETB TR1
SETB EA
SJMP START1
中断程序
INTT1: CLR EA
CLR TR0
CLR EX0
MOV TH0,#00H
MOV TL0,#00H
MOV TH1,#00H
MOV TL1,#00H
SETB ET0
25
SETB EA
SETB TR0
INTT11: CPL C
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R4,INTT11
MOV R4,#04H
LCALL DELAY_250
SETB EX0
RETIOUT: RETI
PINT0: NOP
JB P3.2,PINT0_EXIT
CLR TR0
CLR EA
CLR EX0
26
MOV 44H,TL0
MOV 45H,TH0
MOV TH0,#00H
MOV TL0,#00H
JNB P3.2,$
SETB 00H
PINT0_EXIT: RETI
显示程序
DISPLAY: MOV R1,#40H
MOV R5,#7FH
PLAY: MOV A,R5
MOV P0,#0FFH
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1MS
INC R1
MOV A,R5
JNB ACC.4,ENDOUT
27
RR A
MOV R5,A
AJMP PLAY
ENDOUT: MOV P2,#0FFH
MOV P0,#0FFH
RET
TAB: DB 18H, 7BH, 2CH, 29H, 4BH, 89H, 88H, 3BH, 08H, 09H, 0FFH
延时程序
DL1MS: PUSH 06H
PUSH 07H
MOV R6,#14H
DL1: MOV R7,#19H
DL2: DJNZ R7,DL2
DJNZ R6,DL1
POP 07H
POP 06H
RET
距离计算程序
WORK: PUSH ACC
PUSH PSW
28
PUSH B
MOV PSW,#18H
MOV R3, 45H
MOV R2, 44H
MOV R1, #00D
MOV R0,#17D
LCALL MUL2BY2
MOV R3, #03H
MOV R2,#0E8H
LCALL DIV4BY2
LCALL DIV4BY2
MOV 40H,R4
MOV A,40H
JNZ JJ0
MOV 40H,#0AH
JJ0: MOV A,R0
MOV R4,A
MOV A,R1
MOV R5,A
MOV R3,#00D
MOV R2,#100D
LCALL DIV4BY2
29
MOV 41H,R4
MOV A,41H
JNZ JJ1
MOV A,40H
SUBB A,#0AH
JNZ JJ1
MOV 41H,#0AH
JJ1: MOV A,R0
MOV R4,A
MOV A,R1
MOV R5,A
MOV R3,#00D
MOV R2,#10D
LCALL DIV4BY2
MOV 42H,R4
MOV A,42H
JNZ JJ2
MOV A,41H
SUBB A,#0AH
JNZ JJ2
MOV 42H,#0AH
JJ2: MOV 43H,R0
30
POP B
POP PSW
POP ACC
RET
两字节无符号数乘法程序
MUL2BY2: CLR A
MOV R7,A
MOV R6,A
MOV R5,A
MOV R4,A
MOV 46H,#10H
MULLOOP1:CLR C
MOV A,R4
RLC A
MOV R4,A
MOV A,R5
RLC A
MOV R5,A
MOV A,R6
RLC A
MOV R6,A
31
MOV A,R7
RLC A
MOV
展开阅读全文