红外遥控小车的设计
- 格式:doc
- 大小:5.77 MB
- 文档页数:6
毕业设计论文-红外线控制电动小车1 引言1.1 研究背景与意义随着现代电子技术和自动化技术的飞速发展,红外线遥控技术因其操作简便、抗干扰能力强、低功耗等特点在众多领域得到了广泛应用。
电动小车作为现代交通工具的一种,其控制系统的智能化、远程化成为研究热点。
红外线控制电动小车将红外线遥控技术与电动小车相结合,使得小车操作更为便捷,控制更为精确,尤其在特殊环境下,如危险区域的远程探测和物品搬运,具有显著的应用价值。
1.2 研究目的与内容本文旨在设计并实现一种基于红外线控制的电动小车。
研究内容包括:红外线控制技术的原理及其在电动小车上的应用;电动小车的硬件设计,主要包括电动机选型与驱动、电源与控制系统设计;电动小车的软件设计,包括红外线接收与解码、速度与方向控制算法等。
1.3 研究方法与论文结构本研究采用理论与实验相结合的方法,首先对红外线控制技术进行概述,分析电动小车的结构与功能需求,进而设计并实现相应的硬件和软件系统。
论文结构如下:第二章介绍红外线控制技术的基本原理及发展应用;第三章详细阐述电动小车的硬件与软件设计;第四章进行系统测试与分析;第五章对论文研究进行总结,指出不足,并对未来发展进行展望。
2. 红外线控制技术概述2.1 红外线基本原理红外线是一种电磁波,位于可见光与微波之间,波长范围约为700纳米到1毫米。
红外线的发现归功于天文学家威廉·赫歇尔在19世纪早期的实验。
红外线具有热效应,能够被许多物体吸收并转化为热能,这一特性使其在通信和控制技术中得到了广泛应用。
红外线遥控技术基于红外线的传输特性,通过发射和接收红外线信号来实现远距离控制。
其基本原理是利用红外发射二极管发射调制后的红外信号,经过空气传播后,由红外接收器接收并解调,最终将信号传送到控制电路进行处理。
2.2 红外线遥控技术的发展与应用红外线遥控技术自20世纪60年代问世以来,已广泛应用于家电遥控、工业控制、智能家居等领域。
红外线控制小车课程设计一、课程目标知识目标:1. 让学生了解红外线的基本概念,掌握红外线通信的原理;2. 帮助学生理解小车控制系统的组成,掌握红外线控制小车的基本步骤;3. 使学生掌握简单程序编写,了解程序与红外线控制小车之间的关联。
技能目标:1. 培养学生动手操作能力,能够独立完成红外线控制小车的组装;2. 培养学生运用编程软件进行程序编写和调试的能力,实现红外线控制小车的功能;3. 提高学生团队协作和问题解决的能力,通过分组合作完成红外线控制小车的制作。
情感态度价值观目标:1. 培养学生对科学技术的兴趣,激发他们探索未知领域的热情;2. 培养学生勇于尝试、不断探索的精神,增强克服困难的信心;3. 培养学生团队意识,学会尊重和信任他人,提高沟通与协作能力。
课程性质:本课程属于实践性较强的综合课程,结合物理、信息技术等多学科知识。
学生特点:学生具备一定的物理知识和信息技术基础,对动手实践有较高的兴趣。
教学要求:教师需注重理论与实践相结合,引导学生主动探究,关注学生个体差异,提供有针对性的指导。
通过课程学习,使学生达到预定的学习目标,培养其创新精神和实践能力。
二、教学内容1. 红外线基础知识:红外线的定义、特性、应用领域;2. 红外线通信原理:红外线发射与接收的原理,红外编码和解码;3. 小车控制系统的组成:电机驱动、传感器、控制器等;4. 红外线控制小车制作:选材与组装、电路连接、程序编写与调试;5. 教学实例:结合教材实例,讲解红外线控制小车的基本步骤和应用。
教学大纲安排:第一课时:红外线基础知识,介绍红外线的定义、特性及应用领域;第二课时:红外线通信原理,讲解红外线发射与接收的原理,学习红外编码和解码;第三课时:小车控制系统的组成,分析电机驱动、传感器、控制器等组件的作用;第四课时:红外线控制小车制作(一),选材与组装,学习电路连接方法;第五课时:红外线控制小车制作(二),程序编写与调试,实现红外线控制小车的功能;第六课时:教学实例分析,通过实例巩固所学知识,提高实际应用能力。
基于51单片机的红外遥控小车设计和制作红外遥控小车设计和制作是一个有趣且实用的项目。
本文将介绍一个基于51单片机的红外遥控小车的设计方案和制作过程。
设计方案:1.硬件设计:-采用STC89C52单片机作为控制核心,具有良好的性能和稳定性。
-红外接收器模块:用于接收红外信号并将其转换为电信号。
-直流电机:用于驱动小车的轮子,实现前进、后退、转弯等动作。
-驱动电路:将单片机的输出信号转换为合适的电流和电压来驱动电机。
-电源:使用锂电池作为电源,提供所需的电能。
2.软件设计:-红外信号解码:将接收到的红外信号进行解码,并判断是前进、后退、转弯等命令。
-控制逻辑:根据解码结果产生相应的电信号,驱动电机实现小车的相应动作。
-响应机制:处理红外信号的时延和干扰,避免误操作或信号丢失。
制作过程:1.连接电路:-将STC89C52单片机与电源、红外接收器模块和驱动电路连接。
确保连接正确、稳定。
-连接直流电机和驱动电路,通过电路板或者线缆进行连接,确保电机可以正确驱动。
2.烧录程序:- 使用Keil C编译器编写控制程序,并将程序通过编程器烧录到STC89C52单片机中。
3.完善控制逻辑:-在控制程序中添加红外信号解码和控制逻辑代码,使小车能够根据接收到的红外信号做出相应动作。
4.调试和测试:-将红外遥控器对准红外接收器模块,发送不同的红外信号,确保小车能够正确接收和处理信号。
-确保小车能够根据接收到的信号做出正确的动作,如前进、后退、转弯等。
5.完善功能:-可以根据实际需求添加其他功能,如声控、避障、图像识别等,提升小车的智能性和功能性。
通过以上设计和制作过程,一个基于51单片机的红外遥控小车就可以完成。
这个小车可以通过红外遥控器进行远程控制,并实现前进、后退、转弯等动作。
它可以在室内或者室外进行运行,并具有一定的智能性和便携性。
这个项目不仅可以培养学生的动手能力和创造力,还可以加深对电子电路和嵌入式系统的理解和掌握。
红外遥控小车系统设计目录摘要 (1)关键词 (1)Abstract.......................................................................................................... 错误!未定义书签。
Key words: ..................................................................................................... 错误!未定义书签。
1 系统设计 (1)1.1 主控系统 (1)1.2 红外遥控器 (2)1.2.1 红外遥控器的组成 (2)1.2.2 实现原理 (3)1.2.3 解码方法 (4)1.3 红外循迹模块 (7)1.3.1 原理 (7)1.3.2 组成 (7)1.3.3 电压比较器 (8)1.4 红外壁障模 (8)1.4.1 红外蔽障的原理 (9)1.4.2 优点 (9)1.4.3 缺点 (9)1.5 驱动模块 (10)1.5.1选用芯片及原理图 (10)1.5.2产品参数 (10)1.5.3实物图 (11)2 结果与分析 (11)2.1 红外控制模块 (11)2.2 循迹的结果分析 (12)2.3 壁障模块分析 (12)2.4 调速的方法 (12)2.4.1直流调速系统的选择 (12)2.4.2 PWM调速系统的优点 (13)3 结语 (13)3.1 改进意见 (13)3.2 设计的实用性 (13)致谢 (13)参考文献 (13)附录程序:..................................................................................................... 错误!未定义书签。
程序一:......................................................................................................... 错误!未定义书签。
基于51单片机的红外遥控小车设计和制作本文介绍一款红外线遥控小车,以AT89S51单片机为核心控制器,用L289驱动直流电机工作,控制小车的运行。
本款小车具有红外线遥控手动驾驶、自动驾驶、寻迹前进等功能。
本系统采用模块化设计,软件用C语言编写。
一、设计任务和要求以AT98C51单片机为核心,制作一款红外遥控小车,小车具有自动驾驶,手动驾驶和循迹前进等功能。
自动驾驶时,前进过程中可以避障。
手动驾驶时,遥控控制小车前进、后退、左转、右转、加速等操作。
寻迹前进时小车还可以按照预先设计好的轨迹前进。
二、系统组成及工作原理本系统由硬件和软件两部分组成。
硬件部分主要完成红外编码信号的发射和接受、障碍物检测、轨迹检测、直流电机运行的发生等功能。
软件主要完成信号的检测和处理、设备的驱动及控制等功能。
AT89S51单片机查询红外信号并解码,查询各个检测部分输入的信号,并进行相应处理,包括电机的正反转,判断是否遇到障碍物,判断是否小车其那金中有出轨等。
系统结构框图如图1所示。
图1 系统结构框图三、主要硬件电路1、遥控发射器电路该电路的主要控制器件为遥控器芯片HT6221,如图2所示。
HT6221将红外码调制成38KHZ的脉冲信号通过红外发射二极管发出红外编码。
图2中D1是红外发射二极管,D2是按键指示灯,当有按键按下时D2点亮。
HT6221的编码规则是:当一个键按下超过36ms,振荡器使芯片激活,如果这个按键按下且延迟大约108ms,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9~18ms),8位数据码(9~18ms)和这8位数据码的反码(9~18ms)组成,如果按键按下超过108ms仍未松开,接下来发射的代码将仅由起始码(9ms)和结束码(2.5ms)组成。
按照上图的接法,K1~K8的数据码分别为:0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07。
基于单片机的红外遥控智能小车设计引言:随着科技的不断发展,智能物联网已经走进了我们的生活。
智能小车作为一种智能化的产品,能够实现远程遥控、自动避障等功能,受到了广大消费者的青睐。
本文就基于单片机的红外遥控智能小车设计进行详细介绍。
一、设计目标本设计的目标是通过红外遥控,实现对智能小车的远程控制,小车能够根据收到的指令进行行驶、避障等操作。
二、设计原理1.主控芯片:本设计使用单片机作为主控芯片,常用的单片机有51系列、AVR系列等,可根据实际需求选择合适的芯片型号。
2.红外遥控模块:红外遥控模块是实现红外通信的设备,可以将遥控器发出的红外信号解码成数据,实现遥控操作。
3.电机驱动模块:电机驱动模块可将单片机的PWM信号转化为电机的动力驱动信号,控制小车的行驶方向和速度。
4.超声波传感器:超声波传感器可以感知到小车前方的障碍物距离,根据测得的距离,进行相应的避障操作。
5.电源模块:小车需要使用适当的电源,通常是锂电池或者直流电源供应。
三、系统设计1.硬件设计:(1)搭建小车底盘:根据所选择的底盘,搭建小车结构,并安装好电机驱动模块、电源模块等硬件设备。
(2)连接电路:将红外遥控模块、超声波传感器等硬件设备与主控芯片进行连接,确保每个模块正常工作。
2.软件设计:(1)红外遥控程序设计:通过红外遥控模块接收红外信号,并解码成相应的指令。
根据指令控制电机驱动模块,实现小车的行驶方向和速度控制。
(2)超声波避障程序设计:根据超声波传感器测得的距离,判断是否有障碍物,如果有障碍物就停止或者转向。
四、实验结果和讨论经过实验验证,本设计的红外遥控智能小车能够准确接收红外信号,并根据指令控制小车的行驶方向和速度。
同时,超声波传感器能够及时感知到前方的障碍物,并进行相应的避障操作。
然而,该设计仍然存在一些不足之处,比如超声波传感器的测距范围有限,可能无法感知到较小的障碍物。
此外,红外遥控信号的传输距离也有一定限制,需要保持遥控器与小车之间的距离不过远。
基于单片机的红外遥控小车设计本文将详细介绍基于单片机的红外遥控小车设计。
小车采用红外遥控技术,能够实现远程控制和执行各种动作。
首先,将介绍设计的硬件和软件部分。
然后,将详细描述小车的功能和实现过程。
最后,将对设计进行总结和展望。
硬件部分主要由以下组成:单片机、红外接收器、电机驱动器、电机和电源。
单片机是控制整个系统的核心部件,负责接收红外信号,解码并执行相应的动作。
红外接收器用于接收红外信号并传输给单片机进行解码。
电机驱动器用于控制车辆的运动,根据单片机的指令控制电机的速度和方向。
电机则负责提供车辆的动力。
电源则提供整个系统的电能供应。
软件部分主要由以下组成:单片机的程序和红外信号的解码。
单片机的程序是使用C语言编写的,负责接收红外信号并判断相应的指令。
红外信号的解码则是将红外接收器接收到的信号转换成数字信号,使单片机能够理解和执行。
小车的功能包括前进、后退、左转、右转和停止。
远程控制器上的按键对应不同的指令,通过红外遥控技术将指令发送给红外接收器。
红外接收器接收到指令后,传输给单片机进行解码。
单片机根据指令控制电机驱动器,使小车实现不同的动作。
实现过程如下:首先,根据硬件部分的连接原理图将各个硬件连接起来,并将电源接通。
然后,编写单片机程序,使其能够接收红外信号并解码。
接下来,根据不同的指令,编写程序控制电机驱动器,使小车实现前进、后退、左转、右转和停止的功能。
最后,对整个系统进行测试和调试,验证其功能和性能。
在设计过程中,还需要考虑小车的安全性和可靠性。
例如,可以加入碰撞检测功能,当小车检测到碰撞时,自动停止运动。
同时,还可以加入电池电量检测功能,当电池电量低于一定值时,自动停止运动并发出警报。
总结:通过本文的介绍,我们了解了基于单片机的红外遥控小车设计。
该设计能够实现远程控制和执行各种动作,具有很大的应用潜力。
然而,在实际应用中,还需要进一步优化设计,以提高小车的性能和功能。
希望未来能够有更多的研究和创新,推动该领域的发展。
基于51单片机红外遥控小车制作报告基于51单片机红外遥控小车是一项有趣且有挑战性的项目,通过该项目的实践,可以深入了解单片机和红外遥控的原理,并提高自己的动手能力和解决问题的能力。
本文将介绍基于51单片机红外遥控小车的制作过程和实现的功能。
一、实验原理1.51单片机原理51单片机是一种广泛应用于电子产品和嵌入式系统中的微控制器,采用的是哈佛结构,具有较高的性能和稳定性,广泛使用于工业自动化和嵌入式开发中。
2.红外遥控原理红外遥控是一种常见的遥控方式,通过使用红外光发射器和接收器之间的通信,实现无线遥控设备的功能。
红外遥控信号一般由多个比特组成的数据包,通过不同的数据包可以实现不同的操作。
二、实验器材和工具1.器材2个电机、L298N电机驱动模块、51单片机、红外接收器、红外发射器、遥控器、电池盒、杜邦线等。
2.工具电烙铁、焊锡、剪线钳、螺丝刀、万用表等。
三、制作步骤1.电路连接将L298N电机驱动模块与电机连接,L298N模块的输入引脚与单片机的输出引脚连接,红外接收器与单片机的IO引脚连接,红外发射器与单片机的IO引脚连接。
2.程序设计根据需求编写程序,包括红外遥控信号解析、电机控制等功能。
3.调试测试四、实现的功能1.红外信号解析通过红外接收器接收到遥控器发送的红外信号,解析信号中的数据包,判断用户的操作。
2.基本运动控制根据用户的操作,通过控制电机的转动方向和速度,实现小车的前进、后退、左转、右转等基本运动功能。
3.灵敏度调节通过调整程序中的参数,可以调节小车的灵敏度,使其对用户的操作更加敏感和准确。
4.智能避障在程序中添加红外避障功能,当小车检测到前方有障碍物时,自动停下或转向避开障碍物,保证小车的安全。
五、实验心得通过制作基于51单片机红外遥控小车的实验,我深入了解了51单片机和红外遥控的原理,并提高了自己的动手能力和解决问题的能力。
在实验过程中遇到了一些困难,但通过查阅资料和与同学交流,我成功地解决了这些问题。
单片机技能与认证培训设计报告题目:红外遥控小车姓名:学号:系别专业:电信系班级:完成时间: 6月12日华南理工大学广州学院电子信息工程学院一、设计任务及要求用红外遥控的方式,控制小车模型前进、后退、左转、右转等功能。
二、设计方案以及元器件选取设计方案:本设计方案通过红遥控发射信号产生高低电平,用来提供给L298N,达到来控制电机的目的。
其中INA、INB、INC、IND的电平分别为一高一低,两个电机就能转动了。
小车尾部采用万向轮来辅助小车前进后退以及左右转。
元器件选取:L298N小车驱动89c52单片机hs0038红外接收器2个直流电机4节五号电池万向轮1个电解电容2个电阻、电容、晶振等最小系统部分元器件三、硬件电路1.最小系统部分如下图所示:复位电路采取按键复位电路。
晶振的作用则是为系统提供基本的时钟信号2.红外接受电路采用hs0038红外接收器,电路图如下3.小车驱动电路采用L298N来控制电机:四、软件设计红外专用的延迟函数:主函数部分如下五、调试以及结果1.第一次小车无法起动。
后发现原因是因为把hs0038的3个口弄错,误把第一个引脚当作GND,导致无法通过红外遥控小车行走。
后发现1为输出端,2为GND,3为VCC。
修改线路后成功通过遥控控制小车前后左右行走。
2.小车左轮部分齿轮在1个地方有时会卡住无法转动,需要人工转动下带动左轮转动,经过除尘、添加润滑油等措施后,卡住现象稍有减少,但无法完全避免。
六、总结通过这次实验,我们锻炼了自己的动手能力,了解了遥控小车的原理及制作过程,使我们的团队意识增强,经过几天的努力,完成了模块的设计与制作,完成了整个系统的编程、组装与调试。
基本上满足竞赛的要求,使用模块时,综合考虑电路的简单、电路的成本、以及电路的性能。
此次设计仍有一些问题没有得到完全解决,对一些器件的应用还不是很熟悉,因此在今后的学习中,更要好好学习知识,增加技能训练。
比如红外传感器的原理与应用的知识,光敏二极管的原理与应用电路等,当我们遇到不懂不会的问题时,我们能通过图书馆、网络等各种渠道学习想要知道的知识,有时候虽然只是一个很简单的小车模块,但使我们认识到自己所学的专业知识在实践中所出现的很大的不足。
华北科技学院毕业设计(论文)目录设计总说明 (I)Introduction .................................................................................................................... I II 1 绪论 .. (1)2方案设计 (2)3硬件电路设计 (3)3.1主体元器件选择 (3)3.1.1单片机 (3)3.1.2红外接收器 (8)3.1.3红外发射管 (8)3.2 红外发射电路 (9)3.3红外接收电路 (12)3.4复位电路 (13)3.5电机的正反转控制电路 (14)3.6四位通道选择电路 (15)3.7按键电路 (16)3.8辅助电路 (16)3.8.1整流电路 (17)3.8.2滤波电路 (18)3.8.3稳压电路 (19)3.8.4说明 (19)4软件设计 (20)4.1系统流程图 (20)4.2主要功能段程序设计 (21)5电路板的设计 (27)5.1 电路板的布局 (27)5.2 布线 (27)基于单片机的红外遥控小车控制电路设计5.3设计检查 (28)6焊接部分 (30)6.1插件元件 (30)6.2焊接的要求 (31)7调试 (32)7.1 调试准备 (32)7.2调试方法 (33)7.3说明 (33)7.4波形图 (34)7.5数据分析 (36)8总结 (38)参考文献 (39)附录 (40)致谢 (42)华北科技学院毕业设计(论文)基于单片机的红外遥控小车控制电路设计设计总说明红外线是近距离、高速无线通信的一种手段,一直以来,红外遥控、遥测技术在玩具生产、家电制造及工业测控等领域得到了广泛的应用.作为近距离、室内通信的手段,红外线具有无线电无法比拟的优势.因此,遥控加智能的技术研究、应用都是非常有意义而且有很高的市场价值的。
红外遥控的特点是利用红外线进行点对点通信的技术,不影响周边环境,不干扰其他电器设备。
遥控小车制作大作业报告目录一、整体方案设计 (1)1.1 整体方案设计的思路 (1)1.2 整体方案的流程图 (1)二、小车系统概况 (1)2.1 最小系统简介 (1)2.2 稳压系统简介 (2)2.3 红外遥控简介 (2)2.4 驱动原理简介 (3)2.5 直流电机简介 (4)三、硬件及软件 (5)3.1、Protel (5)3.2、protues (5)3.3、Keil (5)四、程序清单 (6)五、电路板的焊接及仿真 (10)六、结论及心得 (10)一、整体方案设计1.1 整体方案设计的思路利用无线发射和无线接收模块控制单片机,让单片机翻译传输指令,从而实现相应的功能。
具体的过程如下:无线发射模块发出指令,无线接收模块接收信号后,传递给单片机,单片机翻译接收到信号后,传输给驱动电路驱动电机旋转,从而实现让小车的前进、后退、停止、左转和右转。
1.2 整体方案的流程图基于单片机STC89C52整体设计的智能小车, 根据原来设计的思路上画出了相对应的流程路,由于是整体结构图,就只是画出了大致的结构流程, 而细节将在后面做出介绍。
二、小车系统概况2.1 最小系统简介单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组。
无线发射模块无线接收模块单片机电机驱动模块小车运动传输信号传输信号控制控制控制1、复位电路由按键复位和上电复位两部分组成。
(1)上电复位:STC89系列单片及为高电平复位,通常在复位引脚RST 上连接一个电容到VCC ,再连接一个电阻到GND ,由此形成一个RC 充放电回路保证单片机在上电时RST 脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K 和10uF 。
(2)按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST 也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
单片机晶振的作用是为系统提供基本的时钟信号。
红外接收与控件电路原理图:141红外遥控器原理图:红外遥控器实物图:红外接收与控制实物图:程序:接收控制主程序:#include<reg52.h>#include "hongwai.c"#include "5110.c"sbit hy=P0^0;//LED指示灯sbit hz=P2^0;sbit qy=P1^4;sbit qz=P3^7;sbit djf1=P1^0;//电机1的方向控制sbit djd1=P1^1;//电机1的动力控制sbit djf2=P1^2;//电机2的方向控制sbit djd2=P1^3;//电机2的动力控制unsigned char flag,flag1,PW;bit fan,fan1,tf=0;unsigned char fafg=0;unsigned char time_flag;unsigned char data time[2];//=====================================//ms延时//===================================== void delayms(unsigned int ms){unsigned char i;while(ms--)for(i=0;i<120;i++);}//=====================================//LED灯闪烁//===================================== void LED(unsigned char ms){unsigned char i;for(i=0;i<ms;i++){delayms(200);qz=~qz;qy=~qy;hz=~hz;hy=~hy;}}//======================================//控制//=====================================void kongzi(void){switch(shu[2]){case 0x20: {//前进fafg=1;qz=qy=0;hz=hy=1;TR1=ET1=1;djd1=djd2=1;djf1=djf2=0;fan=0;break;}case 0x30: {//后退fafg=2;qz=qy=1;hz=hy=0;TR1=ET1=1;djd1=djd2=1;djf1=djf2=1;fan=1;break;}case 0x40: {//前左转弯fafg=3;djf1=djf2=0;qz=0;qy=hz=hy=1;djd1=1;djd2=0;fan1=0;TR1=ET1=1;break;}case 0x60: { //后左转弯fafg=4;djf1=djf2=1;hz=0;hy=qz=qy=1;djd1=1;djd2=0;fan1=0;TR1=ET1=1;break;}case 0x50: {//前右转弯fafg=5;djf1=djf2=0;qy=0;qz=hy=hz=1;djd1=0;djd2=1;fan1=1;TR1=ET1=1;break;}case 0x70: { //后退fafg=6;djf1=djf2=1;hy=0;hz=qz=qy=1;djd1=0;djd2=1;fan1=1;TR1=ET1=1;break;}case 0x80: {if(tf==1){qy=qz=hy=hz=1;TR1=ET1=0;djd1=djd2=0;NOKIA5110_clear(); // 清屏W_LCD_chinese(20,0,21);//停W_LCD_chinese(40,0,22);//止W_LCD_zifu(15,3,time[1]/10);// W_LCD_zifu(23,3,time[1]%10);// W_LCD_zifu(33,3,11);//:W_LCD_zifu(42,3,time[0]/10);//W_LCD_zifu(50,3,time[0]%10);//time[0]=time[1]=0;tf=0;}break;}}}//***********************************************//显示//************************************************ void LCD_display(void){NOKIA5110_clear(); // 清屏W_LCD_zifu(15,3,time[1]/10);//W_LCD_zifu(23,3,time[1]%10);//W_LCD_zifu(33,3,11);//:W_LCD_zifu(42,3,time[0]/10);//W_LCD_zifu(50,3,time[0]%10);//if(fafg==1){W_LCD_chinese(20,0,0);//前W_LCD_chinese(40,0,1);//进}if(fafg==2){W_LCD_chinese(20,0,2);//后W_LCD_chinese(40,0,3);//退}if(fafg==3){W_LCD_chinese(5,0,0);//前W_LCD_chinese(25,0,4);//左W_LCD_chinese(45,0,5);//转W_LCD_chinese(65,0,6);//弯}if(fafg==4){W_LCD_chinese(5,0,2);//后W_LCD_chinese(25,0,4);//左W_LCD_chinese(45,0,5);//转W_LCD_chinese(65,0,6);//弯}if(fafg==5){W_LCD_chinese(5,0,0);//前W_LCD_chinese(25,0,7);//右W_LCD_chinese(45,0,5);//转W_LCD_chinese(65,0,6);//弯}if(fafg==6){W_LCD_chinese(5,0,2);//后W_LCD_chinese(25,0,7);//右W_LCD_chinese(45,0,5);//转W_LCD_chinese(65,0,6);//弯}}//=====================================//定时器T1//===================================== void wan_T1(void) interrupt 3{time_flag++;tf=1;TH1=(65536-50000)/256;TL1=(65536-50000)%256;if(time_flag>15){time[0]++;time_flag=0;if(time[0]>59){time[0]=0;time[1]++;if(time[1]>59) time[1]=0;}}}//=====================================//主函数//=====================================void main(void){djd1=djd2=0;NOKIA5110_init();NOKIA5110_clear(); // 清屏W_LCD_chinese(0,0,8);//正delayms(100);W_LCD_chinese(15,0,9);//在delayms(100);W_LCD_chinese(30,0,10);//初delayms(100);W_LCD_chinese(45,0,11);//始delayms(100);W_LCD_chinese(60,0,12);//化delayms(100);W_LCD_chinese(10,3,13);//请delayms(100);W_LCD_chinese(25,3,14);//稍delayms(100);W_LCD_chinese(40,3,2);//后delayms(100);W_LCD_zifu(60,3,10);//...PW=20;TH1=(65536-50000)/256;TL1=(65536-50000)%256;IP=0x09;//设置中断优先级IPH=0x08;open_interrupt();TR1=ET1=0;LED(10);qy=qz=hy=hz=1;NOKIA5110_clear(); // 清屏 W_LCD_chinese(1,0,10);//初delayms(100);W_LCD_chinese(16,0,11);//始delayms(100);W_LCD_chinese(31,0,12);//化delayms(100);W_LCD_chinese(46,0,15);//完delayms(100);W_LCD_chinese(61,0,16);//成delayms(100);W_LCD_chinese(0,3,17);//等delayms(100);W_LCD_chinese(15,3,18);//待delayms(100);W_LCD_chinese(30,3,19);//信delayms(100);W_LCD_chinese(45,3,20);//号delayms(100);W_LCD_zifu(65,3,10);//...while(1){kongzi();if(tf==1&&time_flag==7) LCD_display();}}红外解码:/*************************************************************************//**** 红外解码/*** 晶振:11.0592MHZ/*** 数据口:外中断0/*** 计数器:定时器T0/************************************************************************/#include<reg52.h>sbit Dat=P3^2; //数据口bit tru;unsigned char shu[4];/****************开中断************************/void open_interrupt(void){TMOD=0x11; //定时器T0工作在方式1IT0=1; //中断0在下降沿触发TR0=1;EX0=1; //开外部中断0EA=1; //开中断}/**************接收数据**********************/void R_Dat(void) interrupt 0{unsigned char i,j;unsigned int dtime=0;unsigned char temp;// P1=0xff;TH0=TL0=0;while(!Dat){if(TH0*256+TL0>20000) return;}while(Dat)if(TH0*256+TL0>20000) return;dtime=TH0*256+TL0;TH0=TL0=0;if(8000<dtime&&dtime<14000) //9MS的引导码+4.5MS的结束码{for(i=0;i<4;i++){temp=0;for(j=0;j<8;j++){while(!Dat){if(TH0*256+TL0>20000) return;}while(Dat){if(TH0*256+TL0>20000) return;}dtime=TH0*256+TL0;TH0=TL0=0;if(1450<dtime&&dtime<3000) {temp=(temp>>1)|0x80;}//是否为1 else if(700<dtime&&dtime<1450) {temp=(temp>>1)|0x00;}//是否为0}shu[i]=temp;}if(shu[0]==~shu[1]&&shu[2]==~shu[3]) tru=1;//查错}}LCD5110驱动程序:#include<reg52.h>#include "ziku.C"//-----------------管脚定义-------------------------sbit LCD_sce = P2^7; //片选,低最平有效sbit LCD_rst = P2^6; //复位,0复位sbit LCD_dc = P2^5; //1写数据,0写指令sbit LCD_sdin = P2^4; //数据sbit LCD_sclk = P2^3; //时钟//********************************************************************** // NOKIA5110_w_byte : 使用SPI接口写数据到LCD// 输入参数:data :写入的数据;// command :写数据/命令选择;//********************************************************************** void NOKIA5110_w_byte(unsigned char dat,unsigned char command){unsigned char i;LCD_sce=0; //LCD使能LCD_dc=command;//for(i=0;i<8;i++) //传输8位数据(1个字节){if(dat&0x80) LCD_sdin=1;else LCD_sdin=0;dat=dat<<1;LCD_sclk=0;LCD_sclk=1;}LCD_sce=1; //LCD不使能}//**********************************************************************//NOKIA5110_init : LCD初始化//**********************************************************************void NOKIA5110_init(void){unsigned char k;LCD_rst=0;for(k=0;k<250;k++);LCD_rst=1;//-------------------------------------------------------------NOKIA5110_w_byte(0x21, 0); // 使用扩展命令设置LCD模式NOKIA5110_w_byte(0xd0, 0); // 设置偏置电压NOKIA5110_w_byte(0x06, 0); // 温度校正NOKIA5110_w_byte(0x13, 0); // 1:48NOKIA5110_w_byte(0x20, 0); // 使用基本命令NOKIA5110_w_byte(0x0c, 0); // 设定显示模式,正常显示}//**********************************************************************// NOKIA5110_set_XY : 设置LCD坐标函数// 输入参数:X:0-83// Y:0-5//**********************************************************************void NOKIA5110_set_XY(unsigned char x, unsigned char y){NOKIA5110_w_byte(0x40 | y, 0); // 列(竖)NOKIA5110_w_byte(0x80 | x, 0); // 行(横)}//*********************************************************************//写汉字到LCD//*********************************************************************void W_LCD_chinese(unsigned char X,unsigned char Y,unsigned char dat)unsigned char i;NOKIA5110_set_XY(X,Y);for(i=0;i<16;i++) NOKIA5110_w_byte(hanzi[dat][i],1);NOKIA5110_set_XY(X,Y+1);for(i=16;i<32;i++)NOKIA5110_w_byte(hanzi[dat][i],1);}//*********************************************************************//写字符到LCD5110//********************************************************************* void W_LCD_zifu(unsigned char X,unsigned char Y,unsigned char dat){unsigned char i;NOKIA5110_set_XY(X,Y);for(i=0;i<8;i++) NOKIA5110_w_byte(zifu[dat][i],1);NOKIA5110_set_XY(X,Y+1);for(i=16;i<24;i++)NOKIA5110_w_byte(zifu[dat][i],1);}//**********************************************************************//NOKIA5110_clear : LCD清屏//**********************************************************************void NOKIA5110_clear(void){unsigned char t;unsigned char k;NOKIA5110_set_XY(0,0);for(t=0;t<6;t++){for(k=0;k<84;k++)NOKIA5110_w_byte(0x00,1);}}字库:unsigned char code zifu[][32]={{0xF0,0xF8,0x0C,0x04,0x0C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"0"的点阵*/{0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"1"的点阵*/{0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"2"的点阵*/{0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"3"的点阵*/{0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"4"的点阵*/{0x00,0xF8,0x98,0x48,0x48,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x1C,0x10,0x20,0x20,0x18,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"5"的点阵*/,0x00,0x00,0x0F,0x19,0x20,0x20,0x30,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"6"的点阵*/{0x00,0x08,0x08,0x08,0x08,0xE8,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x38,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"7"的点阵*/{0x00,0x70,0xD8,0x08,0x08,0xD8,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x1E,0x31,0x21,0x21,0x31,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"8"的点阵*/{0x00,0xF0,0x18,0x08,0x08,0x18,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x19,0x33,0x22,0x22,0x19,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"9"的点阵*/{0x80,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*10以上为"..."的点阵*/{0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*11以上为":"的点阵*/};unsigned char code hanzi[][32]={{0x00,0x08,0x08,0xC8,0x48,0x4A,0x4C,0xC8,0x08,0x08,0xCE,0x0A,0x08,0xE8,0x 08,0x00,0x00,0x00,0x80,0xFF,0x09,0x09,0x49,0x7F,0x00,0x00,0x0F,0x40,0x40,0x7F,0x00,0x00},/*0以上为"前"的点阵*/{0x00,0x40,0x44,0xC8,0x00,0x10,0x10,0x10,0xFE,0x10,0x10,0xFE,0x10,0x10,0x10 ,0x00,0x00,0x60,0x20,0x3F,0x20,0x21,0x51,0x4F,0x41,0x41,0x41,0x5F,0x41,0x41,0x41,0x00},/*1以上为"进"的点阵*/0x00,0x00,0x20,0x3C,0x07,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00},/*2以上为"后"的点阵*/{0x00,0x80,0x84,0x9C,0x00,0x00,0xFC,0x54,0x54,0x54,0x54,0x54,0x7C,0x7C,0x0 0,0x00,0x00,0x40,0x60,0x3F,0x20,0x20,0x5F,0x50,0x48,0x4B,0x42,0x44,0x4E,0x59,0x40,0x00},/*3以上为"退"的点阵*/{0x00,0x00,0x10,0x10,0x10,0x90,0x7C,0x1E,0x10,0x10,0x10,0x10,0x10,0x10,0x10 ,0x00,0x00,0x10,0x10,0x0C,0x46,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x40,0x00},/*4以上为"左"的点阵*/{0x00,0x88,0xE8,0x1E,0xCA,0x08,0x08,0x40,0x48,0xC8,0x7E,0x48,0x48,0x48,0x4 8,0x00,0x00,0x09,0x09,0x09,0x7F,0x09,0x05,0x00,0x10,0x13,0x22,0x72,0xCE,0x06,0x02,0x00},/*5以上为"转"的点阵*/{0x00,0x44,0x64,0xB4,0x94,0x84,0xFC,0x86,0x86,0xFC,0x84,0x84,0x94,0x24,0x4 4,0x00,0x00,0x00,0x00,0x0E,0x0A,0x0A,0x0A,0x0A,0x0A,0xCA,0x4A,0x4A,0x7B,0x18,0x00,0x00},/*6以上为"弯"的点阵*/{0x00,0x10,0x10,0x10,0x10,0x90,0x70,0x1E,0x12,0x10,0x10,0x10,0x10,0x10,0x10, 0x00,0x00,0x08,0x08,0x04,0x43,0x7F,0x21,0x21,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00},/*7以上为"右"的点阵*/{0x00,0x00,0x08,0xC8,0xC8,0x08,0x08,0x08,0xF8,0x88,0x88,0x88,0x88,0x08,0x00 ,0x00,0x00,0x20,0x20,0x3F,0x3F,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00},/*8以上为"正"的点阵*/{0x00,0x00,0x08,0x08,0x88,0xE8,0x38,0x0E,0x08,0x08,0xE8,0x08,0x08,0x08,0x08 ,0x00,0x00,0x04,0x06,0x03,0x7F,0x20,0x21,0x21,0x21,0x21,0x3F,0x21,0x21,0x21,0x20,0x00},/*9以上为"在"的点阵*/{0x00,0x00,0x10,0x90,0xD6,0x30,0x80,0x80,0x08,0x08,0xF8,0x08,0x08,0x08,0xF8 ,0x00,0x00,0x06,0x03,0x01,0x7F,0x03,0x47,0x64,0x30,0x0E,0x03,0x40,0x60,0x7C,0x1F,0x00},/*10以上为"初"的点阵*/,0x00,0x00,0x40,0x63,0x34,0x0E,0x1B,0x10,0x00,0x7E,0x22,0x22,0x22,0x22,0x7E,0x00,0x00},/*11以上为"始"的点阵*/{0x00,0x80,0xC0,0x30,0xFC,0x06,0x00,0x00,0x00,0xFE,0x80,0xC0,0x60,0x10,0x0 0,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x04,0x04,0x02,0x7F,0x41,0x40,0x40,0x60,0x30,0x00},/*12以上为"化"的点阵*/{0x00,0x20,0x10,0xF6,0x00,0x00,0x44,0x54,0x54,0x54,0x7E,0x54,0x54,0x54,0x44, 0x00,0x00,0x00,0x00,0x7F,0x10,0x08,0x00,0xFF,0x15,0x15,0x15,0x15,0xD5,0x7F,0x00,0x00},/*13以上为"请"的点阵*/{0x00,0x40,0x44,0xFC,0xFC,0x46,0x40,0x04,0xD8,0x40,0x7E,0x42,0x50,0xC8,0x0 4,0x00,0x00,0x08,0x06,0x7F,0x7F,0x03,0x06,0x00,0xFF,0x09,0x09,0x09,0x49,0xFF,0x00,0x00},/*14以上为"稍"的点阵*/{0x00,0x00,0x38,0x08,0x68,0x48,0x48,0x4A,0x4E,0x48,0x48,0x68,0x08,0x38,0x00, 0x00,0x00,0x40,0xC1,0x41,0x21,0x1D,0x07,0x01,0x01,0x7F,0x41,0x41,0x41,0x71,0x21,0x00},/*15以上为"完"的点阵*/{0x00,0x00,0x00,0xF0,0x90,0x90,0x90,0x10,0x10,0xFE,0x10,0x12,0xD6,0x10,0x10 ,0x00,0x00,0x40,0x78,0x0F,0x00,0x10,0x5F,0x40,0x60,0x37,0x1C,0x1F,0x61,0x40,0x60,0x00},/*16以上为"成"的点阵*/{0x00,0x10,0x18,0x46,0x46,0x7C,0x44,0x44,0xF0,0x5C,0x46,0x44,0x5C,0x14,0x0 4,0x00,0x00,0x02,0x0A,0x0A,0x0A,0x2A,0x6A,0x0A,0x0B,0xCA,0x4A,0x7E,0x0A,0x0A,0x0A,0x00},/*17以上为"等"的点阵*/{0x00,0x00,0x10,0xCC,0x66,0x20,0x48,0x48,0x48,0x7E,0x4A,0x48,0xC8,0x48,0x4 0,0x00,0x00,0x02,0x01,0x7F,0x00,0x02,0x02,0x0A,0x12,0x02,0x42,0x42,0x7F,0x02,0x02,0x00},/*18以上为"待"的点阵*/{0x00,0x80,0x60,0xFC,0x06,0x88,0xA8,0xA8,0xA8,0xAA,0xAC,0xA8,0xA8,0xA8,0x 88,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x7C,0x24,0x24,0x24,0x24,0x24,0x7C,0x00,0x00},/*19以上为"信"的点阵*/{0x00,0x80,0x80,0xA0,0xBC,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xBC,0x80,0x 80,0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x04,0x04,0x44,0x44,0x44,0x74,0x1C,0x00,0x00,0x00},/*20以上为"号"的点阵*/{0x00,0xC0,0x70,0xFE,0x02,0x04,0x14,0x74,0x54,0x56,0x56,0x54,0x54,0x74,0x04 ,0x00,0x00,0x00,0x00,0x7F,0x00,0x03,0x01,0x05,0x45,0x45,0x7D,0x05,0x05,0x05,0x03,0x00},/*21以上为"停"的点阵*/{0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xFE,0x40,0x40,0x40,0x40,0x40,0x00 ,0x00,0x00,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00}/*22以上为"止"的点阵*/};红外遥控器程序:#include<reg52.h>sbit ir=P1^1;//红外输出//sbit P1_0=P1^0;sbit LED=P1^2;sbit qian=P2^1;sbit hou=P2^2;sbit zuo=P2^5;sbit you=P2^7;bit flag;unsigned int flag1;//=====================================//MS延时函数//=====================================void delayms(ms){while(ms--)for(i=0;i<120;i++);}//=====================================//定时器T0初始化//=====================================void T0_init(void){TMOD=0x02;TH0=0xe6;TL0=0xe6;EA=ET0=1;}//====================================//定时器T0中断函数//====================================void Timer0(void) interrupt 1{flag1++;if(flag) ir=~ir;else ir=0;}//===================================//数据处理//=================================== void cend_data(unsigned char add,unsigned char dat){unsigned char unadd,undat;unsigned char i;unadd=~add;undat=~dat;TH0=0xe6;TL0=0xe6;LED=~LED;flag1=0;flag=1;while(flag1<300); //9MS初始码flag1=0;flag=0;while(flag1<150);//4.5MS结束码for(i=0;i<8;i++) //发送用户码{flag1=0;flag=1;while(flag1<18);bir=(add>>i)&0x01;flag1=0;flag=0;if(bir==0x01) while(flag1<56);else while(flag1<18);}for(i=0;i<8;i++) //发送用户反码{flag1=0;flag=1;while(flag1<18);bir=(unadd>>i)&0x01;flag1=0;flag=0;if(bir==0x01) while(flag1<56);else while(flag1<18);}for(i=0;i<8;i++) //发送数据码{flag1=0;flag=1;while(flag1<18);bir=(dat>>i)&0x01;flag1=0;flag=0;if(bir==0x01) while(flag1<56);else while(flag1<18);}for(i=0;i<8;i++) //发送数据反码{flag1=0;flag=1;while(flag1<18);bir=(undat>>i)&0x01;flag1=0;flag=0;if(bir==0x01) while(flag1<56);else while(flag1<18);}flag1=0;flag=1;while(flag1<10);flag=0;}//=============================//主函数//=============================void main(void){T0_init();//TR0=1;LED=0;while(1){if(!qian==1&&zuo!=0&&you!=0)//前进{TR0=1;while(!qian==1&&zuo!=0&&you!=0) {cend_data(0x08,0x20);delayms(100);}TR0=0;LED=0;}elseif(!hou==1&&zuo!=0&&you!=0)//后退{TR0=1;while(!hou==1&&zuo!=0&&you!=0) {cend_data(0x08,0x30);delayms(100);}TR0=0;LED=0;}elseif(!zuo==1&&!qian==1)//前左转弯{TR0=1;while(!zuo==1&&!qian==1) {cend_data(0x08,0x40);delayms(100);}TR0=0;LED=0;}elseif(!you==1&&!qian==1)//前右转弯{TR0=1;while(!you==1&&!qian==1) {cend_data(0x08,0x50);delayms(100);}TR0=0;LED=0;}elseif(!zuo==1&&!hou==1)//后左转弯{TR0=1;while(!zuo==1&&!hou==1) {cend_data(0x08,0x60);delayms(100);}TR0=0;LED=0;}elseif(!you==1&&!hou==1)//后右转弯{TR0=1;while(!you==1&&!hou==1) {cend_data(0x08,0x70);delayms(100);}TR0=0;LED=0;}else //停止{TR0=1;cend_data(0x08,0x80);delayms(50);TR0=0;LED=0;}}}。
基于51单片机的红外遥控小车设计初稿设计初稿:基于51单片机的红外遥控小车一、引言随着科技的发展,遥控小车成为了儿童玩具市场上的一大热门。
遥控小车的设计不仅考虑到了玩乐性,还考虑到了教育性,可以培养儿童的动手能力和逻辑思维能力。
本文基于51单片机,设计了一款红外遥控小车,以满足儿童的玩乐需求。
二、系统设计1.系统功能设计:本系统的主要功能是通过红外遥控器控制小车的运动,包括前进、后退、左转、右转。
2.硬件设计:主控芯片:选用51单片机作为主控芯片,具有较好的性能和稳定性。
红外接收模块:接收红外信号并将信号转换为数字信号,以供单片机处理。
电机驱动模块:用于控制小车的运动方向和速度。
电源模块:提供系统所需的电源电压。
车身模块:包括小车的车身、轮子。
3.软件设计:使用Keil C编程语言编写程序,实现功能的具体控制。
程序主要分为红外信号接收、数据解码、电机控制等模块。
三、工作原理1.红外信号接收:通过红外接收模块接收红外信号,将信号转换为数字信号。
2.数据解码:通过程序对接收到的数字信号进行解码,将信号转换为指令,如前进、后退、左转、右转。
3.电机控制:根据解码得到的指令,控制电机驱动模块,实现小车的运动。
四、实验结果与分析在实验中,我们使用了51单片机和红外接收模块来控制小车的运动。
通过红外遥控器发送不同的指令,小车可以做出相应的动作。
经过实验,我们发现系统设计能够满足预期的功能。
红外遥控小车的控制灵敏度较高,操作简单,容易上手。
五、总结与展望本设计初稿基于51单片机的红外遥控小车,实现了通过红外遥控信号控制小车的运动。
该系统技术上相对成熟,功能完善,可以作为儿童玩具市场的一种选择。
然而,还存在一些不足之处,例如电池寿命较短、遥控距离有限等。
在后续的设计中,我们将进一步优化电源模块,延长电池寿命,并尝试添加更多有趣的功能。
总之,基于51单片机的红外遥控小车设计初稿已经基本完成,未来还可以对该系统进行进一步开发,以满足不同需求的儿童。
安徽建筑工业学院毕业设计(论文)专业:机械设计制造及其自动化班级:08机械4班学生姓名:**学号:***********课题:红外遥控智能小车系统设计****: ***2012年 6月 7日摘要随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。
智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。
智能电动小车就是其中的一个体现。
设计者可以通过软件编程实现它的行进、循迹、停止的精确控制以及检测数据的存储、显示,无需人工干预。
因此,智能电动小车具有再编程的特性,是机器人的一种。
本设计采用AT89C51单片机加电机驱动电路和红外遥控及循迹模块还有红外接收一体化传感器设计而成,采用模块化的设计方案,运用红外遥控器控制小车的前进、后退、左转、右转、启动和停止。
关键词:单片机;红外遥控;电机驱动AbstractWith 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 future direction of development, it can be in an environment where automatic operation in accordance with the pre-set 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, tracking, 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 AT89C51 SCM and the motor drive circuit and the infrared remote control and ultrasonic module infrared receiver 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 drive目录第一章绪论 (1)1.1 该设计的背景和意义 (1)1.2 智能小车的发展现状 (2)1.3 该设计的主要内容和目的 (3)第二章系统总体方案设计与论证 (5)2.1 系统的总体方案设计 (5)2.2 主控系统 (5)2.3 电机驱动模块 (6)2.4 循迹模块 (6)2.6 显示模块 (6)第三章系统硬件电路设计 (7)3.1 主控模块的电路设计 (7)3.1.1 AT89C51单片机的简介 (7)3.1.2 单片机工作电路 (10)3.1.3 时钟电路 (11)3.1.4 复位电路 (12)3.2 红外遥控模块的电路设计 (13)3.2.1 红外遥控的实现原理 (13)3.2.2 红外发射器 (14)3.2.3 红外接收器 (15)3.3 电机驱动模块的电路设计 (16)3.4 循迹模块的电路设计 (17)3.5 显示模块的电路设计 (18)第四章系统软件设计 (20)4.1 主程序 (20)4.2 LCD显示程序 (22)第五章红外遥控智能小车系统的软件仿真 (27)5.1 绘制仿真电路 (27)5.2 仿真的介绍 (27)第六章总结与展望 (31)参考文献 (32)致谢 (33)附录一系统硬件电路图 (34)附录二仿真程序 (35)附录三英文科技文献翻译 (41)第一章绪论1.1 该设计的背景和意义自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。
开放实验报告
实验名称红外遥控小车的设计
学生姓名陈炯明
系、专业信息工程系、电子科学与技术指导教师李剑
2015年 7月5 日
红外遥控小车的设计
一、实验目的
1.综合应用所学电子课程,用单片机设计控制模块。
2.通过本次设计,加强学生对单片机的深刻理解,提高学生的设计能力和动手能力。
3.了解PCB板制造过程。
二、实验内容
设计一款通过单片机控制的红外遥控小车,能够使用NEC协议的红外遥控控制小车行驶并且能够到达循迹功能。
1、红外遥控器的制作,可以采用51单片机经行编码和调制红外发射管所需要的信号。
红
外通信协议采用NEC协议,也可以采用成品遥控经行设计。
2、红外遥控小车的制作,以51单片机为控制芯片,通过对1383集成红外接收头处理过的
信号进行解码。
实现识别红外遥控所发出的信号,并同时控制L9110(H桥芯片),实现对电机的控制。
3、循迹功能的实现,采用两对红外发射、接收管和一块LM358集成运放组成的电压比较器。
来实现对黑线的循迹功能。
三、实验原理
本系统采用51单片机为控制芯片,集成红外1383接收头对红外光经行解码,L9110为电机驱动芯片,该设备外围元件少简化了电路设计,提高了系统的可靠性。
AT89C52简介
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52
可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
四、实验电路
1、系统框图
图 4.1 系统整体框图
2、电路设计
图实际电路图
图 PCB图
五、产品制作
1、实物图
图实物图
图实物图
六、测量方法与结果分析
准备阶段:准备好小车底盘、单片机最小系统、红外接收模块、L9110、LM358
等,并搭建好电路。
调试阶段:利用keil软件进行编程,并下载到单片机里进行调试。
本系统还存在的不足:
1、红外遥控的距离不够远。
2、由于小车电机需要的电压比较高所以得分别采用两组锂电池为小车供电。
3、循迹时小车不好控制,容易脱离轨道,是因为最初电路原理图设计时留下的缺陷。
七、总结
在李剑老师的指导下,通过一周的时间完成了红外遥控小车的设计。
本系统是基于AT89C52芯片的红外遥控小车的设计方案,系统设计简单,可较好地实现遥控小车
的基本功能。
该设备使用方便,具有较高的性价比、具有一定的可玩性。
通过本题的具体设计,我们对红外遥控小车的设计原理及所要用到的各类芯片有了一个系统的认识和掌握,可谓受益匪浅。
当然在设计过程中,我们还发现一些问题和不足,比如在方案论证方面,对于多个可实现同一功能的方案,我们犹豫不决。
通过查阅大量资料及团队探讨,我们最终选择了最易实现的方案。