超声波测距仪实验报告_第1页
超声波测距仪实验报告_第2页
超声波测距仪实验报告_第3页
超声波测距仪实验报告_第4页
超声波测距仪实验报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主题:超声波测距仪序随着人类社会从工业化社会向信息化社会的发展,视觉传达设计经历了商业艺术、工艺美术、印刷艺术设计、装饰设计、平面设计等几个阶段的演变。,并最终成为以视觉媒体为载体,用视觉符号来表达和传达信息的设计。对于每一个“为沟通而设计”的设计师来说,如何正确、充分地传达信息,是我们始终要面对的中心问题。然而,在当今社会,由于科技的进步,社会环境和社会秩序的更新,各种视觉媒体的泛滥,人们的思维、观念和感受受到影响。仅仅定位关键词来正确充分地传达信息显然是不够的。鉴于时代的要求和设计的性质,我们必须重视视觉传达设计的创新,在创新的前提下充分准确地传达信息。设计界存在大量抄袭和模仿的作品,使设

2、计活动成为一种程序。比如说大学标志,就相当于篆书加一个圆形的配套印章;说到VIS设计,就是一大堆千篇一律的模板拷贝;说到数字视觉符号,就是好多蚂蚁的“1”+“0”;说到商品的广告,就是医生或者戴眼镜的美女的推荐代言,等等。人们无时无刻不被这些“模仿”的设计所侵扰和骚扰。这些设计给我们带来视觉污染,人们不禁要问:设计怎么了?面对这些,我们每个人 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/282148.htm t _blank 设计师责无旁贷。现在是大力提倡“设计创新”的时候了,因为这个时代比以往任何时候都更需要清晰、原创的视觉传

3、达设计。那么,视觉传达设计的创新体现在哪些方面呢?目录TOC o 1-3 h z u HYPERLINK l _RefHeading_Toc296418305 一、超声波测距仪的制作3 HYPERLINK l _RefHeading_Toc296418306 1.1 超声波测距的原理3 HYPERLINK l _RefHeading_Toc296418307 1.2 超声测距仪的硬件电路5 HYPERLINK l _RefHeading_Toc296418308 1.2.1回流信号放大电路5 HYPERLINK l _RefHeading_Toc296418309 1.2.2 信号检波电路6

4、HYPERLINK l _RefHeading_Toc296418310 1.3超声波测距程序设计7 HYPERLINK l _RefHeading_Toc296418311 二、总结:20 HYPERLINK l _RefHeading_Toc296418312 三、参考文献20一、超声波测距仪的制作1.1超声波测距原理根据相关的物理学知识,声音在空气、石头等介质中传播时,其衰减特性与其频率有关。频率越高,越不容易衰减,相应的,它的传播距离也就越远。当声音的频率在20KHz以上时,超过了人耳的听觉范围,成为超声波,可以传播很远的距离而不衰减,其本身的信号频率特性不易受环境噪声的干扰。我们可以

5、利用超声波的这一特性来测量距离。我们可以使用一对并排安装的超声波探头来发射和接收超声波。发射头标为T(发射),接收头标为R(接收)。他们使用共振频率为40KHz的压电晶体来发射和接收超声波。当发射机外接40KHz的振荡源,如单片机的端口时,可以发射最大功率的超声波。接收头只有在接收到中心频率为40KHz的超声波时才能共振。由于压电效应,物理振荡转化为电信号输出,输出电压信号的幅度在uV量级。测距时,这对探头对准被测物体,如车辆、墙壁等。,单片机的端口输出的40KHz PWM(脉宽调制信号)驱动超声波发射器(T头)发射40KHz (0.20.5ms)的短脉冲。然后单片机开始计时,直到接收器和接收

6、放大电路检测到回波信号,然后停止计时得到总的超声波传播时间ts,乘以当地温度下的声速Vs得到超声波。注意:超声波脉冲应该有5-10个频率周期。如果太长,测距误差会太大。如果太短,能量就会不足,导致收不到。声速与温度和当地空气密度有关,最好取实测值,否则可能会导致较大误差。T/R40超声波探头(40KHz固有频率)发射和接收超声波的硬件电路1.2超声波测距仪的硬件电路1.2.1回流信号放大电路用电路实现测距仪功能的主要难点在于微弱回波信号的检测。由于接收探头压电晶体两端产生的回波信号极其微弱,在紫外量级,需要高增益放大才能有效探测。这里,我们使用三个NPN 8050三极管的共发射极交流耦合配置进

