ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:302.63KB ,
资源ID:14693454      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14693454.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机设计与制作技术报告.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机设计与制作技术报告.docx

1、单片机设计与制作技术报告单片机设计与制作技术报告中国矿业大学徐海学院单片机设计与制作技术报告姓 名: 岳阳 学 号: 22090230 班 级: 电气09-4 题 目: 超声波测距 任课教师: 胡明 2011 年 9月单片机设计与制作任务书班级 电气09-4 学号 22090230 学生姓名 岳阳 任务下达日期:2011 年 9 月 30 日设计日期:2011 年 10 月 1 日 至 2011 年 12 月 30 日设计题目: 超声波测距设计主要内容和完成功能: 单片机超声波测距器LED显示教师签字:摘 要 目前国内超声波测距器的设计大多采用汇编语言设计。由于单片机应用系统的日趋复杂,要求所

2、写的代码规范化,模块化,并便于多人以软件工程的形式进行协同开发,汇编语言作为传统的单片机应用系统的编程语言,已经不能满足这样的实际需要了,而C语言以其机构化和能产生高效代码满足了这样的需求,成为电子工程师进行单片机系统编程时的首先编程语言。本设计就是一种基于AT89C52单片机、采用C语言和汇编语言混合编程来实现的超声波测距器。1、系统概述 超声波传感器及其测距原理超声波是指频率高于20KHz的机械波。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声

3、波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。超声波测距的原理一般采用渡越时间法TOF(timeof flight)。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。由于超声波指向性强,能

4、量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。根据设计要求并综合各方面因素,可以采用AT89S52单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图如下图所示:图0图1 超声波测距系统框图2、硬件设计 硬件部分主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。采用AT89

5、C5或其兼容系列来实现对CX20106A红外接收芯片和74LS04系列超声波发射模块的控制。单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。 硬件电路主要分为单片机系统及显示电路,超声波发射电路和超声波检测接收电路三部分。2.1单片机系统及显示电路 显示电路使用自己焊的单片机开发板的数码管显示。 图2 单片机显示电路图2.2 超声波发射电路 超声波发射电路原理图3所示。发射电路主要由反向器74LS04和超声波换能器

6、构成,单片机P1.0端口输出的40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路级两级反向器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器两端可以提高超声波的发射强度。输出端采用两个反向器并联,用以提高驱动能力。上拉电阻R13,R14一方面可以提高反向器74LS04输出高电平的驱动能力;另一方面可以增加超声波换能器的阻尼效果,以缩短其自由振荡的时间。压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部结构如图5所示,它有两个压电晶片和一个公振板。当它的两级外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振

7、板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极间未加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器了。超声波发射换能器与 接收换能器在结构上稍有不同,使用时应分清器件上的标志。2.3超声波检测接收电路 集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz于测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路,如图4所示。实验证明,用CX220106A接收超声波(无信号时输出高电平)具有很高的灵敏度和较强的抗干扰能力。适当地更改电容C4的大

8、小,可以改变接收电路的灵敏度和抗干扰能力。 图 5 超声波换能器结构图 图 6 超声波测距原理图3、软件设计 3.1 超声波测距器的算法设计 图6示意了超声波测距的原理,既超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就会被超声波接收器R接收到。这样,只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器于反射物体的距离。该距离的计算公式如下: d=s/2(vt)/2其中:d为被测物于测距器的距离;s为声波的来回路程;v为声速;t为声波来回所用的时间。 超声波也是一种声波,其声速v于温度有关。表A列出了几种不同温度下的超声波声速。在使用时,

9、如果温度变化不大,则可认为声速基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即可求得距离。 表A不同温度下超声波声速表3.2 主程序 主程序首先要对系统环境初始化,设置定时器T0工作模式为16位定时/计数器模式,置位总中断允许位EA并对显示端口P0和P2清0;然后调用超声波发生子程序送出一个超声波脉冲。为了避免超声波从发射器直接传到接收器引起的直射波,需要延时约0.1ms(这也就是超声波测距器会有一个最小可测距离的原因)后才可打开外中断0接收返回的超声波信号。由于采用的是12MHz的晶振,计数器每计一个数就是1us,所以当主程序检测到接

10、收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(32)计算,即可得被测物体与测距器之间的距离。设计时取20时的声速为344m/s,则有d=(vt)/2=(172T/10000)cm (32)其中:T为计数器T0的计数值。测出距离后,结果将以十进制BCD码方式送往LED显示约为0.5s,然后再发超声波脉冲重复测量过程。图3.7所示为主程序流程图。图7主程序流程图 4、系统调试 4.1 调试 超声波测距器的制作和调试都较为简单,其中超声波发射和接收采用15的超声波换能器TCT4010F1(T发射)和TCT4010S1(R接收),中心频率为40KHz,安装时应保持两换能器中心轴线

