《基于单片机遥控车制作与工艺》由会员分享,可在线阅读,更多相关《基于单片机遥控车制作与工艺(16页珍藏版)》请在金锄头文库上搜索。
1、电气电气 13111311胡小雪胡小雪题目类型:题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发2016 年 4 月 18 日摘 要本次设计的简易智能电动车,采用 AT89S52 单片机作为小车的检测和控制核心;采用并行口通信控制电动机驱动芯片 L298N,达到用红外遥控方式控制小车前进、后退、左转、右转等操作。该设计电路结构简单、可靠性高,且小车上提供了发光二级管组成的提示系统,各种信息一目了然,搭建了有好的操作界面。关键词:单片机;红外遥控;小汽车引言引言随着电子技术的飞速发展,红外遥控成为目前使用最广泛的一种通信和遥控手段,该装置具有体积小、功耗低、功能强、成本低等特点。
2、红外遥控小车在军事、民用及科学研究等领域得到了广泛的应用。单片机以其强大的控制能力为实现这一愿望提供了切实可行的手段。本设计红外遥控小汽车使用AT89S52 单片机开发板和一些简单的外围电路作为主要驱动装置,用遥控器控制小车作前进,后退,左转,右转等运动。1 1 设计任务设计任务设计一个红外遥控小车。1.1 要求1、用任何遥控控制2、用遥控控制可以向前、向后、向左、向右转。2 2 红外遥控系统红外遥控系统通用红外遥控系统由发射和接受两大部分组成,应用编/解码专用集成电路芯片来进行控制操作。发射部分包括键盘矩阵、编码调制、LED 红外发送器;接受部分包括光、电转换放大器、解调、解码电路。红外遥控
3、示意图如图 1 所示。 图 1 红外遥控示意图2.1 遥控发射器及其编码当发射器按键按下后,既有遥控吗发出,所按的键不同遥控编码也不同,这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为 0.565ms、间隔0.56ms、周期为 1.125ms 的组合表示二进制的“0” ;以脉宽为 0.565ms、间隔1.685ms、周期为 2.25ms 的组合表示二进制的“1” ,其波形如图 2.1 所示。图 2.1 红外波形图上述“0”和“1”组成的 32 位二进制码经 38kHz 的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图 2.1.1
4、 所示。图 2.1.1 红外码示意图产生的遥控编码是连续的 32 位二进制码组,其中前 16 位为用户识别码,能区别不同的电器设备,放置不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制 01H;后 16 位为 8 位操作码(功能码)及其反码。遥控器在案件按下后,周期性地发出同一种 32 位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在 4563ms 之间,图 2.1.2 为发射波形图。图 2.1.2 遥控连发信号波形2.1.2 遥控发射器接受电路图图 2.1.2 遥控发射电路2.2 遥控信号接收接收电路可以使用一种集红外线接收和
5、放大于一体的一体化红外线接收器,不需要任何外界原件,就能完成从红外线接收到输出与 TTL 电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。接收器对外只有 3 个引脚:Out、GND、Vcc 与单片机接口非常方便,如图 2.2 所示。脉冲信号输出接,直接接单片机的 IO 口;GND 接系统的底线(0V) ;Vcc 接系统的电源正极(+5V) ;图 2.2 红外一体化接收头3 3 系统的具体设计与实现系统的具体设计与实现3.1 遥控小车硬件芯片3.1.1 AT89S52AT89S52 为 ATMEL 所生产的一种低功耗、高性能 CMOS 8 位微控
6、制器,具有 8K 在系统可编程 Flash 存储器,引脚如图 3.1.1。其主要功能列举如下:1、拥有灵巧的 8 位 CPU 和在系统可编程 Flash2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)3、内部程序存储器(ROM)为 8KB4、内部数据存储器(RAM)为 256 字节5、32 个可编程 I/O 口线6、8 个中断向量源7、三个 16 位定时器/计数器8、三级加密程序存储器9、全双工 UART 串行通道图 3.1.1 52 单片机管脚图3.1.2 遥控小车控制模块结构图图 3.1.2 遥控小车控制模块3.1.3 遥控小车硬件组成及简单电路原理图 L298 要开小车硬件主
7、要有 2 个直流电机、4 个继电器、二组 5v 电源、 AT89S52 单片机。简单电路原理图 3.1.2 如下:图 3.1.2 简单电路原理图3.2 遥控小汽车控制设计方案运动要求:在设计中要求能用遥控实现小车的前后左右四个方向的运动。遥控可以选用无线遥控和红外遥控。由于红外线遥控不具有像无线电遥控那样穿过障碍物去控制被控对象的能力,所以,在设计家用电器的红外线遥控器时,不必要像无线电遥控器那样,每套 (发射器和接收器 )要有不同的遥控频率或编码 (否则,就会隔墙控制或干扰邻居的家用电器 ),所以同类产品的红外线遥控器,可以有相同的遥控频率或编码,而不会出现遥控信号“串门”的情况。这对于大批
8、量生产以及在家用电器上普及红外线遥控提供了极大的方便。由于红外线为不可见光,因此对环境影响很小,再由红外光波动波长远小于无线电波的波长,所以红外线遥控不会影响其他家用电器,也不会影响临近的无线电设备。所以我决定使用红外遥控的方式。另外红外信号的解码可以用芯片解码也可以使用单片机通过编程软件解码。软件解码需要的外部元件很少,从而可以节约成本。因此我们选择单片机通过编程软件解码。因为红外的遥控很普遍,所以我们选取了一个普通的现成的红外遥控。我们只需要制作接收部分和电机驱动部分。 当按下红外线遥控器上的按钮时单片机的红外接收探头接收到信号发 给单片机,再有单片机控制四个继电器上的高低电平,在通过继电
9、器的工作, 当继电器电路一接通后直流电机的电力形成了闭合回路,直流电机开始工作, 作出相应的运动形式。具体按键控制如下所示:按键功能2前进8后退4左转6右转表 3.2 按键功能表3.3 单片机的调试采用软件解码,单片机的程序调试就格外重要。要想用单片机控制小车的运动,首先要知道遥控器的按键码值。为此,我编写程序,用1602LCD显示遥控器的按键码值(程序见附录)。其流程如图 3.3图 3.3 程序流程图如此实验多次可得遥控的按键码值,确定了按键码值。4 4 实验原理实验原理单片机解码原理:利用单片机的中断系统来实时接收红外信号,利用定时器来计算红外信号高低电平的持续时间来控制,然后编程把解出来
10、的红外码转换成 16 进制码。根据解出的不同的 16 进制码确定下一步动作。电机驱动原理:由于单片机本身提供的电压低电流小,所以在控制电路中有着明显的不足之处,主要表现在红外遥控距离一长时小车就会出现不被控制的情况。针对这个问题我想了很久后决定在外围加上 5v 电源驱动控制电机,从而能达到遥控目的。在外围加上 5v 后的电机运转速度和遥控距离明显有了与之前不同的运动状,表现出了动力强遥控性能好的特点。5 5 系统系能测试系统系能测试为了保证电路万无一失,我们先用万用版制作了图 3.2.1 所示的单片机最小系统,并且用杜邦线将单片机 IO 口与直流电机和红外一体化接头按图3.1.2(省略了所以电
11、容及二极管)连接好。 由于电路简单,采用了万用表来测量各脚的电压。将编写好的程序录入单片机实验,实验数据如表 5 按 2 键按 8 键按 4 键按 6 键按 2、4 键按 2、6 键按 8、4 键按 8、6 键 P21 电 压4.950004.954.9400P22 电 压04.8900004.844.89P23 电 压004.7904.7904.740P24 电 压0004.9904.9704.92表 5 实验数据表经过多次实验,数据相差均不超过 0.1V,故认为方案可行。小车制作出来后,发现除了 5 键,各个按键灵敏度都不错,此纯系遥控器按键不灵所至,偶尔电机迟缓动作也是由于小车电机齿轮老
12、化。本小车制作成功。采用单一单片机结构,用软件商的多任务结构是系统同时去执行多个操作,提高了 CPU 得利用率和系统的灵活性。该设计具有结构轻巧、操作简单、维护方便、成本低、可靠性高等优点,有一定得开发利用前景。6 结论结论采用单一单片机结构,用软件商的多任务结构是系统同时去执行多个操作,提高了 CPU 得利用率和系统的灵活性。该设计具有结构轻巧、操作简单、维护方便、成本低、可靠性高等优点,有一定得开发利用前景。可应用于各个电子产业领域,有着简单、实用、安全、实时性强的高性能特点。可广泛应用于普通家电电器产品和工业小型机械产品。参考文献1 李华 MCS-51 系列单片机实用接口技术北京:航天航
13、空大学出版社,1999.2 李建华.使用遥控原理与制作.北京:人民邮电出版社,19962 邱关源.电路.高等教育出版社,1989.第三版.2 龚淑秋,李忠波.电子技术(非电类专业)M.北京:机械工业出版社,2010.7:2062592 龚淑秋,李忠波.电子技术(非电类专业)M.北京:机械工业出版社,2010.7:206259附 录:单片机程序单片机程序#include #definec(x)(x*110592/120000) unsigned char Ir_Buf4; sbit IRIN = P32; unsigned char IRCOM7; void IRdelay(unsigned c
14、har x); unsigned char keys=0xff; sbit motor=P20; sbit zheng=P21 ; sbit fan=P22; sbit left=P23; sbit right=P24; void delay1ms(int); void inc(); void dec(); void go(); void back(); void turn_lef(); void turn_rig(); void stop(); char on=0; char a,b,c,d;=主程序= / main() IE=0x81; TCON=0x01; motor=0; while(
15、1) switch(keys) case 0xF3:go();break; case 0xA1:back();break; case 0xF7:turn_lef();break; case 0xA5:turn_rig();break;case 0xE7:inc();break; case 0xAD: dec();break; case 0xE3:stop();break; default:break; motor=0; delay1ms(100-on); motor=1;delay1ms(on); /=中断读取红外键值程序= void int0(void) interrupt 0 unsigned char j,k,N=0;IRdelay(15);if (IRIN=1) return; /确认 IR 信号出现while (!IRIN) /等 IR 变为高电平,跳过 9ms 的前导低电平信号。IRdelay(1);for (j=0;j=30) return; /0.14ms 计数过长自动离开。 /高电平计数完毕 IRCOMj=IRCOMj 1; /数据最高位补“0”if (N=8) IRCOMj = IRCOMj | 0x8