当前位置:文档之家› 单片机课程设计超声波测距离

单片机课程设计超声波测距离

湖南工程学院课程设计任务书课程名称单片机原理与应用课题超声波测距系统设计专业班级自动化0901班学生姓名段志勤学号 200901020130 指导老师李晓秀审批任务书下达日期 2012 年 5 月 30 日任务完成日期2012 年 6 月 13 日目录序言 (6)第一章、总体设计原理 (6)1.1、超声波测距原理 (6)1.2、超声波测距系统框图 (8)1.3、程序流程图 (10)第二章、系统硬件设计 (11)2.1、超声波模块电路 (11)2.2、数码管显示电路 (12)2.3、单片机最小电路 (12)2.4、键盘连接 (13)第三章、系统软件设计 (14)3.1、主程序流程图 (14)3.2、子程序设计 (15)第4章、调试结果 (21)实验总结 (23)参考文献 (24)附录 A、整体电路图 (25)附录B、程序清单 (26)序言由于超生波测距是一种非接触检测技术,不受光线、被测对象颜色限制,较其他仪器更卫生,更耐潮湿、粉尘、高温、腐蚀等恶劣环境,具有少维护,不污染,高可靠,长寿命等特点。

因此,超声波测距有着广泛的应用领域。

利用超声波检测往往比较迅速,简单,计算方便,易于实现实时控制,并且在测量精度方面能达到工业使用要求。

超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场,例如:液位、井深、管道长度等场合。

第一章、总体设计原理本章主要介绍单片机超声波测距的主要原理,包括超声波测距的原理和STC89C52单片机的原理1.1、超声波测距原理谐振频率高于20kHz的声波被称为超声波。

超声波为直线传播频率越高、绕射能力越弱、但反射能力越强。

利用超声波的这种性能就可制成超声传感器、或称为超声换能器、它是一种既可以把电能转化为机械能、又可以把机械能转化为电能的器件或装置。

换能器在电脉冲激励下可将电能转换为机械能、向外发送超声波、反之,当换能器处在接收状态时它可将声能(机械能)转换为电能。

压电式超声波发生器实际上是利用压电晶体的谐振来工作的。

超声波发生器内部结构如图1-1所示,它有两个压电晶片和一个共振板。

当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。

反之如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。

图1-1、超声波换能器内部示意图超声波发射器向某一方向发射超声波在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。

超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距离S=Ct/2,式中的C为超声波波速。

图1-2、超声波测距原理框图由于超声波也是一种声波,其声速C与温度有关,表1列出了几种不同温度下的声速。

在使用时,如果温度变化不大,则可认为声速是基本不变的。

如果测距精度要求很高,则应通过温度补偿的方法加以校正。

声速确定后,只要测得超声波往返的时间,即可求得距离。

这就是超声波测距仪的机理。

其系统框图如图1-2所示。

表1 声速与温度关系表1.2、STC89C52单片机原理STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。

另外STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35Mhz,6T/12T 可选。

图1-3、STC89C52引脚图1.3、超声波测距系统框图图1-4、超声波测距系统框图第二章、系统硬件设计硬件是一个机器的基础,没有硬件,所有机器都不存在,本章主要介绍单片机超声波测距的硬件原理。

2.1、超声波模块电路图2-1、超声波模块电路超声波模块如图2-1所示。

从P2.6口给Trig口送一个10us的脉冲,超声波模块自动发出40Khz的超声波,单片机中断计时。

当遇到障碍物时超声波返回,并将一个高平信号送入单片机,中断关闭。

2.2、数码管显示电路图2-2、数码管显示电路显示电路采用采用LED数码管显示。

本系统采用动态显示方式。

该组数码管位共阳极数码管。

当有低电平驱动时,数码管亮。

2.3、单片机最小电路图2-3、最小单片机电路单片机最小电路是单片机能正常工作的最小外接电路单元。

是设计电路的核心部分,也是整个作品最关键,最重要的部分。