11、平行并相距48cm,其余元件无特殊要求。若能将超声接收电路用金属壳屏蔽起来,则可提高抗干扰性能。根据测量范围要求不同,可适当地调整与接收换能器并接的滤波电容C4的大小,以获得合适的接收灵敏度和抗干扰能力。 硬件电路制作完成并调整好后,便可将程序编译好下载到单片机试运行。根据实际情况,可以修改超声波子程序每次发送的脉冲个数和两次测量的间隔时间,以适应不同距离的测量需要。 4.2 性能指示 根据文中电路参数和程序,测距器可测量的范围为0.200.50m。实验中,对测量范围为0.200.45m的平面物体做了多次测试,测距器的最大误差不超过1cm,重复性很好。5、结束语 本文设计的是基于AT89S52

12、单片机的超声波测距器,可以应用于汽车倒车等场合,提醒驾驶员倒车时有效的避开可能对倒车造成危害的障碍物和行人,从而有效避免由于倒车造成的汽车碰撞或擦伤带来的经济损失和人身安全问题。具有较强的实用性。6、参考文献 【1】 张齐,单片机应用系统设计技术-基于C语言编程【M】北京:电子工业出本社,2006 【2】 何希才,传感器及其应用电路【M】北京:电子工业出版社,2001 【3】 李光飞,51系列单片机设计实例【M】北京:航空航天大学出版社,20037、附录包括系统硬件电路图、源程序(加注释)、实物作品调试和演示照片附录1主程序:/*Title: 超声波测距系统Mcu: AT89S51 Oscil

13、lator: 12MDesigner: linqiuxiong Date: 2010.2.12Email:takingDirections: 经实践表明该系统的测距范围在0.21m-2m时,误差不超0.5cm;大于2m时,最大误差不超过1.5cm;因发射功率不足,本系统的稳定测量范围是0.21m-4m。*/#include /*头文件*/#include#define uchar unsigned char /*缩定义*/#define uint unsigned int#define nop() _nop_() /*定义空操作指令*/#define sled_dm_port P0 /*定义数

14、码管段码控制端口*/#define sled_wm_port P2 /*定义数码管位码控制端口*/sbit vout=P10; /*声明40KHz脉冲信号输出口*/sbit rec=P11;/sbit fm=P25; /*声明蜂鸣器使能引脚*/void delay_1ms(uchar x); /*1MS为单位的延时程序 */void display(); /*显示子程序*/uchar code num_table13=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0x7f; /* 0 1 2 3 4 5 6 7 8 9

15、- 消隐 .*/ /*定义数码管显示字符跟数字的对应数组关系*/uchar data sled_lighten_table=0xf7,0xfb,0xfd,0xfe; /*定义每次扫描时需点亮的数码管*/uchar dis_buff4=0xff,0xff,0xff,0xff; /*定义段码缓冲数组*/uint time,distance; /*定义接收时间与距离变量*/bit rec_flag; /*定义接收成功标志位*/uchar k,j,wm; /*定义脉冲个数与位选控制变量*/*主程序*/ void PINT0(void);void main() uint i; TMOD=0x21; /*

16、T1为8位自动重装模式*/ TH0=0x00; /*65ms计数初值*/ TL0=0x00; TH1=0xf2; /*12us计数初值*/ TL1=0xf2; PX0=1; PT1=1; ET0=1; EA=1; TR0=1; while(1) dis_buff2=num_tabledistance/100; dis_buff1=num_tabledistance%100/10; dis_buff0=num_tabledistance%10; display(); rec_flag=0; for(i=400;i0;i-) /*测量间隔控制(约4*100=400MS)*/ display();

17、EA=1; TR0=1; while(rec) PINT0(); /*显示子程序*/void display() sled_wm_port=0xff; /*显示消影*/ if(wm=3) sled_dm_port=0xff; if(wm=2) if(dis_buff2=0xc0) /*若第2位数码管为0则不显示*/ sled_dm_port=0xff; else sled_dm_port=dis_buff2; else sled_dm_port=dis_buffwm; sled_wm_port=sled_lighten_tablewm; wm+; if(wm=4) wm=0; delay_1m

18、s(1); /*定时器T0中断程序*/void TIMER0() interrupt 1 EA=0; TH0=0x00; TL0=0x00; ET1=1; EA=1; TR1=1; TR0=1;/*定时器T1中断程序*/void TIMER1() interrupt 3 vout=!vout; k+; if(k=4) /*超声波肪冲个数控制(为赋值的一半)*/ k=0; TR1=0; ET1=0; for(j=200;j0;j-); /*1ms延时避开盲区*/ for(j=200;j0;j-); for(j=200;j0;j-); EX0=1; /*开启外部中断0*/ void PINT0(void) TR0=0; TR1=0; ET1=0; EA=0; EX0=0; rec_flag=1; /*接收成功标志位置1*/ time=TH0; time=time*256+TL0; time=time-120; /*补偿软件或硬件带来的误差*/ distance=time*0.017; /*1MS为单位的延时程序*/void delay_1ms(uchar x) uchar i; while(x-) for(i=0;i100;i+);附录2发射电路附录3接收电路

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2