基于单片机的红外遥控小车设计.doc

上传人:可****阿 文档编号:30713001 上传时间:2022-08-06 格式:DOC 页数:24 大小:1.21MB
返回 下载 相关 举报
基于单片机的红外遥控小车设计.doc_第1页
第1页 / 共24页
基于单片机的红外遥控小车设计.doc_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《基于单片机的红外遥控小车设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的红外遥控小车设计.doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 单片机系统设计实例红外遥控小车专业:信息对抗技术: 吴志飞学号:1411050121指导教师:张东阳学习文档 仅供参考目 录1 绪论12 系统分析2 系统框架2 电机驱动模块32.3 LCD显示模块43 系统硬件设计5 主控模块的电路设计6 AT89C51单片机的简介8 AT89C51管脚功能8 红外遥控模块的电路设计9 红外遥控的实现原理10 红外发射器11 红外接收器12 电机驱动模块的电路设计12 显示模块的电路设计134 系统软件设计14 程序代码14 软件流程图175 调试与仿真18 在keil中进行调试18在Proteus中进行仿真196 总结21参考文献22学习文档 仅供参考1

2、 绪论随着电脑、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,,智能化程度越来越高,应用范围也越来越广,包括海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。智能电动小车系统以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、电脑、机械等多个学科。主要由路径识别、角度控制及车速控制等功能模块组成。同时,当今机器人技术发展的如火如荼,其在国防等众多领域的应用广泛开展。神五、神六升天、无人飞船等等无不得益于机器人技术的迅速发展。一些发达国家已把机器人制作比赛作为创新教育的战略性手段,参加者多数为学生,目的在于通过大赛全面培养学生的动手能力、创造能力、合

3、作能力和进取精神,同时也普及智能机器人的知识。从某种意义上来说,机器人技术反映了一个国家综合技术实力的高低,而智能电动小车是机器人的雏形,它的控制系统的研制将有助于推动智能机器人控制系统的发展,同时为智能机器人的研制提供更有利的手段。本次课设设计的红外遥控智能小车可以分为四大组成部分:红外遥控部分、显示部分、执行部分、控制部分。智能小车可以实现按遥控指示前行,后退,左转和右转。该设计主要通过对系统硬件电路的设计,软件设计和程序的编写,然后通过后期软硬件调试到达设计初衷。2 系统分析2.1 系统框架该系统以AT89C51单片机为核心的控制电路,采用模块化的设计方案,利用红外遥控器代替开关按键控制

4、小的启动和停止,能够轻松自如的实现小车的启动停止、左转、右转和前进后退等功能。系统控制框图如图2-1所示: AT89C51红外遥控模块红外接收模块LCD显示模块电机驱动模块最小系统图2.1 系统控制框图采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。 电机驱动模块常用的电机驱动电路有采用功率三极管作为功率放大器的输出控制直流电

5、机,其线性型驱动的电路结构和原理简单,加速能力强;采用由达林顿管组成的H型桥式电路,用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,带负载能力强;采用集成H桥L298N电路驱动电机,使用方便可靠。本次设计采用L298N作为电机驱动部分,其主要特点有:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A;内含两个H桥的高电压大电流全桥式驱动器,既可以驱动直流电机,也可以驱动步进电机;逻辑“0”输入电压高达,具有高抗噪性能。其引脚排列如下列图所示: 图2.2 L298管脚排列图现对L298各个引脚及其功能

6、做一简要说明。CURRENT SENSING A(1脚)、CURRENT SENSING B(15脚):电流检测端,分别为两个H桥的电流反馈脚,不用时可以直接接地。OUTPUT1(2脚)、OUTPUT2(3脚):电桥A的输出端。Vs驱开工作电压,典型值为9V或12V。INPUT1(5脚)、INPUT2(7脚):电桥A的输入控制端,与TTL电平兼容。ENABLE A(6脚)、ENABLE B(11脚):电桥A和电桥B的使能端。高电平使能,低电平禁止输出。GND(8脚):接地。Vss:逻辑电源电压,典型值为5V。INPUT3(10脚)、INPUT4(12脚):电桥B的输入控制端。OUTPUT3(1

7、3脚)、OUTPUT4(14脚):电桥B的输出端。 LCD显示模块常用的数码显示器件主要有LED数码显示器和LCD液晶显示器。LCD显示器具有低功耗、散热小、浅薄轻巧、显示锐利、屏幕调节方便等特点,同时又是现在市场的主流产品,价格较以往也有大幅的下降。常用的有12864和1602考虑到价格和实用性最终选择了1602液晶屏,既可以满足产品需要价格也相对低廉。 图2.3 LCD 1602管脚排列图各引脚功能说明如下:Vss:电源地。Vcc:电源正极。RS: 寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。R/W: 读写信号线,高电平时进行读操作,低电平时进行写操作。E: 使能端,当E从高电

