基于单片机的超声波测距系统设计毕业设计论文.docx
《基于单片机的超声波测距系统设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距系统设计毕业设计论文.docx(43页珍藏版)》请在冰豆网上搜索。
![基于单片机的超声波测距系统设计毕业设计论文.docx](https://file1.bdocx.com/fileroot1/2023-1/10/0e931f09-c647-40ed-a18b-d907e3c576be/0e931f09-c647-40ed-a18b-d907e3c576be1.gif)
基于单片机的超声波测距系统设计毕业设计论文
青岛科技大学
本科毕业设计(论文)
基于单片机的超声波测距系统设计
题目__________________________________
__________________________________
2013
6
21
______年___月___日
基于单片机的超声波测距系统设计
摘要
超声波是一种指向性强,能量消耗缓慢,在介质中传播距离较远的声波,很适合用于距离测量。
目前国内一般是用专用集成电路设计超声波测距仪,但是成本高,没有显示,操作使用不方便,拓展不灵活。
而基于单片机的超声波测距克服了上述缺点,所以应用非常广泛,这种设计要求非接触式测距。
本设计是以单片机技术为基础,实现对前方物体距离的测量。
该系统设计主要由主控制器模块、超声波发射模块、超声波接收模块和显示模块等四个基本模块构成,用接收部分接收超声波。
本设计利用两个中断,在发射信号时,打开定时器中断0和外部中断0使定时器计时,接收到发射超声波信号时,外部中断0关闭中断,这时定时器中断0计录的时间就为超声波传播经过测距仪到前方物体的来回时间,经过单片机处理得到距离值S并且通过LCD1602显示出来。
本设计在室温条件下的精确度能达到3mm以内,但是要求被测量物体周围比较空旷而且空气温度要求是室温精确度才会达到以上精度。
关键词:
单片机,超声波传感器,LCD1602
Thedesignofultrasonicrangefinderbasedonsinglechipmicrocomputer
ABSTRACT
Ultrasonicisakindofstrongdirectivity,energyconsumptionslow,inthemediumdistancetransmissionofsoundwaves,verysuitablefordistancemeasurementAtpresentdomesticgeneralistouseultrasonicrangefinderapplication-specificintegratedcircuitdesign,butthecostishigh,nodisplay,operationisnotconvenient,notflexible.Theultrasonicrangingbasedonsinglechipmicrocomputertoovercometheaboveshortcomings,sotheapplicationisverybroad,thisnon-contactrangingdesignrequirements.
Thisdesignisbasedonsinglechipmicrocomputertechnology,realizesthemeasurementofthefrontobjectdistance.Thesystemdesignismainlycomposedofmaincontrollermodule,ultrasoniclaunchmodule,ultrasonicreceivingmoduleanddisplaymoduleandsoonfourbasicmodules,withareceivingpartreceivingultrasound.Thisdesignusestwointerrupts,whentransmitting,openthetimerinterrupt0timerandexternalinterrupt0timer,receivesthesideoflaunchultrasonicwavesignal,theexternalinterrupt0closedinterrupted,thenthetimerinterrupt0metertorecordthetimefortheultrasonicpropagationthroughtherangefindertotheobjectinfrontofthetimebackandforth.AndtheresultistreatedwithsinglechipmicrocomputerdistancevaluesSandthroughLCD1602display.
Thisdesignatroomtemperatureundertheconditionofprecisioncanreachlessthan3mm,buttherequestwasrequiredmeasurearoundanobjectisopenandtheairtemperatureisaboveroomtemperaturewillreachtheprecisionaccuracy.
KEYWORDS:
singlechipmicrocomputer;ultrasoundsensor;LCD1602
1绪论
1.1选题背景
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因此它被广泛应用于距离的测试。
使用超声波检测往往更快速,方便,计算简单,易于做到实时控制,并且在测量精度方面能达到工业使用的要求,测量时与被测物体无需直接接触,这些优点使其具有广泛的实际应用,被广泛应用于液位、井深、管道长度等测量。
例如建筑施工单位的距离测量,汽车倒车防撞系统,潜艇超声波探头定位系统等[1]。
目前国内一般是用专用集成电路设计超声波测距仪,但是成本高,没有显示,操作使用不方便,拓展不灵活。
而基于单片机的超声波测距克服了上述缺点,所以应用非常广泛,这种设计要求非接触式测距。
本人设计了一个项目,该设计可广泛用于生活、军事等各个领域,该设计需要设计者有较好的数电、模电知识,并且具有一定的C语言编程能力,综合运用以上知识实现对超声波发射与接收信号进行控制、计算、处理,最后在LCD1602液晶显示器上显示。
测量范围:
2cm-400cm,测量精度3mm,不与被测物体直接接触测量,可显示清晰、稳定的测量结果。
1.2研究意义
在基于传统的测量距离存在不可克服的缺陷。
例如,液面测量就是一种距离测量,传统的电极法是采用差位分布电极,通过给电或脉冲来检测液面,电极长期浸泡于水中或其他液体中,极易被腐蚀、电解,失去灵敏性。
由于超声波具有强度大,方向性好等特点,利用超声波测量距离就可以解决这些问题。
随着人们生活水平的提高,城市发展建设的加快,城市车辆逐渐增多,因为停车不当而造成的交通事故也越来越多。
为了避免此类事故的发生,一个能够直观测出汽车与障碍物之间的距离的装置就变得十分重要。
它可以及时将车辆与障碍物之间的距离反应出来,给司机以更准确的信息和更多的反应时间,减少事故的发生。
此外,超声波测量距离技术还在工业控制、勘探测量、机器人定位和军事应用等领域得到了广泛的应用。
超声波测距电路可以由传统的模拟或者数字电路构建,但是基于这些传统电路构建的系统往往可靠性差,调试困难,可扩展性差,所以基于单片机的超声波测距系统被广泛的应用。
通过简单的外围电路发生和接收超声波,单片机通过采样获取到超声波的传播时间,用软件来计算出距离,并且可以采集环境温度进行测距补偿,其测量电路小巧,精度高,反映速度快,可靠性好。
2超声波测距系统总体设计
2.1超声波测距系统设计的目的和要求
(1)超声波测距系统的设计目的
这个设计的主题是超声波测距仪的设计,我们可以看到设计目标是利用HC-SR04超声波测距模块测量距离。
通过超声波发射器向某一方向发射超声波,在发射时刻同时开始计时,超声波在空气中传播,途中遇到障碍物就立即返回来,超声波接收器接收到反射波就立即停止计时。
超声波在空气中的传播速度为c(本次设计默认值为340m/s),从超声波信号发送到接收器接收到返回信号所用的时间为t,由此可以计算出超声波发射点距障碍物的距离s。
计算公式:
s=(c×t)/2(2-1)
其中,s为被测物与测距仪的距离,c为声速,t为声波往返所用的时间。
要设计出超声波测距仪,首先超声波传感器发射部分发射超声波信号的同时要让定时器0开始计时;再要让超声波传感器接受部分接受超声波信号的同时让定时器停止计时;最后要使计时的时间转换为测量的距离,并且要达到一定的精度。
这个设计中,用定时器0计时,端口判断接收超声波信号。
这样可以把测量的时间转化为测量的距离值,又可以使测量达到所需要的精度。
在本设计里需要用到的AT89S52单片机、HC-SR04超声波测距模块、LCD1602液晶显示器等将在后面介绍。
(2)超声波测距仪系统设计的要求:
Ø设计的控制电路、技术实现方式使用AT89S52单片机控制。
Ø采用超声波测距(非接触式)方式实现。
Ø采用LCD1602液晶显示器显示结果。
以上的设计目的、要求是超声波测距仪设计的依据。
2.2超声波测距系统的工作原理
超声波测距方法的原理通常是使用时间差。
首先测量从发射超声波到遇到障碍后返回的总时间,测量装置利用单片机与HC-SR04超声波测距模块处理,最后通过LCD1602液晶显示器显示测量点与障碍物之间的距离。
超声波测距仪主要由三个部分组成,包括AT89S52微控制器,HC-SR04超声波测距模块,LCD1602液晶显示器。
其原理图如图2-1所示。
图2-1超声波测距仪原理框图
Figure2-1Blockdiagramoftheultrasonicrangefinder
由上图可以看出,硬件电路设计主要包括单片机系统,超声波发射器和超声波接收器,显示电路四部分组成。
控制器也可以用AT89S52单片机微控制器系列兼容系列代替单片机对超声波发射器进行控制,超声波接收器把检测到的信号输入到单片机中,然后通过内部程序对传输的信号进行分析、计算和处理,最后由LCD1602显示测量距离的最终值。
工作原理:
(1)采用IO口TRIG触发测距,给最少10us的高电平信呈。
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2。
3超声波测距系统硬件设计
3.1AT89S52单片机的概述
单片机AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案[3]。
AT89S52的组成包括以下部分:
8k字节Flash、256字节RAM、32位I/O口线、看门狗定时器、2个数据指针、三个16位定时器/计数器、一个6向量2级中断结构、全双工串行口。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
主要性能
●与MCS-51单片机产品兼容
●8K字节在系统可编程Flash存储器
●1000次擦写周期
●全静态操作:
0Hz~33Hz
●三级加密程序存储器
●32个可编程I/O口线
●三个16位定时器/计数器
●八个中断源
●全双工UART串行通道
●低功耗空闲和掉电模式
●掉电后中断可唤醒
●看门狗定时器
●双数据指针
●掉电标识符
图3-1AT89S52引脚结构
Figure3-1AT89S52pinstructure
3.1.1引脚描述:
VCC:
电源
GND:
地
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
表3-1P1引脚功能图
Table3-1P1PinFunctionChart
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
表3-2P3引脚功能图
Table3-2P3PinFunctionChart
引脚号
第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
INT0(外部中断0)
P3.3
INT0(外部中断0)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器写选通)
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效[4]。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.1.2特殊功能寄存器
图3-2特殊功能寄存器地址
Figure3-2SpecialFunctionRegisteraddress
特殊功能寄存器(SFR)的地址空间映像如图3-2所示。
并不是所有的地址都被定义了。
片上没有定义的地址是不能用的。
读这些地址,一般将得到一个随即数据:
写入的数据将会无效。
用户不应该给这些未定义的地址吸入数据“1”。
由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。
一些特殊功能寄存器包括:
定时器2寄存器、中断寄存器、双数据指针寄存器、掉电标志位。
3.1.3存储器结构
AT89S52器件有单独的程序存储器和数据存储器。
外部程序存储器和数据存储器都可以64K寻址。
程序存储器:
如果EA引脚接地,程序读取只从外部存储器开始。
对于89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:
2000H~FFFFH。
数据存储器:
AT89S52有256字节片内数据存储器。
高128字节与特殊功能寄存器重叠。
也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。
当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。
直接寻址方式访问特殊功能寄存器(SFR)。
例如,下面的直接寻址指令访问0A0H(P2口)存储单元
MOV0A0H,#data
使用间接寻址方式访问高128字节RAM。
例如,下面的间接寻址方式中,R0内容为
0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。
MOV@R0,#data
堆栈操作也是简介寻址方式。
因此,高128字节数据RAM也可用于堆栈空间。
3.1.4中断
AT89S52有6个中断源:
两个外部中断(INT0和INT1),三个定时中断(定时器0、1、2)和一个串行中断。
这些中断如图3-3所示每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。
IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。
如图3-3所示,IE.6位是不可用的。
对于AT89S52,IE.5位也是不能用的。
用户软件不应给这些位写1。
它们为AT89系列新产品预留。
定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。
程序进入中断服务后,这些标志位都可以由硬件清0。
实际上,中断服务程序必须判定是否是TF2或EXF2激活中断,标志位也必须由软件清0。
定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位。
它们的值一直到下一个周期被电路捕捉下来。
然而,定时器2的标志位TF2在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来
图3-3中断功能图
Figure3-5InterruptFunctionChart
3.1.5晶振特性
如图3-4所示,AT89S52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。
石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。
从外部时钟源驱动器件的话,XTAL2可以不接,而从XTAL1接入,如图3-5所示。
由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。
图3-4内部振荡电路连接图图3-5外部振荡电路连接图
Figure3-4InternaloscillatorcircuitFigure3-5Externaloscillatorcircuit
connectiondiagramconnectiondiagram
3.1.6空闲模式
在空闲工作模式下,CPU处于睡眠状态,而所有片上外部设备保持激活状态。
这种状态可以通过软件产生。
在这种状态下,片上RAM和特殊功能寄存器的内容保持不变。
空闲模式可以被任一个中断或硬件复位终止。
由硬件复位终止空闲模式只需两个机器周期有效复位信号,在这种情况下,片上硬件禁止访问内部RAM,而可以访问端口引脚。
空闲模式被硬件复位终止后,为了防止预想不到的写端口,激活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。
3.1.7掉电模式
在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。
片上RAM和特殊功能寄存器保持原值,直到掉电模式终止。
掉电模式可以通过硬件复位和外部中断退出。
复位重新定义了SFR的值,但不改变片上RAM的值。
在VCC未恢复到正常工作电压时,硬件复位不能无效,并且应保持足够长的时间以使晶振重新工作和初始化。
3.2LCD1602液晶显示器
3.2.1LCD1602模块的结构
3.2.1.1概述
(1)液晶显示屏是以若干个5×7/8或5×10/11点阵块组成的显示字符群,每个点阵块为一个字符位,
字符间距和行距都为一个点的宽度。
(2)主控制驱动IC为HD44780及其他公司全兼容IC如:
NT3881NOVATEKKS0066SAMSUNGSPLC78A01SUNPLUS。
(3)具有字符发生器ROM,可显示192种字符,160个5×7点阵字符和32个5×10点阵字符。
(4)具有64个字节的自定义字符RAM,可自定义8个5×8点阵字符或4个5×11点阵字符。
(5)具有80个字节的RAM。
(6)标准的接口特性,适配M6800系列MPU的操作时序。
(7)模块结构紧凑轻巧装配容易。
(8)单+5V电源供电。
(9)低功耗、长寿命、高可靠性。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
因此,本设计选择它作为显示器,如图3-6所示:
图3-6LCD1602实物图
Figure3-6LCD1602Physicalmap
3.2.1.2模块接口说明
1602采用标准的16脚接口,其中:
第1脚:
VSS为电源地
第2脚:
VCC接5