基于单片机的智能避障小车设计_第1页
基于单片机的智能避障小车设计_第2页
基于单片机的智能避障小车设计_第3页
基于单片机的智能避障小车设计_第4页
基于单片机的智能避障小车设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

目录摘要1Abstract2引言3第一章总体设计方案4§1.1设计要求4§1.2系统设计方案4§1.3总体设计5§1.4功能说明5第二章硬件的选择与组成6§2.1单片机的选择6§2.2避障模块的选择7§2.3驱动模块的选择8§2.4电源方案10第三章软件程序流程图11§3.1主流程图11§3.2模块程序设计说明11§3.3超声波避障程序12§4.2驱动模块程序13第四章电路调试14§4.1硬件调试14§4.2软件调试15§4.3系统联调15§4.4实现功能15第五章总结与展望16参考文献17附录18基于单片机的智能避障小车设计摘要当今世界,随着汽车工业的快速开展,关于汽车的研究也越来越受到人们的关注。从20世纪70年代,美欧等兴旺国家开始进行无人驾驶汽车的研究,我国从上世纪80年代开始着手无人驾驶汽车的研制开发,虽与国外相比还有一些距离,但目前也取得了阶段性成果。智能汽车概念的提出给汽车产业带来机遇也带了挑战。汽车的智能化必将是未来汽车产业开展的趋势,在这样的背景下,我们开展了基于单片机的智能小车的避障研究。我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业开展必然的结果,在这种情况下研究智能避障小车的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。该设计利用单片机STC89C52RC作为主控芯片,该芯片是一种高速、低功耗、抗干扰能力强的芯片,其最高时钟工作频率为48MHz,用户应用程序空间为8K。能够满足程序空间需要。驱动采用L298N驱动芯片,它是一种双全桥步进电机专用芯片,通过对其输入端的控制可以实现小车的启动、转向、停止等动作。为节省本钱,小车由两个直流减速电机加一个万向轮构成,并采用后轮驱动。本文首先介绍了智能车的开展前景,接着介绍了该课题设计设想,各模块电路的选择及其电路工作原理,最后对该课题的设计过程进行了总结与展望并附带各个模块的电路原理图,和本设计实物图,及完整的C语言程序。关键词:单片机,超声波,直流减速电机,避障小车DesignofintelligenceobstacleavoidancecarbasedonMCUAbstractIntoday'sworld,withtherapiddevelopmentofindustry,researchaboutthecarisalsomoreandmoreattentionbypeople.Fromthe1970s,thedevelopedcountriessuchastheusandEuropebeganthedriverlesscarsresearch,ourcountryfromthe1980sbegantheresearchanddevelopmentofdriverlesscars,althoughcomparedwithforeigncountriesandsomedistance,butnowalsomadesomeprogress.Smartcarstotheconceptoftheautoindustryhasbroughtwithitachancechallenge.Thecarwillbethefutureoftheautoindustryintelligentdevelopmenttendency,inthiscontext,wecarriedoutbasedonMCUintelligenceobstacleavoidanceofthecar.Chinaasaworldpower,inthehigh-techfieldsmustalsoholdposition,thefutureoftheautoindustryistheintelligentaninevitableresult,inthiscasestudyintelligenceobstacleavoidanceofcarapplicationhasfar-reachingsignificance,thiswilltoChina'sfutureintheworldofintelligentvehicleresearchhigh-techfieldstooktheleadhasanimportantrole.ThisdesignusingsinglechipcomputerchipSTC89C52RCasthemaster,thechipisahighspeed,lowpowerconsumption,stronganti-interferenceabilitychip,themaximumclockfrequencyofthework48MHz,userapplicationspacefor8K.Canmeettheprogramspaceneeds.ThedriverL298Ndrivechip,itisakindofsteppingmotorandproperbridgethespecialchip,throughitscontrolcanberealizedattheinputofthecartostart,stop,suchaction.Tosavecosts,thecarslowdownbytwodcmotorandauniversalwheelstructure,andtherearwheeldrive.Thispaperfirstintroducedthesmartcarprospect,thenintroducesthedesignideaofthesubject,eachmodulecircuitanditscircuitprincipleofchoice,andfinallytothistopicdesignprocessaresummarizedandprospectwitheachmoduleofthecircuitprinciplediagram,andthisdesignrealfigure,andcompleteClanguageprogramKeywords:MCU,ultrasonicwave,dcmotorandobstacleavoidancecar引言随着汽车避障技术的广泛应用,智能车的开展已成为未来汽车开展的一个方向,开发一种无需驾驶员的智能型汽车的任务,已经被社会所关注。利用避障技术,汽车在行驶中能够自动转向刹车和换档,因此车上无需驾驶员,乘车人可以随心所欲地谈话、读书、工作、娱乐,车内成为一个充满乐趣的生活空间。所以没有驾照的人也可以拥有自己的车。智能小车是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统,随着计算机科学的开展,可以通过单片机控制来实现对其行驶方向、启动、停止以及速度的控制,无需人工干预,操作人员可以通过修改智能小车的控制程序来改变它的行驶方式。因此智能避障车可以解决一些特殊环境下人力无法完成的任务。该课题所设计利的用单片机控制的壁障小车,体积不大,方便携带。但由于知识水平及时间有限,本课题研究智能小车的一个方面即避障。系统采用单片机为控制核心,利用自制小车或玩具小车进行小车的模拟,采用超声波避障模块进行障碍物的检测。单片机控制避障模块发射和接收,通过相应的程序处理,判断障碍物的位置。根据检测情况单片机控制电机驱动模块,控制小车电机的正反转实现小车的转向,启动等相应动作,来实现避开障碍物,为了降低了本钱,小车是自己组装的。软件采用所学的C语言来实现,实用性大。第一章总体设计方案§1.1设计要求1>在小车行驶过程中,50ms启动一次超波模块,对前方路况进行检测2>当障碍物小于15cm时,小车自动左转90度3>当小车转过90度后,对前方道路再次检测,假设无障碍,向前行驶。如果存在障碍物且小于15cm,小车右转180度,并再次检测前方路况,假设无障碍物,向前行驶,有障碍物且距离小于15cm,小车向右转90度并向前行驶。§1.2系统设计方案根据设计要求,为了便于调试和改良,采用模块化设计。系统可分为:微控制器、避障模块、驱动模块、电源模块、小车模块。其根本框图如下:图1.1系统框图§1.3总体设计基于单片机STC89C52RC设计的智能避障小车,本设计需提供+12V和+5V电源,DC+12V由市电直接转化,DC+5CV由直流+12V经7805转换得到。为单片机及其他电路提供工作电压,直流12V主要为电机提供驱动电压。超声波避障模块,采用购置的现成的超生波发射接收模块,通过单片机控制超声波模块去小车行驶道路上的障碍物进行检测,然后单片机通过处理反应的信息,判断障碍物的距离,进而发出指令控制驱动模块,控制小车实现转向,到达避障的目的。制作该产品用到的元器件都是以前学习或实训中用到过的元器件,对元器件性能及使用方法有一定的了解,可以熟悉运用,而且有效节省了硬件本钱,又能实现预定目标。该设计有很大的实用价值。系统整体框图如下列图所示:图1.2整体设计框图§1.4功能说明本设计主控芯片采用51芯片,负责传感器的状态,并向电机驱动模块发出动作指令。复位采用手动复位。电源模块有市电转出+12V,再将+12V转换成+5V提供应单片机及其他模块,+12V主要为驱动电机提供电源。避障模块采用购置的成品,该模块在单片机的控制下对小车前方的路况进行检查,并将检测信息反应给单片机,单片机经过处理反应回来的信息,发出相应的指令控制驱动模块,从而控制小车做出相应的动作,到达避障的目的。第二章硬件的选择与组成§2.1单片机的选择方案一:采用凌阳16位单片机作为核心,内置2K字静态内存,32K字闪存〔FLASH〕,2个16位可编程定时器/计数器,32个通用I/O口,14个中断源。该芯片具有体积小、集成度高、可靠性好且易于扩展,具有较强的中断处理能力,低功耗、低电压。完全能够满足设计要求,但该芯片价格昂贵,制作本钱高。方案二:采用单片机STC89C52RC为核心,8K的内部程序存储器〔ROM〕,512个内部数据存储器〔RAM〕,4个存放器区,32个通用I/O端口,2个16位的定时、计数器,有ISP功能,能用于下载线进行的在线编程,设有4个中断源,能够完成设计要求,且该芯片价格廉价,采用该芯片能够到达设计要求,且平时实训中一直采用该芯片,对其比拟熟悉,控制起来相对简单。比拟以上两种单片机,综合考虑设计要求及本钱,该设计选用STC89C52作为主控芯片。单片机用的是STC89C52RC,该芯片存储容量大,体积小。单片机最小系统:电源局部、晶振局部、复位电路和31号脚接高电平。单片机包含中央处理器、程序存储器〔ROM〕、数据存储器〔RAM〕、定时/计数器、并行接口、串行接口和中断系统等几个大单元及数据总线地址总线和控制总线等三大总线。9号复位信号脚,时钟电器开始工作,复位端会出现24个时钟周期以上的高电平,系统即初始复位。其复位方式一般为手动复位,VCC断电期间,此引脚可接上备用电源,以保证单片机内部RAM的数据不丧失。31脚程序存储器的内外部选通线,内置有8kb的程序存储器,当EA为高电平并且程序地址小于8kb时,读取内部程序存储器指令数据。所以该设计31脚应该接高电平。51单片机内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,18、19脚就接电容和晶振电路。单片机40脚接VCC,可以提供电源,20脚接地。2.1最小系统电路为方便端口的选择,单片机的P0口外界有上拉电阻,且32个通用I/O端口都接有排针,以方便使用及更换控制端口。引脚功能表/EA访问程序储存控制信号RST复位信号XTAL1和XTAL2外接晶振引脚VCC+5V电源Vss底线P0.0~P0.3接驱动控制端P2.2超声波模块的ECHO引脚P2.3超声波模块的TRIG引脚§2.2避障模块的选择方案一:采用红外避障,红外避障的根本原理是发光管发出红外光,光敏接收管接收前方物体反射光,据此判断前方是否有障碍物。根据反射光的强弱可以判断物体的距离,原理是接收管接收的光强随反射物体的距离而变化,距离近那么反射光强,距离远那么反射光弱。目前使用较多是一种传感器——红外开关,它的发射频率一般为38KHz左右,探测距离比拟短,且易受外界干扰。方案二:超声波避障,根本原理是通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道障碍物的距离。超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。〔超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2〕优点:超声波检测障碍物的精度高,反映灵敏,受外界干扰小,计算简单、易于做到实时控制。综合各方面考虑,本设计采用超声波避障。该局部采用购置HC-SR04超声波测距模块,该模块可提供2cm-400cm的非接触式距离感测功能,测距精度可到达3cm工作原理:1〕采用IO口TRIG触发测距,给至少给10us的高电平2〕模块自动发送8个40khz的方波,自动检测是否有信号返回;3〕有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=〔高电平时间*声速〔340m/s〕〕/2;如下图,TRIG是触发控制信号输入端,接单片机的P2.3引脚,ECHO回响信号输出端接P2.2引脚。图2.2超声波模块接线图§2.3驱动模块的选择方案一:采用单片机的I/O口直接驱动电机,这样可以节省制作本钱,但单片机驱动能力有限。方案二:驱动采用L298N驱动芯片,该芯片是双全桥步进电机专用驱动芯片,内涵4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥驱动器,接收标准TTL逻辑信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号,驱动能力强,故采用该芯片设计驱动电路。综合考虑,本设计采用L289N来设计驱动电路。驱动采用L298N驱动芯片,该芯片是双全桥步进电机专用驱动芯片,内涵4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥驱动器,接收标准TTL逻辑信号,可驱动46V、2A以下的步进电机,且可以直接透图2.3L298N硬件结构图过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信,第1脚和第15脚可与电流侦测用电阻连接来控制负载的电路。OUTPUT1、OUTPUT2和OUTPUT3、OUTPUT4之间分别接2个直流电机;INPUT1~INPUT4输入控制电位来控制电机的正反转;Enable那么控制电机停转。图2.4驱动电路驱动电路中,EN1、EN2直接接高电平,1A1、1A2接单片机的P1.0和P1.1口控制电机M1,2A1、2A2接P1.2和P1.3口控制电机M2,1Y1和1Y2接电机M1,2Y1和2Y2接电机M2。有续流二极管构成的“H桥〞,作为L298N的辅助电路来实现直流减速电机的控制。在这里面,二极管起到了续流的作用,迅速释放电机在停止过程中产生的反电动势,对电机进行保护。§2.4电源方案图2.5电源电路电源供电局部,我使用了实训时自制的直流可调稳压电源,提供直流+12V电压,运用三线稳压器件7805,输出+5V电源。由于7805简单易用、价格低廉,在大多电路中充分采用。通过电解电容的隔离滤波作用,电源局部可输出+5V的直流电源。电路图如上所示。第三章软件程序流程图§3.1主流程图图3.1主流程图如上图所示,在程序设计中,为了便于调试,方便找到程序问题的所在,程序采用在主函数中调用各个子函数的形式。当启动一次超声波测距程序时,单片时机根据检测反应回来的信息进行相应的处理,进而判断是否有障碍物,当障碍物的距离小于设定的平安距离时,单片时机发出相应的指令,控制驱动电路,对小车的行驶方向进行调整。当小车前方无障碍物时,主程序会在一定的时间内自动启动一次超生波测距程序,假设无障碍继续按原来的方向行驶。如此循环,到达避障的目的。§3.2模块程序设计说明运用C语言编写程序,因为C语言是我所学专业的一门课程,并且在平时的制作中屡次使用该语言,因此采用该语言编程相对容易一些。在程序中我采用了两个计数器溢出中断,其中一个是T0计数器溢出中断,是用来计算障碍物的距离,如果障碍物的距离超出测距范围,利用该中断设置标志位。另一个是T1计数器溢出中断,我利用该中断控制超声波发射的时间间隔,即对路面障碍物检测的时间间隔,来适时判断路面情况,改变小车的行驶方向,到达小车躲避行驶过程中遇到的障碍物。§3.3超声波避障程序3.2超声波时序图以上时序图说明,只需提供一个10us以上的脉冲信号,该模块内部将发出8个40KHz周期电平并检测回波。一旦检测到有回波信号那么输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到接收到回响信号的时间间隔可以计算得到距离。具体程序如下:StartModule()//发射一次超声波{TRIG=1;//DelayUs2x(8);//延时20usTRIG=0;while(!RX); //当RX为零时等待TR0=1; //开启计数while(RX); //当RX为1计数并等待TR0=0; //关闭计数T0Count(); //计算}图3.3超声波检测流程图§4.2驱动模块程序L298N正反转对应输入控制端一览表电机旋转方式控制端IN1控制端IN2控制端IN3控制端IN4输入PWM脉冲信号,改变脉宽可调速ENAENBM1正转高低高反转低高高停止低低高M2正转高低高反转低高高停止低低高图3.4驱动程序流程图如图3.3所示,当在主程序中当计数器T1溢出中断响应时,会首先判断障碍物的距离是否小于设定的平安距离〔被设计中为15cm〕,假设大于平安距离,小车继续按原来的方向行驶,假设小于平安距离,小车首先左转90度,停下并启动超声波避障程序再次对前方的路况进行障碍有无的检测,假设无障碍物或有障碍但大于平安距离,小车沿该方向前进,反之当障碍物的距离小于平安距离时,小车向右旋转180度,停止并再次启动超生波避障程序,对前方的路况进行检测,假设无障碍物或有障碍物但距离大于平安距离,小车沿该方向前进,反之当障碍物的距离小于平安距离时。小车向右转90度,沿该方向行驶。如此循环实现避障。第四章电路调试§4.1硬件调试在每个元件在没焊上去时,先用万用表检测,它们是不是都正常的,像LED灯,有些可能是有损坏的。其中,L298N在焊接时要特别的注意,由于元件有15个脚,且分成两排,管脚相互交错,给焊接造成一定的难度,因此在焊接前要对管脚进行一些处理,以方便焊接。由于L298N管脚排列的特殊性,给PCB布图也带了一定的难度,自己水平有限未能布成单面板,有些遗憾。该芯片价格昂贵,焊接时要特别注意管脚的连线一定要正确,否那么会造成经济损失。焊接完成后,我首先用万用表对线路,进行了检测,发现有漏焊的地方,改正后再次按原理图进行检测,直到一切正常,我对该模块进行了通电测试,经测试各功能正常,至此该模块电路制作完成。单片机最小系统的焊接相对于驱动电路的焊接比拟容易,以为在实训中屡次焊接过该电路,但我还是很细心的按电路设计流程,画原理图、PCB幅员、焊接电路、检测电路到通电测试。完成了该最小系统的设计。该设计过程中,要注意谐振电容的选择,焊接前一定要对该电容进行检测,确保谐振电容完好,否那么将导致晶振不起振,单片机无法正常工作,振荡器输入分别由引脚18和引脚19来完成振荡局部。51单片机的一个机器周期含有6个状态周期,而每个状态周期为2个振荡器周期,因此一个机器周期共有12个振荡周期,12MHz的振荡频率,一个振荡器周期为1/12微秒,一个机器周期为1微秒。在硬件检测在遇到的问题有:驱动板焊接走线有遗漏,用万用表的蜂鸣档,对电路进行全面检测,发现有2出走线没有连接,连接后,检测正常。二极管记性接反了,驱动板中的二极管有8个,由于自己粗心,二极管有一个焊接反了,经目测发现该问题,改正后检测正常。发光二极管损坏。再给最小系统版通电检测时发现,电源指示二极管不亮,检测发现该发光二极管已损坏,更换后正常。谐振电容有一个损坏,在排除发光二极管故障后,再次通电检测,发现最小系统不能正常工作,检测发现晶振两脚无电压,晶振未启振。疑心谐振电容有问题,卸下后检测发现,其中一个电容是坏的,更换该电容后,再次通电测试发现,晶振管脚有电压,烧入测试程序,工作正常,至此最小系统制作完成。§4.2软件调试软件调试是制作该课题一个难点,在调试采用分模块调试,首先调试超声波避障模块,该局部的那点是控制超声波的发射有接受,并要计算出障碍物的距离,起初我知识按超声波工作时序图进行编写,但总由于自己理解存在一定的错误,程序始终无法到达预期的目标,后来通过翻阅有关资料,在程序中参加了计数器溢出中断,经过屡次调试,最终成功控制住了该模块。其次开始调试驱动模块,该模块是该课题的核心,起初采用switch语句进行编写,但实际测试效果不能到达控制小车转向的效果。屡次尝试失败后,改用了if-else语句进行驱动程序的编写,由于是调试只写了实现左转的程序,烧入单片机后,实现了预想中的效果,接下来又参加右转的程序,再次调试发现,转向时间过长,本来要转90的,实际旋转了120度,不过让我快乐的是它能够转向了。出现的问题只是延时的地方过长,反复修改延时的时间,最终到达了预想中的效果。§4.3系统联调将硬件调试和软件调试相结合,在电路原理图上先检测电路有没有短接,断路现象,可以用万用表检测电路中的电流、电压是否符合。上电后,观察各个电源指示灯是否正常,用万用表检测各个主要测试点,看各个测试点电压是否正常。正常后,将所编写的程序烧入单片机最小系统中,进行系统联调将,看是否能够到达预期效果。在调试中发现,避障程序能够检测到障碍物的距离,但不能有效避开障碍物,仔细查看程序发现,避障程序再出里小车转向局部存在问题,进行修改后,再次进行系统联调,发现小车能避开障碍物,但仍不能到达预想的效果。再次修改,再次系统联调,如此往复直至到达预期的效果。§4.4实现功能本设计,以单片机STC89C52RC为核心实现小车避障。小车在行驶过程中自动检测障碍物,当障碍物的距离小于小车的平安行驶距离时,小车会首先向左转向90度,停止并再次启动超声波检测前方是否有障碍物,如果没有障碍物,小车沿该方向前进,假设有障碍且障碍物距离小于平安距离,小车向右旋转180度,停止并再次检测前方是否有障碍物,假设无那么沿该方向前进,假设有障碍物且障碍物距离小于小车行驶的平安距离是,小车向右旋转90度,实现后退,如此往复,到达避开障碍物的目的。由于自身能力有限,局部功能效果不是很好,但根本实现了避障的目的,有许多地方有待改良,我会在以后的学习中不断完善该设计。第五章总结与展望这次毕业设计我运用了典型的单片机STC89C52RC,对于单片机的工作原理和功能有了深刻的了解,对单片机的C语言程序的应用有了新的认识。通过平时的学习,及查阅相关的知识,对设计本产品起了很大的帮助。该设计电路简单,为节省本钱,超声波避障模块外,完全自己设计,PCB布图,焊接。由于焊接水平不高,电路焊接的不够美观,不过这也让我意识到自己的缺乏之处,我会在以后的学习中加强相关的训练,来提高自己的焊接技能。经过不断的改良,在老师和同学的帮助下,我完成了该课题,实现了预期目标。在制作过程中,难免碰到一些困难,还好现在网络兴旺,很多东西都可以在网上查的到,还有通过书本上找到一些相关联的知识。同时同学之间也互相帮助,一起探讨和研究问题,一起分享排除问题和困难后的喜悦,发扬我们慷慨激昂的精神,一起取长补短共同进步。经过这次的毕业设计,我认为很多知识还是要深入了解,没有合理的安排好时间,作品在一些方面还是存在缺乏。单片机系统的知识还有许多不懂的地方,眼高手低,学的时候都明白,就是不怎么会运用,造成大量的时间去查阅资料和程序,重新学习。在硬件调试过程中,发现很多自身的缺乏之处,粗心大意,把损坏的发光二级管焊接到电路中,造成了不必要的时间浪费。所以在焊接前对元器件好坏的检测,是十分必要的,这样可以减少不必要的错误,也会给调试带来方便。更重要的是将书本知识和实际电路联系起来,不要眼高手低,平时应该对实践,对自己感兴趣的业余小制作,是帮助我们学习好电子专业最好的一种方法。他可以检测我们的动手能力,同时让我们更好地理解所学的知识,到达学以致用的目的。对于软件局部,我们应该有自己的学习开发板,可以自己制作也可以购置,只有把自己编写的程序投入到实践中,才能让我们发现问题,进而思考问题,解决问题,与此同时提高自身的技能。通过此次毕业设计,我发现思考了很多,也收获了很多,我会在今后的人生中加强学习,不断的提升自身价值,争取在竞争剧烈的电子世界中有所收获。参考文献[1]鲍小南.单片机根底.浙江大学出版社,2002.9[2]徐丽香.模拟电子技术.电子工业出版社,2007.12[3]徐丽香.黎旺星.数字电子技术.电子工业出版社,2006.9[4]谭浩强.C语言程序设计.2版.北京:清华大学出版社,2023.11[5]王静霞.《单片机应用技术(C语言版)》北京:电子工业出版社,2023.5[6]冯柏群,祁和义.检测与传感技术.北京:人民邮电出版社,2023.4.[7]王东锋,王会良,董冠强.单片机C语言应用100例[M].北京:电子工业出版社,2023.[8]顾滨,赵伟军.PROTEL99SE实用教程.北京:人民邮电出版社,2023.6附录附录A电路原理图附录BPCB图附录C作品实物图附录D程序/*========================================================//超声波避障小车程序=========================================================超声波模块接线:|TRIG接P2.3ECH0接P2.2|L298N接线:|1A1P1.0|1A2P1.1||2A1P1.2|2A2P1.3|[注:STC89C52,实测使用11.0592M]======================================================*/#include<reg52.h> //器件配置文件#include<intrins.h>sbitRX=P2^2;//接受端口sbitTX=P2^3;//发射端口//驱动引脚定义sbitIN1=P1^0;//M2sbitIN2=P1^1;sbitIN3=P1^2;//M1sbitIN4=P1^3;unsignedinttime=0;unsignedlongS=0,num=0; bitflag=0;/*uS延时函数大致延时长度如下T=tx2+5uS*/voidDelayUs2x(unsignedchart){while(--t);}/*mS延时函数*/voidDelayMs(unsignedchart){while(t--){//大致延时1mSDelayUs2x(245); DelayUs2x(245);}}voiddelay(void)//{DelayMs(200);DelayMs(200);DelayMs(200);DelayMs(200);DelayMs(200);DelayMs(200);}/*********驱动模块********************/forword()//前进{IN1=1;IN2=0;IN3=1;IN4=0;}turn_left()//左拐{IN1=1;IN2=0;IN3=0;IN4=0;}turn_right()//右拐{IN1=0;IN2=0;IN3=1;IN4=0;}stop()//停止{IN1=0;IN2=0;IN3=0;IN4=0;}/*****T0中断用来计数器溢出,超过测距范围******/voidzd0()interrupt1 {flag=1; //中断溢出标志}/*********启动超生波模块*****************/voidStartModule() { TX=1; //启动一次模块

温馨提示

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

评论

0/150

提交评论