8、平跳转到低电平时有效。D0-D7:8位双向数据线。3 系统硬件设计3.1 主控模块的电路设计3.1.1 AT89C51单片机的简介51系列单片机的内部功能可由图3.1所示的框架来描述。 51系列单片机内部组成功能图1.中央处理器CPUCPU又称微处理器,或中央处理器,是单片机的核心部件,它决定了单片机的主要功能特性。CPU负责控制、指挥和调度整个系统单元协调工作,完成运算和控制输入输出功能。CPU就像人的大脑一样,决定了单片机的运算能力和出理速度。2.程序存储器ROMROM是只读存储器的简称,是一种只能读出事先所存数据的固态半导体存储器,用来存放用户程序,可分为EPROM、EEPROM、Mas

9、kROM、OTP ROM和Flash ROM等。3.随机存储器RAM RAM是随机存储器的简称,用来存放运行程序的地址和数据,由于RAM的制造工艺复杂,价格比ROM高得多。当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入静态随机存取存储器例如硬盘。RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会动消失,可以长时间断电保存。4.可编程并行输入输出I/O口 可编程并行输出口通常作为独立的双向I/O口使用,既可作为输入方式,又可作为输出方式,通过软件设定实现。I/O口是单片机的重要资源,也是衡量单片机功能的重要指标。5.定时计数器T/C定

10、时/计数器用于单片机内部精确定时或对外部信号或脉冲计数,通常单片机内部有多个定时计数器。6中断系统中断系统使技术安吉的重要组成部分。实时控制中往往用到中断系统,电脑与外部设备传送数据及实现人机联系时要用到中断系统。7.时钟电路 单片机通常需要外接石英晶振或其他振荡源提供时钟信号输入,也有的使用内部RC震荡器。3.1.2 AT89C51管脚功能51系列单片机最常用的是40引脚集成电路芯片,由于单片机是一个芯片,体积较小,为了增其功能,许多引脚具有两个功能,其引脚功能如下列图所示。图 单片机引脚功能图1.主电源引脚Vcc40脚:接+5V电源;Vss20脚:接数字电路地。2.外接晶体引脚XTAL11

11、9脚:接石英晶体一端;XTAL218脚:接石英晶体另一端。3.输入输出引脚P0口32-39脚:P0.0-P0.7统称为P0口,是一组8位漏极开路型双向型I/O口,也是地址/数据复用总线。P1口1-8脚:P1.0-P1.7统称为P1口,是一组带内部上拉电阻的8位准双向I/O口。P2口21-28脚:P2.0-P2.7统称为P2口,是一组带上拉电阻的8位双向I/O口。在接有片外存储器或扩展I/O口且寻址范围超过256B时,P2口用作8位地址总线。P3口10-17脚:P3.0-P3.7统称为P3口,是一组带内部上拉电阻的8位双向I/O口。除此之外,还可以将每一位用作第二功能。4.控制信号引脚RET/V

12、PD9脚:该引脚为单片机的上电复位端或掉电保护段。ALE30脚:地址锁存有效信号输出端,高电平有效。EA/Vpp31:片外程序存储器选用段,低电平有效。高电平时选用片内程序存储器。3.2 红外遥控模块的电路设计 红外遥控的实现原理“0”“1”。 解码的关键也是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,假设读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比