单片机最小电路包括:复位电路,晶振电路。

2.4、键盘连接图2-4、矩阵键盘电路该矩阵键盘采用扫描式工作读入方式,扫描式键盘接口是一个输入输出接口,行是输入接口,而列式输出接口,输入接口主要功能是解决数据输入的缓冲问题,而列输出接口主要功能是进行数据保持能力。

系统扫描键盘是若有键按下,则执行主程序相应程序,实现相应功能。

第三章、系统软件设计软件是一个机器的灵魂,没有软件,机器就是一堆废铁,所以软件是一个机器必不可少的部分,本章主要介绍单片机超声波测距的软件设计。

3.1、主程序流程图图3-1、主程序流程图3.2、子程序设计3.2.1、延时程序void DelayUs2x(unsigned char t) { while(--t); }void DelayMs(unsigned char t){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}3.2.2、键盘扫描程序void key_scanf(void) {if(p10==0){DelayMs(10);if(p10==0)a=1;}if(p11==0){DelayMs(10);if(p11==0)a=0;}if(p12==0){DelayMs(10);if(p12==0){a=0;disbuff[0]=0;disbuff[1]=0;disbuff[2]=0;disbuff[3]=0;}}}3.2.3、超声波模块驱动程序void zd3() interrupt 3 //T1中断用来驱动超声波模块 { key_scanf(); 每800ms就发送一次超声波 TH1=0xf8; 这样就能进行连续多次测距 TL1=0x30;timer++;if(timer>=400){timer=0;TX=1; //800MS 启动一次模块 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;//给超声波模块发送端一个10us的高电平,就能发送40khz的超声波}}3.2.4、计算程序void Conut(void){float S1;time=TH0*256+TL0;TH0=0;TL0=0;S1=(time*1.7)/100; //算出来是CMS=S1*10;if((S>=7000)||flag==1) //超出测量范围显示“-”{flag=0;disbuff[0]=10; //“-”disbuff[1]=10; //“-”disbuff[2]=10; //“-”disbuff[3]=10; //“-”}else{disbuff[0]=S/1000;disbuff[1]=S/100%10;disbuff[2]=S/10%10;disbuff[3]=S%10;}}3.2.5、数码管显示程序4位共阳数码管的驱动程序如下:void Display(void) //扫描数码管{p20=0;p21=1;p22=1;p23=1;P0=discode[disbuff[0]];//第1个数码管点亮DelayUs2x(20);P0=0xff;p20=1;p21=0;p22=1;p23=1;P0=discode[disbuff[1]];//第2个数码管点亮DelayUs2x(20);P0=0xff;p20=1;p22=0;p21=1;p23=1;P0=(discode[disbuff[2]])&0x7f;//第3个数码管点亮 DelayUs2x(20);P0=0xff;p20=1;p23=0;p21=1;p22=1;P0=discode[disbuff[3]];//第4个数码管点亮DelayUs2x(20);P0=0xff;p20=1;p23=1;p21=1;p22=1;//DelayMs(2);//显示小数}第四章、调试结果按第二章和第三章的原理接好电路图,把程序下载进去,接下来我们就能看到结果了。

如图4-1所示,其显示结果为20.6CM。

图4-1、LED显示结果这个设计需要用到三个按键,键1、键2、键3。

其中键1为开始键,键2为暂停键,键3为复位键。

先把单片机接好电源,按下键1就开始测距,距离显示在LED显示器上,按下键2就会把显示结果暂停,如图4-1所示。

按下键3,显示器自动复位为0实验总结两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。

在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。

学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.通过这次课程设计,本人在多方面都有所提高。

通过这次课程设计,综合运用本专业所学课程的理论和生产实际知识进行一次冷冲压模具设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了冷冲压模具设计等课程所学的内容,掌握冷冲压模具设计的方法和步骤,掌握冷冲压模具设计的基本的模具技能懂得了怎样分析零件的工艺性,怎样确定工艺方案,了解了模具的基本结构,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。

相关主题