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

下载本文档

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

文档简介

单片机系统课程设计时间:2021.03.05创作:欧阳理智能小车(避障及循迹)的设计学院:班级:姓名:学号:同组成员:指导老师:日期:欧阳阳理创编 欧阳阳理创编 2021.03.04欧阳阳理创编 欧阳阳理创编 2021.03.04摘要智能作为现代社会的新生产物,是未来的发展的一个重要方向,它可以按照预定的模式在特定的环境里自动的运作,无需人为管理,便可以完成预期目标。本设计主要体现多功能小车的智能模式,设计中的理论方案、分析方法及特色与创新点等对智能化机器人,智能家用电器等自动半自动机器人的设计与普及有一定的参考意义。整个智能小车设计主要以单片机为控制核心,通过红外遥控实现小车前后左右的移动,以及对小车功能模式的转换;通过红外传感器,实现小车的避障功能和循迹功能。设计采用对比选择,模块独立,综合处理的研究方法。结合实际情况对比方案优劣选出最优方案进行设计。从红外遥控,红外循迹和避障,都严格按照科学严谨态度完成。通过调试检测各模块,得到正确的信号输出,实现其应有的功能。最后将各个调试成功的模块结合到小车的车体上,结合程序,通过单片机的控制,将各模块有效整合在一起,达到所预期的目标,完成最终设计与制作,能使小车在一定的环境中智能化运转。关键词:智能小车避障循迹遥控ABSTRACTSmartasanewproductofmodernsociety,itisanimportantdirectionoffuturedevelopment,itcanbeaccordingtothepredeterminedpatterninaspecificenvironmentofautomaticoperation,withouthumanmanagement,canachieveexpectedgoal.Thisdesignmainlyreflectsthemulti-functioncarintelligentmode,thetheoryinthedesignofscheme,analysismethodandspecialfeaturesandinnovationpointofintelligentrobot,intelligenthomeappliancessuchasthedesignofautomaticsemi-automaticrobotandpopularityhavecertainreferencesignificance.Thesmartcardesignmainlybythesinglechipprocessorasthecore,throughinfraredremotecontroltorealizethecarmovingaround,aswellastothecarfunctionmodeconversion;Throughtheinfraredsensor,achievethefunctionofcarobstacleavoidanceandtrackingfunction.IndependentdesignUSEScontrasttochoose,module,integratedprocessingmethods.Combinedwithactualsituationcomparingschemetodesignandchoosetheoptimalsolution.Fromtheinfraredremotecontrol,infraredtrackingandobstacleavoidance,areinstrictaccordancewiththescientificrigorousattitudetocomplete.Throughdebuggingtestmodule,getthecorrectoutputsignal,realizeitsfunction.Finallycombinethemodulesofvariousdebuggingsuccessoncarbody,combinedwiththeprogram,throughthesingle-chipmicrocomputercontrol,toeffectivelyintegratevariousmodulestogether,achievetheexpectedgoals,completethefinaldesignandproduction,canmakethecarintelligentoperationinacertainenvironment.Keywords:intelligentcaravoidancetrackingcontrol第一章绪论1设计的背景和意义1智能小车的发展现状2该设计的主要内容和目的4第二章系统总体方案设计与论证5系统的总体方案设计5主控系统6电机驱动模块6循迹模块6显示模块6第三章系统硬件电路设计7主控模块的电路设计7AT89S52单片机的简介7红外避障模块的电路设计9LM393双电压比较器集成电路9红外对管工作原理11红外避障电路图及工作原理12红外循迹电路的设计13第四章系统软件设计154.1主程序15第五章总结24附录1程序清单25附录2硬件原理图3435附录 3 实物图35第一章绪论设计的背景和意义随着电子技术、计算机技术和制造技术的飞速发展,数码相机、DVD、洗衣机、汽车等消费类产品越来越呈现光机电一体化、智能化、小型化等趋势。各种智能化小车在市场玩具中也占一个很大的比例。根据美国玩具协会的调查统计,近年来全球玩具销量增幅与全球平均GDP增幅大致相当。而全球玩具市场的内在结构比重却发生了重大改变:传统玩具的市场比重正在逐步缩水,高科技含量的电子玩具则蒸蒸日上。美国玩具市场的高科技电子玩具的年销售额2004年交2003年增长52%,而传统玩具的年销售额仅增长3%。英国玩具零售商协会选出的2001圣诞节最受欢迎的十大玩具中,有7款玩具配有电子元件。从这些数字可以看出,高科技含量的电子互动式玩具已经成为玩家行业发展的主流。如今知识工程、计算机科学、机电一体化和工业一体化等许多领域都在讨论智能系统,人们要求系统变得越来越智能化。显然传统的控制观念是无法满足人们的需求,而智能控制与这些传统的控制有机的结合起来取长补短,提高整体的优势更好的满足人们的需求。随着人工智能技术、计算机技术、自动控制技术的迅速发展,智能控制必将迎来它的发展新时代。计算机控制与电子技术融合为电子设备智能化开辟了广阔前景。因此,遥控加智能的技术研究、应用都是非常有意义而且有很高市场价值的。智能小车的发展现状随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。智欧阳阳理创编 欧阳阳理创编 2021.03.04能小车是一个集环境感知、规划决策、自动驾驶等功能于一体的综合系统。它集中的运用了计算机、传感器、信息。通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。一.国外智能车设计竞赛⑴美国的智能车大赛美国国防部与院校、企业和发明家联合开展,全球领先的智能汽车竞赛。2007年11月,美国第三届智能汽车大赛在加州维克托维尔举行。本届智能汽车比赛的目标是对未来科学家的激励。大学、企业和发明家们期望制造出通过洛杉矶和拉斯维加斯间荒地、行程160km的自主控制汽车。参赛汽车的车顶上有旋转的激光器,两边有转动的照相机,完全由电脑控制,利用卫星导航、摄像、雷达和激光,人工智能系统可判断出汽车的位置和去向,随后将指令传输到负责驾驶车辆的系统,丝毫不受人的干涉,用传感器策划和选择路线。参赛的无人驾驶智能汽车沿着附近公路飞奔。(2)韩国大学生智能车大赛韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下举办,以HCS12单片机为核心的大学生智能模型汽车竞赛。组委会提供一个标准的汽车模型、直流电机和可充电式电池,参赛队伍要制作一个能够自主识别路线的智能车,在专门设计的跑道上自动识别道路行驶,谁最快跑完全程而没有冲出跑道并且技术报告评分较高,谁就是获胜者。二.国内智能车辆竞赛现状研究⑴竞赛的起源2005年11月,中国教育部高等学校自动化专业指导分委员会与飞思卡尔半导体公司签署了双方长期合作协议书。协议书规定从2006年起,飞思卡尔将至少连续5年协办“飞思卡尔”杯全国大学生智能汽车邀请赛,提供参赛队的标准硬、软件技术平台和竞赛优胜者奖金,并为主办单位提供一定的竞赛组织经费,我国智能车竞赛由此开始.(2)智能车竞赛的地位教育部:与老牌的数学建模、电子设计、机械设计、结构设计等四大竞赛并列,被认定为国家教育部正式承认的五大大学生竞赛项目.各高校:清华、交大、科大等名校均参加,最投入为北京科大,每年均举行校内赛(09年规模为79支队伍).校内:综合类竞赛(A类)仅3种,分别为智能汽车、机器人、挑战杯。(3)竞赛历史欧阳阳理创编 2021.03.04——第一届邀请赛2006年8月20日至21日在清华大学进行,共有来自全国57所高校的112支参赛队参加。赛道中只有直道和弯道,没有上下坡。从赛车寻迹技术方案来看,赛道检测方式也大体分为红外发射/接受管检测方式和CCD/CMOS摄像头检测方式两类。摄像头方案的成绩普遍好于红外传感器方案。(4)竞赛历史一一第二届,赛区+总决赛扩大到全国具有以自动化专业为主的理工类高等本科学校约300余所。采取赛区和全国总决赛结合的形式。全国分为5个赛区,总决赛在上海交大举行。总决赛中出现上下坡的限制,比赛变得复杂了。小车的平均速度较比上年有了显著的提高,采用摄像头方案的成绩更加明显(决赛前十名的队伍全为摄像头队伍)。同比韩国的智能车大赛,我们的竞赛成绩已经超过了韩国。(5)竞赛历史一一第三届,赛区+总决赛第三届智能车大赛在东北大学举行,有551支代表队伍参加了分区赛,104支队伍参加了总决赛。第三届比赛保留了前两届的要求,同时又增加了跑完全部路程起跑线在3米内停车的限制,对起跑线的识别又提出了严格的要求。与前两届摄像头与光电同条件参加比赛不同,本次竞赛分为光电与摄像头两个赛题组。(6)竞赛历史一一第四届,赛区+总决赛第四届智能车总决赛在北京科技大学举行,有780支代表队伍参加了分区赛,120支队伍参加了总决赛。第四届比赛保留了前三届的要求,同时又增加了窄道、更复杂的背景、三角形标识识别等更具有难度的内容。增加了创意组,共有10个队经过初选进入复赛。(7)竞赛的发展一第五届,更具难度增加电磁组,扩大创意组规模;赛道变窄,提高小车控制难度;措施更严密。该设计的主要内容和目的智能小车主要由由四大组成部分:红外避障部分、红外循迹部分、执行部分、CPU。智能小车要实现循迹识别路线,避障后退并选择其他前进路线。该设计主要通过对系统硬件电路的设计,软件设计和程序的编写,然后通过后期软硬件调试达到设计目的,使其具有上述欧阳阳理创编 2021.03.04第二章系统总体方案设计与论证2.1系统的总体方案设计该系统以AT89S5弹片机为核心的控制电路,采用模块化的设计方案,利用红外遥控器代替开关按键控制小的启动和停止,能够轻松自如的实现小车的启动停止、左转、右转和前进后退等功能,假如我们希望小车运行到黑线上来检测是否有循迹功能,就可以用遥控器控制小车行驶到有黑线的地方,当小车遇到有黑线时,会自动启动循迹功能模块,让小车沿黑线跑,遇到障碍物时会后退并选择其他路线躲避障碍物。每个模块都是相互独立又相互协调配合,实现了小车的智能控制。系统控制框图如图2.1所示:》AT89S52电机驱动模块循迹模块红外避障模块红外遥控模块红外接收模块》AT89S52电机驱动模块循迹模块红外避障模块红外遥控模块红外接收模块显示模块 V图2.1系统控制框图2.2主控系统我们采用单片机作为整个系统的核心,通过其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。所以,我们选定了人189552单片机作为本设计的主控装置。电机驱动模块采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一因此选用L9110。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。循迹模块采用两只红外对管,分别置于小车车身左右两侧,根据两只对管接受到白线与黑线的情况来控制小车转向来调整车向。显示模块常用的数码显示器件主要有LED数码显管和LCD液晶显示器。考虑实用性最终选择了561^&0.56英寸一位共阳红色数码管,实用性强且价格低廉。欧阳阳理创编 欧阳阳理创编 2021.03.04欧阳阳理创编 欧阳阳理创编 2021.03.04欧阳阳理创编 欧阳阳理创编 2021.03.04欧阳阳理创编 2021.03.04第三章系统硬件电路设计主控模块的电路设计AT89S52单片机的简介AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。引脚图如图3.1(T2)P1.0匚□VCC140(T2EXJP1.1匚239□PD.BCADO)户1支匚3鸵IPD.t(ADI)F1.3E4□PD.2CAD2)F1.4匚53Q□PD.3(AD3)iMCSI)Fl.iE3究□PD.4CAC4)(MISO)P1.6匚7JPD.5(AD5)(SCK)P1.7C833□PD.S(AD6)Ftsrrcg32□PD.7(AD7)(RXD)P3.0匚1031jeSvpp(TXD)F-3.1匚11事口口乩EFRQG(INTDJP3.2匚122D□PSEM(1NH)P3.3匚我2BJP2.7tA15)(TD)P3.4匚1427□P2.0(A14)(T1)P3.5匚15za□pz.s(Aia);F3匚10NS:^Z:.FE..7匚17上□P2.3(A11}XTAl_2E的23□P2.3CAIO)XTAL1匚1022ZIPZI㈣ON口匚出211图3.1AT89S52引脚图AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32〜39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为邛输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。