13、0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取1.12ms+0.56ms/2=0.84ms最为可靠,一般取0.84ms左右均可。 根据码的格式,应该等待9ms的起始码和4.5ms的结束码完成后才能读码。红外遥控系统主要分为调制、发射和接收三部分。红外遥控芯片将红外码调制成合适的脉冲信号经红外发射二极管发射红外编码后由红外接收器把接收到的信号处理后输出给单片机。红外遥控的流程图如图3-5所示。键盘编码调制LED光/电放大解调解码遥控接收器图3.3 红外遥控系统框图遥控发射器红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体

14、积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 红外发射器 该电路的主要控制器件为遥控器芯片HT6221。HT6221是Holtek公司生产的多功能编码芯片,采用脉冲位置调制PPMPulse Position Modulation进行编码,利用脉冲的时间间隔来区分0和1。1.12ms为0,2.24ms为1。 HT6221能编码16位地址码和8位数据码,最多能同时支持32个开关键。HT6221键码的形成:

15、当一个键按下超过36ms,振荡器使芯片激活,如果这个按键按下且延迟大约108ms,这108ms发射代码由一个起始码9ms,一个结果码4.5ms,低8位地址码9ms18ms,高8位地址码9ms18ms,8位数据码9ms18ms和这个8位数据码的反码9ms18ms组成,如果按键按下超过108ms仍未松开,接下来发射的代码将仅由起始码9ms和结束码2.5ms组成。红外遥控发射器电路图如图3-6所示。HT6221采用455KHZ的晶振,利用分频电路将红外码调制成38KHZ的脉冲信号通过红外发射二极管发出红外编码。红外码共有32位起始码、结束码、用户码数据码和数据反码图3-6中D1是红外发射二极管,D2

16、是按键指示灯,当有按键按下时D2点亮。各个开关的功能分别为:K1前进;K2后退;K3左转,K4右转,K5停止。K6、K7、K8暂时无指定功能。图 遥控发射器电路原理图图 红外接收器 红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。内部电路包括红外监测二极管,放大器,限幅器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不管红外发射器和接收器的距离远近。交流信号进入带通滤波器,带通滤波器可以通过30KHZ到60KHZ的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,复原出发射端的信号波形

17、。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。该模块使用红外接收头1838,有三个引脚,包括供电脚,接地和信号输出脚。其电路如图3-7所示。瓷片电容104为去耦电容,滤除输出信号的干扰。1端是解调信号的输出端,直接与单片机的P3.2口相连。有红外编码信号发射时,经红外接头处理后,输出为检波整形后的方波信号,并直接提供应单片机,执行相应的操作来到达控制电机的目的。图 红外接收硬件图3.3 电机驱动模块的电路设计该模块主要芯片L298,其可以同时控制两个电机的正反转,以及改变电机的转速,足以满足设计要求。L298是SGS公司的产品,比较常见的是15脚Multiwatt封装

18、的L298,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298芯片是一种高压、大电流双全桥式的驱动器。其中SENSEA、SENSEB分别为两个H桥的电流反馈脚,不用时可以直接接地。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。

19、通过调节IN1,IN2,IN3,IN4之间输入的高低电平的变化来实现电动机MG1和MG2的正反转动,从而实现小车的前进、后退、左转和右转等功能。当IN1输入低电平时,电机MG1正转;当IN2输入低电平时,电机MG1反转;当IN3输入低电平时,电机MG2正转;当IN4输入低电平时,电机MG2反转。高电平输入时,电机不工作。D1D8是保护二极管IN5819,用于释放掉电机紧急制动停车时产生的反向尖峰电势,起到保护L298不被损坏的作用。电机驱动模块的电路图如图3-8所示: 图3.6 电机驱动电路原理图 显示模块的电路设计本系统采用14脚的1602型号的LCD显示器。其电路原理图如图3.7所示,图中

20、RP1是9个插针作为排阻封装的上拉电阻,主要是对器件1602注入电流,把不确定信号通过电路钳位在高电平,同时也起到限流的作用。1602LCD显示器的D0D8分别接在单片机的P0口,RS引脚高电平输入时输入数据,低电平输入时输入指令,接在单片机的P口。RW引脚低电平输入时向LCD写入指令或数据,高电平输入时从LCD读取信息,接在单片机的口。E引脚使能信号,高电平输入时读取信息,高电平向低电平转换时执行指令,接在单片机的口。 图3.7 LCD显示电路原理图 学习文档 仅供参考4 系统软件设计4.1 程序代码学习文档 仅供参考#include #include #define uint unsign

