欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    基于某单片机的智能小车控制系统论文设计.doc

    • 资源ID:7006       资源大小:1,019.94KB        全文页数:50页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于某单片机的智能小车控制系统论文设计.doc

    wordI / 50专科毕业设计专科毕业设计 (论文论文)题题 目目基于单片机智能小车控制系统设计基于单片机智能小车控制系统设计学生学生 _ XXX_XXX_ _班班 级级 XXXXXXXXXXXXXX_学学 号号_XX_XX_ _ 院院 系系_电子工程学院电子工程学院_专专 业业_应用电子技术应用电子技术_ 指导教师指导教师_XXX_XXX_职职 称称_XXX_XXX_二 0XX 年 X 月 XX 日wordI / 50摘要摘要随着计算机、微电子、材料、机械、通信等技术的快速开展,车辆的智能化和机器人的开展速度也越来越快,作为 21 世纪自动化领域非常伟大的成就它已经和人们的生产生活严密的联系在了一起。智能车辆迅速成为世界车辆研究领域的热点和汽车工业新的增长点。所以,智能化的车辆是未来人们生活重要的载体。因此有必要对智能车辆进展研究。研制一种智能,高效的智能小车控制系统具有重要的实际意义和科学理论价值。本系统设计了一个能自动循迹的智能小车控制系统。以 STC89C52 单片机为控制核心,利用红外无线遥控智能小车,利用超声波传感器检测道路上的障碍并提示,利用 LCD1602显示小车的速度和路程。能实现小车自动根据地面实况前进倒退、转向行驶,超声波测距提示障碍物,LCD1602 实时显示小车的速度和行驶的路程,具有高度的智能化,达到设计目标。关键词:智能小车;STC89C52 单片机;超声波传感器;LCD1602THE SMART CAR BASED ON MICROCONTROLLERABSTRACTABSTRACTWith the rapid development of puter, microelectronics, materials, machinery, munication and other technologies, the intelligentization of vehicles and the development of robots are getting faster and faster. As a very great achievement in the field of automation in the 21st century, Close ties together. Intelligent vehicles quickly bee the worlds automotive research hot spots and the new growth point of the automotive industry.Therefore, the study of intelligent vehicles are necessary. Therefore, the development of a smart, intelligent car control system with high efficiency is of practical significance and scientific important theoretical value. This paper introduces the design of a smart car control system that can automatic tracking.Based on signle-chip microputer AT89C51To achieve infrared wireless remote control smart car, the use of ultrasonic sensors to detect obstacles on the road and prompted the use of LCD1602 show car wordII / 50speed and distance.The car can realize automatic based on the black line forward regression. Steering,Ultrasonic ranging, prompting obstacles, LCD1602 real-time display of the speed of the car and drive away, with a high degree of intelligence, achieve the design goal.KeyKey WordsWords:Smart car;AT89C51 MCU;ultrasonic sensor;LCD1602目录摘要ABSTRACT目录第 1 章绪论 11.1课题的背景和意义 11.2课题的研究现状与开展趋势 1第 2 章方案设计与论证 22.1主控系统 22.2电源模块 22.3电机驱动模块 2电机模块选择与论证 2 电机驱动模块选泽与论证 32.4遥控模块 42.5 显示模块 52.6 壁障模块 5第 3 章硬件设计 6总体设计 63.2驱动电路 63.3遥控电路 9显示电路 11避障电路 11wordIII / 503.6 主控电路 13第 4 章软件设计 164.1主程序模块设计 164.1.1 主程序流程图 164.1.2 主程序的设计 174.2电机驱动程序的设计 194.2.1 电机驱动程序流程图 194.2.2 电机驱动程序的设计 .204.3红外遥控程序的设计 21遥控模块流程图 21红外遥控程序的设计 224.4测距壁障模块程序的设计 234.4.1 超声波测距模块流程图 234.4.2 超声波测距模块程序的设计 234.5 显示模块程序的设计 244.5.1 显示模块流程图 244.5.2 显示模块程序的设计 25第 5 章软件仿真 285.1KEIL 软件 285.2PROUES 软件 28第 6 章 实物安装与调试 306.1 器件清单 306.2 结果与分析 306.3 使用指南 31第 7 章 完毕语 32参考文献 33致谢.34wordIV / 50附录一原理图 35附录二源程序 36附录三实物图 45word1 / 50第 1 章 绪论1.1课题的背景和意义智能作为现代社会的新产物,是以后的开展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。本设计主要表现多功能小车的智能模式,设计中的理论方案、分析方法与特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动机器人的设计与普与有一定的参考意义。同时小车可以作为玩具的开展对象,为中国玩具市场技术含量的缺乏进展一定的弥补,实现经济收益,形成商业价值。超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业开展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。1.2课题的研究现状与开展趋势智能小车的研究、开发和应用涉与传感技术、电气技术、电气控制技术、智能控制等学科,智能控制技术是一门跨科学的综合性技术,当代研究十分活跃,应用日益广泛的领域1。众所周知机器人技术的开展是一个国家高科技水平和工业自动化程度的重要标志和表现。因此目前世界各国都在开展对机器人技术的研究。机器人由于有很高的灵活性、可以帮助人们提高生产率、改良产品质量等优点,在世界各地的生产生活领域得到了广泛的应用2。智能小车正是模仿机器人的一种尝试。它是一种以汽车电子为背景,涵盖多学科的科技创新性设计,现智能小车开展很快,从智能玩具到其它各行业都有实质成果。其根本可实现循迹、避障、检测贴片、寻光入库、避崖等根本功能,这几届的电子设计大赛智能小车又在向声控系统开展。word- 2 - / 50第 2 章 方案设计与论证2.1 主控系统本设计采用 STC89C52 单片机为主控芯片,通过电机驱动电路和超声波发射接收与液晶实时显示小车与障碍物的距离红外遥控设计而成,采用模块化的设计方案。并且运用红外遥控器控制小车的前进,后退,左右转和停止的功能。2.2 电源模块本次设计采用了 7805 芯片,因为 7805 电源芯片的电路简单,实用,并且能够完全满足智能避障小车和单片机控制系统和 L298N直流电机驱动芯片的供电。7805 芯片的实物有 3 个引脚,分别为输入 IN 端、输出 OUT 端和接地 GND 端,一般情况下可以提供1.5A 的电流,如果在散热足够的情况下可以提供 51 单片机主控模块和直流电机驱动等模块的电压。根据 7805 电源芯片的情况再结合电机的工作电压,应当选取了 12V 电源作为7805 的输入电源。2.3 电机驱动模块2.3.1电机模块选择与论证方案一:使用步进电机作为智能小车系统的驱动电机,因为步进电机的转动角度可以准确的定位,这样就可以比拟准确的定位小车的前进距离和位置。但是由于步进电机的输出力矩偏低,并且会随着电机转速的升高而下降,在达到较高的转速时其输出的力矩会急剧下降,因此不适于小车等对速度有着一定要求的系统。经过综合分析比拟决定放弃此方案。word- 3 - / 50方案二:使用直流减速电机作为智能小车系统的驱动电机。直流减速电机的转动力矩比拟大,而且体积较小,重量也很轻,使用方便。另外小车电机部还装有减速齿轮组,所以并不需要去考虑调速的功能,可以很方便的通过单片机来控制直流减速电机的正传、反转、停止操作。综合以上考虑选择方案二的直流减速电机作为整个智能小车的驱动电机。图 2.1 直流减速电机2.3.2电机驱动模块选择与论证方案一:采用继电器对电动机进展控制,通过切换电动机的开关来调整小车的速度。这个方案的优点是电路相比照拟简单,但是它的缺点也比拟多,如:继电器的响应时间偏慢, 寿命较短,容易损坏,可靠性也不是很高。故决定放弃此方案。 方案二:采用专用的电机驱动芯片 L298N 来控制直流减速电机, L298N 芯片如图2-2是一个具有高电压大电流的全桥驱动芯片,一片 L298N 芯片可以分别的控制两个直流减速电机,在 646V 的电压下,可以提供 2A 的额定电流,额定功率 25W,并且具有过热自动关断和电流反响检测功能,安全可靠。该芯片是利用 TTL 电平进展控制的。通过单片机的 IO 口输出上下电平来改变芯片控制端的输入电平,即可以实现对电机进展正转、反转和停止操作。另外为了保证 L298N 的正常工作,我还安装了 8 个续流二极管1N4007。用该芯片作为电机驱动,驱动能力大、操作方便、稳定性好、性能优良。综合以上分析与论证我们选择方案二的驱动芯片 L298N 作为整个智能小车系统的电机驱动电路。word- 4 - / 50图 2.2L298N2.4 遥控模块本设计采用红外遥控来控制信号的传送。选择红外遥控装置作为小车的遥控控制器。红外遥控是通过遥控发射器的编码芯片将按键信息调制成一串0和1的二进制代码,然后通过红外线发出,最后被红外接收装置接收进展解码,再运用单片机对解码后的码信息进展识别,然后再根据不同的码信息进展不同的控制操作9。图 2.3 VS1838 封装word- 5 - / 502.5 显示模块方案一:采用 LED 数码管显示。数码管使用简单,价格低廉,但一个数码管只能显示一个数字,要显示多位数据时要使用多个数码管,这就增加了硬件电路的复杂度和额外功耗,而且 LED 数码管也无法显示字符。由于我们计划要显示小车运行的速度和路程,LED 数码管没方法显示这么多的容,因此考虑其它的方案。方案二:采用 LCD1602 液晶如图显示。LCD1602 液晶具有功耗低,显示容丰富清晰,显示信息量大,显示速度较快,界面友好,使用简单等特点而得到了广泛的应用。并且外围电路也比拟简单,因此我们选择此方案。通过以上方案论述我们选择方案二,显示小车与障碍物距离的任务。图 2.4 LCD1602 液晶显示器2.6 避障模块方案一:用漫反射式光电开关进展避障。光电开关的工作原理是根据光线发射头发出的光束,被物体反射,其接收电路据此做出判断反响,物体对红外光由同步回路选通而检测物体的有无。当有光线反射回来时,输出低电平。当没有光线反射回来时,输出高电平。操作简单但是测量的距离不远。方案二:用超声波传感器进展测距避障。超声波传感器的原理是:超声波由压电陶瓷超声波传感器发出后,遇到障碍物便反射回来,然后再被超声波传感器接收。超声波传感器在避障的设计中被广泛应用。为了使用方便,便于操作和调试,采用集成超声波测距模块 HC-SR04。综合考虑本系统只需要检测障碍物,没有十分复杂的环境。为了使用的方便,便于操作和调试,最终选择了方案二。word- 6 - / 50第 3 章 硬件设计3.1 总体设计智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,通过电机驱动芯片 L298N来控制前面两个轮子的转动与停止从而达到控制转向的目的,后轮是拖动轮,起支撑作用。小车距离的检测通过超声波传感器 HC-SR04,将检测到的数据传回单片机进展处理。小车的避障用超声波避障模块 HC-SR04,将其置于车头,检测到障碍物时,小车做出相应的反响。总体设计框图如图 3.1。键盘遥控编码芯片编码调制红外发射系统应答a 遥控局部框图 b 小车局部框图图 3.1 系统总体设计框图3.2 驱动电路电机驱动芯片采用 L298N,是一款承受高压大电流的全桥型直流/步进电压驱动器,如如下图 3.2。STC89C52电机驱动模块数据显示模块红外遥控模块晶振模块超声避障模块word- 7 - / 50图 3.2 电机控制芯片 L298N 的引脚排列其中 L298N 各引脚的编号与功能和部逻辑如下表 3.1 和图 3.3。表 3.1 L298N 引脚编号与功能引脚编号名称功能1电流传感器 A在该引脚和地之间接小阻值电阻可用来检测电流2输出引脚 1置驱动器 A 的输出端 1,接至电机 A3输出引脚 2置驱动器 A 的输出端 2,接至电机 A4电机电源端电机供电输入端,电压可达 46V5输入引脚 1置驱动器 A 的逻辑控制输入端 16使能端 A置驱动器 A 的使能端7输入引脚 2置驱动器 A 的逻辑控制输入端 28逻辑地逻辑地9逻辑电源端逻辑控制电路的电源输入端为 5V10输入引脚 3置驱动器 B 的逻辑控制输入端 111使能端 B置驱动器 B 的使能端12输入引脚 4置驱动器 B 的逻辑控制输入端 213输出引脚 3置驱动器 B 的输出端 1,接至电机 B14输出引脚 4置驱动器 B 的输出端 2,接至电机 B15电流传感器 B在该引脚和地之间接小阻值电阻可用来检测电流word- 8 - / 50图 3.3 L298N 部原理图电机驱动 A/B 的控制逻辑如下表所示。表 3.2 电机驱动 A/B 的控制逻辑输入信号使能端 A/B输入引脚 1/3输入引脚 2/4电机运动方式110前进101后退111紧急停车100紧急停车0XX自由转动L298N 可直接对电机进展控制,不需要隔离电路。通过单片机的 I/O 输入改芯片控制端的电平,即可以对电机进展正反转,停止的操作,操作非常方便,亦能满足直流减速电机的大电流要求。调试时依照上表,用程序输入对应的码值,即可以实现对应的操作。其驱动电路原理图如如下图 3.4 所示。word- 9 - / 50图 3.4 L298N 驱动原理图3.3 遥控电路红外接收器也叫做一体化红外接收头,其部是由红外监测二极管,放大器,限副器,带通滤波器,积分电路,比拟器等构成的。红外监测二极管接收到红外信号后,会把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平。交流信号进入带通滤波器,带通滤波器只允许 30khz 到 60khz 的负载波通过,然后脉冲信号再通过解调电路和积分电路进入比拟器,由比拟器输出上下电平信号,复原出发射端的信号波形。但为了提高接收的灵敏度输出的上下电平和发射端是反相的。红外接收头有很多的种类,一般都有电源引脚、信号输出引脚和接地引脚。根据发射端调制载波的不同应选用相应解调频率的接收头,本设计我们采用车载遥控发射器、一体化红外接收头 1838 来解调 HT6221 编码芯片的编码。其实物图如图 3.5 所示:word- 10 - / 50图 3.51 1838 红外接收头图 3.52车载遥控发射器由于红外接收头部放大器也很大的增益,这样很会容易引起干扰,因此在接收头的电源引脚上须加上大小在 22uf 以上的滤波电容。本设计的红外接收电路如图 3.6 所示:图 3.6 红外接收电路图其中U6为1838红外接收头,电容C4为滤波电容,DOUT 是解调信号的输出端,直接与单片机的引脚即INT0中断相连8。 解码的重点是怎样识别位0和位1,由于位0和位1的低电平脉宽一样但高电平脉宽不一样。所以需要根据高电平的宽度区别位0和位1,如果从低电平信号过后延时了以后如果能读到低电平信号说明该位为0反之如此为1,为了可靠起见延时必须介于和之间,否如此如果该位为0读到的已是下一位的高电平,因此我们取其中间值即+/2=。当按下遥控器的按键后,便有红外脉冲编码信号发出,经红外接收头接收解码后在其输出端输出检波整形后的方波信号,然后直接输入至单片机外部中断进展码信息的识别,单片机再调用相应子程序执行对应的操作。word- 11 - / 50显示电路用 LCD1602 来显示数据,LCD 液晶具有功耗低、显示容丰富、清晰,显示信息量大,显示速度较快等特点。其中用滑动变阻器 RV0 来调节显示器的背光亮度。电路原理图如如下图 3.7。图 3.7 显示电路原理图3.5 避障电路设计中采用超声波传感器进展测距避障。超声波传感器的原理是:超声波由压电陶瓷超声波传感器发出后,遇到障碍物便反射回来,然后再被超声波传感器接收。超声波传感器在避障的设计中被广泛应用。为了使用方便,便于操作和调试,采用集成超声波测距模块 HC-SR04(如图)。word- 12 - / 50图 3.8 HC-SR04 超声波测距模块HC-SR04 电气参数如表所示,声波时序图如图1所示,超声波检测原理图如图2所示。表 HC-SR04 电气参数图1超声波声波时序图word- 13 - / 50图2超声波检测原理图主控电路单片机是控制单元的核心。起着控制小车所有运行状态的作用。单片机控制模块使用的是 STC 公司生产的STC89C52RC,使用该芯片很容易实现对其它模块的控制。通过对单片机STC89C52RC写入程序,可以方便的用软件来控制。word- 14 - / 50图 3.10 单片机最小系统STC89C52RC单片机最小系统包括了晶振电路,电源电路以与复位电路,其中复位电路的复位按键用于小车的复位。P1.3P1.7 分别控制电机驱动。其它 P 口用外接控制小车的各种控制开关,P0 口外接上拉电阻,可用于外接 LCD1602。STC89C52RC单片机介绍:STC89C52RC 是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 字节系统可编程 Flash 存储器。STC89C52 使用经典的 MCS-51 核,但做了很多的改良使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。主要特性如下:1. 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可以任意选择,指令代码完全兼容传统 8051。2. 工作频率围:040MHz,相当于普通 8051 的 080MHz,实际工作频率可达48MHz。3. 工作电压:5V 单片机3V 单片机4. 片上集成 512 字节 RAM。word- 15 - / 505. 用户应用程序空间为 8K 字节。6. ISP在系统可编程/IAP在应用可编程 ,无需专用编程器,无需专用仿真器,可通过串口直接下载用户程序,数秒即可完成一片。7. 通用 I/O 口32 个 ,复位后为:P1/P2/P3/P4 是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。8. 具有看门狗功能。9. 具有 EEPROM 功能。10. 共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2。11. 外部中断 4 路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒。12. 通用异步串行口UART ,还可用定时器软件实现多个 UART。13. 工作温度围:-40+85工业级/075商业级14. PDIP 封装。STC89C52 单片机的引脚图如如下图 3.10图 3.11STC89C52 引脚图word- 16 - / 50第 4 章软件设计4.1主程序模块的设计4.1.1主程序的流程图本设计软件局部主要分为五大模块,分别为显示模块、超声波模块、电机驱动模块、红外遥控模块、主程序模块。其中定时器 0 用来计数器溢出,超出测量围,T1 用于检测脉宽信号;外部中断 0 用于红外遥控。在图 4-1 主程序流程图中,开始时先是单片机的初始化,包括定时器初始化,外部中断的初始化,液晶的初始化。然后调用循迹子程序,小车正常行驶,如果遇到了障碍如此调用超声波模块子程序,判断前方 30cm 处是否有障碍物,如果检测到左右障碍如此小车后退到安全距离后,再次正常行驶。word- 17 - / 50Y开关接通NY开始单片机初始化调用显示子程序调用测距子程序调用红外遥控子程序遥控信号调用避障子程序N由键值改变小车状态图 4.1 主程序流程图4.1.2主程序的设计void main()EN1 = EN2 = 1;/使能左右电机cmg88();/关数码管LCMInit(); /LCM 初始化delay(5);/延时DisplayListChar(0, 0, Range);/1602 第一行显示 range 数组的容DisplayListChar(0, 1, table);/1602 第二行显示 table 数组的容TMOD |= 0 x01;/定时器 0 工作方式 1,16 位定时模式TMOD = 0 x20; /定时器 1 工作方式 2,8 位自动重装TH1 = 0 x00; /写 0,表示溢出一次时间是 256 个机器周期word- 18 - / 50TL1 = 0 x00;ET1 = 1; /开定时器 1 中断TR1 = 1; /启动定时器 1IT0 = 1; /设置外部中断 0 的跳转方式EX0 = 1; /启动外部中断 0TH0 = 0; TL0= 0; ET0 = 1;/允许 T0 中断EA = 1;/开总中断while(1) StartModule();/启动测距模块 while(!RX);/等待 TR0=1; /开启计数 while(RX);/计数并等待 TR0=0;/关计数 Conut();/计算距离 Avoid();/避障 if(IRok) /判断脉宽是否检测完毕 IRcordpro();/根据脉宽检测出 4 个字节的数据IRok = 0;/重新等待脉宽检测if(IRpro_ok) /判断是否解码完成 switch(IRcord2) case 0 x18: forward(); /前进 delay(1000); break; case 0 x52: backward(); /后退 delay(1000); break; case 0 x08: left_rapidly(); /左转 delay(1000); break; case 0 x5A: right_rapidly(); /右转 delay(1000); break; case 0 x1C: stop(); /停止 delay(2000); break; default:break; IRpro_ok = 0;word- 19 - / 50 delay(65);4.2电机驱动程序的设计4.2.1电机驱动程序流程图电机驱动子函数默认前进返回正常前进检测到右障碍检测到左右障碍调用右转子程序调用前进子程序调用左转子程序调用后退子程序右电机停止左电机正转左右电机正转右电机正转左电机停止左右电机反转小车右转小车前进小车左转小车后退检测到左障碍图 4.2 电机驱动程序流程图电机驱动程序流程图如上图 4.2,当接通电源开关时,小车如此调用默认前行程序,正常前行。超声波检测模块启用检测子程序。当检测到小车左侧有障碍物,如此小车调用右转子程序,使小车达到安全行驶距离,右转程序流程一样,不在赘述。如果小车检测到左右障碍,这时小车会短时间停车,然后调用后退子程序,使小车后退到安全距离,再次回到正常行驶状态。如果后退到一定距离还未达到安全行驶距离,如此小车如此会再次调用相应子程序使小车达到正常行驶的距离。word- 20 - / 504.2.2电机驱动程序的设计#include sbit IN1 = P12;sbit IN2 = P13; sbit IN3 = P16; sbit IN4 = P17; sbit EN1 = P14;sbit EN2 = P15; void delay(unsigned int z)unsigned int x,y;for(x = z; x 0; x-)for(y = 114; y 0 ; y-);void main()EN1 = 1; EN2 = 1; IN1 = 0;IN2 = 1;IN3 = 1;IN4 = 0;delay(3000);EN1 = 0; EN2 = 0; delay(3000);EN1 = 1; EN2 = 1; IN1 = 1;IN2 = 0;IN3 = 0;IN4 = 1;delay(3000);EN1 = 0; EN2 = 0; delay(3000);EN1 = 1; EN2 = 1; IN1 = 0; IN2 = 1; IN3 = 0; IN4 = 0; delay(3000);word- 21 - / 50EN1 = 0; EN2 = 0; delay(3000);EN1 = 1; EN2 = 1; IN1 = 1; IN2 = 1; IN3 = 1; IN4 = 0; delay(3000);EN1 = 0; EN2 = 0; while(1);4.34.3红外遥控程序的设计红外遥控程序的设计4.3.1红外遥控模块流程图红外遥控子函数遥控信号返回发射前进信号发射左转信号发射后退信号调用右转子程序调用前进子程序调用左转子程序调用后退子程序右电机停止左电机正转左右电机正转右电机正转左电机停止左右电机反转小车右转小车前进小车左转小车后退发射右转信号发射停止信号调用停止子程序左右电机停转小车停车word- 22 - / 50图 4.3 红外遥控模块流程图在图 4.3 红外遥控模块流程图中,通过遥控器发射控制信号,然后检测分析 P3.2 口接收到的信号,从而控制小车的行驶状态。程序中为了缓和小车在行进中存在的惯性,所以每个状态切换时都会有一小段延时效果。4.3.2红外遥控子程序设计void timer0() interrupt 1flag=1; void StartModule() TX=1; Delay10us(2); TX=0;void forward()left_motor_go; right_motor_go; void backward()left_motor_back; right_motor_back; void stop()right_motor_stops;left_motor_stops; void left_rapidly()left_motor_back;right_motor_go;void right_rapidly()word- 23 - / 50left_motor_go;right_motor_back;4.4测距避障模块程序的设计4.4.1测距模块流程图NY测距子程序计算与障碍物的距离调用显示子程序返回避障子程序有障碍?后退左转前进返回发射超声波接收返回超声波图 4.4 测距模块流程图测距模块流程图如图 4.4,开始时单片机先给超声波测距模块 Trig 端发送一个高电平且这个高电平要持续 20us,然后再给 Trig 端发送一个低电平,即启动了超声波测距模块,超声波测距模块会自动发送 8 个 40KHZ 的方波,等待是否有信号返回,如果有信号返回会通过 IO 口超声波测距模块的 Echo 端输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*声速(340M/S)/2,单位为 mm。如果距离小于 30cm,小车会后退并转向。4.4.2测距模块程序设计void Conut(void)word- 24 - / 50 time=TH0*256+TL0; TH0=0; TL0=0; S=(float)(time*1.)*0.17; if(S=7000)|flag=1) flag=0; disbuff0=10; disbuff1=10; disbuff2=10; disbuff3=10; else disbuff0=S/1000; disbuff1=S%1000/100; disbuff2=S%100/10; disbuff3=S%10; 4.5显示模块程序的设计4.5.1显示模块流程图word- 25 - / 50显示子函数初始化 LCD1602显示屏液晶第一列显示:=Range Finder=液晶第二列显示:完毕图 4.5 显示模块流程图图 4.5 为显示模块流程图,先是初始化 LCD1602 然后在液晶的第一行显示=Range Finder=液晶第二列显示然后在主程序不断的调用显示程序刷新 mm 前面的数字。4.5.2显示程序设计unsigned char ReadStatusLCM(void)LCM_Data = 0 xFF; LCM_RS = 0;Delay10us(1); LCM_RW = 1;Delay10us(1); doLCM_E = 0;Delay10us(1); LCM_E = 0;Delay10us(1); LCM_E = 1;Delay10us(1); while (LCM_Data & Busy); return(LCM_Data);word- 26 - / 50void WriteDataLCM(unsigned char WDLCM) ReadStatusLCM(); LCM_Data = WDLCM;LCM_RS = 1;Delay10us(1); LCM_RW = 0;Delay10us(1); LCM_E = 0; Delay10us(1); LCM_E = 0; Delay10us(1); LCM_E = 1;Delay10us(1); void WritemandLCM(unsigned char WCLCM,BuysC) if (BuysC) ReadStatusLCM(); LCM_Data = WCLCM;LCM_RS = 0;Delay10us(1); LCM_RW = 0;Delay10us(1); LCM_E = 0;Delay10us(1); LCM_E = 0;Delay10us(1); LCM_E = 1;Delay10us(1); void LCMInit(void) LCM_Data = 0;WritemandLCM(0 x38,0); delay(5); WritemandLCM(0 x38,0);delay(5); WritemandLCM(0 x38,0);delay(5); WritemandLCM(0 x38,1);WritemandLCM(0 x08,1); WritemandLCM(0 x01,1); WritemandLCM(0 x06,1); word- 27 - / 50WritemandLCM(0 x0c,1); void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)Y &= 0 x1;X &= 0 xF; if (Y) X |= 0 x40;X |= 0 x80; WritemandLCM(X, 1); WriteDataLCM(DData);void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)unsigned char ListLength; ListLength = 0;Y &= 0 x1;X &= 0 xF; while (DDataListLength0 x19) if (X = 0 xF)DisplayOneChar(X, Y, DDataListLength); ListLength+;X+;第 5 章 软件仿真5.1 KEIL 软件Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、器、库管理和一个功能强大的仿真调试器等在的完整开发方案,通过一个集成开发环境Vision将这些局部组合在一起。运行word- 28 - / 50Keil 软件需要 WIN98、NT、WIN2000、WINXP 等操作系统。如果你使用 C 语言编程,那么Keil 几乎就是你的不二之选,即使不使用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。优点如下:Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表现高级语言的优势。与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用 C 来开发,体会更加深刻。5.2 Protues 软件Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件该软件中国总代理为风标电子技术 。它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机与外围器件。它是目前比拟好的仿真单片机与外围器件的工具。虽然目前国推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus 是英国著名的 EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430等,2010 年又增加了 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持 IAR、Keil 和 MPLAB 等多种编译器。优点如下:1Proteus 可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有 30 多个元件库。2Proteus 可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI 调试器、I2C 调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。3除了现实存在的仪器外,Proteus 还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的

    注意事项

    本文(基于某单片机的智能小车控制系统论文设计.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开