7、行三级放大。0.1uF电容用于两级级联的交流耦合。集电极接5V电源,提供集电极结的反向偏置电压,基极接两个串联的50K电阻,得到DC工作点(2.5V)。放大后的信号从上图中的信号端子输出。单极性电流增益:单级DC电压增益:交流电压增益低于DC增益。经过实测,该电路的三级交流电压增益约为30000,可以将紫外级别的电压信号放大到10到100 mV的量级。1.2.2信号检测电路经过回波信号放大电路后,已经进入数字芯片可以检测的范围,但此时的信号仍然是频率信号,单片机无法直接识别。所以需要一个检测解码芯片,可以识别40KHz的频率波,转换成数字电平信号。LM567是典型的音频信号解码芯片,音频信号通

8、过它的三个引脚引入。当该音频信号的频率与LM567的设定频率相同时,其第8个引脚的输出电平由高变低。LM567的设置频率由连接在引脚5和引脚6之间的可调电阻器的电阻来调节。可变电阻调整方法:将40KHz频率源连接到LM567的引脚3,将LM567的OUT端子连接到电压表,然后调整引脚5和6之间的电位计,直到OUT端子的电平变低。此时,微弱的回波电信号已经转化为LM567的out端输出的数字电平信号,可以被单片机识别。1.3超声波测距程序设计程序流程源代码:/*/*文件名;clock_c */*程序描述:显示时钟*/*/系统中包含的头文件#include #include /中断函数和子函数声明

9、部分void _ ADC _ Interrupt(void);/ADC中断子程序void _ KBD _ Interrupt(void);/键盘中断子程序void _ TOF _ Interrupt(void);/定时器溢出中断子程序void _ tch 1 _ Interrupt(void);/定时器通道1中断子程序void _ tch 0 _ Interrupt(void);/定时器通道0的中断子程序void _ IRQ _ Interrupt(void);/外部中断中断子程序void _ Startup(void);/复位中断子程序/用户子程序定义void SYS _ Init(void

10、);/系统初始化子程序void pled(无符号字符k);/串行数据输出子程序void显示(unsigned char dispchar,unsigned char n);/数码管显示子程序/宏定义#define config1_VAL 0 x3D /用户配置config1寄存器的值存储# define config 1 _ adr0 x fdea/config 1 _ val的地址#定义JMP_TAB_ADR 0 xFDEB /用户中断向量起始地址#定义JMP _代码0 xCC /跳转指令直接寻址方式的指令代码typedef void(* tint func)(void);/声明指向函数的数

11、据类型type struct jumpEntry /声明结构jump entry类型无符号字符jmpIstrtIntFunc intFunc/定义tIntFunc类型的变量 JumpEntry/CONFIG1_VAL存储在CONFIG1_ADR定义的地址中。const无符号char CONFIGX config 1 _ ADR = config 1 _ VAL;/定义每个中断向量的中断入口。const JumpEntry IntJmpTableJMP _ tab _ ADR = /定义一个数组IntJmpTable,其元素属于jump entry类型。JMP _代码,_ ADC _中断,/AD

12、转换中断向量地址:$FDEBJMP _代码,_ KBD _中断,/键盘唤醒中断向量地址:$FDEEJMP代码,_ TOF _中断,/定时器计数器溢出中断向量地址:$FDF1JMP _代码,_ TCH1 _中断,/定时器通道1溢出中断向量地址:$FDF4JMP代码,_ TCH0 _中断,/定时器通道0溢出中断向量地址:$FDF7JMP _代码,_ IRQ _中断,/IRQ向量地址:$FDFAJMP _代码,_启动/复位向量地址:$FDFD;/数码管的显示编码容量为:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,-,threeconst unsigned char SG code

13、20= 0 x3f,6,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,7,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0,0 x40,0 x49,0 x 66 ;无符号字符dspbf4=0 x0d,0 x0c,0 x0d,0 x0c ;/存储要显示的数据/无符号字符mscnt/定时器溢出计数位int backtime/定义一个全局变量来存储超声波传播时间。bool int flag = 0;/定义一个全局变量来存储超声波接收中断标志。bool int flag 2 = 0;/定义一个全局变量来存储超声波发射标志。内部温度;int

14、 temp1/主程序启动。无效总管(无效)无符号字符I;无符号字符j;SYS _ Init();TSC _ ts top = 0;/允许开始计数for(;)禁用中断;/禁用所有中断if(intflag=0) /intflag标志用于确定超声波接收是否中断。/如果有接收中断,则置位;如果不是,则为0,数码管上显示“dcdc”。DSP BF0= 0 x0d;DSP BF1= 0 x0c;DSP BF2= 0 x0d;DSP BF3= 0 x0c;for(I = 0;I 4;i+) display(dspbfi,I);/分别发送显示for(I = 0;I 4;i+) display(dspbfi,I

15、);/分别发送显示int flag 2 = 0;int flag = 0;TSC _ TOIE = 0;/停止计数中断back time = 0;TSC _ TOIE = 1;for(I = 0;I 5;+)/发送40KHz的短脉冲pta=0 x12;/PTA1和PTA4共同驱动超声波发射探头进行逐位异或。_ ASM(nop);for(I = 0;i 10+)/超声波发射后,延迟一小段时间,禁止所有接收中断,防止接收错误。_ ASM(nop);/C语言中嵌入的空操作指令启用中断;/打开所有中断int flag 2 = 1;/超声波发射后设置超声波发射标志,接收后清零。for(j = 0;j 2

16、0+)/显示并长时间等待接收回流中断并处理距离值。for(I = 0;I 4;i+) display(dspbfi,I);/分别发送显示for(I = 0;I 4;i+) display(dspbfi,I);/分别发送显示for(I = 0;I 4;i+) display(dspbfi,I);/分别发送显示/*/*文件名:系统初始化子程序*/*程序描述:包括配置寄存器、端口寄存器和定时器寄存器的设置*/*输入参数:无*/* return:无*/*/void SYS_Init(void)CONFIG2 = 0 x00/使用部分晶体振荡器关闭reset引脚。CONFIG1 = 0 x3d/禁用看门