21、ed int #define uchar unsigned char sbit RS=P20; sbit RW=P21; sbit E =P22; sbit ENA=P27; sbit ENB=P30; sbit IN1 = P23; sbit IN2 = P24; sbit IN3 = P25; sbit IN4 = P26; uchar cycle=100; uchar speed=80; uchar code tab =LCD 1602;/初始化uchar code tab0=Smart Car ;/初始化 uchar code tab1= Go Along;/前进 uchar code

22、 tab2= Go Back; /后退 uchar code tab3= Go Left; /左转uchar code tab4= Go Right; /右转uchar code tab5= Stop; void Delay(uint t) /延时函数 int i,j; for(i=110;i0;i-) for(j=t;j0;j-); void t0(void) interrupt 1 if(cycle100) cycle=0; if(speedcycle) ENA=ENB=0;elseENA=ENB=1;cycle+; void lcd_wcmd(uchar cmd) /写指令 RS=0;

23、RW=0; E=0; Delay(5); E=1; P0=cmd; Delay(5); E=0; void lcd_wdat(uchar dat) /写数据 RS=1; RW=0;E=0;Delay(5); E=1; P0=dat; Delay(5); E=0; void lcd_init() /LCD初始化 lcd_wcmd(0x38); /8位总线,双行显示 Delay(1); lcd_wcmd(0x01); /清屏 Delay(1); lcd_wcmd(0x06); /数据读写屏幕画面不动 Delay(1); lcd_wcmd(0x0c); /开显示,无光标,不闪烁 Delay(1);

24、void main() /主函数 int i; EA=1; ET0=1; TMOD=0X02; TH0=0XA3; TL0=0XA3; TR0=1; lcd_init(); /初始化液晶 Delay(5); P1=0XFF; lcd_wcmd(0x80); /第一行内容 for(i=0;i16;i+) lcd_wdat(tab0i); lcd_wcmd(0xC0); /第二行内容 i=0; while(tabi!=0) lcd_wdat(tabi); i+; while(1) i=0; if(P1=0XFE) /前进 lcd_wcmd(0x01); /清屏 lcd_wcmd(0x80); /在

25、液晶的第一行写入 for(i=0;i16;i+) lcd_wdat(tab1i);/写入的内容 lcd_wcmd(0XC0);/第二行 i=0; for(i=0;i16;i+) lcd_wdat(tabi); /第二行内容 IN1 = 0; /电机转动函数 IN2 = 1; IN3 = 0; IN4 = 1; if(P1=0XFD) /后退 lcd_wcmd(0x01); /清屏 lcd_wcmd(0x80); /在液晶的第一行写入i=0; for(i=0;i16;i+) lcd_wdat(tab2i);/写入的内容 lcd_wcmd(0xC0);/第二行 i=0; for(i=0;i16;i

26、+) lcd_wdat(tabi); /第二行内容 IN1 = 1; /电机转动函数 IN2 = 0; IN3 = 1; IN4 = 0; if(P1=0XFB) /左转 lcd_wcmd(0x01); /清屏 lcd_wcmd(0x80); /在液晶的第一行写入i=0; for(i=0;i15;i+) lcd_wdat(tab3i);/写入的内容 lcd_wcmd(0x80+0x40);/第二行 i=0; for(i=0;i16;i+) lcd_wdat(tabi); /第二行内容 IN1 = 0; /电机转动函数 IN2 = 0; IN3 = 0; IN4 = 1; if(P1=0XF7)

27、 /右转 lcd_wcmd(0x01); /清屏 _wcmd(0x80); /在液晶的第一行写入i=0; for(i=0;i15;i+) lcd_wdat(tab4i);/写入的内容 lcd_wcmd(0xC0);/第二行 i=0; for(i=0;i16;i+) lcd_wdat(tabi); /第二行内容 IN1 = 0; /电机转动函数 IN2 = 1; IN3 = 0; IN4 = 0; if(P1=0XEF) /停止 lcd_wcmd(0x01); /清屏 lcd_wcmd(0x80); /在液晶的第一行写入 i=0; for(i=0;i9;i+) lcd_wdat(tab5i);/

