专业:应用电子技术
设计者:XXX 合作者:XXX XXX 指导教师:XXXXXXXXXX
一.设计目的 ............................................... 2 二.设计思想 ............................................... 2 三.设计时遇到的问题及解决方法: .......... 4 四.主要用到的工具和元器件: ................. 4 五.程序部分 ............................................... 8 六.个人总结 .............................................. 11 七.同组成员各自的分工 ............................ 12 附录 ........................................................... 12
一.设计目的 1. 超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。 超声波测距主要应用于倒车提醒、建筑工地、工业现场等的距离测量。 超声波在气体、液体及固体中以不同速度传播,定向性好、能量集中、传输过程中衰减较小、反射能力较强。超声波能以一定速度定向传播、遇障碍物后形成反射,利用这一特性,通过测定超声波往返所用时间就可计算出实际距离,从而实现无接触测量物体距离。超声波测距迅速、方便,且不受光线等因素影响,广泛应用于水文液位测量、建筑施工工地的测量、现场的位置监控、振动仪车辆倒车障碍物的检测、移动机器入探测定位等领域。
2. 增强动手能力,学会在遇到困难时通过各种方法解决问题的能力。
二.设计思想 1. 该设计选用HC-SR04超声波测距模块,通过HC-SR04发射和
接受超声波,使用STC89C52单片机对超声波进行计时并根
据超声波在空气中速度为340米每秒的特性计算出距离。STC89C52单片机控制1602液晶显示模块显示距离。 2. HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离
感测功能,测距精度可达高到0.02m。模块包括超声波发射器、接收器与控制电路。当提供一个10uS以上正脉冲触发信号,该模块内部将发出8个40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。 3.
LCD1602引脚图
在设计时选用两个定时器,定时器1用来定时800ms,当产生中断时,启动HC-SR04超声波测距模块,即给其TRIG(发射)口送
一个持续20ms的正脉冲,定时器0用来对超声波传递时间进行计时,即当ECHO(回波)口为高电平时启动计时,当ECHO口变为低电平时关闭计时。再根据超声波在空气中的传播速度为340米每秒,通过STC89C52计算出距离,当距离超过400cm时,显示--:--,表示超出工作距离。由于定时器会产生误差,造成测得距离不断变化,增加一个锁存按钮,当确定显示结果稳定时,按下按钮时,关闭超声波测距模块,可以使结果清楚显示。
三.设计时遇到的问题及解决方法: 1. 主要是1602液晶显示问题,在它的V0脚需要加一个电阻, 但是这个电阻的阻值选大了,背光亮度不够,字体显示不出,小了字体模糊。
2. 经过我百度查找资料,对比了很多电路图,发现用固定电阻做出来的效果比可调电阻的差。所以最后决定用一个5k的电位器。通过它可以调节字体的清晰度。
四.主要用到的工具和元器件: 30W电烙铁,钳子,镊子,LCD1602液晶显示模块,HC-SR04超声波测距模块,STC89c52芯片,12MHZ晶振
HC-SR04实物及引脚功能
下图为超声波测距原理框图
成品及调试如下图
仿真时,将HC-SR04超声波测距模块用一个555延时电路来代替即可,其中调节改变滑动变阻器的阻值可以模拟被测物体距离的变化。实验仿真电路图如下图所示。
仿真原理图
PCB图
五.程序部分 #include #define LED_port P0 //用于LED段选 #define LED_pos P1 //用于LED位选 sbit qq=P2^6; //待机按钮 sbit suocun=P2^1; //锁存结果 sbit RX=P1^4; //回波 sbit TX=P1^5; //送波 sbit D1=P3^7; //接收指示灯 uint time=0; //定时器0时间 uint timer=0; //定时器1时间 unsigned long S=0; //用于显示最后计算得到的距离 unsigned long W[2]={0,0}; //用于比较两次测算距离大小 bit flag =0; //定时器0中断溢出标志位 uchar value[4]; uchar code LED_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管段选 uchar code pos[4]={0x01,0x02,0x04,0x08}; //数码管位选 void Delay(uchar t) //延时函数 { uchar i,j,k; for(i=0;i value[0]=S/1000; value[1]=S/100%10; value[2]=S/10%10; value[3]=S%10; } void Display(uchar value[]) //数码管显示 { uchar i; for(i=0;i<4;i++) { LED_pos=pos[i]; LED_port=LED_seg[value[i]]; Delay(1); } } void zd3() interrupt 3 //T1中断用来扫描数码管和计800MS启动模块 { //这是计时器1中断 TH1=0xf8; //赋初值,2ms TL1=0x30; timer++; if(timer>=400) { timer=0; TX=0; //800MS 启动一次模块 //Delay(30); //一次超声波信号时长30ms,仿真时只需加负脉冲,故屏蔽此句 TX=1; 由于程序过长,这里就不全部展示。 六.个人总结 1. 在做这个作品时,上网找了很多资料。特别是1602液晶和单片机之间连接,一开始是一头雾水,从了解它引脚的功能到连接方式,发现自己学到的知识真的很少。 2. 整个作品的完成,其电路图都是分步从网上找的,自己只是做了一点点改动。 3. 可惜程序都不是自己编的,通过这次活动,我发现自己编程实在是太差了。除了会改一点程序外,完全不会编程序。 七.同组成员各自的分工 超声波测距程序的寻找:XXX 元件的购买:XXX 电路设计及焊接:XXX 附录 元件 STC89C52RC芯片 HC-SR04 LCD1602 DC电源座 排母 芯片底座(40P) 30pf电容 200欧电阻 电位器503 自锁开关 5K电阻 电源线 万能板 数量 1个 1个 1个 1个 若干 1个 3个 9个 1个 1个 1个 1条 1块 报告撰写人:XXX 因篇幅问题不能全部显示,请点此查看更多更全内容