单片机课程设计(论文)-短距离超声测距系统的设计与实现.docx
《单片机课程设计(论文)-短距离超声测距系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《单片机课程设计(论文)-短距离超声测距系统的设计与实现.docx(25页珍藏版)》请在三一文库上搜索。
1、短距离超声测距系统的设计与实现学生姓名: 学 号: 班 级: 专 业: 学 部: 指导教师: 2011年11月目录摘 要1绪论21硬件电路设计31.1基本功能31.2 原理电路设计31.3 PCB版图设计62 软件设计72.1 基本功能72.2 程序设计思路72.3 设计技巧83系统电路调试93.1电路仿真遇到困难及解决方案93.2硬件电路遇到困难及解决方案93.3测量数据结果及分析10设计小结124.1实际硬件电路图124.2小结12附 录12A计划书12B电路图12C 元件清单18D程序清单19摘 要超声波测距系统在上个世纪70年代已经实用化,从70年代末期开始广泛应用于生产领域。于超声波
2、指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在工农业生产上到了广泛的应用。如倒车雷达,测水深,机器人壁障等。 本次的超声波短距离统可以完成近距离的距离检测(2cm-300cm),并可以通过按键对其测量状态进行手动控制,使使用者更好的进行数据的读取工作。 硬件方面我们以STC89C52单片机为核心,8段4位共阳极数码管显示和超声波模块进行测距。使用Proteus进行电路仿真。软件方面我们以Keil4软件为平台用C
3、语言进行程序编写。关健词:超声波;传感器;单片机。绪论用于短距离测量及其测量数值的显示。测量范围在0.20-3.50m,测量精度2cm,测量时与被测物体无直接接触。能够清晰稳定地在显示器上显示测量结果,并可以通过按键对其测量状态进行手动控制,使使用者更好的进行数据的读取工作。测距系统可以安装在倒车雷达或壁障机器人等需要短距离检测的设备中。在初选方案是我们有三个测距方案,分别为:方案1:使用红外线测距。方案2:使用激光测测距。方案3:使用超声波测距。通过比较我们发现。方案一精度达标,设备器材价格合理,但测量距离较短,易受到周围环境影响,特别是较强光照对检测信号的影响,会造成系统不稳定,不可测量透
4、明物体。方案二精度达标,测量距离远,系统运行稳定,但是需要注意人体安全,而且光学系统需要保持干净,否则将影响测量,且成本较高。所以我们选用检测比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到实验要求的方案3:超声波测距系统。此系统通过超声波测距模块完成超声波的放送,接收以及温度补偿。通过动态扫描的方式用数码管进行显示。用STC89C52进行其它模块的控制。在12周的实验中我们完成了电路的仿真,实物电路的焊接,及软件的调试。实体电路可以很好的完成我们实验初设计的技术指标。在这个过程中我们收获颇丰。如仿真软件的使用更加熟练,了解了C语言在单片机中的运用,购买电子器件时对价钱的掌
5、握,电子焊接时需要注意事项和技巧等等。1硬件电路设计1.1基本功能采用STC89C52单片机作为主控制器,12MHz高精度的晶振。用动态扫描法实现3位共阳极数码管的显示,使用9012(PNP)进行数码管的驱动。超声波驱动信号则用单片机的外部中断0完成,用定时器1来在做返回信号的时间计算。并且可以通过P1.3口的开关进行测量状态进行手动控制,使使用者更好的进行数据的读取工作。超声波测距系统原理如图1。图1超声波测距系统原理1.2 原理电路设计首先要了解超声波测距原理。只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的基本原理。如图2 公式s=340t/2 超声波发射 障碍物 S H 超
6、声波接收图2超声波测距原理图图3是系统的实体完整电路图图3 实际电路完整电路图图4仿真电路完整电路图。因为超声波仿真电路较为复杂,所以我们通过用BUTTON按键的方式来模拟发射及接收信号的过程。仿真电路完整电路图,调试过程中只要按下显示距离的BUTTON(相当于接收到了返回的信号)此时定时器1开启计时。当松开BUTTON(相当与信号接收完毕),定时器1关闭并进行距离测算。可以通过按下P1.7口的BUTTON做到测量距离及定时器测得时间的显示转换。493为仿真电路中测量距离,单位CM。图4仿真电路完整电路图在超声波发送接收的选择上我们选用了一体式的超声波收发模块。接收一共有5个。1口VCC,2口
7、发送Trig/T,3口接收Echo/RX,4口滞空,5口接地。采用电瓶触发的工作原理。只需要在Trig/TX管脚输入一个10US以上的高电平,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX管脚输出。模块将距离值转化为340m/s时的时间值的2倍,通过Echo端输出一高电平,可根据此高电平的持续时间来计算距离值。即距离值为:(高电平时间*340m/s)/2。超声波收发模块分解后的原理图如图5发送模块。发射电路主要由反向器74LS04和超声波换能器构成,单片机p1.0端口输
8、出的40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路级两级反向器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器两端可以提高超声波的发射强度。图5超声波发射电路原理图接收模块如图6主要通过CX20106A进行检测接收,它的主要功能是进行检波,滤波等功能。适当地更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。图6超声波检测接收电路原理图仿真电路通过多次调试已可以很好的显示测量距离与测量时间,如图7中40us的接收时间及40*34/2=680CM的测量距离。图7 仿真调试结果1.3 PCB版图设计PCB版图如图8所示。在设计过程中我们发现Pr
9、oteus里没有我们想要的封装,因此我们选用了一些相同封装格式的其他原件作为代替。如超声传感器,开关组及LED7SEG-56。因为我们使用的4位8段数码管,所以在排线过程中,我们只连接了期中一个数码管的段位焊点,其它数码管连接位选端作为代替。超声波传感器开关组图8 PCB版图2 软件设计2.1 基本功能通过P3.3发送一个脉冲信号,让超声波传感器发送超声波。通过外部中断0判断是否有回波。当有回波时,超声波传感器R端会发送一个高电平信号。高电平持续的时间由定时器1进行计时。由P0口进行数码管的显示,P2.5,P2.6,P2.7为位选端。并可以通过P1.3口的开关暂停以上过程并只显示当前测量数值。
10、2.2 程序设计思路在编程语言的选择上,本次设计主要考虑使用所学过的汇编语言和C语言。汇编语言是一种面向机器的低级的程序设计语言。它直接利用机器提供的指令系统编写程序,该类程序的可执行指令是与机器语言程序的指令一一对应的。缺点是程序的通用性和可移植性差;程序比较繁琐,调试困难;目标程序比较庞大,运行速度慢。C语言是一种编译型的程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数,运算速度快,编译效率高,有良好的可移植性,而且可以直接实现对系统硬件的控制。综合以上对两种编程语言特点的比较,并考虑到单片机之间采用串行数据传送,采用C语言编写的话又可以简化许多使用
11、汇编语言时进行浮点运算的不便。再加上本人对C语言程序更加熟悉一点,所以最终决定使用C语言为本次设计的编程语言。程序流程如图9程序初始化数码管显示数码管显示是否接收发送超声波发送超声波程序初始化开始开关0/1距离计算低电平关闭定时器高电平开启定时器图9 程序流程图10数码管显示数码管显示YN2.3 设计技巧显示模块进行动态扫描的方式代码如下void Disp(uint t) ge=shi=bai=1; /各位的显示 shi=1; /关闭十位显示 bai=0; ge=1; /打开个位显示 P0=at%100%10; /让个位显示3 delays(5); P0=0xff; /显示清0 /十位的显示
12、bai=1; ge=1; /打开个位显示 shi=0; /关闭十位显示 P0=at%100/10; /让个位显示3 delays(5); P0=0xff; /显示清0/百位的显示 ge=0; /打开个位显示 shi=1; /关闭十位显示g bai=1; P0=at/100; /让个位显示3 delays(5); P0=0xff; /显示清0 接收发送模块主要由外部中断,定时子程序及主函数来完成。外部中断0,用做判断回波电平void exter() interrupt timeH =TH1; /取出定时器的值timeL =TL1; /取出定时器的值succeed_flag=1;/至成功测量的标志
13、EX0=0; /关闭外部中断Disp(t) ; 通过以上程序可以很好的完成设计实验的性能指标。定时器1中断,用做超声波测距计时void timer1() interrupt 3 / TH1=0; TL1=0; m+; Disp(t) ; 主函数进行回波判断,计算,显示。while(1) for(c=0;c100;c+)Disp(t) ;c=0; while(k=0);EA=0; /关总中断Trig=1; /超声波输入端delay_20us(); /延时20usTrig=0; /产生一个20us的脉冲while(Echo=0);/等待Echo回波引脚变高电平succeed_flag=0; /清测
14、量成功标志EA=1; EX0=1; /打开外部中断0TH1=0; /定时器1清零TL1=0; /定时器1清零TF1=0; /计数溢出标志TR1=1; /启动定时器1delays(20); /等待测量的结果TR1=0; /关闭定时器1EX0=0; /关闭外部中断0if(succeed_flag=1) time=timeH*256+timeL; t=time*0.172*0.1; /厘米 if(succeed_flag=0)distance=0; /没有回波则清零Disp(t) ; 3系统电路调试3.1电路仿真遇到困难及解决方案1.数码管驱动9012在Proteus元件库中没有找到。 解决方案:最
15、终选取2N3906PNP元件代替。2.超声波收发的模拟很难用Proteus完成。 解决方案:最终通过按键的方式来模拟传感器的收,发状态。3.声速较快,按键手点方式很难达到实际时间的检测范围。 解决方案:修改定时器初值,减慢测量时间,使实际时间:模拟时间为1:10。4.测量一次结果后需要复位清零才可重新计时。 解决方案:修改程序做到每次测试前计数器清0。3.2硬件电路遇到困难及解决方案1.实际电路使用面包板进行插线连接。完成后系统不能正常工作。 解决方案:因接线过于复杂,决定直接进行实际电路的焊接,放弃面包板模拟。2.显示模块的焊接中发现,如果要用仿真时的程序,数码管与单片机的接口焊接时会过于复
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 论文 短距离 超声 测距 系统 设计 实现
链接地址:https://www.31doc.com/p-3916482.html