版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南科技学院电子工程系单片机课程设计报告项目登记表项目名称: 摘要该设计主要用于测量两辆运输小车之间的实时距离,以防其相撞。该系统应能实时测量两个物体之间的距离,并通过显示来提醒操作者。在适当距离内通过声光系统报警并给出信号以进行适当操作。控制系统核心部分就是超声波测距仪的研制。因此,设计好的超声波测距仪就显得非常重要了。本设计采用以AT89S51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。整个电路采用模块化设计,由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。各探头的信号经单片机综合分析处理,实现超声波测距仪的各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。目录一、功能要求4二、方案论证4三、系统硬件电路设计51.单片机系统及显示电路52.超声波发射电路63.超声波检测接收电路7四、系统程序的设计81.超声波测距器的算法设计82.主程序算法设计83.超声波发生子程序和超声波接收中断程序10遇到的问题以及解决办法191.当把硬件电路连接好后,接到电源,发现LED灯不亮19 1).单片机不工作192).LED显示模块的硬件电路设计有问题203).LED显示模块的硬件电路连线有问题20LED全部显示8888的问题203.晶振不能正常工作的问题214.复位电路21总结21仿真结果22实物拍摄23九、参考文献25一、功能要求超声波测距器可应用于汽车倒车。建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度、物体厚度等的测量。其测量范围为0.10~4.00m,测量精度为1cm。测量时与被测物体无直接接触,能够清晰、稳定地显示测量结果。二、方案论证由于超声波指向性强,能量消耗慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。利用超声波检测距离设计比较方便,计算处理也比较简单,并且在测量精度方面也能达到使用的要求。超声波发生器可以分为两大类:一类是使用电气方式产生超声波;另一类是用机械方式产生超声波。电气方式包括电压型、电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波各不相同,因而用途也各不相同。目前在近距离测量方面较为常用的是压电式超声波换能器。根据设计要求并综合各方面因素,本例决定采用AT89C52单片机作为主控器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成。超声波测距器系统设计框图如下:三、系统硬件电路设计硬件电路主要分为以下三个部分:1.单片机系统及显示电路单片机采用89C51或其兼容系列。系统采用12MHZ高精度的晶振,以获得较稳定的时钟频率,并减小测量误差。单片机用P1.0端口输出超声波换能器所需的40kHz方波信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管驱动。单片机系统及显示电路如图:LED的工作原理:四位共阳LED的一边是段选端,一边是位选端。同名段选端各自相连,然后7位段选端口接到P0口,位选端接到P2口。通过位选可以控制每一个LED亮,通过段选端可以控制LED亮什么,其中段选端还要接上拉电阻,其作用是为了保证LED能够点亮。在位选端加一个高电压,段选端加一个低电压,那么再加上上拉电阻的作用,便可以保证LED的两端形成一个压差,这样LED就点亮了。2.超声波发射电路超声波发射电路原理图如下图。发射电路主要由反向器74LS04和超声波换能器构成,单片机P1.0端口输出的40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器两端可以提高超声波的发射速度。输出端采用两个反向器并联,用以提高驱动能力。两个上拉电阻一方面可以提高反向器74LS04输出高电平的驱动能力;另一方面可以增加超声波换能器的阻尼效果,以缩短其自由振荡的时间。超声波换能器的工作原理压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部结构如下图所示,它有两个压电晶片和一个共振板。当它的两极加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它是一个超声波发生器;反之,如果两极间未加外电压,当共振板接收道超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器了。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。超声波发射换能器上标有字母T,而接收换能器上标有字母R。超声波换能器结构图3.超声波检测接收电路集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路,如图所示。实验证明,用CX20106A接收超声波(无信号的输出高电平)具有很高的灵敏度和较强的抗干扰能力。适当地更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。超声波检测接收电路四、系统程序的设计 超声波测距器的软件设计主要由主程序、超声波程序发生子程序、超声波接收中断程序及显示子程序组成。由于C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率并且容易精确计算程序运行的时间,而超声波测距器的程序既有较复杂的计算(计算距离时),又要求精确计算程序运行时间(超声波测距时),所以控制程序可采用C语言和汇编语言混合编程。下面对超声波测距器的算法。1.超声波测距器的算法设计距离计算公式:d=s/2=(vt)/2其中d是被测物与测距器的距离;s是超声波的来回路程,v是超声波在当前温度下的速度,t是发送和接收超声波所经历的时间。超声波测距器原理图TTR障碍物2.主程序算法设计主程序首先要对系统环境初始化,设置定时器工作模式为16位定时、计数器模式,置位总中断允许位EA并对显示端口P0和P2清0;然后调用超声波发生子程序送出一个超声波脉冲。为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延迟0.1ms后才打开外中断0,接收返回的超声波信号。由于采用12MHZ晶振,计数器每记一个数就是1us,取20℃时的超声波传输速度v=344m/s,则d=(vt)/2=344t/2=(172T0/106)m=(172T0/10000)cm其中T0为中断T0的计数值。测出距离后,结果以十进制BCD码方式送往LED显示约0.5S,然后再发出超声波脉冲重复测量。开始系统初始化开始系统初始化发送超声波脉冲等待反射超声波计算距离显示结果3.超声波发生子程序和超声波接收中断程序 超声波发生子程序的作用是通过P1.0端口发送两个左右的超声波脉冲信号(频率约40KHZ的方波),脉冲宽度为12us左右,同时把计数器T0打开进行计时。超声波发生子程序较简单,但要求程序运行时间准确,所以采用汇编语言程序编程。超声波测距主程序利用外中断0检测返回超声波信号,一旦接收到返回的超声波信号(即INT0引脚出现低电平),立即进入超声波接收中断程序。进入该中断后,就立即关闭计时器T0,停止计时,并将测距成功标志字赋1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2,表示本次测距不成功。源程序代码:#include<AT89X51.H>#include<intrins.h>/***************************数码管为共阳数码管***************************/sbits0=P2^7;//个位选通sbits1=P2^6;//十位选通sbits2=P2^5;//百位选通sbits3=P2^4;//千位选通sbitdp=P0^7;//小数点sbitin=P3^2;//外部中断,接CX20106的脚sbitcsb=P3^3;//40KHz方波输出脚#definesegP0//数码管的数据口为P1口#defineucharunsignedchar#defineuintunsignedint#definenop_nop_()/****************************/voidinit(void);//初始化voiddelay_nms(uintn);//延时nmsvoiddelay100us();//延时usvoiddisplay(uintdat);//4位数码管显示函数,只用了位voidtran(void);//超声波测量函数/***************************/uintdis,H=100,L=0;ucharflag=0,high_time,low_time,m=0;ucharleddata[]={0x00,//"0"0x01,//"1"0x02,//"2"0x03,//"3"0x04,//"4"0x04,//"5"0x06,//"6"0x07,//"7"0x08,//"8"0x09,//"9"0x0A,//"A"0x0B,//"B"0x0C,//"C"0x0D,//"D"0x0F,//"E"0x10,//"F"0x11,//"H"0x12,//"L"0x13,//"n"0x14,//"u"0x15,//"P"0x16,//"o"0x17,//"-"0x00,//熄灭0x00//自定义};voiddelay100us(){uchari;for(i=0;i<50;i++);}/**********************************函数名称:主函数修改日期:入口参数:无返回值:无**********************************/voidmain(void){s0=1;s1=1;s2=1;s3=1;seg=0;init();while(1)//循环测量并显示{tran();//发送超声波信号测距display(dis);//显示距离}}/**********************************函数名称:初始化函数修改日期:入口参数:无返回值:无**********************************/voidinit(void){TMOD=0x01;//定时器方式用于计时TH0=0;TL0=0;/*设定T0的工作模式为*/EA=1;IT0=1;//下降沿有效,左传感器}/**********************************函数名称:延时函数修改日期:入口参数:n返回值:无**********************************/voiddelay_nms(uintn){uchari;while(n--){for(i=123;i>0;i--);}}/**********************************函数名称:显示函数修改日期:入口参数:data返回值:无**********************************/voiddisplay(uintdat){uchari,j,k;//分别为百十个位的缓存i=dat/100;//百位j=dat%100/10;//十位k=dat%100%10;//个位s3=0;s2=1;s1=0;s0=0;seg=leddata[i];dp=0;delay_nms(2);dp=1;s2=1;s3=0;s2=0;s1=1;s0=0;seg=leddata[j];delay_nms(2);s1=0;s3=0;s2=0;s1=0;s0=1;seg=leddata[k];delay_nms(2);s0=0;}/**********************************函数名称:超声波测量函数修改日期:入口参数:无返回值:无**********************************/voidtran(void){uchari;floattemp;TH0=0;TL0=0;//清定时TR0=1;//开定时for(i=8;i>0;i--){csb=!csb;nop;nop;nop;nop;nop;nop;nop;nop;nop;}csb=1;delay_nms(1);EX0=1;//开中断if(flag==1)//中断标志位置,说明有回波{//以下为路程计算temp=high_time*256+low_time;temp=(temp/1000)/2;temp*=344;temp=temp/10;dis=(unsignedint)temp;flag=0;}}/**********************************函数名称:中断函数修改日期:入口参数:无返回值:无**********************************/voidTT()interrupt0{uinttmp;TR0=0;//关定时器ET0=0;//关外部中断flag=1;//置位标志位tmp=TH0*256+TL0;//读取定时器的值if((tmp>0)&&(tmp<60000))//判断是否超出范围,此设置的范围为到米,实际不能达到米{high_time=TH0;//把计时值放入缓冲low_time=TL0;}else//超出范围则重新测量{high_time=0;low_time=0;}}遇到的问题以及解决办法1.当把硬件电路连接好后,接到电源,发现LED灯不亮。LED灯不亮的原因有以下几个:1).单片机不工作2).LED显示模块的硬件电路设计有问题3).LED显示模块的硬件电路连线有问题故障排查:1).单片机不工作。先检查AT89C52单片机的电源线和地线是否接好,发现接线无误。再看晶振电路是否工作,仔细检查发现晶振有一个引脚接错,改正后发现,通电后晶振一端出现50HZ的正弦波,且ALE端出现方波,表示单片机正常工作。LED可以显示了,但是显示全部是8888。2).LED显示模块的硬件电路设计有问题解决办法:软件仿真在LED显示模块的proteus仿真文件中添加如下程序代码的hex文件,仿真后可以看到LED被点亮。LED模块调试代码ORG0000HAJMP0030HORG0030HMOVP2,#00H;P2端全部送低电平,经过三极管9012后,位选端为高电平MOVP0,#00H;P0端全部送低电平,段选全部为低电平,使LED全部点亮END3).LED显示模块的硬件电路连线有问题由于单片机正常工作后,4位共阳LED能够全部点亮;而且LED显示模块的软件仿真成功,说明LED显示模块的硬件电路连线没有问题。至此,LED显示模块的故障被排除。2.LED全部显示8888的问题把HEX程序烧进单片机后,连接电源,发现LED全部显示8888。可能是P0口没有接上拉电阻(上拉电阻的阻值一般在1K-10K之间)。因为“从P0口输出时,必须外接上拉电阻才能有高电平输出。”(见单片机课本p20)。如果P0口不接上拉电阻,那么段选一直是低电平,而采用的是数码管的动态扫描,看上去,位选端相当于一直高电平,即:数码管一直点亮。因此,如果LED全部显示8888,那么在P0口加上上拉电阻或许可以解决问题。前后分别做了两个板子,第一个板子出现LED全部显示8888的问题,再加上电路布线不够合理,不够美观,于是换了一块板子重新焊接。但是第2块板子焊好后,又发现单片机不能正常工作了。检查别人正常电路上的单片机的晶体振荡器,观察晶振两个脚上的波形,发现其中一个脚上是50HZ的正弦波,另一个脚上出现类似正弦波的波形,但是有少量谐波成分。但是检查我们自己的晶振,发现一端是50HZ的正弦波,但是另一端出现无规律的杂波,另外ALE端也没有出现方波。P1.0口(输出到超声波发射电路)也没有输出40KHZ的方波。说明单片机没有正常工作。3.晶振不能正常工作的问题接线时,尽量使晶振电路靠近单片机。晶振正常工作时,一端可以检测到50HZ的正弦波,另一端类似正弦波,但是有少量的谐波成分。4.复位电路LED不能正常显示,可能是复位电路出问题。如果复位开关一直导通,则LED可能不亮。检查复位开关是否短路即可。总结1.遇到不懂的问题,应该虚心向别人请教。2.不要盲目相信课本。例如,书上的原理图上P0口没有接上拉电阻,而实际上P0口一般都要接上拉电阻。本实验中,P0口不接上拉电阻的后果是LED一直显示8888。另外,书上说可以用74LS244驱动LED的断码,而74LS244芯片在本实验中的作用就是输入等于输出,并没有用到锁存功能,所以为了简化电路,可以省掉74LS244。3接线应该细心。特别是一些芯片的电源线和地线容易出问题。4.多调试。包括软件调试和硬件调试。如果一个功能模块电路出现问题,先用软件仿真,看看电路设计是否有误;若无误,则检查硬件电路的连线是否有问题;如果没有问题,再进行硬件仿真,看看是不是程序的问题。一个模块一个模块地排查,就可以发现错误。5.如果多次检查仍不能解决问题,也不要盲目地换电路,重头开始。耐心地调试,一步一步排查错误,总能找到问题的症结;不仅最后能解决问题,还能学到很多实际操作的方法和经验,这都是在课本上学不到的。七、仿真结果实物拍摄参考文献[1]胡萍.计算机与现代化[J].第10期超声波测距仪的研制,2003.10
[2]时德刚,刘哗.计算机测量与控制[J].第7卷超声波测距的研究.2002.10
[3]华兵.MCS-51单片机原理应用[M].武汉:武汉华中科技大学出版社,2002.5[4]李华.MCU-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993.6[5]陈光东.单片机微型计算机原理与接口技术(第二版)[M].武汉:华中理工大学出版社,1999.4[6]徐淑华,程退安,姚万生.单片机微型机原理及应用[M].哈尔滨:哈尔滨工业大学出版社,1999.6.[7]苏长赞.红外线与超声波遥控[M].北京:人民邮电出版社,1993.7[8]张谦琳.超声波检测原理和方法[M].北京:中国科技大学出版社,1993.10[9]九州.放大电路实用设计手册[M].沈阳:辽宁科学技术出版社,2002.5[10]樊昌元,丁义元.电子测量与仪器学报[J].第10期高精度测距雷达研究.2000.10目录TOC\o"1-3"\u第一章总论 11.1项目背景 11.1.1项目名称 11.1.2项目建设单位 11.1.3项目建议书内容及编制依据 11.2项目概况 21.2.1建设地点 21.2.2建设内容及规模 21.2.3运营能力 21.2.4建设期限 21.2.5建设投资及资金筹措 21.2.6投资结构 21.2.7主要经济技术指标 3第二章项目提出的背景及必要性 42.1项目提出的背景 42.1.1行业发展及前景预测 42.1.2XXXXX县社会经济情况 52.1.3XXXXX县交通现状 62.1.4XXXXX县出租车行业的基本情况 62.1.5客运行业发展存在的问题 72.2项目优劣势分析 92.3项目可行性分析 92.4项目建设的必要性 102.4.1有效提高居民外出的安全性和舒适度 102.4.2有助于道路交通的规范性 112.4.3大幅提升城市的整体形象 112.4.4出租汽车公司化经营是行业发展的必然趋势 12第三章建设地点及建设条件 173.1选址 173.1.1选址原则 173.1.2地点与地理位置 173.2场址建设条件 173.2.1自然条件 173.2.2地理水文条件 173.2.3气象条件 183.2.4基础设施条件 193.2.5防洪、防潮、排涝实施条件 20第四章工程设备方案 214.1土建工程方案 214.1.1土建工程设计原则 214.1.2土建工程设计依据 214.1.3主要建设内容 224.2固定资产 224.2.1固定资产投资明细表 224.2.2单车配置一览表 22第五章GPS和广告方案 245.1项目建设目的和意义 245.2GPS卫星监控产品的主要功能 245.2.1实时定位查询功能 245.2.2GPS实时定位的作用和意义 275.2.3出租车广告方案 295.2.4出租车顶灯LED广告屏市场分析 295.2.5车身广告的效益分析 295.2.6出租车顶灯LED广告屏基本功能 30第六章组织机构设置方案 326.1指导思想 326.2设置原则 326.3机构设置及岗位名称 326.4组织机构设置图 336.5职能部门主要职责 34第七章建设进度安排 387.1建设工期 387.2项目实施进度安排 38第八章投资估算和资金筹措 398.1项目估算依据 398.1.1工程建设费 398.1.2工程建设其他费 398.1.3工程预
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3.1 大气的组成和垂直分层1 课件上学期地理湘教版(2019)必修第一册
- 吉林省伊通满族自治县第三中学校高中政治必修二22民主决策作出最佳的选择学案
- 押大题02地球运动-2023年中考地理之考前押大题
- 人教部编版八年级语文上册《国行公祭为佑世界和平》公开示范教学课件
- 三年级上册生活生命与安全教案
- 安全教育主题班会教案多篇
- 活鱼冷链运输保障协议
- 4S店拆旧合同模板
- PG99式35毫米牵引式高炮系统-20210801080424
- 2024年郑州考客运资格证需要什么东西
- 道路开口施工方案
- 咖啡厅室内设计PPT
- 北师大一年级数学上册期中测试卷及答案
- 小学二年级上册美术课件-5.17漂亮的钟-岭南版(14张)ppt课件
- 苏教版六年级上册音乐教案全册
- 江苏某市政道路地下通道工程深基坑支护及土方开挖施工专项方案(附图)
- 生物校本教材—生活中的生物科学
- 北京市建筑施工起重机械设备管理的若干规定
- 新建时速200公里客货共线铁路设计暂行规定
- 边沟、排水沟、截水沟施工方案(完整版)
- 实行特殊工时工作制实施方案
评论
0/150
提交评论