基于51单片机的红外遥控小车设计和制作
基于51单片机的多功能小车的设计[1]
目录一、绪论 (1)1、设计的目的 (1)2、设计方案要求 (2)二、硬件设计 (2)1、系统组成框图 (2)2、模块方案论证与比较 (2)(1)控制模块 (2)(2)电机的选择 (3)(3)电机驱动模块 (3)(4)寻迹模块 (3)(5)避障模块 (4)3、硬件电路分析 (5)(1)最小系统 (5)(2)电机驱动电路 (6)(3)寻迹电路 (7)4、部分元器件介绍 (8)(1)51单片机 (8)(2)L298N (10)三、软件设计 (11)1、软件流程 (11)(1)流程简介 (12)(2)各功能的实现 (12)2、寻迹算法设计 (14)四、调试与结果分析 (14)五、结束语 (14)参考文献 (15)附录1:元件清单 (15)附录2:软件程序 (16)基于51单片机的多功能小车的设计(应用电子技术专业2008级)摘要:智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的,模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。
智能小车就是其中的一个体现。
本次设计的智能小车,采用AT89C51单片机作为小车控制核心,运用红外探头的检测实现小车寻迹和蔽障功能。
传感器作为现代科技的前沿技术,被认为是现代信息技术的三大支柱之一,也是国内外公认的最具有发展前途的高技术产业。
在国内有自动化方面的专家指出,传感器技术直接关系到我国自动化产业的发展形势,认为"传感器技术强,则自动化产业强"。
由此可见传感器技术对自动化产业乃至整个国家工业建设的重要性。
关键字:51单片机;直流电机;L298驱动;红外探头一、绪论1、设计的目的随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。
可见其研究意义很大。
本设计就是在这样的背景下提出的。
本题目是结合科研项目而确定的设计类课题。
设计的智能电动小车应该能够实时显示时间、里程,具有自动寻迹功能,可准确定位停车。
传感器作为现代科技的前沿技术,被认为是现代信息技术的三大支柱之一,也是国内外公认的最具有发展前途的高技术产业。
基于51单片机的红外遥控小车设计和制作
基于51单片机的红外遥控小车设计和制作红外遥控小车设计和制作是一个有趣且实用的项目。
本文将介绍一个基于51单片机的红外遥控小车的设计方案和制作过程。
设计方案:1.硬件设计:-采用STC89C52单片机作为控制核心,具有良好的性能和稳定性。
-红外接收器模块:用于接收红外信号并将其转换为电信号。
-直流电机:用于驱动小车的轮子,实现前进、后退、转弯等动作。
-驱动电路:将单片机的输出信号转换为合适的电流和电压来驱动电机。
-电源:使用锂电池作为电源,提供所需的电能。
2.软件设计:-红外信号解码:将接收到的红外信号进行解码,并判断是前进、后退、转弯等命令。
-控制逻辑:根据解码结果产生相应的电信号,驱动电机实现小车的相应动作。
-响应机制:处理红外信号的时延和干扰,避免误操作或信号丢失。
制作过程:1.连接电路:-将STC89C52单片机与电源、红外接收器模块和驱动电路连接。
确保连接正确、稳定。
-连接直流电机和驱动电路,通过电路板或者线缆进行连接,确保电机可以正确驱动。
2.烧录程序:- 使用Keil C编译器编写控制程序,并将程序通过编程器烧录到STC89C52单片机中。
3.完善控制逻辑:-在控制程序中添加红外信号解码和控制逻辑代码,使小车能够根据接收到的红外信号做出相应动作。
4.调试和测试:-将红外遥控器对准红外接收器模块,发送不同的红外信号,确保小车能够正确接收和处理信号。
-确保小车能够根据接收到的信号做出正确的动作,如前进、后退、转弯等。
5.完善功能:-可以根据实际需求添加其他功能,如声控、避障、图像识别等,提升小车的智能性和功能性。
通过以上设计和制作过程,一个基于51单片机的红外遥控小车就可以完成。
这个小车可以通过红外遥控器进行远程控制,并实现前进、后退、转弯等动作。
它可以在室内或者室外进行运行,并具有一定的智能性和便携性。
这个项目不仅可以培养学生的动手能力和创造力,还可以加深对电子电路和嵌入式系统的理解和掌握。
单片机红外遥控小车设计方案和制作
一、设计任务和要求以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。
图2 遥控发射器电路原理图2、红外线接收模块该模块使用一体化红外接收头1838,其电路如图3所示。
瓷片电容104为去耦电容,DOUT即是解调信号的输出端,直接与单片机的P3.2口相连。
有红外编码信号发射时,输出为检波整形后的方波信号,并直接提供给单片机。
51单片机控制的遥控小车
• • • • • • •
无线遥控接收端 2.1.2 红外检测原理图 元件清单: (1) 两个1938(红外探测器) (2) 两个EL-1L1(红外LED) (3) 四个470 电阻 (4) 两个9013三极管
• •
说明: 因为STC的IO驱动能力较弱,这里我们加入三极管使其工作在开关状态来增强驱动能力。本任务中 用到的是NPN型三极管9013, 当单片机的IO口输出高电平时,三极管导通,IRLED可发出红外光; 反之,当IO口输出低电平时,三极管截止,IRLED不能发射红外光。
• 2.2 红外循迹模块 • 2.2.1循迹原理 • 接近反射式光电感应器件RPR220由一个红外线发射二极管和一个光 电二极管组成,可以发射并检测到反射回的光线。由于不同颜色的物 体对光的反射率不同,当RPR220对准黑色物体时,黑色对光线反射 率低,光电二极管接收到的反射光很少,不能导通,输出高电平;反 之,当RPR220对准白色物体时,输出低电平。故而可以利用 RPR220区分出黑色跑道与白色跑道边缘,STC单片机可基于返回的 信号控制伺服电机,从而控制小车的行进。 • 2.2.2循迹原理图 • 元件清单 • 四个RPR220 • 100 、2K、10K 电阻各四个 • 四个10K 滑动变阻器 • LM339芯片
• 第一章:智能小车总体设计结构及硬件模块设计 • 1.1总体设计结构 • 智能小车采用STC单片机集中控制和分散模块化设计。智能小车硬件 由STC单片机开发板,红外检测模块组、轨迹检测模块以及无线遥控 模块组成,智能小车采用左右两个伺服电机,高电平持续的时间控制 电机运动转速。智能车前下端4组检测灯对黑线的反馈信号,通过单 片机控制伺服电机的转动。 • 小车的机械结构设计:为了保证小车能够进行循迹,同时避免外界 光的干扰,我们将道路检测电路板放在小车底盘的前端,红外避障模 块放在小车的前部,无线接收模块放在小车的尾部,单片机控制板放 在小车的正上方保持小车的平衡性,小车的主动轮为前端两个,从动 轮为后面一个,电池放在两个主动轮之间,这样的整体设计既可以保 持重心尽量在一条竖直线上又方便电源的开关,使小车转弯时的转动 惯量减小,增强其稳定性。
基于51单片机红外无线遥控智能小车控制设计
基于51单片机红外无线遥控智能小车控制设计摘要:本文利用51单片机设计了一款具有红外无线遥控功能的智能小车控制系统。
该系统基于红外技术,实现了对智能小车的远程控制。
通过建立遥控信号传输模型和小车控制模块,实现了智能小车的实时运动控制,包括前进、后退、左转、右转等操作。
本文详细介绍了系统设计方案、硬件设计和软件设计,通过实验验证,证明该系统能够稳定地实现智能小车的远程控制,具有一定的应用价值和推广前景。
关键词:51单片机;红外无线遥控;智能小车控制;遥控信号传输模型Abstract:In this paper, a smart car control system with infrared wireless remote control function based on 51 single-chip microcomputer is designed. The system is based on infrared technology, which realizes the remote control of the smart car. By establishing the remote control signal transmission model and the car control module, real-time motion control of the smart car, including forward, backward, turning left and turning right, is realized. This paper introduces the system design scheme, hardware design and software design in detail. Through experiments, it is proved that the system can stably realize the remote control of the smart car, and has certain application value and promotion prospects.Keywords:51 single-chip microcomputer; infrared wireless remote control; smart car control; remote control signaltransmission model1. 引言智能小车控制系统是一种目前比较受关注的智能化系统,在智能出行和智慧交通中有着广泛的应用。
51单片机无线遥控小车设计
51单片机无线遥控小车设计一、引言无线遥控小车是一种基于51单片机的智能小车系统,它利用无线通信技术实现了对小车的遥控。
通过无线遥控,我们可以随时控制小车的方向,实现室内或者室外的移动。
本设计将详细介绍51单片机无线遥控小车的整体设计框架、电路连接和关键模块设计。
二、整体设计框架整个系统分为遥控器端和小车端两个部分。
遥控器端通过按键或者摇杆输入控制指令,经过编码和解码处理后,通过无线传输模块将指令发送给小车端。
小车端接收到指令后,通过解码和控制模块来控制小车的运动。
三、电路连接遥控器端由单片机、按键(或者摇杆)、编码芯片和无线传输模块组成。
按键用于输入控制指令,编码芯片用于将按键输入的模拟信号转换为数字信号,单片机将数字信号进行编码后发送给无线传输模块,最终通过无线通信将指令传输给小车端。
小车端由单片机、解码芯片、电机驱动、电机和无线接收模块组成。
无线接收模块用于接收遥控器端发送过来的指令,解码芯片将数字信号转换为控制信号,单片机根据控制信号来控制电机驱动,从而实现小车的运动。
四、关键模块设计1.编码和解码模块设计编码和解码模块是整个系统中的关键部分,它负责将模拟信号转换为数字信号,并将数字信号转换为控制信号。
2.无线传输模块选择无线传输模块是实现遥控通信的关键组件,我们可以选择使用蓝牙模块、无线射频模块等。
选择合适的无线传输模块需要考虑通信距离、通信速率、功耗等因素。
3.电机驱动模块设计电机驱动模块负责将控制信号转换为电机运动控制信号,驱动电机完成小车的移动。
在设计电机驱动模块时,需要考虑电机的类型和电机驱动电路的选型。
五、总结本设计详细介绍了51单片机无线遥控小车的整体设计框架,电路连接和关键模块设计。
通过对整个设计的理解和实现,我们可以实现对小车的远程遥控,从而实现室内或者室外的自动移动。
这种无线遥控小车系统在娱乐、智能家居、无人巡检等领域都有广泛的应用前景。
51单片机-毕业设计基于单片机设计的红外线遥控器
ping primary school fire safety systems to e nha nce fire safety, prote ction of public property and t he life and property safety of teacher s and students, school fire safety into day-to-day ma nagement, is devel opi ng the following fire safety system. 1, strengt hen fire safety educati on of the whole school. Accordi ng to the re quireme nts of the Fire S ervices A ct, so t hat everyone has of keeping fire control safety, pr otecting fire control facilities, fire preve ntion, reports of fire学生毕业设计(论文)报告系别:专业:班号:学生姓名:学生学号:设计(论文)题目:基于单片机设计的红外线遥控器指导教师:设计地点:起迄日期:ping primary school fire safety systems to e nha nce fire safety, prote ction of public property and t he life and property safety of teacher s and students, school fire safety into day-to-day ma nagement, is devel opi ng the following fire safety system. 1, strengt hen fire safety educati on of the whole school. Accordi ng to the re quireme nts of the Fire S ervices A ct, so t hat everyone has of keeping fire control safety, pr otecting fire control facilities, fire preve ntion, reports of fire常州信息职业技术学院电子与电气工程学院毕业设计论文毕业设计(论文)任务书专业电子信息工程班级电子085 姓名傅浩一、课题名称:基于单片机设计的红外线遥控器二、主要技术指标:1.遥控距离:0~10m2.额定工作电压:直流3V(普通5号干电池2节);红外光平均辐照度≥40μW/cm2;指向性(辐照度为20μW/cm2)≥30度3.欠压条件下(直流2.4v):红外光平均辐照度≥20μW/cm2,指向性(辐照度为10μW/cm2)≥30度三、工作内容和要求:1.以AT89C2051单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点2.遥控发射器通过对红外光发射频率的控制来区别不同的操作3.遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程四、主要参考文献:[1] 梅丽凤,王艳秋,张军等. 单片机原理及接口技术,北京:清华大学出版社,2004年.[2] 戴峻峰,付丽辉. 多功能红外线遥控器的设计,传感器世界.2002,8(12):16~18.[3] 李光飞,楼然苗,胡佳文等. 单片机课程设计实例指导,北京:北京航空航天出版社,2004年.[4] 苏长赞. 红外线与超声波遥控,北京:人民邮电出版社.1995年.学生(签名)2010 年 5 月7 日指导教师(签名)2010 年5 月10 日教研室主任(签名)2010 年5 月10 日系主任(签名)2010 年5 月12 日ping primary school fire safety systems to e nha nce fire safety, prote ction of public property and t he life and property safety of teacher s and students, school fire safety into day-to-day ma nagement, is devel opi ng the following fire safety system. 1, strengt hen fire safety educati on of the whole school. Accordi ng to the re quireme nts of the Fire S ervices A ct, so t hat everyone has of keeping fire control safety, pr otecting fire control facilities, fire preve ntion, reports of fire毕业设计(论文)开题报告设计(论文)题目基于单片机设计的红外线遥控器一、选题的背景和意义:随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。
基于51单片机的智能红外遥控书法小车的设计
基于51单片机的红外遥控书法小车课程设计题目名称:基于51单片机的红外遥控书法小车的设计专业班级:测控1402班学生姓名:赵向前学号: 201423030211 指导教师:周刚刘林芝单片机系统课程设计任务书目录1系统概述 (1)2方案论证 (2)2.1 使用普通直流减速电机 (2)2.2 使用四象八拍步进电机 (2)3硬件设计 (3)3.1系统的原理方框图 (3)3.1.1. 12V直流电源 (3)3.1.2 5V稳压模块 (4)3.1.3.控制系统模块 (4)3.1.4. 红外接收模块 (5)3.1.5. 步进电机驱动 (6)3.1.6. 步进电机 (6)3.2主电路 (8)3.3. I/O分配 (8)3.3. I/O连线图 (8)4软件设计 (8)4.1流程图 (9)4.2源程序 (9)5系统调试 (28)6.使用方法 (28)7.设计心得 (28)参考文献 (29)1系统概述该小车是我在练字时无意间蹦出的一个想法,于是我就想让小车按照固定的轨迹行走,并使其驱动一杆毛笔,不就能让小车也能写出富有艺术的毛笔字了吗?基于这样的构想,我就设计方案制作一辆智能书法小车,后来设计完成后我又加上了红外遥控,于是就做成了最终的基于STC89C52RC单片机的智能红外遥控书法小车。
该作品所要实现的功能如下:1.按照固定的轨迹行走2.能够驱动毛笔写字3.实现红外遥控启动4.非工作模式下进入掉电模式实现低功耗长待机5.使用步进电机控制小车运行速度使其能够平稳稳定运行6.电流失控报警功能,使用LED灯泡实现对总电流及各个模块电流运转情况进行监控显示,电流平稳时,LED灯常亮,当电流出现异常巨大变动时,LED灯闪烁示警各模块参数:1.12V直流总电源供电2. 稳压模块使用L7805器件将12V电源转化为直流5V电源为各个模块供电3. 使用STC89C52RC单片机作为控制芯片4. 使用ULN2003芯片作为步进电机驱动5. 使用28BYT-48-5VDC永磁式直流5V四相八拍减速步进电机作为发动机6. 使用28BYT-48-5VDC永磁式直流5V四相八拍减速步进电机作为毛笔驱动2.方案论证2.1方案一:采用普通直流减速电机直流减速电机作为最常用的直流电机又有着控制简单,速度快等特点,但是在我们的智能书法小车上如果使用这种电机的话,就会出现很多的问题,其中,速度过快,很难精确地控制小车的位移,其次,普通直流减速电机的力矩较小,难以实现快速改变其运动轨迹的要求,所以,总的来说,使用普通直流减速电机并不合适,将之摒弃。
基于51单片机红外遥控小车.
逻辑1 由560us的高电平和1.69ms的低电平组成的脉冲表示
逻辑0 是由560us的高电平和565us的低电平组成的脉冲表示
红外接收头的主要参数如下: 工作电压:4.8~5.3V 工作电流:1.7~2.7mA 接收频率:38kHz 峰值波长:980nm 静态输出:高电平 输出低电平:≤0.4V 输出高电平:接近工作电压 红外接收头的特性
NEC协议
• 1 引导码: 就是一把钥匙,单片机只有检测到了引导码出现了才确认接 收后面的数据 ,保证数据接收的正确性。 • 2 客户码: 为了区分各红外遥控设备,使之不会互相干扰。 • 3 操作码: 用户实际须要的编码,按下不同的键产生不同的操作码,待 接收端接收到后根据其进行不同的操作.。 • 4 操作反码: 为操作码的反码,目的是接收端接收到所有数据之后,将 其取反与操作码比较,不相等则表示在传输过程中编码发生了变化,视 为此次接收的数据无效,可提高接收数据的准确性.。
}
//前进
//后退 //左转 //右转 //停止
EN D
while(1) {
/*无限循环*/
if(IrOK==1)
{ switch(Im[2]) {
//如果处理好后进行红处理
case 0x18: run(); break; case 0x52: backrun(); break; case 0x08: leftrun(); break; case 0x5A: rightrun(); break; case 0x1C: stoprun(); break; default:break; } IrOK=0;
if(Tc>Inum2&&Tc<Inum1) { Im[m/8]=Im[m/8]>>1; m++; //取码 } if(m==32) { m=0; f=0; if(Im[2]==~Im[3]) { IrOK=1; } else IrOK=0; //取码完成后判断读码是否正确 } //准备读下一码 }
基于51单片机的红外遥控小车设计和制作
基于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)超声波避障程序设计:根据超声波传感器测得的距离,判断是否有障碍物,如果有障碍物就停止或者转向。
四、实验结果和讨论经过实验验证,本设计的红外遥控智能小车能够准确接收红外信号,并根据指令控制小车的行驶方向和速度。
同时,超声波传感器能够及时感知到前方的障碍物,并进行相应的避障操作。
然而,该设计仍然存在一些不足之处,比如超声波传感器的测距范围有限,可能无法感知到较小的障碍物。
此外,红外遥控信号的传输距离也有一定限制,需要保持遥控器与小车之间的距离不过远。
基于51单片机红外遥控小车制作报告
基于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单片机和红外遥控的原理,并提高了自己的动手能力和解决问题的能力。
在实验过程中遇到了一些困难,但通过查阅资料和与同学交流,我成功地解决了这些问题。
基于单片机的红外遥控智能小车设计报告
基于单片机的红外遥控智能小车设计报告毕业设计(论文)题目:基于单片机的红外遥控智能小车西安邮电学院毕业设计(论文)任务书学生姓名指导教师职称工程师学院电子工程学院系部光电子技术专业光电信息工程题目基于单片机的红外遥控智能小车任务与要求任务:以51单片机为控制核心,实现具有自动避障、加速、减速等功能的红外遥控智能小车。
要求:1 搜集资料,熟悉单片机开发流程;熟悉红外传感器等相关器件;掌握单片机接口和外围电路应用;具备一定的单片机开发经验。
2 学会电路设计、仿真等相关软件的使用;3 具备一定的硬件调试技能。
4 学会查阅资料;5 学会撰写科技论文。
开始日期2010年3月22日完成日期2010年6月27日主管院长(签字) 年月日西安邮电学院毕业设计 (论文) 工作计划学生姓名赵美英指导教师崔利平职称工程师学院电子工程学院系部光电子技术专业光电信息工程题目基于单片机的红外遥控智能小车工作进程主要参考书目(资料)1、何立民,单片机应用系统设计,北京:航天航空大学出版社;2、李广弟,单片机基础,北京:北京航空航天大学出版社,2001;3、何立民,MCS-51系列单片机应用系统设计系统配置与接口技术,北京航空航天大学出版社,1990.01;4、赵负图,传感器集成电路手册,第一版,化学工业出版社,2004;5、Atmel.AT89S51数据手册.主要仪器设备及材料1.普通计算机一台,单片机开发环境;2.电路安装与调试用相关仪器和工具。
(如示波器、万用表、电烙铁、镊子、钳子等)。
论文(设计)过程中教师的指导安排每周四进行交流与总结;其余时间灵活安排,及时解决学生问题。
对计划的说明依学生实际情况,适当调整工作进度。
西安邮电学院毕业设计(论文)开题报告电子工程学院光电子技术系(部)光电信息工程专业2006 级光电0601班课题名称:基于单片机的红外遥控智能小车学生姓名:赵美英学号:05064028指导教师:崔利平报告日期: 2010年3月25日说明:本报告必须由承担毕业论文(设计)课题任务的学生在毕业论文(设计) 正式开始的第1周周五之前独立撰写完成,并交指导教师审阅。
基于51单片机的红外智能遥控小车李秋玉李敏
基于51单片机的红外智能遥控小车李秋玉李敏发布时间:2022-07-08T14:50:18.544Z 来源:《创新人才教育》2021年12月作者:李秋玉李敏[导读] 随着人工智能的快速发展,智能化小车在现实生活中应用越来越广。
湖南省衡阳市职业中等专业学校李秋玉湖南财经工业职业技术学院李敏 421002摘要:随着人工智能的快速发展,智能化小车在现实生活中应用越来越广。
采用51单片机为控制核心,应用红外遥控技术,数码显示技术,电机驱动技术等,实现了小车的无线运行控制、速度调节等功能,增强了小车的智能化程度。
关键词:51单片机;红外遥控;电机驱动;智能化;引言随着生活水平的不断提高,人们对于工作环境的要求也越来越高。
一些工作环境恶劣,或者危险系数比较高的岗位,人们越来越不想参与[1]。
然而,智能化的发展,很好的弥补了这方面的不足。
智能移动小车,能代替人们穿越一些危险、复杂的工作环境,装载各类智能化设备去完成工作任务,如灭火、环境监测和检修等[2,3,4]。
因此,智能车的研究在相关行业的电子设计竞赛,或者创新竞赛中都比较重视,同时也是各高校师生的热点研究方向[5]。
本文设计了一款基于51单片机的红外遥控智能小车,重点讲述了小车的硬件电路和软件程序。
设计测试结果表明,其智能化程度高,成本低廉,具有较大的应用前景和研究意义。
1、总体框架图本设计采用51单片机为控制核心,应用红外遥控技术和电机驱动技术实现对小车无线控制,同时采用数码显示技术,实现小车速度档位的显示。
其总体框架图如图1所示,主要包括单片机、红外接收模块、数码显示模块、电机驱动模块,以及电源模块。
红外接收模块接收红外信号,发送给单片机进行解码,单片机根据解码的信息,实现小车的智能控制和速度档位的显示,电源模块给其它模块提供电源。
2、硬件电路硬件电路主要包括单片机最小系统、红外收发电路、电机驱动电路、数码显示电路和电源电路。
单片机最小系统为硬件电路核心部分,是整个设计的数据处理中心;红外收发电路为信号来源与初处理电路;电机驱动电路为小车的运行控制电路;数码显示电路为小车速度档位显示电路;电源电路为整个智能小车提供合适的电源。
基于单片机的红外遥控小车控制电路的设计讲解
华北科技学院毕业设计(论文)目录设计总说明 (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)华北科技学院毕业设计(论文)基于单片机的红外遥控小车控制电路设计设计总说明红外线是近距离、高速无线通信的一种手段,一直以来,红外遥控、遥测技术在玩具生产、家电制造及工业测控等领域得到了广泛的应用.作为近距离、室内通信的手段,红外线具有无线电无法比拟的优势.因此,遥控加智能的技术研究、应用都是非常有意义而且有很高的市场价值的。
红外遥控的特点是利用红外线进行点对点通信的技术,不影响周边环境,不干扰其他电器设备。
基于单片机的红外遥控小车系统设计
红外接收与控件电路原理图: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单片机的红外遥控小车一、引言随着科技的发展,遥控小车成为了儿童玩具市场上的一大热门。
遥控小车的设计不仅考虑到了玩乐性,还考虑到了教育性,可以培养儿童的动手能力和逻辑思维能力。
本文基于51单片机,设计了一款红外遥控小车,以满足儿童的玩乐需求。
二、系统设计1.系统功能设计:本系统的主要功能是通过红外遥控器控制小车的运动,包括前进、后退、左转、右转。
2.硬件设计:主控芯片:选用51单片机作为主控芯片,具有较好的性能和稳定性。
红外接收模块:接收红外信号并将信号转换为数字信号,以供单片机处理。
电机驱动模块:用于控制小车的运动方向和速度。
电源模块:提供系统所需的电源电压。
车身模块:包括小车的车身、轮子。
3.软件设计:使用Keil C编程语言编写程序,实现功能的具体控制。
程序主要分为红外信号接收、数据解码、电机控制等模块。
三、工作原理1.红外信号接收:通过红外接收模块接收红外信号,将信号转换为数字信号。
2.数据解码:通过程序对接收到的数字信号进行解码,将信号转换为指令,如前进、后退、左转、右转。
3.电机控制:根据解码得到的指令,控制电机驱动模块,实现小车的运动。
四、实验结果与分析在实验中,我们使用了51单片机和红外接收模块来控制小车的运动。
通过红外遥控器发送不同的指令,小车可以做出相应的动作。
经过实验,我们发现系统设计能够满足预期的功能。
红外遥控小车的控制灵敏度较高,操作简单,容易上手。
五、总结与展望本设计初稿基于51单片机的红外遥控小车,实现了通过红外遥控信号控制小车的运动。
该系统技术上相对成熟,功能完善,可以作为儿童玩具市场的一种选择。
然而,还存在一些不足之处,例如电池寿命较短、遥控距离有限等。
在后续的设计中,我们将进一步优化电源模块,延长电池寿命,并尝试添加更多有趣的功能。
总之,基于51单片机的红外遥控小车设计初稿已经基本完成,未来还可以对该系统进行进一步开发,以满足不同需求的儿童。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于51单片机的红外遥控小车设计和制作
论文关键字:AT89C51单片机直流电机红外线遥控循迹 L298
论文摘要:本文介绍一款红外线遥控小车,以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。
图2 遥控发射器电路原理图
2、红外线接收模块
该模块使用一体化红外接收头1838,其电路如图3所示。
瓷片电容104为去耦电容,DOUT即是解调信号的输出端,直接与单片机的P3.2口相连。
有红外编码信号发射时,输出为检波整形后的方波信号,并直接提供给单片机。
图3 红外接收原理图
3、电机驱动模块
该模块主要由芯片L298控制两个电机的正反转,以及改变电机的转速,其电路如图4所示。
L298 芯片是一种高压、大电流双全桥式驱动器。
其中SENSEA、SENSEB分别为两个H桥的电流反馈脚,不用时可以直接接地。
VCC,VS是接电源引脚,电压范围分别是4.5~7V、2.5~46V,设计中VCC端与单片机电源端共用5V工作电源,VS端独立接9V电
源。
ENA,ENB为使能端,低电平禁止输出。
IN1,IN2,IN3,IN4为数据输入引脚,OUT1,OUT2,OUT3,OUT4为数据输出引脚。
D1~D8是保护二极管(IN5819),用于释放掉电机停车时产生的反响尖峰电势,否则会击坏L298。
图4 电机驱动原理图
4、障碍物检测和寻迹模块障碍物检测和轨迹检测原理是相同的。
从经济的角度考虑,该模块选用了反射式光耦,其电路如图5所示。
反射式光耦由一个红外发射管和一个光敏三极管组成。
LM324是电压比较器,当3脚的电平大于2脚时,输出端1脚输出高电平,反之输出低电平。
高低电平的值取决于LM324的2脚电平,调整电位器R23使LM324的2脚电压为3V。
避障电路安装在小车的头部的左右两边,分别用于检测左右障碍物。
工作过程是:当无障碍物时,不反射红外线,光敏三极管截止,LM324的3脚在R16的上拉作用下为高电平(5V),大于2脚电压(3V),输出高电平;当遇到障碍物时,反射红外线,光敏三极管导通,比较器3脚接地,小于2脚电压(3V),输出低电平。
单片机根据电平的变化判断有无障碍物,当左边遇到障碍物时小车右转,当右边遇到障碍物时小车左转。
循迹电路安装在小车的底部的左右两边,循迹是通过辨别黑白色来行走。
工作过程是:红外发射管发出红外光,当遇到黑色,不反射红外光,比较器输出为高电平;当遇到白线,红个光反射回来,比较器输出为低电平。
当左边检测到白色时小车右转,当右边检测到白色时小车左转,当两边检测到的都是黑色时小车前进,当两边检测到的都是白色时小车停止。
图5 障碍物检测、轨迹检测原理图
四、软件设计
本系统的软件用C语言编写,分为主程序,外部中断解码子程序、自动驾驶子程序、手动驾驶子程序、障碍物检测子程序、轨迹检测子程序、定时器1中断调速子程序等。
主程序完成系统硬件的初始化、子程序调用等功能。
主程序、解码子程序如图6、图7所示。
图6 主程序流程图7 解码程序流程图
结束语:
经实践表明,本文所设计的红外线遥控小车运行稳定、遥控灵敏、占用系统硬件资源少。
且在不改变硬件电路,仅通过软件编程小车就可以实现障碍物检测、报警等功能。
参考文献:
[1] 陈权昌,李兴富.单片机原理及应用[M].广州:华南理工大学出版社,2007
[2] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:清华大学出版社,2002
[3] 侯玉宝,陈忠平,李成群,等.基于Proteus 的51系列单片机设计与仿真.北京:电子工业出版社,2008
[4] 郝建国,郑燕.单片机在电子电路设计中的应用[M].北京:清华大学出版社,2006
参考资料。