红外遥控赛车软件算法设计毕业论文.docx
目 录1 引 言21.1红外遥控技术背景22 总体设计方案42.1 方案:红外遥控控制小车43 NECUPD6121G红外遥控系统53.1 NECUpd6121G53.2 简单发射电路53.3 发射编码及信号波形64 AT89S52单片机114.1 AT89S52单片机115 L298N驱动模块165.11 L298N驱动模块说明165.2 L298芯片驱动参数165.3 功能简图166 遥控赛车系统框图及电路设计196.1系统框图及电路设计197红外遥控赛车程序设计207.1红外信号解码设计框图207.2 红外接收软件设计22结 束 语24参考文献25附录一:电路原理图26附录二:赛车实物图27附录三:程序清单28红外遥控赛车软件算法设计 摘要:通过对设计要求的认真分析和研究,拿出了几种可行方案,最终选定一个最佳方案。该方案是采用先进的单片机技术实现遥控,采用模块化设计,主要分为两个模块:红外遥控模块和L298电机驱动模块。红外发射模块中通过Upd6121G红外遥控器发射管对单片机发射信号,红外接收模块中的单片机受红外接收管接收的信号控制。文章详细的讨论了实现上述红外遥控过程其工作原理和软件设计。关键词:遥控器 红外发射 红外接收 单片机1 引 言1.1红外遥控技术背景红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。60年代初,一些发达国家开始研究民用产品的遥控技术,单由于受当时技术条件限制,遥控技术发展很缓慢,70年代末,随着大规模集成电路和计算机技术的发展,遥控技术得到快速发展。在遥控方式上大体经理了从有线到无限的超声波,从振动子到红外线,再到使用总线的微机红外遥控这样几个阶段。无论采用何种方式,准确无误传输新信号,最终达到满意的控制效果是非常重要的。最初的无线遥控装置采用的是电磁波传输信号,由于电磁波容易产生干扰,也易受干扰,因此逐渐采用超声波和红外线媒介来传输信号。与红外线相比,超声传感器频带窄,所能携带的信息量少,易受干扰而引起误动作。较为理想的是光控方式,逐渐采用红外线的遥控方式取代了超声波遥控方式,出现了红外线多功能遥控器,成为当今时代的主流。由于红外线在频谱上居于可见光之外,所以抗干扰性强,具有光波的直线传播特性,不易产生相互间的干扰,是很好的信息传输媒体。信息可以直接对红外光进行调制传输,例如,信息直接调制红外光的强弱进行传输,也可以用红外线产生一定频率的载波,再用信息对载波进调制,接收端再去掉载波,取到信息。从信息的可靠传输说,后一种方法更好,这就是我们今天看到的大多数红外遥控所采用的方法。由于红外线的波长远小于无线电波的波长,因此在采用红外遥控方式时,不会干扰其他电器的正常工作,也不会影响临近的无线电设备。红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射的红外光转换为相应的电信号,再送后置放大器。指令键发射电路驱动电路调制电路编码电路图1 红外发射框图发射器一般由指令键(或操作杆)、指令编码系统、调制电路、驱动电路、发射电路等几部分组成。当按下指令键或推动操作杆时,指令编码电路产生所需的指令编码信号,指令编码信号对载波进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定的指令编码信号。图2红外接收框图接收器一般由接收电路、放大电路、调制电路、指令译码电路、驱动电路、执行电路(机构)等几部分组成。接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制。 1.2单片机单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。以单片机为核心的控制系统,因为其实时控制功能强,可靠性高,实用性强,应用范围广等优点,得到了极为广泛的应用。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中红外遥控就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。因此了解单片机知识,掌握单片机的应用技术具有重大的意义。它的理论性和实践性都很强,我们在理论课学习中主要学习单片机的基本构造,各部分的工作原理以及指令系统,然而,光是理论的学习是远远不够的,最重要的是把理论和实践相结合。所以此次实习,通过设计一个基于AT89S52单片机的遥控器设计,以增进对单片机电路的感性认识,加深对理论方面的理解和巩固,了解和掌握软硬件设计过程、方法及实现,增强自己的动手和实践能力,为以后在工作和学习中,设计和实现应用系统打下良好基础。2 总体设计方案根据任务书的要求,利用无线发射无线接收远程控制单片机从而控制小车运行,可以拟定以下方案。2.1 方案:红外遥控控制小车在不需要多电路的应用场合,可以使用由常规集成电路组成的单通道红外遥控电路。这种遥控电路不需要使用昂贵的专用编译码器,因此成本低。以NEC的Upd6121G遥控器为例小巧便携成本低廉且功耗小,一颗银锌纽扣电池可使用半年之久。故实用性强。红外发射部分产生震荡频率红外发射图3红外发射框图可以直接产生一个控制功能的震荡电路频率,再通过红外发光二极管发射出去。由SM0038红外接收芯片进行解码输出TTL电平信号,单片机接收到红外指令根据程序控制L298N电机驱动模块进而控制小车运行。红外接收部分小车运行单片机调制解调L298驱动红外接收图4 红外接收框图3 NECUpd6121G红外遥控系统 3.1 NECUpd6121G日本电气股份有限公司(日文:日本电気株式会社,英文:NEC Corporation,Nippon Electric Company, Limited的简称)简称日本电气或日电或NEC,是一家跨国信息技术公司,总部位于日本东京港区。NEC为商业企业、通信服务以及政府提供信息技术(IT)和网络产品。它的经营范围主要分成三个部分:IT解决方案、网络解决方案和电子设备。采用Upd6121G编码协议的红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路,如图5所示。L 发射端 接收端 图5 红外遥控系统框图3.2 简单发射电路红外线属于一种电磁射线,其特性等同于无线电或X射线。人眼可见的光波是380nm-780nm,发射波长为780nm-1mm的长射线称为红外线.尽管肉眼看不到这种光线,但利用红外线发送和接收装置却可以发送和接收红外线信号,实施红外线通讯。利用红外线通讯无需连线,只需将两设备的红外线装置对正即可传输数据。红外线通讯方向性很强,适用于近距离的无线传输。完整的红外遥控器电路主要由:集成发射芯片、晶体振荡器、红外线发射管、推动晶体三极管、导电橡胶等组成,如图6所示。解决方法:1、加载波 2、使用专用编码芯片缺点:1抗干扰性差2传输距离短3传输信息量少红外信号有方向性要对准才能接收,接收到信号后Vout输出高电平,否则输出低电平图6 最简单的红外发射接收电路3.3 发射编码及信号波形遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为 0.565ms、间隔 0.56ms、周期为 1.125ms的组合表示二进制的“0”;以脉宽为 0.565ms、间隔 1.685ms、周期为 2.25ms的组合表示二进制的“1”,如图7所示。图7 遥控码的0和1波形图上述“0”和“1”组成的 32 位二进制码经 38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射。UPD6121G产生的遥控编码是连续的 32 位二进制码组,其中前 16 位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制 01H;后 16 位为 8 位操作码(功能码)及其反码,如图8所示。图8 遥控信号发射编码遥控器在按键按下后,周期性地发出同一种 32 位二进制码,周期约为 108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在 58.576.5ms之间,图9为发射波形图。图9 一帧完整波形图当按键按下超过36ms,振荡器使芯片激活,如图06所示将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms18ms)高8位地址码(9ms18ms),8位数据码(9ms18ms)和这8位数据的反码(9ms18ms)组成。图10 红外编码图如果键按下超过108ms仍未松开时,如图07所示每隔108ms输出一帧9ms载波+2.25ms关断+0.56ms载波的信号,直至释放接下来发射的代码(连发代码)代码格式,这种连发代码常用于电视遥控器长按连续增加音量等功能。图11 长按按键的红外波形图注:代码宽度算法: 16 位地址码的最短宽度:1.12×16=18ms 16 位地址码的最长宽度:2.24ms×16=36ms易知 8 位数据代码及其 8 位反代码的宽度和不变:(1.12ms+2.24ms)×8=27ms 32 位代码的宽度为(18ms+27ms)(36ms+27ms) 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 左右均可。 2 根据码的格式,应该等待 9ms 的起始码和 4.5ms 的结果码完成后才能读码。 3.4 红外接收解码系统红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并输出可以让单片机识别的TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作。在本系统中我们采用红外一体化接收头SM0038,外观及红外接收电路如图08所示。SM0038 黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35m。它能与TTL、COMS 电路兼容。SM0038 为直立侧面收光型。三个管脚分别是地、5 V 电源、解调信号输出端。SM0038图12 SM0038引脚图和原理图SM0038接收红外信号频率为38 kHz,周期约26 s,同时能对信号进行放大、检波、整形,得到TTL 电平的编码信号。TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑“1”,0V等价于逻辑“0”,这被称做TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。经过SM0038调解后的波形由OUT输入单片机的P33口,单片机识别后得到TTL 电平的编码信号,对其信号进行解码翻译,以脉宽为 0.565ms、间隔 0.56ms、周期为 1.125ms的组合表示二进制的“0”;以脉宽为 0.565ms、间隔 1.685ms、周期为 2.25ms的组合表示二进制的“1”。这样就得出了一连串的数据,再根据编码程序对数据赋予的含义,就可以完整的接收和翻译出所要实现的功能,如图13所示。ab图13 一帧SM0038调解后的波形4 AT89S52单片机4.1 AT89S52单片机本次设计所使用的单片机是Atmel公司的AT89S52芯片,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2个数据指针三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52的引脚图如图14所示:图14 AT89S52引脚图AT89S52单片机引脚注释:VCC : 电源 GND: 地P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。4.2 时钟电路单片机的时钟电路由振荡电路和分频电路组成,其振荡电路由反相器以及并联外接的石英晶体和电容组成,用于产生振荡脉冲。分频电路用于把振荡脉冲分频,以的到所需要的时钟信号。图15 晶振电路振荡电路如图11所示:其输入端为引脚XTAL1,输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容,石英晶体为一感性原件,与电容构成振荡回路,为片内放大器提供正反馈和振荡的相移条件,从而构成一个稳定的自激振荡器。振荡器的频率主要取决于晶体的振荡频率, 一般晶体可在1.212 MHz之间任选, 电容C1、 C2可在530 pF之间选择, 电容的大小对振荡频率有微小的影响, 可起频率微调作用。 振荡脉冲经二分频后作为系统的时钟信号,时钟信号经过三分频产生ALE信号,ALE信号用于控制把P0口的低8位地址送入锁存器锁起来,以实现低地址和数据的分时传送,ALE还可作为外部时钟或外部脉冲使用。时钟信号经六分频得到机器周期信号。4.3 中断系统A 中断的概念当CPU与外设交换信息时,由于外设的速度比较慢,若用查询的方式,则CPU就要浪费很多时间去等待外设。这样就存在一个快速的CPU与慢速的外设之间的矛盾。为了解决这个问题,就发展了中断的概念。CPU正在处理某一程序时,发生了另一突发事件请求CPU迅速去处理(中断发生);CPU暂时停止当前的工作,转到需要处理的中断源的服务程序的入口(中断响应),一般在入口处执行一跳转指令转去处理中断事件(中断服务);待CPU将中断事件处理完毕后,再回到原来程序被中断的地方继续处理执行程序(中断返回),这一处理过程称为中断。51单片机的中断系统提供5个中断源:外部中断0和外部中断1,定时/计数器(T0)和(T1)的溢出中断,串行接口的接收和发送中断。本程序中只用到了外部中断1。B 中断控制1 中断允许寄存器IE(A8H)CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器(IE)控制的。IE各位的定义如表1所示:表1中断允许寄存器IE:位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符号EA/ESET1EX1ET0EX0EA中断允许总控制位EA0中断总禁止,禁止所有中断EA1中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位设置。EX0和EX1外部中断允许控制位EX0(EX1)0禁止外部中断ET0和ET1定时器/计数器中断允许控制位ET0(ET1)0禁止定时器/计数器中断ET0(ET1)1允许定时器/计数器中断ES串行中断允许控制位ES=0禁止串行中断ES=1允许串行中断2中断优先级控制寄存器(IP)各中断的优先级通过中断优先级控制寄存器IP来设定,其未定义及位地址如表2所示: 表2中断优先级控制寄存器:位地址0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8H位符号/PSPT1PX1PT0PX0PX0外部中断0优先级设定位;PT0定时中断0优先级设定位;PX1外部中断1优先级设定位;PT1定时中断1优先级设定位; PS串行中断优先级设定位。3定时器控制寄存器(TCON)该寄存器用于保存外部中断请求以及定时器的计数溢出。进行字节操作时,寄存器地址为88H。按位操作时,各位的地址为88H8FH。寄存器的内容及位地址表示如表3所示:表3定时器控制寄存器:位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IE0和IE1外中断请求标志位。当CPU采样到 INT0(或INT1)端出现有效中断请求时,IE0(IE1)位由硬件置“1”。 当中断响应完成转向中断服务程序时,由硬件把IE0(或IE1)清零。TR0 和TR1定时器运行控制位:TR0 (TR1 )0定时器/计数器不工作TR0 (TR1 )1定时器/计数器开始工作TF0和TF1计数溢出标志位。当计数器产生计数溢出时,相应的溢出标位硬件置“1”。 并自动产生定时中断请求。5 L298N驱动模块5.11 L298N驱动模块说明L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,可以直接驱动两路3-30V直流电机,并提供了5V输出接口,可以给5V单片机电路系统供电,支持3.3VMCU控制,可以方便的控制直流电机速度和方向,也可以控制2相步进电机如图16所示。图12图16 L298控制电路5.2 L298芯片驱动参数1.驱动芯片:全新原装L298N双H桥驱动芯片2.驱动部分端子供电范围VMS:5V30 V3.驱动部分峰值电流Io:2 A4.逻辑部分端子供电范围Vss:3.3-5.5 V5.逻辑部分工作电流范围:047 mA6.控制信号输入电压范围:高电平4.5-5.5V 低电平0 V7.最大功耗:20 W8.存储温度:251309.驱动板尺寸:55 mm*49mm*33mm10.驱动板重量:46 g11.其他功能:控制方向指示灯、电源指示,电流检测,逻辑部分板内取电接口。5.3 功能简图模块提供4输入或者6输入单片机信号,用跳线帽灵活选择,支持PWM调速,支持3.3V单片机,板载上拉电阻,完美解决51单片机IO口驱动能力不够的问题。模块接线方法:IN1-IN4接单片机, ENA,ENB可以用跳线帽选择直接接高电平或者用单片机控制,IN1-IN4提供4个跳线帽选择是否接上10K的上拉电阻,OUT1-OUT2接直流电机1,OUT3-OUT4接电机2,VCC,GND分别接电池盒正负极,当VCC电压大于6V时,+5为输出,可以方便给5V的单片机供电,当VCC电压小于6V时,需拔掉5V_EN跳线帽,外部给+5提供一个5V电压保证298N芯片的正常工作。VCC:理论上可以最高输入46V,但是理论上L298N芯片的最高功率只有25W,在50V最高工作电压时,电流不应超过 0.5A,实际模块上有7805芯片给单片机提供5V,7805的正向工作电压不应超过28V,所以模块VCC理论最大工作电压不应超过28V,实际建议不应该超过24V,在24V工作电压下,单个电机的电流不应超过1A,2个电机同时使用单个电机的电流不应超过0.5 A;VCC输入多少V,完全取决于电机的额定电压,OUT的高电平电压等于VCC,低电平电压等于0V,本公司的减速电机额定电压一般6V,建议VCC用6V的电源,履带车额定电压为5-9V,建议7.2V供电。GND:接地,这个要注意的是,如果和单片机板以及其他系统连一起的时候,整个系统的GND要连一起,如果不连一起,电压就没有一个参考电平,无法进行正常控制。+5:5V输出,模块板载7805,可以方便给单片机以及其他需要5V的系统供电,前提是VCC接大于6V电压的时候,+5 端才有5V输出,如果VCC小于6V,需要拔掉5V_EN跳线帽, +5端输入一个3.3V-5V的电压,因为L298N逻辑部分需要供电。IN1-IN4:接单片机IO口,高低电平分别对应OUT1-OUT4的高低电平;OUT1-OUT4:OUT1、OUT2接电机1,OUT3、OUT4接电机2,OUT1和OUT2有电压差即一个为高一个为低电机才转;ENA:OUT1-OUT2的使能端,高电平有效,低电平禁止,跳线帽接上默认ENA为高电平,一般不用管,如果需要PWM调速,就需要拔掉跳线帽,ENA接单片机IO口;ENB:OUT3-OUT4的使能端,高电平有效,跳线帽接上默认 ENA为高电平,一般不用管,如果需要PWM调速,就需要拔掉跳线帽,ENB接单片机IO口;R1-R4:跳线帽接上,IN1-IN4端加了10K的上拉电阻,跳线帽拔掉,无上拉电阻;OUT1,OUT2和OUT3,OUT4之间可分别接电动机5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。表1是L298N功能逻辑图。由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹停。下图为L298N控制逻辑表表4 L298N控制逻辑表:EAIN1IN2停止0xx正转110反转101刹停111停止1006 遥控赛车系统框图及电路设计6.1系统框图及电路设计遥控接收单元由单片机最小系统和红外接收器、控制对象电路等组成,接收控制器由一个AT89S52芯片作为控制中心,与接收电路和各自的控制电路共同构成。其中接收电路使用一体化红外接收头SM0038, SM0038工作频率为38 kHz,能对收到遥控信号进行放大、检波、整形、解调,得到TTL 电平的编码信号,再送给单片机,经单片机解码并执行相关控制程序 AT89S52单片机电源控制对象红外接收器复位电路L298N驱动晶振电路图18 红外遥控赛车系统框图图19 遥控赛车控制电路图7红外遥控赛车程序设计 7.1红外信号解码设计框图程序开始是对单片机进行初始化设置,循环扫描判断是否有键按下,对SM0038所发出的TTL电平进行解码,遥控信号解码程序流程图如图20所示。接收的数据码与设定的数据码正反码相比较接收的用户码与设定的用户码正反码相比较将一组完整的32个信号接收完毕将一组完整的8个信号接收完毕等待第一位IR高电平信号,如果为低表示还在0或1信号0.56mS高电平上,如果为高表示0或1的高电平信号来临,(即发射源的0或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.88ms左右均可。如果为高电平表示还在引导码9mS高电平结束,45mS低电平避开引导码的低电平,直接检测用户码与数据码。如果为低电平表示还在引导码高电平避开引导码高电平如果为高电平表示信号没来继续等待,高电位是红外接收头的电平NONONONONONONO 图20 程序框图7.2 红外接收软件设计/=中断读取红外键值程序=voidint0(void) interrupt 2unsigned char j,k,N=0;IRdelay(15); if (IRIN=1) return; /确认IR信号出现 while (!IRIN) /等IR变为高电平,跳过导9ms的前低电平信号。 IRdelay(1); for (j=0;j<4;j+) /收集四组数据 for (k=0;k<8;k+) /每组数据有8位 while (IRIN) /等 IR 变为低电平,跳过4.5ms的前导高电平信号。 IRdelay(1);while (!IRIN) /等 IR 变为高电平 IRdelay(1); while (IRIN) /计算IR高电平时长 IRdelay(1); N+; if (N>=30) return; /0.14ms计数过长自动离开。 /高电平计数完毕 IRCOMj=IRCOMj >> 1; /数据最高位补“0” if (N>=8) IRCOMj = IRCOMj | 0x80; /数据最高位补“1” N=0; 结 束 语这是一个磨练意志的过程。从课题的选择开始,到硬件和软件系统的设计,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。一方面通过S52单片机等一些器件的设计让我学习和掌握了单片机技术的基础知识和技术要点,也使以前学的很多知识都得到了运用;另一方面在用Protel 99 SE软件画电路图,这个过程中让我掌握了计算机辅助的设计技术。当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后完成一个合理的设计的过程。需要的是细心和耐心。在很大程度上培养了我拼搏的工作精神。使我受益匪浅,更加明确了自己专业的方向。这次时间是短暂的,但这我想我们学到的应该不仅仅是专业技术等表面上的东西,更深一层的是对人生的感悟,对未来的想法,年轻人的桀骜不驯在此时已经不在有意义,取而代之的是理性的思维。我们应该具备什么样的能力,我们适合什么样的人生,我们应该在怎样的岗位上实现自己的人生价值。实习是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,通过课程设计我们能够比较系统的了解理论知识,把理论和实践相结合,并且用到生活当中。在做设计的过程中总会出现各种问题,在这种情况下我们都会努力寻求最佳路径解决问题,无形间提高了我们的动手,动脑能力,并且同学之间还能相互探讨问题,研究解决方案,增进大家的团队意识。实习是短暂的,影响却是长远的。通过实习让我体会了团队合作的益处,在团队中一起发现问题、讨论问题,共同进步、共同提高。硬件实习主要是我们理论知识的延伸,它的目的主要是要在设计中发现问题,并且自己要能找到解决问题的方案,形成一种独立的意识。我们还能从设计中检验我们所学的理论知识到底有多少,巩固我们已经学会的,不断学习我们所遗漏的新知识,把所学的知识学的更加扎实。在本文的撰写过程中,导师夏雨果给予了悉心的指导和关心,使我克服了众多困难终于完成了毕业设计的撰写工作。导师渊博的知识、严谨求实的治学态度及敬业精神,给我留下了深刻的印象,并将在我今后的人生道路上产生深远的影响,在此论文完成之际,谨向导师致以崇高的敬意和衷心的感谢!再一次感谢所有关心我、帮助我的人!