红外避障模块的电路设计LM393双电压比较器集成电路图3.2.1-1LM393LM393是高增益,宽频带器件,像大多数比较器一样,如果输出端到输入端有寄生电容而产生耦合,则很容易产生振荡。这种现象仅仅出现在当比较器改变状态时,输出电压过渡的间隙,电源加旁路滤波并不能解决这个问题,标准PC板的设计对减小输入-输出寄生电容耦合是有助的。减小输入电阻至小于10K将减小反馈信号,而且增加甚至很小的正反馈量(滞回1.0〜10mV)能导致快速转换,使得不可能产生由于寄生电容引起的振荡,除非利用滞后,否则直接插入式(集成电路板integratedcircuit,缩写:IC)并在引脚上加上电阻将引起输入-输出在很短的转换周期内振荡,如果输入信号是脉冲波形,并且上升和下降时间相当快,则滞回将不需要。PINCONNECTIONSOutputAU

IEInputsA'叵

GndEPINCONNECTIONSOutputAU

IEInputsA'叵

GndEr0回-E1蜀113OutputsInputsB(TopView)图3.2.1-2特点:欧阳阳理创编 欧阳阳理创编 2021.03.04欧阳阳理创编 2021.03.04工作温度范围:0°C―+70°CSVHC(高度关注物质):NoSVHC(18-Jun-2010)器件标号:393工作电源电压范围宽,单电源、双电源均可工作,单电源:2〜36V,双电源:土1〜±18V;消耗电流小,ICC=0.8mA;输入失调电压小,VIO=±2mV;共模输入电压范围宽,VIC=0〜VCCT.5V;输出与TTL,DTL,MOS,CMOS等兼容;输出可以用开路集电极连接“或”门;表面安装器件:表面安装功能:输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上,不受Vcc端电压值的限制,输出部分的陷电流被可能得到的驱动和器件的B值所限制.当达到极限电流(16mA)时,输出晶体管将退出而且输出电压将很快上升。输出饱和电压被输出晶体管大约60ohm的YSAT限制。当负载电流很小时,输出晶体管的低失调电压(约1.0mV)允许输出箝位在零电平。红外对管工作原理图3.2.2-1图3.2.2-2欧阳阳理创编 2021.03.04上图中,红外光电管有两种,一种是无色透明的LED,此为发射管,它通电后能够产生人眼不可见红外光,另一部分为黑色的接收部分,它内部的电阻会随着接收到红外光的多少而变化。无论是一体式还是分离式,其检测原理都相同,由于黑色吸光,当红外发射管照射在黑色物体上时反射回来的光就较少,接收管接收到的红外光就较少,表现为电阻大,通过外接电路就可以读出检测的状态;同理,当照射在白色表面时发射的红外线就比较多,表现为接收管的电阻较小,此时通过外接电路就可以读出另外一种状态,如用电平的高低来描述上面两种现象就会出现高低电平之分,也就是会出现所谓的0和1两种状态,此时再将此送到单片机的I/O口,单片机就可以判断是黑白路面,进而完成相应的功能,如循迹、避障等。红外避障电路图及工作原理图3.2.3-1欧阳阳理创编 欧阳阳理创编 2021.03.04欧阳阳理创编 欧阳阳理创编 2021.03.04tEc图3.2.3-2tEc图3.2.3-2特点:该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,停止一段时间并后退,有效距离范围2〜4cm,工作电压为3.3V-5V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点。1、当模块检测到前方障碍物信号时,前方侧位红色指示灯点亮电平,同时OUT端口持续输出低电平信号,该模块检测距离2〜4cm。2、传感器主动红外线反射探测,因此目标的反射率和形状是探测距离的关键。其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离大。3、传感器模块输出端口OUT可直接与单片机IO口连接即可,也可以直接驱动一个5V继电器;连接方式:VCC-VCC;GND-GND;OUT-IO4、比较器采用LM393,工作稳定;5、可采用3-5V直流电源对模块进行供电。3.3红外循迹电路的设计图3.3-1 图3.3-2图3.3-3原理与避障基本一致,LM393为内部集成了四路比较器的集成电路。因为内部的四个比较电路完全相同,这里仅以一路比较电路进行举例。如图4所示为单路比较器组成的红外检测电路图,比较器有两个输入端和一个输出端,两个输入端一个称为同输入端,用“+”号表示,另一个称为反相输入端,用“-”表示。用作比较两个电路时,任意一个输入端加一个固定电压作参考电压(也叫门限电压),另一端则直接接需要比较的信号电压。当“+”端电压高于“-”端电压时,输出正电源电压,当“-”端电压高于“+”端电压时,输出负电源电压(注意,此处所说的正电源电压和负电源电压是指接比较正负极的电压。第四章系统软件设计4.1主程序避障系统主程序#include<REGX52.H>//包含51单片机相关的头文件sbitLeftLed=P2~0;//定义前方左侧指示灯端口sbitRightLed=P0~7;//定义前方右侧指示灯端口sbitFontLled=P「7;sbitLeftIR=P3"5;//定义前方左侧红外探头端口sbitRightIR=P3"6;//定义前方右侧红外探头端口sbitFontIR=P3"7;//定义前方正前方红外探头端口sbitM1A=P0"0;〃定义左侧电机驱动A端sbitM1B=P01;〃定义左侧电机驱动B端sbitM2A=P0"2;〃定义右侧电机驱动A端sbitM2B=P0"3;〃定义右侧电机驱动B端sbitB1=P0"4;//定义语音识识别传感器端口sbitSB1=P0"6;//定义蜂鸣器端口voidtingzhi(){M1A=0; //将M1电机A端初始化为0M1B=0; //将M1电机B端初始化为0M2A=0; //将M2电机A端初始化为0M2B=0;}voidqianjin(){M1A=1;M1B=0;M2A=1;M2B=0;}voidhoutui()欧阳阳理创编 欧阳阳理创编 2021.03.04M1A=0;M1B=1;M2A=0;M2B=1;}voidzuozhuan(){M1A=1;M1B=0;M2A=0;M2B=1;}voidyouzhuan(){M1A=0;M1B=1;M2A=1;M2B=0;}voiddelay_nus(unsignedinti)//延时:i>=12,i的最小延时单12us{i=i/10;while(--i);}voiddelay_nms(unsignedintn)//延时nms{n=n+1;while(--n)delay_nus(900); 〃延时1ms,同时进行补偿}voidControlCar(unsignedcharConType) //定义电机控制子程序{tingzhi();//判断用户设定电机形式2021.03.04欧阳阳理创编switch(ConType)//判断用户设定电机形式2021.03.04欧阳阳理创编//前进{qianjin();break;}//后退{houtui();break;}//左转{zuozhuan();break;}//右转{youzhuan();break;}case8://停止{tingzhi();break;}}}voidmain(){bitRunFlag=0;//RunShow=0;ControlCar(8);while(1)//判断用户是否选择形式1//判断用户是否选择形式2//M2电机反转//判断用户是否选择形式3//判断用户是否选择形式1//判断用户是否选择形式2//M2电机反转//判断用户是否选择形式3//M2电机正转//判断用户是否选择形式4//M1电机正转〃M2电机反转//判断用户是否选择形式8//退出当前选择//主程序入口//定义小车运行标志位//初始化显示状态//初始化小车运行状态//程序主循环2021.03.04Start:LeftLed=LeftIR;Start:LeftLed=LeftIR;状态RightLed=RightIR;状态FontLled=FontIR;SB1=FontIR;if(FontIR==0){ControlCar(8);//前方右侧指示灯指示出前方右侧红外探头/如/果前面避障传感器检测到障碍物delay_nms(300); 〃停止300Msdelay_nms(300); 〃停止300Ms防止电机反相电压冲击导致系统复位ControlCar(2);//后退delay_nms(1000); //后退1500MsControlCar(3);//delay_nms(1800);gotoNextRun;}if(FontIR==1){//右侧没有信号时,开始向左转一定的角度//右侧没有信号时,开始向左转一定的角度delay_nms(10);gotoNextRun;gotostart;NextRun:ControlCar(1);}循迹程序#include<REGX52.H>//包含51单片机相关的头文件sbitLeftLed=P2~0; //定义前方左侧指示灯端口sbitRightLed=P0~7; 〃定义前方右侧指示灯端口sbitFontLled=P「0;sbitLeftIR=P3”5; 〃定义前方左侧红外探头端口sbitRightIR=P3”6; 〃定义前方右侧红外探头端口欧阳阳理创编 2021.03.04欧阳阳理创编 欧阳阳理创编 2021.03.04欧阳阳理创编 欧阳阳理创编 2021.03.04sbitFontIR=P3"7;//定义前方正前方红外探头端口sbitM1A=P00;〃定义左侧电机驱动A端sbitM1B=P01;〃定义左侧电机驱动B端sbitM2A=P02;〃定义右侧电机驱动A端sbitM2B=P03;〃定义右侧电机驱动B端sbitB1=P0"4;//定义语音识识别传感器端口sbitSB1=P06;//定义蜂鸣器端口void{tingzhi()M1A=0; //将M1电机A端初始化为0M1B=0; //将M1电机B端初始化为0M2A=0; //将M2电机A端初始化为0M2B=0;}voidqianjin(){M1A=1;M1B=0;M2A=1;M2B=0;}voidhoutui(){M1A=0;M1B=1;M2A=0;M2B=1;}voidzuozhuan(){M1A=0;M1B=1;M2A=1;M2B=0;

voidyouzhuan(){M1A=1;M1B=0;M2A=0;M2B=1;}voiddelay_nus(unsignedinti)//延时:i>=12,i的最小延时单12us{i=i/10;while(--i);}voiddelay_nms(unsignedintn)//延时nms{n=n+1;while(--n)delay_nus(900);〃延时1ms,同时进行补偿}voidControlCar(unsignedcharConType){tingzhi();switch(ConType){case1://前进{qianjin();break;}case2://后退{houtui();break;}case3://左转//定义电机控制子程序//判断用户设定电机形式//判断用户是否选择形式1//判断用户是否选择形式2//M2电机反转//判断用户是否选择形式3zuozhuan();zuozhuan();break;}case4://右转{youzhuan();break;}case8://停止{tingzhi();break;}}}voidmain(){bitRunFlag=0;//RunShow=0;ControlCar(8);while(1){Start:LeftLed=LeftIR;状态RightLed=RightIR;状态FontLled=FontIR;SB1=LeftIR;〃M2电机正转//判断用户是否选择形式4//M1电机正转//M2电机反转//判断用户是否选择形式8//退出当前选择//主程序入口//定义小车运行标志位//初始化显示状态//初始化小车运行状态//程序主循环//前方左侧指示灯指示出前方左侧红外探头//前方右侧指示灯指示出前方右侧红外探头/三/个红外检测到黑线,就前进/三/个红外检测到黑线,就前进//左侧没有信号时,开始向右转一定的角度if(LeftIR==0&&RightIR==0){ControlCar(1);delay_nms(10);gotoNextRun;}if(LeftIR==0&&RightIR==1){ControlCar(3);//右侧没有信号时,开始向左转一定的角度ControlCar(3);//右侧没有信号时,开始向左转一定的角度delay_nms(10);gotoNextRun;}if(LeftIR==1&&RightIR==0){ControlCar(4);//右侧没有信号时,开始向左转一定的角度delay_nms(10);gotoNextRun;}gotoStart;NextRun:ControlCar(8);欧阳阳理创编 欧阳阳理创编 2021.03.04欧阳阳理创编 欧阳阳理创编 2021.03.04第五章总结通过此次课程设计,使我更加扎实的掌握了有关智能小车设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在单片机这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵,而是通过自己的双手去实践。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可。参考文献[1]杨永辉.《现代电子技术》J].智能小车的多传感器数据融合.2005[2]何立民.《单片机与嵌入式系统应用》J].基于HCS12的小车智能控制系统设计.2007[3]谭浩强.《C程序设计》.北京:清华大学出版社,2005,7[4]张立.《电子世界》J].电动小车的循迹.2004[5]武庆生,仇梅.单片机原理与应用(M).电子科技大学出版,1998,12[6]徐科军.传感器与检测技术[M].电子工业出版社,2007[7]刘瑞新.单片机原理及应用教程.机械工业出版社,2003,7[8]刘湘涛,江世明.单片机原理与应用[M].电子工业出版社,2006[9]何立民.单片机初级教程[M].北京航空航天大学出版社,1999[10]熊建云.Protel99SE.北京:机械工业出版社,2007郑郁正.单片机原理及应用.四川大学出版杜,2003卢静,陈非凡,张高飞等.基于单片机的无刷直流电动机控制系统设计.北京机械工业学院学报,2002,10[13]张燕,曾光宇.光电式传感器的应用与发展[J].科技情报开发与经济,2007

附录1程序清单#include<REGX52.H>//包含51单片机相关的头文件#include<intrins.h>sbitLeftLed=P2~0;//定义前方左侧指示灯端口sbitsbitRightLed=P0~7;FontLled=P「7;//定义前方右侧指示灯端口sbitLeftIR=P3"5;//定义前方左侧红外探头端口sbitRightIR=P3"6;//定义前方右侧红外探头端口sbitFontIR=P3"7;//定义前方正前方红外探头端口sbitM1A=P0"0;〃定义左侧电机驱动A端sbitM1B=P01;〃定义左侧电机驱动B端sbitM2A=P0"2;〃定义右侧电机驱动A端sbitM2B=P0"3;〃定义右侧电机驱动B端sbitB1=P0"4;//定义语音识识别传感器端口sbitSB1=P0"6;//定义蜂鸣器端口sbitIRIN=P3"3;//定义红外接收端口unsignedcharcodeLedShowData[]={0x03,0x9F,0x25,0x0D,0x99,//定义数码管显示数据0x49,0x41,0x1F,0x01,0x19};//0,1,2,3,4,5,6,7,8,9unsigned char codeRecvData[]={0x19,0x46,0x15,0x43,0x44,0x40,0x0D,0x0E,0x00,0x0F};//定义闪动频率计数变量//定义指示灯使能位//定义数码管显示端口//定义闪动频率计数变量//定义指示灯使能位//定义数码管显示端口//将M1电机A端初始化为0//将M1电机B端初始化为0

//将M2电机A端初始化为0#defineShowPortP2unsignedchartemp=1;voidtingzhi(){M1A=0;M1B=0;M2A=0;M2B=0;}voidqianjin(){M1A=1;M1B=0;M2A=1;M2B=0;}voidhoutui(){M1A=0;M1B=1;M2A=0;M2B=1;}voidzuozhuan(){M1A=0;M1B=1;M2A=1;M2B=0;}voidyouzhuan(){M1A=1;M1B=0;M2A=0;M2B=1;}voidDelay1ms(unsignedinti){unsignedcharj,k;do{j=10;do{k=50;do{_nop_();}while(--k);}while(--j);}while(--i);}voiddelay_nus(unsignedinti)〃延时:i>=12,i的最小延时单12us{i=i/10;while(--i);}voiddelay_nms(unsignedintn)//延时nms{n=n+1;while(--n)delay_nus(900);}voiddelayms(unsigned{〃延时1ms,同时进行补偿charx)〃0.14mS延时程序unsignedchari;while(x--){for(i=0;i<13;}}voidDelay(){//定义临时变量//延时时间循环i++){}〃14mS延时//定义延时子程序unsignedintDelayTime=30000;while(DelayTime--);return;}voidControlCar(unsignedcharConType){tingzhi();switch(ConType){//定义延时时间变量//开始进行延时循环//子程序返回//定义电机控制子程序//判断用户设定电机形式case1://前进//判断用户是否选择形式1{//tingzhi();致系统复位//Delay1ms(50);//进入前进之前先停止一段时间防止电机反向电压冲击主板导LeftLed=0;qianjin();break;}case2://后退{//tingzhi();致系统复位//Delay1ms(50);LeftLed=1;//判断用户是否选择形式2//进入后退之前先停止一段时间防止电机反向电压冲击主板导houtui();//M电机反转break;}case3://左转//判断用户是否选择形式3{//tingzhi();//进入左转之前先停止一段时间防止电机反向电压冲击主板导致系〃电机正转//M2〃电机正转//M2电机反转//判断用户是否选择形式8//退出当前选择//定义电机控制子程序(红外遥控单//判断用户设定电机形式//判断用户是否选择形式1先停止一段时间防止电机反向电压冲击主板导致//判断用户是否选择形式2先停止一段时间防止电机反向电压冲击主板导致//电机反转统复位//Delay1ms(50);zuozhuan(); 〃M2电机正转break;}case4://右转 //判断用户是否选择形式4{//tingzhi();//进入右转之前先停止一段时间防止电机反向电压冲击主板导致系统复位//Delay1ms(50);youzhuan();break;}case8://停止{tingzhi();break;}}}voidControlCar_yaokong(unsignedcharConType)独设置一个switchcase语句){tingzhi();switch(ConType){//前进{tingzhi();//进入前进之前系统复位Delay1ms(150);LeftLed=0;qianjin();break;}//后退{tingzhi(); //进入后退之前系统复位Delay1ms(150);LeftLed=1;houtui();

break;}//左转 //判断用户是否选择形式3{tingzhi();//进入左转之前先停止一段时间防止电机反向电压冲击主板导致系统复位Delay1ms(150);zuozhuan(); 〃M2电机正转break;}//右转 //判断用户是否选择形式4{tingzhi();//进入右转之前先停止一段时间防止电机反向电压冲击主板导致系统复位Delay1ms(150);youzhuan(); 〃M1电机正转〃M2电机反转break;}case8://停止{tingzhi();break;}}}voidRobot_Avoidance(){LeftLed=LeftIR;状态RightLed=RightIR;状态FontLled=FontIR;SB1=FontIR;if(FontIR==0){ControlCar(8);delay_nms(300); 〃停止300MsControlCar(2);//后退delay_nms(1000); //后退1500MsControlCar(3);//delay_nms(1800);//判断用户是否选择形式8//退出当前选择//判断用户是否选择形式8//退出当前选择//机器人避障子程序//前方左侧指示灯指示出前方左侧红外探头//前方右侧指示灯指示出前方右侧红外探头/如/果前面避障传感器检测到障碍物//停止防止电机反相电压冲击导致系统复位{ControlCar(1);delay_nms(10);}ControlCar(1);}//机器人循迹子程序voidRobot_Traction(){LeftLed=LeftIR;状态RightLed=RightIR;状态FontLled=FontIR;SB1=LeftIR;if(LeftIR==0&&RightIR==0){ControlCar(1);delay_nms(10);}elseif(LeftIR==0&&RightIR==1){ControlCar(3);delay_nms(10);}elseif(LeftIR==1&&RightIR==0){ControlCar(4);delay_nms(10);}ControlCar(8);}voidmain(){bitRunFlag=0;LedFlash=3000;//EX1=1;IT1=1;发类型EA=1;ControlCar(8);while(1)//右侧没有信号时,开始向左

温馨提示

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

评论

0/150

提交评论