28、写入的内容 lcd_wcmd(0XC0);/第二行 i=0; for(i=0;icycle Cycle100Cycle+开 始Y结 束N执行相应操作有按键按下?LCD初始化定时器初始化开 始 图4.1 软件流程图学习文档 仅供参考5 调试与仿真5.1 在keil中进行调试 1创建“智能小车”项目,选择单片机型号为AT89C51,汇编源程序,保存为“智能小车.C”。2将源程序添加到项目中。3打开项目菜单,选择Options for targettarget 1选项,点击output一项,在Create HEX File前打上对勾。4编译源程序,如果有问题,则需要调试修改,假设没有错误,则成功创建

29、“智能小车.HEX”文件。 图1.3 编译成功提示图 图5.1 编译成功图在Proteus中进行仿真打开Proteus软件,用左键单击单片机,在出现的对话框中,添加“智能小车.HEX”文件,开始仿真,效果如下列图所示。按下开始后,系统初始化如下列图所示:图 初始化 按下前进按钮,系统仿真结果如下列图所示: 图 前进按下左转按钮,仿真结果如下列图所示: 图 右转按下停止按钮,仿真结果如下列图所示: 图 停止6 总结 不知不觉一个学期又要接近尾声,感觉时间过得好快,但也感觉过的很充实,这一学期真的学到了感兴趣的东西。在大二的时候,我就了解过单片机这门课程,当时想要自学,在图书馆找了一本书,坐在那里

30、,看了两个小时,本来信心满满,打算攻坚克难,在单片机的海洋里徜徉,谁知,这两个小时硬是把我学习的心情破坏了。以后就再也没看过相关的书籍。转眼间,大三了,这次想逃都逃不过了,就算不想学也要硬着头皮去上课。还记得第一节课张老师给我们填了一个表,说您的教学方法与众不同,只要跟着您学习单片机,就一定能学会。我当时半信半疑,信是因为您说的那么诚恳,疑是因为觉得这门课太难学了。既然这么样都是学,那就跟着您学呗!一学果然就停不下来了,从I/O口学到定时中断,从接口芯片到测控技术,一节课都不敢落下。学到现在,我可以信心满满的说单片机学的还不错,已经算是入门了吧。很多人都说单片机枯燥乏味难学,但您硬是把我们教会

31、了。我知道,这不是一种偶然,您在背后付出了多少汗水,挺过了多少艰难,我们都看不见,您也不会说。您是一个敢想敢做,敢于付出,不计回报的好老师。您的教学处处以学生为中心,您注重引导而不是灌输。例如您把汇编语言放在单片机的四大难点后面让学生讲,一方面防止了在学汇编过程中失去信心,另一方面让我们在学习的过程中发现自己的不足,让我们主动去学习。这样学下来,不仅不会失去信心,而且越学越有意思,越学越想学。再如您让我们写感想与总结、建议与意见,一开始也许觉得可有可无,但随着学习的不断深入,很多问题都会涌现出来,我们只有通过不断的反思自己,不断的提出问题,才能有可观的进步。您的用心良苦,您的大爱之心,您的默默

32、付出是我们的幸运,幸运遇到了您,遇到了这么可亲可敬的您!而我们能为您做的却少之又少,也许我们只有通过不断地进步,才不会让您失望吧。张老师,这是我对您的一个评价:为人师,不计回报创新教;勇担当,含辛茹苦育人才。最后,希望您在以后的教学生涯中顺风顺水,硕果累累。参考文献1 杨永辉现代电子技术 .智能小车的多传感器数据融合,20052 何立民单片机与嵌入式系统应用.基于HCS12的小车智能控制系统设计,2007程序设计.北京:清华大学出版社,2005,74 张立电子世界.电动小车的循迹,2004 5 武庆生,仇梅.单片机原理与应用.电子科技大学出版,1998,126 徐科军传感器与检测技术.电子工业出版社,20077 刘瑞新.单片机原理及应用教程 .机械工业出版社,2003,7学习文档 仅供参考学习文档 仅供参考

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