17、狗,禁用LVI模块,禁用LVI复位/int SCR = 0 x 00;/端口AB的初始化DDRB = 0 x ff;/PTB7、PTB6为输入,其余为输出。PTBPUE = 0 xc0/PTB7和PTB6设置上拉电阻。PTB = 0 xff/将所有端口B设置为1。DDRA = 0 x 12;/端口a为输入模式,PTA1 PTA4为输出模式。PTA = 0 x02/端口a全为0。/定时器计数器初始化TSC = 0 x63/设置允许定时器溢出中断,设置分频因子为32 n=t*f/p p作为分频因子。TMOD = 1;/将预置寄存器值定时器的本振频率设置为3.2Mhz /TMOD=0.00001*3

18、.2M/32=1。/键盘控制状态寄存器的初始化。KBSCR = 0 x00/键盘状态和控制寄存器允许键盘中断下降沿触发。KBIER = 0 x04/键盘中断控制寄存器禁止自动唤醒键盘中断,并将PTA2设置为中断输入端口。启用中断;/打开总中断/*/*文件名:display函数*/*程序描述:在N位置,显示数值DSPCHAR */*调用子程序:传递数值的pled函数*/*输入参数:dspchar,n */* dspcar:段选择信号,输入用户要显示的数据*/* n:位选择信号,*/*返回参数:none */*/void显示(无符号字符dspchar,无符号字符n)无符号字符I,j,k = 1;f

19、or(j = 0;j (n+2);j+)k * = 2;pled(SG codedspchar);/将代码发送到LEDPTB = 0 x00pt b+ = k;/位选择for(I = 0;i 25i+)/延迟_ ASM(nop);PTB = 0 x00/*/*文件名:pled函数*/*程序描述:8位并行输出串行移位编程,PTB1为时钟信号,PTB0的输出为并行输出*/*输入参数:要显示的值的代码k */* return:无*/*/void pled(无符号字符k)无符号字符I;PTB = 0 x00/所有/PTB端口变为低电平for(I = 0;I 8;i+)PTB _ pt B1 = 0;/

20、将PTB1拉低,即时钟信号变低。if(k 0 x 80)PTB _ PTB 0 = 1;/从高位开始发送,检查最高位是否为1,如果为0,PTB0=1,如果高位为1,默认为0。PTB _ pt B1 = 1;/给一个下降沿信号,移动信号PTB = 0 x00/准备处理下一位k = 1;/向左移动/*/*/下面的中断函数可以在需要的时候写在相应的函数里。中断void _ ADC _中断(void) 中断void _ KBD _中断(void)If(intflag2=1) /如果超声波已经发出If(intflag=0) /如果超声波发射后第一次接收到回波,为了防止杂散回波的干扰int flag 2 = 0;禁用中断;/收到回应后禁用所有中断TSC _ TOIE = 0;/禁止定时溢出中断temp =(float)(back time)* 1.89;back time = 0;/重写backtime的值时,必须禁止计时溢出中断。TSC _ TOIE = 1;int flag 2 = 0;int flag = 1;/处理距离值并显示temp 1 = temp/10;/距离值除以10,并赋给一个中间变量。DSP BF0= temp/1000;/在第0个数码管存储器中存储千位。DSP BF2= temp 1% 10;/在第二个数码管

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论