1、河南机电高等专科学校毕业设计/论文摘要随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。智能电动小车就是其中的一个体现。设计者可以通过软件编程实现它的行进、循迹、停止的精确控制以及检测数据的存储、显示,无需人工干预.因此,智能电动小车具有再编程的特性,是机器人的一种.本设计采用AT89S52单片机加电机驱动电路和红外遥控及循迹模块还有红外接收一体化传感器设计而成,采用模块化的设计方案,运用红外遥控器控制
2、小车的前进、后退、左转、右转、启动和停止。关键词:单片机;红外遥控;电机驱动1ABSTRACT With the rapid progress of computers, microelectronics, information technology, intelligent technology development speed faster and faster, intelligent increasing range of applications has been greatly expanded. Smart as a modern invention, is the futu
3、re direction of development, it can be in an environment where automatic operation in accordance with the preset pattern, no human management can be applied to scientific exploration and other purposes。 Smart electric car is one of expression。 Designers can be programmed by software to the road, tra
4、cking, stop the precise control and test data storage and display, without human intervention. Therefore, smart electric car has a re-programming features, is a kind of robot。This design uses AT89S52 SCM and the motor drive circuit and the infrared remote control and ultrasonic module infrared recei
5、ver integrated sensor design made use of modular design, use the infrared remote control car forward, backward, turn left, turn right, start and stop 。Keywords: SCM; infrared remote control; motor driveI目录第一章 绪论11.1 设计的背景和意义11。2 智能小车的发展现状21。3 该设计的主要内容和目的4第二章 系统总体方案设计与论证52.1 系统的总体方案设计52。2 主控系统52。3 电机
6、驱动模块62。4循迹模块62.5 显示模块6第三章 系统硬件电路设计73.1 主控模块的电路设计73.1。1 AT89S52单片机的简介73。1。2单片机工作电路113.1。3时钟电路123.1。4复位电路123。2红外遥控模块的电路设计143.2。1红外遥控的实现原理143。2.2红外发射器153.2.3 红外接收器163.3电机驱动模块的电路设计173。4循迹模块的电路设计183。5显示模块的电路设计19第四章 系统软件设计214。1主程序214.2 LCD显示程序24第五章 总结与展望29致谢30参考文献30附录一 系统硬件电路图32附录二 PCB33附录三 程序33附录四 元件清单38
7、IV第一章 绪论1.1 设计的背景和意义自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展.在海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域.智能电动小车系统以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科。主要由路径识别、角度控制及车速控制
8、等功能模块组成。同时,当今机器人技术发展的如火如荼,其应用在国防等众多领域得到广泛开展。神五、神六升天、无人飞船等等无不得益于机器人技术的迅速发展.一些发达国家已把机器人制作比赛作为创新教育的战略性手段.如日本每年都要举行诸如“NHK杯大学生机器人大赛”、“全日本机器人相扑大会”、“机器人足球赛”等各种类型的机器人制作比赛,参加者多数为学生,目的在于通过大赛全面培养学生的动手能力、创造能力、合作能力和进取精神,同时也普及智能机器人的知识.从某种意义上来说,机器人技术反映了一个国家综合技术实力的高低,而智能电动小车是机器人的雏形,它的控制系统的研制将有助于推动智能机器人控制系统的发展,同时为智能
9、机器人的研制提供更有利的手段。人类的研究活动已摆脱了地球生物圈的束缚而广泛地进入外层空间和海洋深处.对月球和太阳系其他行星的探测,对太阳系以外的宇宙进行考察,对数千米以下的海底的研究,都是目前单靠人力所不能及的。自动控制系统正在代替人们完成这些任务。在战场上的军事活动中,在恶劣环境条件下的生产劳动中,凡不宜由人直接承担的任务,均可由自动控制系统代替,如智能小车可以适应不同环境,不受温度、湿度等条件的影响,完成危险地段、人类无法介入等特殊情况下的任务。高科技自动控制系统及装置已日益成为现代社会活动中离不开的自动智能设备。1。2 智能小车的发展现状美国物流学会自动引导车系统产品部把自动引导车(Au
10、tomated Guided Vehicle,以下简称AGV)定义为装有电磁或光学自动引导装置的运输车。该AGV能够沿规定的引导路径行驶,并配备有AGV编程与停车的选择装置,安全保护和其他系统所需要的特殊功能的装置。自动引导车是计算机技术,自动控制技术,管理技术,加工制造技术等多学科技术的综合。世界上第一台AGV是由美国Barrett电子公司于20世纪50年代开发成功的,它是一种牵引式小车系统,小车跟随一条钢丝引导的路径行驶,并具有一个以真空管技术为基础的控制器.智能小车项目已经成为一个当今世界热门的研究题目,在国外高中主要的智能小车研究有以下几种最具代表性:大谷机器人ASURO世界最具影响力
11、的三大教育机器人教材生产厂家之一,ASURO被评为2006年美国中学生暑期电子课作业指定教材。风靡欧洲教育界的ASURO和两足机器人,用的是免费的AVR软件,可以把电脑上的C语言的原程序转换成机器人可以识别的16进制代码,通过与电脑相连接的红外发射板,可以无限的把机器人可以识别的16进制代码发射到产品上面,就会展示新的动作,以实现可重复编程,发射不同的程序,可实现不同的功能,如线性追踪,自动寻迹,追踪光源,设定路线转弯,电脑遥控,唱歌,机器人走迷宫,感应人的身体后可后退等动作对ASURO来说,轻而易举。韩国的飞思卡尔智能车大赛,早在2000年就由韩国汉阳大学举办,面向韩国各个大学.韩国汉阳大学
12、汽车控制实验室在飞思卡尔半导体公司资助下举办的以HCSI2单片机为核心的大学生课外科技竞赛。组委会提供一个标准的汽车模型、直流电机和可充电式电池,参赛队伍要制作一个能够自主识别路径的智能车,在专门设计的跑到上自动识别道路行驶,谁最快跑完全程而没有冲出跑道并且技术报告评分较高,谁就是获胜者。其设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械、能源等多个学科的知识,对学生的知识融合和实践动手能力的培养,具有良好的推动作用、IEEE国际标准电脑鼠走迷宫竞赛所谓“电脑鼠”,英文名叫做MicroMouse,是使用嵌入式微控制器、传感器和几点运动部件构成的一种智能行走装置的俗称。它可以
13、在迷宫中自动搜索迷宫,记忆迷宫地图,智能分析选择路径,最终以最快的时间完成比赛。迷宫的地图是在竞赛开始前几分钟随机设置的,所以竞赛难度较大.国际电工和电子工程学会(IEEE)每年都要举办一次国际性的电脑鼠走迷宫竞赛,自举办以来参加踊跃.1972年美机械杂志发起比赛,最初的电脑鼠是机械的,由弹簧驱动。1977年IEEE Spectrum杂志提出电脑鼠的概念:电脑鼠是一个小型的由微处理器控制的机器人车辆,在复杂迷宫中具有译码和导航的功能。真正的到场电脑鼠迷宫竞赛于1979年于纽约举行,1991年以来,每年都有世界级的比赛。我国AGV发展历史较短.北京起重运输机械研究所、中国邮政科学研究规划院、中国
14、科学院沈阳自动化所、大连组合机床研究所、清华大学、国防科技大学和华东工学院都在进行不同类型的AGV的研制并小批量投入生产.1975年北京起重运输机械研究所完成我国第一台电磁引导定点通信的AGV,1989年北京邮政科学研究规划院完成我国第一台双向无线电通信的AGV,该院已能进行AGV的批量生产.沈阳自动化所在AGV技术方面已取得了多项研究开发成果和专利,解决了AGV车体设计、控制、导航和高度管理等一系列关键技术问题,成为国内唯一能够提供自主品牌AGV产品的单位。AGV自动导航车系统是伴随着柔性装配系统、计算机集成制造系统以及自动化立体仓库产业发展起来的,是物流系统中革命性的换代产品.为一种高效物
15、流输送设备和工厂自动化的理想手段,随着经济的发展,在我国AGV领域必将越来越大。这几年,智能小车的研究是我国的高校大学生热点研究的项目。2006年,“飞思卡尔”杯智能车大赛登陆中国,经过教育部批准,由飞思卡尔半导体公司赞助,由清华大学协办,在清华大学举办了第一届“飞思卡尔”杯智能车大赛。去年则是第五届“飞思卡尔”杯全国大学生智能车带赛,与往届不同,第五届智能车竞赛新增加了电磁组的竞赛单元,参赛者需要用电磁器件代替传统的光电和CCD,通过电磁感应来警醒赛道信息的获取渠道,以此控制智能车在赛道上行驶。IEEE国际标准电脑鼠走迷宫竞赛,2007年9月开始在广州周立功单片机发展有限公司的赞助下,中国嵌
16、入式系统学会组织上海市、江苏省、浙江省30多所高校连续举办了两次联赛。2009全国“电脑鼠标走迷宫”总决赛于11月8日在北京航空航天大学举行。1。3 该设计的主要内容和目的该红外遥控智能小车可以分为四大组成部分:红外遥控部分、传感器检测部分、执行部分、CPU。智能小车要实现循迹识别路线,选择正确的行进路线。该设计主要通过对系统硬件电路的设计,软件设计和程序的编写,然后通过后期软硬件调试达到设计初衷。随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注.全国电子竞赛和省内电子竞赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,经常举办这类比赛来培养学生对综合知识的应用能力
17、。34第二章 系统总体方案设计与论证2。1 系统的总体方案设计该系统以AT89S52单片机为核心的控制电路,采用模块化的设计方案,利用红外遥控器代替开关按键控制小的启动和停止,能够轻松自如的实现小车的启动停止、左转、右转和前进后退等功能,假如我们希望小车运行到黑线上来检测是否有循迹功能,就可以用遥控器控制小车行驶到有黑线的地方,当小车遇到有黑线时,会自动启动循迹功能模块,让小车沿黑线跑。每个模块都是相互独立又相互协调配合,实现了小车的智能控制。系统控制框图如图21所示: AT89S52红外遥控模块红外接收模块电机驱动模块循迹模块显示模块图2-1 系统控制框图2。2 主控系统采用单片机作为整个系
18、统的核心,用其控制行进中的小车,以实现其既定的性能指标.充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势-控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案.针对本设计特点-多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D 功能也不必选用.根据这些分析,我选定了AT89S52 单片机作为本设计的主控装置.2。3 电机驱动模块采用功率三极管作为功率放大器的输出控制直流电机。线
19、性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM 调速技术。现市面上有很多此种芯片,因此选用L298。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点.2。4 循迹模块采用两只红外对管,分别置于小车车身左右两侧,根据两只光电开关接受到白线与黑线的情况来控制小车
20、转向来调整车向,合理安装好两只光电开关的位置就可以很好的实现循迹的功能.2。5 显示模块常用的数码显示器件主要有LED数码显示器和LCD液晶显示器。LCD显示器具有低功耗、散热小、浅薄轻巧、显示锐利、屏幕调节方便等特点,同时又是现在市场的主流产品,价格较以往也有大幅的下降。常用的有12864和1602考虑到价格和实用性最终选择了1602液晶屏,既可以满足产品需要价格也相对低廉.第三章 系统硬件电路设计3.1 主控模块的电路设计3。1。1 AT89S52单片机的简介AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器.使用Atmel公司高密度非易失性存储
21、器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。下图为AT89S52引脚图。图31 AT89S52引脚图(1)主要特性:与MCS-51 兼容 8K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定256*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 (2)管脚说
22、明:VCC:供电电压.GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入.P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位.在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故.在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口
23、为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入.并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故.P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1后,它们被内部上拉为高
24、电平,并用作输入.作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89S52的一些特殊功能口,如下表31所示: 表31 特殊功能引脚对照表引脚号特殊功能P3。0RXD 串行通信输入P3.1TXD 串行通信输出P3。2INT0 外部中断0 输入,低电平有效P3.3INT1 外部中断1 输入,低电平有效P3。4T0 计数器0 外部事件计数输入端P3。5T1 计数器1 外部事件计数输入端P3。6WR 外部随机存储器的写选通,低电平有效P3。7RD 外部随机存储器的读选通,低电平有效P3口同时为闪烁编程和编程校验接收一些控制信号。RST:AT89S52
25、 的复位信号输入引脚,高电位工作,当要对芯片复位时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89S52 便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节.在FLASH编程期间,此引脚用于输入编程脉冲.在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6.因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲.如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,M
26、OVC指令是ALE才起作用.另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效.PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效.但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:该引脚为低电平时,则读取外部的程序代码 (存于外部EPROM 中)来执行程序.因此在8031中,EA引脚必须接低电位,因为其内部无程序存储器空间。如果是使用AT89S52或其它内部有程序空间的单片机时,此引脚接成高电平使程序运行时访问内部程序存储器,当程序指针PC值超过片内程序存储器地址(如8051/8751/89C51的PC
27、超过0FFFH)时,将自动转向外部程序存储器继续运行。此外,在将程序代码烧录至8751内部EPROM、89C51内部FALSH时,可以利用此引脚来输入提供编程电压(8751为2lV、AT89S52为12V、8051是由生产厂方一次性加工好)。XTAL1:接外部晶振的一个引脚.在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。它采用外部振荡器时,此引脚应接地。XTAL2:接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。(3)振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器
28、可以配置为片内振荡器.石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接.有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 (4)芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89S52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式.在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工
29、作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止. 3。1。2 单片机工作电路AT89S52单片机有8KB的Flash ROM(闪存)作为内部程序存储器(ROM),因此用这种芯片构成的最小应用系统简单、可靠。用AT89S52单片机构成最小应用系统时,只需将单片机接上时钟电路和复位电路即可。该最小应用系统具有以下特点:(1)有可供用户使用的大量I/O线。P0、Pl、P2、P3都可作为用户I/O口用,由于没有外部存储器扩展EA应接高电平.(2)内部存储器容量有限只有8KB的地址空间。当内部程序存储器不够用时。就需要扩展外部程序存储器。AT89S52单片
30、机内部ROM容量有限,AT89S52单片机的I/O口数量和功能很有限。但在本电路不需要太多的I/O口。且内部程序存储器也够用,所以不用扩展外部数据存储器和外部接口芯片.其电路图如图32所示:图32 单片机最小系统3。1。3 时钟电路时钟电路就是产生像时钟一样准确的振荡电路.AT89S52内部有一个用于构成片内振荡器的高增益反相放大器,振荡器产生的信号送到CPU,作为CPU的时钟信号驱动CPU产生执行指令功能的机器周期.引脚XTAL1和XTAL2是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器。时钟电路的连接如图33所示:图3-3 时钟电路
31、图中外接石英晶体(或陶瓷谐振器)以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容C1和C2的值虽然没有严格的要求,但电容的大小多,会影响振荡器频率的高低、振荡器的稳定性、起振圈内部振荡器的接法的快速性和温度稳定性.外接石英晶体时,C1和C2一般取(30pF10pF);外接陶瓷谐振器时.C1和C2一般取(40pF10pF)。外接的是石英晶体,所以C1、C2选择标称值30pF。3。1.4 复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态。并从这个状态开始工作。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位.89系列单片机的复位信号是
32、从RST引脚输入到芯片的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后.如果RST引脚有高电平并维持2个机器周期(24个振荡周期)则CPU就可响应并且将系统复位.复位电路由两部分组成,电容和电阻。当系统通电时VCC 上电压从无到有在RESET处会先处于高电平一段时间,然后由于该点通过电阻接地则RESET该点的电平会逐渐的改变为低电平,从而使得单片机复位口电平从1到0,达到给单片机复位的功能。上电复位:上电瞬间,电容充电电流最大,电容相当于短路,RST端为高电平,自动复位;电容两端的电压达到电源电压时,电容充电电流为零,电容相当于开路,RST端为低电平,程序正常运行。手动复位:首先经
33、过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被短路放电;按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,正常工作.单片机复位电路图如图34所示:3。2 红外遥控模块的电路设计3.2。1 红外遥控的实现原理红外遥控的实现主要是如何用程序去分析位0和位1。位0和位1所不同之处就是在高电平脉冲后的低电平脉宽不一样,采用脉宽调制的串行码,以脉宽为0。565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0。565ms、间隔1。685ms、周期为2.25ms的组合
34、表示二进制的“1”. 解码的关键也是如何识别“0”和“1”,从位的定义我们可以发现“0、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1。68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0。56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1,为了可靠起见,延时必须比0.56ms长些,但又不能超过1。12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1。12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。 根据码的格式,应该等待9ms的起始码和4。5
35、ms的结束码完成后才能读码。红外遥控系统主要分为调制、发射和接收三部分.红外遥控芯片将红外码调制成合适的脉冲信号经红外发射二极管发射红外编码后由红外接收器把接收到的信号处理后输出给单片机。红外遥控的流程图如图35所示。键盘编码调制LED光/电放大解调解码遥控接收器图3-5 红外遥控系统框图遥控发射器红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控.工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔
36、离电气干扰。3.2.2 红外发射器该电路的主要控制器件为遥控器芯片HT6221。HT6221是Holtek公司生产的多功能编码芯片,采用PPM(Pulse Position Modulation)进行编码,1。12ms为0,2.24ms为1。 HT6221能编码16位地址码和8位数据码,最多能同时支持32个开关键.HT6221键码的形成:当一个键按下超过36ms,振荡器使芯片激活,如果这个按键按下且延迟大约108ms,这108ms发射代码由一个起始码(9ms),一个结果码(4。5ms),低8位地址码(9ms18ms),高8位地址码(9ms18ms),8位数据码(9ms18ms)和这个8位数据码
37、的反码(9ms18ms)组成,如果按键按下超过108ms仍未松开,接下来发射的代码将仅由起始码(9ms)和结束码(2。5ms)组成。按照下图的接法,K1K8的数据码分别为:0x00,0x01,0x02,0x04,0x05,0x06,0x07.红外遥控发射器电路图如图36所示。HT6221将红外码调制成38KHZ的脉冲信号通过红外发射二极管发出红外编码。图36中D1是红外发射二极管,D2是按键指示灯,当有按键按下时D2点亮。各个开关的功能分别为:K1停止;K2右转;K3左转;K4启动;K5加速;K6循迹;K7制动;K8后退。图3-6 遥控发射器电路原理图3.2。3 红外接收器红外接收电路通常被厂
38、家集成在一个元件中,成为一体化红外接收头。内部电路包括红外监测二极管,放大器,限幅器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近.交流 信号进入带通滤波器,带通滤波器可以通过30KHZ到60KHZ的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。该模块使用红外接收头1838,有三个引脚,包括供电脚,接地和信号输出脚.其电路如图37所示。瓷片电容104为去耦电容,滤除输出信
39、号的干扰。1端是解调信号的输出端,直接与单片机的P3.2口相连.有红外编码信号发射时,经红外接头处理后,输出为检波整形后的方波信号,并直接提供给单片机,执行相应的操作来达到控制电机的目的。图3-7 红外接收硬件图3。3 电机驱动模块的电路设计该模块主要芯片L298,其可以同时控制两个电机的正反转,以及改变电机的转速,足以满足设计要求.L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机.L298芯片是一种高压、大电流双全桥式的驱动器。其中SENSEA、SENSEB分别为两个H桥的电流反馈脚
40、,不用时可以直接接地.VCC,VS是接电源引脚,电压范围分别是4。57V、2。546V,设计中VCC端与单片机电源端共用5V工作电源,VS端接12V电源。ENA,ENB为使能端,低电平禁止输出。IN1,IN2,IN3,IN4为数据输入引脚,分别于单片机的P1.0、P1。1、P1。2、P1。3连接,从单片机内输入控制信号。OUT1,OUT2、OUT3,OUT4为数据输出引脚,分别接电动机MG1和MG2。通过调节IN1,IN2,IN3,IN4之间输入的高低电平的变化来实现电动机MG1和MG2的正反转动,从而实现小车的前进、后退、左转和右转等功能。当IN1输入低电平时,电机MG1正转;当IN2输入低
41、电平时,电机MG1反转;当IN3输入低电平时,电机MG2正转;当IN4输入低电平时,电机MG2反转。高电平输入时,电机不工作。D1D8是保护二极管(IN5819),用于释放掉电机紧急制动停车时产生的反向尖峰电势,起到保护L298不被损坏的作用.电机驱动模块的电路图如图38所示:图3-8 电机驱动电路原理图3.4 循迹模块的电路设计为了保证小车沿黑线行驶,在前部左右两侧安装两对TCRT5000红外对管。在小车行走过程中,若向左方向偏离黑线,则右侧的探头就会检测到黑线,把信号传送到单片机.进行处理校正。控制其向右转,反之,向左转.黑线检测原理是利用红外线在黑线和白纸对光的反射系数不同的特点,在小车
42、在行驶过程中不断向地面发射红外光,根据接收到的反射光强弱来判断是否是黑线。利用这个原理,可以控制小车行走的路迹。当红外发射管发射红外光线到路面,红外光线遇到白色线则反射,接收管收到反射光,光敏三极管导通,经施密特触发器整形后输出低电平,而红外光线遇到黑色线时会被吸收,接收管接收不到反射光线。光敏三极管截止,经施密特触发器整形后输出高电平,这就实现了通过红外检测功能的功能.将检测到的信号送到单片机进行分析处理。然后将处理后的结果发送到电机驱动模块,进行校正,从而保证小车能沿着黑线行驶。 循迹模块电路图电路如图3-9所示。图中施密特触发器DM74LS14是一种特殊的门电路。它是一种阈值开关电路,具
43、有突变输入-输出特性的门电路。这种电路被设计成阻止输入电压出现微小变化(低于某一阈值)而引起的输出电压的改变.施密特触发器采用电位触发方式,其状态由输入信号电位维持的特性保证了低高电平输出的稳定性。图3-9 系统循迹电路原理图3。5 显示模块的电路设计本系统采用14脚的1602型号的LCD显示器(无背光14脚,有背光16脚)。其电路原理图如图3-10所示,图中RP1是9个插针作为排阻封装的上拉电阻,主要是对器件1602注入电流,把不确定信号通过电路钳位在高电平,同时也起到限流的作用。1602LCD显示器的D0D8分别接在单片机的P0口,RS引脚高电平输入时输入数据,低电平输入时输入指令,接在单
44、片机的p2。0口。RW引脚低电平输入时向LCD写入指令或数据,高电平输入时从LCD读取信息,接在单片机的P2。1口.E引脚使能信号,高电平输入时读取信息,高电平向低电平转换时执行指令,接在单片机的P2。2口。图3-10 系统显示电路第四章 系统软件设计4。1 主程序主程序是个死循环,程序启动后,开始检测黑白线,如果左右两侧都检测到黑线,则控制小车前进;如果左边检测到黑线,右边检测到白线,则控制小车左转;如果右边检测到黑线,左边检测到白线测控制小车右转;如果左右两边都检测到白线则后退.设小车左右两侧的红外对管分别为1和2,则系统主程序流程图如图41所示。启动1、2遇黑线N1遇白线2遇黑线1遇黑线
45、2遇白线左转右转1遇白线2遇白线前进NNNYYYY驱动模块模块后退循迹模块图4-1 主程序流程图 主程序的编写步骤: 1。 定义头文件,如include ; 2。 对单片机引脚进行定义,定义方式如:sbit rs=P20;; 3. 对程序所用变量进行定义,如unsigned int i;可赋值; 4. 当单片机接收到电机驱动信号时,根据所需功能程序设计如下: while(1) if(KEY1=0) /左右电机反转函数 IN1 = 0; /右电机反转函数 IN2 = 1; IN3 = 0; /左电机反转函数 IN4 = 1; if(KEY2=0) /左右电机正转函数 IN1=1; /右电机正转函
46、数 IN2=0; IN3=1; /左电机正转函数 IN4=0; if(KEY3=0) /左转函数 IN1=1; / 右电机正转函数 IN2=0; IN3=1; /左电机停止函数 IN4=1; if(KEY4=0) / 右转函数 IN1=1; /右电机停止函数 IN2=1; IN3=1; /左电机正转函数 IN4=0; if(KEY5=0) /停止函数 IN1=1; /右电机停止函数 IN2=1; IN3=1; /左电机停止函数 IN4=1; IN1和IN2分别控制小车右边电机的正反转,IN3和IN4分别控制左边电机的正反转。通过左右电机的正反转配合执行,控制小车的前进、后退、左右转和停止。当IN1=1,IN2=