课程设计论文正.doc_第1页
课程设计论文正.doc_第2页
课程设计论文正.doc_第3页
课程设计论文正.doc_第4页
课程设计论文正.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

2012.10 上海师范大学天华学院电信系现代通信技术专业课程设计 21目录1 绪论12 设计的主要内容及技术指标、要求22.1主要内容22.2主要技术指标、要求23 总体方案33.1总体设计方案33.2 硬件方案33.2.1 最小系统43.2.2 超声波发射模块53.2.3 超声波检测接收模块63.2.4 数码管显示模块73.2.5 复位功能73.3 软件方案83.3.1 超声波测距主程序83.3.2 超声波发射子程序93.3.3 超声波接收中断程序104 调试与调试过程中的问题及解决方案114.1数码管调试114.2测距调试115 设计总结13参考文献14附录151 绪论超声波是由机械振动产生的,可以在不同介质中以不同的速度进行传播。利用超声波作为定位技术是蝙蝠等一些无目视能力的生物作为防御及捕捉猎物生存的手段,也就是由生物体发射不被人们听到的超声波,借助空气媒质传播,由被待捕捉的猎物或障碍物反射回来的时间间隔长短与反射的超声波的强弱判断猎物性质或障碍位置的方法。超声波测距作为一种传统且实用的非接触测量方法,与激光、无线电测距方法相比,不易受外界光及电磁场等因素的影响,结构简单,成本低,在恶劣环境下也有一定的适应能力,因此在工业控制、建筑测量、机器人避障等方面都得到了广泛应用。而且由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,利用超声波检测距离,设计方便,计算处理简单,并在测量精度方面也能达到工业要求。通过本次设计掌握超声波测距系统硬件设计方法和软件编写方法,了解设计过程中所涉及的芯片结构、控制原理、硬件及编程等方面的知识,加深对先到通信技术课程知识点的理解,提高在应用知识、设计、调试等方面的能力。2 设计的主要内容及技术指标、要求2.1主要内容利用所学数字电子技术、信号处理、控制等技术,设计、制作和调试完成一个单片机最小化系统,并在此基础上,将最小系统与综合实验开发平台上的超声波模块、显示模块进行正确的连接(如图2.1所示),使单片机可接收超声波模块输出的距离信号,并对其进行合理的处理后,在显示模块上实时显示超声波模块与障碍物的距离(单位:cm,精确到小数点后1位)。图2.1 系统连接示意图具体内容如下:(1) 设计最小化单片机系统;(2) 装焊、调试最小化单片机系统;(3) 设计并编程,以构成超声波测距信号发生回路;(4) 设计并编程,完成超声波信号处理,以实现测距功能;(5) 设计并编程,以实现超声波测距结果显示;(6) 设计并完成系统启动/复位功能。2.2主要技术指标、要求实验开发平台上的数码管可实时显示障碍物与超声波模块的距离信息,单位为cm,精确到小数点后1位(如显示28.2表示28.2cm)。3 总体方案3.1总体设计方案测距仪的分辨率取决于对超声波传感器的选择。超声波传感器是一种采用压电效应的传感器,常用的材料是压电陶瓷。由于超声波在空气中传播时会相当的衰弱,并且衰弱的程度与频率的高低成正比。根据设计要求并综合各方面因素,本文采用AT89S52单片机作为控制器,选用高精度的晶振,以获得稳定的时钟频率,减少测量误差。用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器。由单片机AT89S52编程产生40KHz的方波,经P3.3口连接到开发平台的超声波模块发送超声波,在经过放大电路,驱动超声波发射探头发射超声波。发射出的超声波经障碍物反射回来后,经过P3.2口由超声波接受头接收到信号。通过接受电路的检波放大、积分整形及一系列处理,送至单片机。单片机利用声波的传播速度和发射脉冲到接受发射脉冲的时间间隔计算出障碍物的距离,并由单片机控制在开发平台的显示模块中显示出来,从而达到测距效果。超声波测距原理框图如图3.1所示。图3.1 超声波测距原理框图3.2 硬件方案超声波测距硬件主要包括:AT89S52单片机最小系统、超声波发射模块、超声波接受模块、显示模块等。其测距原理为:单片机在时刻发射方波,同时启动定时器开始计时时,当收到回波后,产生一个负跳变到单片机中端口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此可以计算出距离。其时序图如图3.2所示。图3.2 超声波时序图3.2.1 最小系统本文单片机型号为AT89S52,采用频率为12MHz的晶振与两个电容组成的晶振电路,为单片机提供工作时序。复位电路时按键电平复位,是通过使复位端经电阻与VCC电源接通而实现。最小系统实物图如图3.3所示。图3.3 最小系统实物图AT89S52是一种低功耗、高性能CMOS 8位微控制器,其引脚分布图如图3.4所示,它具有8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,1个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容,片内置通8位CPU及Flash存储单元,使其为众多嵌入式控制应用系统提供高灵活、高效率的解决方案。图3.4 最小系统引脚分布图3.2.2 超声波发射模块超声波发射电路原理图如图3.5所示。发射电路主要由反相器74LS04和超声波发射换能器T构成,单片机P3.3端口输出的40KHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反相器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采用两个反相器并联,用以提高驱动能力。上位电阻R10、R11一方面可以提高反相器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。图3.5 超声波发射电路原理图3.2.3 超声波检测接收模块集成电路CX20106A是一款红外线检测波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38KHz与测距的超声波频率40KHz较为接近,可以利用它制作超声波检测接收电路(如图3.6)。图3.6 超声波检测接收电路原理图3.2.4 数码管显示模块显示电路采用简单实用的共阳极LED数码管,其原理图如图3.7所示。段码用74LS244驱动,位码用PNP三极管驱动。P2连接数码管显示模块。单片机对LED管的显示分为静态和动态两种。静态显示的特点是各LED管能稳定地同时显示各自字形,动态显示则是指各LED轮流地一遍一遍显示各自字形。人们通常会由于视觉惰性,看到各LED在同时显示不同字形。为了减少硬件开销,提高系统可靠性并降低成本,单片机控制系统通常采用动态扫描显示,但由于本系统所用的单片机引脚少,只需显示四位字符,所以采用静态的显示方式,用软件译码,从单片机引脚输出后直接接到LED显示管上,省去了外部复杂的译码电路。图3.7 共阳数码管原理图3.2.5 复位功能系统具备测距启动功能,可以进行复位,使其开始重新测距。采用开饭平台中的按键模块实现。3.3 软件方案超声波工作原理:超声波在媒质中的反射、折射、衍射、散射等传播规律,与可听声波的规律并没有本质上的区别。但是超声波的波长很短,只有几厘米,甚至千分之几毫米。与可听声波比较,超声波具有许多奇异特性:传播特性超声波的波长很短,通常的障碍物的尺寸要比超声波的波长大好多倍,因此超声波的衍射本领很差,它在均匀介质中能够定向直线传播,超声波的波长越短,这一特性就越显著。系统软件设计采用模块化设计,主要包括主程序设计、T0中断服务子程序、外部中断服务子程序、距离计算子程序、LED显示子程序设计等。3.3.1 超声波测距主程序主程序流程说明:(1)系统控制初始化LED、初始化计数控制部分,清除计数值(2)单片机超声波脉冲信号(3)立刻置INT0为1,打开计时器,等待回波信号(4)回波信号到达,关闭计时器,P3.3为0,清INT0为0(5)单片机读出计数值(6)单片机将计数值进行计算后得出的距离值显示在LED上(7)当按下复位键时启动复位功能主程序流程图如图3.8所示。图3.8 主程序流程图3.3.2 超声波发射子程序通过P3.3端口发送40KHz的方波,计数器T0打开进行及时。流程图如图3.9所示。图3.9 超声波发射子程序流程图3.3.3 超声波接收中断程序通过P3.2端口检测返回信号,收到后进入接收中断程序。流程图如图3.10所示。图3.10 超声波接收中断程序流程图4 调试与调试过程中的问题及解决方案4.1数码管调试通过编程和连接单片机与实验平台,最后数码管显示结果如图4.1所示,是一个精确到小数点后2位的值数值,可以通过对程序中变量的修改,随时修改显示的值。图4.1 数码管模块的调试结果4.2测距调试超声波测距器的制作和调试较为简单。首先硬件电路焊完后,通过Keil uVision3软件对编写的程序进行错误查找、修改,生成HEX文件,然后下载到单片机中运行,实现相应功能。而且可以根据实际情况,修改超声波子程序每次发送的脉冲个数和两次测量的间隔时间,以适应不同距离的测量需求。调试结果如图4.1所示。(a) 无障碍物时距离测试图(b)有障碍物时距离测试图图4.1 调试结果对比图在调试过程中遇到的问题是:当障碍物与接收模块距离发生微小变化时,数码管示的距离值变化较快,不稳定。解决方案是:通过对距离S=(v*t)/2的计算,修改了延时程序,提高了程序的稳定性,从而得到更清楚的测距效果。5 设计总结在本次设计中,我们广泛借鉴了各种设计的优点,讨论并研究各个设计环节,包括超声波接收模块和发射模块的程序设计、方波的产生等。通过实物制作和调试过程让设计更加完善。在不断的完善过程中,我们对单片机的理论知识有了更加深入的了解。通过不同的调试,我们学到了如何发现问题,如何高效的解决问题,如何将理论和实际相结合。本次设计为我们锻炼实践能力提供了良好的平台,让我们在实践中学习,在学习中进步。最后感谢指导老师的悉心教导和小组成员的帮助,在老师的指导下我们学会迅速找到问题的根源所在,从而达到高速的实验效率。通过小组成员之间的合作,我们体会到团结就是力量的真谛。参考文献1肖景和 赵健 红外线热释电与超声波遥控电路M.北京:人民邮电出版社 20032沙占友 集成化智能传感器原理与应用M.北京:电子工业出版社 20043吴研 超声波倒车雷达系统设计J.北京:北京理工大学 20054路锦正 王建勤 超声波测距仪的设计M.成都:成都理工大学 19995姜志海 黄玉清 单片机原理及应用M.北京:电子工业出版社 20056赖寿宏 微型计算机控制技术M.北京:机械工业出版社 20027邱关源 电路M.北京:高等教育出版社 19998王兆安 黄俊 电力电子技术M.北京:机械工业出版社 20039基于AT89C2051的超声波测距仪设计J.北京:航空航天出版社 200610尤一鸣 单片机总线扩展技术第一版M.北京:北京航空航天大学出版社 1993附录显示模块程序:#include #include unsigned char data dis_digit;unsigned char code dis_code11=0xc0,0xf9,0xa4,0xb0, / 0, 1, 2, 3 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff;/ 4, 5, 6, 7, 8, 9, off unsigned char data dis_buf8;unsigned char data dis_index;unsigned char ge,shi;unsigned char ge100; void inc_ge();void inc_shi();void display();void delayms(unsigned char ms);void main(void) P0 = 0xff; P2 = 0xff; TMOD = 0x11; TH1 = 0xdc; TL1 = 0; TH0 = 0xFC; TL0 = 0x17; shi = 31; ge = 65; ge100 = 0; dis_buf3 = dis_codeshi / 10; dis_buf4 = dis_codeshi % 10; dis_buf6 = dis_codege / 10; dis_buf7 = dis_codege % 10; dis_digit = 0xfe; dis_index = 0; TCON = 0x01; IE = 0x8a; TR0 = 1; TR1 = 1; while(1); void timer0() interrupt 1 TH0 = 0xFC; TL0 = 0x17; P2 = 0xff; if(dis_index=4) P0 = (dis_bufdis_index)&0x7f); else P0 = dis_bufdis_index; P2= dis_digit; dis_digit = _crol_(dis_digit,1); dis_index+; dis_index &= 0x07; void timer1() interrupt 3 TH1 = 0xdc; if(ge100 = 100) ge100 = 0; inc_ge(); 超声波发送模块程序:#include sbit wave=P10;void timer0_init()TMOD=0x02;ET0=1;TH0=244;TR0=1;EA=1;void main()timer0_init();while(1);void timer0_isovr()interrupt 1wave=!wave;超声波测距总程序:#include /包括一个52标准内核的头文件#define uchar unsigned char /定义一下方便使用#define uint unsigned int#define ulong unsigned longsbit Tx = P33; /产生脉冲引脚sbit Rx = P32; /回波引脚uchar code SEG710=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/数码管0-9uint distance4; /测距接收缓冲区uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; /自定义寄存器bit succeed_flag; /测量成功标志/*/函数声明void conversion(uint temp_data);void delay_20us(); void pai_xu();/*/ 主程序void main(void) uint distance_data,a,b; uchar CONT_1; i=0; flag=0;Tx=0; /首先拉低脉冲输入引脚TMOD=0x11; /定时器0,定时器1,16位工作方式TR0=1; /启动定时器0 IT0=0; /由高电平变低电平,触发外部中断ET0=1; /打开定时器0中断EX0=0; /关闭外部中断EA=1; /打开总中断0while(1) /程序循环 EA=0; Tx=1; delay_20us(); Tx=0; /产生一个20us的脉冲,在Tx引脚 while(Rx=0); /等待Rx回波引脚变高电平 succeed_flag=0; /清测量成功标志 EX0=1; /打开外部中断 TH1=0; /定时器1清零 TL1=0; /定时器1清零 TF1=0; / TR1=1; /启动定时器1 EA=1; while(TH1 30); /等待测量的结果,周期65.535毫秒(可用中断实现) TR1=0; /关闭定时器1 EX0=0; /关闭外部中断 if(succeed_flag=1) distance_data=outcomeH; /测量结果的高8位 distance_data=3) CONT_1=0; b=a; conversion(b); i=0; /*/外部中断0,用做判断回波电平INTO_() interrupt 0 / 外部中断是0号 outcomeH =TH1; /取出定时器的值 outcomeL =TL1; /取出定时器的值 succeed_flag=1; /至成功测量的标志 EX0=0; /关闭外部中断 /*/定时器0中断,用做显示timer0() i

温馨提示

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

最新文档

评论

0/150

提交评论