基于单片机的红外遥控小车设计说明

合集下载

基于单片机智能遥控小车的设计

基于单片机智能遥控小车的设计

基于单片机智能遥控小车的设计引言:一、硬件设计:智能遥控小车的硬件设计包括机械结构和电子模块两个方面。

1.机械结构设计:机械结构设计为小车提供了良好的稳定性和移动能力。

首先,选取适合的底盘结构,确保小车的稳固性和均衡性。

其次,选择合适的电机和轮子,以实现小车的前进、后退和转向功能。

最后,在机械结构中添加传感器支架和摄像头支架,方便后续的传感器和摄像头模块的安装。

2.电子模块设计:电子模块设计包括主控模块、通信模块和电源模块三个部分。

(1)主控模块:主控模块是整个智能遥控小车的核心,它负责接收遥控命令、控制电机的转动并实时处理传感器数据。

选择一款性能较强的单片机作为主控芯片,如STM32系列,以满足小车处理复杂任务的需求。

(2)通信模块:(3)电源模块:电源模块为智能遥控小车提供稳定的电源,要保证小车的正常工作需要满足一定的电流和电压要求。

选取合适的锂电池组或者干电池组作为电源,通过适当的电压调节和保护电路,保证电源的稳定性和安全性。

二、软件设计:智能遥控小车的软件设计包括底层驱动程序的编写和上层应用程序的开发。

1.底层驱动程序:底层驱动程序主要用于控制电机和监测传感器数据。

通过编写合适的电机驱动程序,实现小车的前进、后退和转向功能。

同时,编写传感器驱动程序获取传感器的数据,如超声波测距、红外线检测和摄像头采集等,为上层应用程序提供数据支持。

2.上层应用程序:三、功能拓展:智能遥控小车的功能可以通过添加各种传感器和模块进行拓展,如以下几个功能:1.环境检测功能:通过添加温湿度传感器、二氧化碳传感器等,实时监测环境数据,可以应用于室内空气质量、温湿度调节等应用。

2.避障功能:通过添加超声波传感器、红外线传感器等,在小车前方进行信号检测,实现小车的避障功能。

3.图像识别功能:通过添加摄像头模块,对图像进行处理和分析,实现小车的图像识别功能,如人脸识别、物体识别等。

结论:基于单片机的智能遥控小车设计通过合理的硬件结构和软件设计,实现了远程遥控和实时传输数据的功能。

基于51单片机的红外遥控小车设计和制作

基于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单片机红外无线遥控智能小车控制设计

基于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单片机的红外遥控小车设计和制作本文介绍一款红外线遥控小车,以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语言编写的,负责接收红外信号并判断相应的指令。

红外信号的解码则是将红外接收器接收到的信号转换成数字信号,使单片机能够理解和执行。

小车的功能包括前进、后退、左转、右转和停止。

远程控制器上的按键对应不同的指令,通过红外遥控技术将指令发送给红外接收器。

红外接收器接收到指令后,传输给单片机进行解码。

单片机根据指令控制电机驱动器,使小车实现不同的动作。

实现过程如下:首先,根据硬件部分的连接原理图将各个硬件连接起来,并将电源接通。

然后,编写单片机程序,使其能够接收红外信号并解码。

接下来,根据不同的指令,编写程序控制电机驱动器,使小车实现前进、后退、左转、右转和停止的功能。

最后,对整个系统进行测试和调试,验证其功能和性能。

在设计过程中,还需要考虑小车的安全性和可靠性。

例如,可以加入碰撞检测功能,当小车检测到碰撞时,自动停止运动。

同时,还可以加入电池电量检测功能,当电池电量低于一定值时,自动停止运动并发出警报。

总结:通过本文的介绍,我们了解了基于单片机的红外遥控小车设计。

该设计能够实现远程控制和执行各种动作,具有很大的应用潜力。

然而,在实际应用中,还需要进一步优化设计,以提高小车的性能和功能。

希望未来能够有更多的研究和创新,推动该领域的发展。

基于单片机的红外避障小车毕业设计(论文) 精品

基于单片机的红外避障小车毕业设计(论文) 精品
(1)智能感知系统,利用各种传感器来获得车辆自身、车辆行驶的周围环境及
驾驶员本身的状态信息,必要时发出预警信息。主要包括碰撞预警系统和驾驶员状态监控系统。碰撞预警系统可以给出前方碰撞警告、盲点警告、车道偏离警告、换道/并道警告、十字路口警告、行人检测与警告、后方碰撞警告等.驾驶员状态监控系统包括驾驶员打吨警告系统、驾驶员位置占有状态监测系统等。
本设计主要由单片机控制系统模块、电机驱动模块、红外避障模块、声控模块组成,系统以STC89C52RC单片机为核心,通过避障模块和声控模块接受到的信息来控制电机运行。系统通过7节1.5V干电池通过降压电路降成5V稳定直流电对单片机和发动机进行供电。本文介绍了红外避障的原理、系统整体设计及相关软件的介绍。软件部分采用模块化设计思路,整个程序包括主程序,电机驱动程序,信号检测程序,通过小车运行时检测到的运行信息来调用左转、直行或停止函数来控制小车。
其实物图和原理图如下图
红外传感器E18-D80NK-N实物图
红外传感器E18-D80NK-N内部原理图
电器特性:
红色:VCC;黑色:GND;黄色:OUT。
U:5VDC
This design is mainly composed of single-chip microcomputer control system module, motor drive module, the infrared obstacle avoidance module, voice control module, system with STC89C52RC single-chip microcomputer as the core, through the obstacle avoidance module and voice control module receives information to control the motor running. System by 7 1.5 V dry cell by step-down circuit down into a stable dc 5 V for single chip microcomputer and engine power. This paper introduces the principle of infrared obstacle avoidance, the introduction of overall system design and related software. Software part adopts the modular design thinking, the process includes the main program, motor driver, signal detection procedures, through the car runs the operation of the detected information call to turn left, go straight, or stop function to control the car.

基于51单片机红外遥控小车制作报告

基于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单片机和红外遥控的原理,并提高了自己的动手能力和解决问题的能力。

在实验过程中遇到了一些困难,但通过查阅资料和与同学交流,我成功地解决了这些问题。

基于单片机的智能小车设计(红外避障及循迹)

基于单片机的智能小车设计(红外避障及循迹)

轮式移动机器人的设计报告单片机系统课程设计智能小车(避障及循迹)的设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

基于51单片机的红外智能遥控小车李秋玉李敏

基于51单片机的红外智能遥控小车李秋玉李敏

基于51单片机的红外智能遥控小车李秋玉李敏发布时间:2022-07-08T14:50:18.544Z 来源:《创新人才教育》2021年12月作者:李秋玉李敏[导读] 随着人工智能的快速发展,智能化小车在现实生活中应用越来越广。

湖南省衡阳市职业中等专业学校李秋玉湖南财经工业职业技术学院李敏 421002摘要:随着人工智能的快速发展,智能化小车在现实生活中应用越来越广。

采用51单片机为控制核心,应用红外遥控技术,数码显示技术,电机驱动技术等,实现了小车的无线运行控制、速度调节等功能,增强了小车的智能化程度。

关键词:51单片机;红外遥控;电机驱动;智能化;引言随着生活水平的不断提高,人们对于工作环境的要求也越来越高。

一些工作环境恶劣,或者危险系数比较高的岗位,人们越来越不想参与[1]。

然而,智能化的发展,很好的弥补了这方面的不足。

智能移动小车,能代替人们穿越一些危险、复杂的工作环境,装载各类智能化设备去完成工作任务,如灭火、环境监测和检修等[2,3,4]。

因此,智能车的研究在相关行业的电子设计竞赛,或者创新竞赛中都比较重视,同时也是各高校师生的热点研究方向[5]。

本文设计了一款基于51单片机的红外遥控智能小车,重点讲述了小车的硬件电路和软件程序。

设计测试结果表明,其智能化程度高,成本低廉,具有较大的应用前景和研究意义。

1、总体框架图本设计采用51单片机为控制核心,应用红外遥控技术和电机驱动技术实现对小车无线控制,同时采用数码显示技术,实现小车速度档位的显示。

其总体框架图如图1所示,主要包括单片机、红外接收模块、数码显示模块、电机驱动模块,以及电源模块。

红外接收模块接收红外信号,发送给单片机进行解码,单片机根据解码的信息,实现小车的智能控制和速度档位的显示,电源模块给其它模块提供电源。

2、硬件电路硬件电路主要包括单片机最小系统、红外收发电路、电机驱动电路、数码显示电路和电源电路。

单片机最小系统为硬件电路核心部分,是整个设计的数据处理中心;红外收发电路为信号来源与初处理电路;电机驱动电路为小车的运行控制电路;数码显示电路为小车速度档位显示电路;电源电路为整个智能小车提供合适的电源。

基于单片机的红外遥控智能小车毕业设计报告

基于单片机的红外遥控智能小车毕业设计报告

毕业设计(论文)题目:基于单片机的红外遥控智能小车西安邮电学院毕业设计(论文)任务书学生姓名指导教师职称工程师学院电子工程学院系部光电子技术专业光电信息工程题目基于单片机的红外遥控智能小车任务与要求任务:以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周周五之前独立撰写完成,并交指导教师审阅。

基于单片机智能遥控小车的设计说明

基于单片机智能遥控小车的设计说明

基于单⽚机智能遥控⼩车的设计说明编号单⽚机课程设计(级)题⽬:基于单⽚机智能红外遥控⼩车的设计学院:物理与机电⼯程学院专业:电⼦信息科学与技术作者姓名:指导教师:职称:副教授完成⽇期:20 年 1 ⽉ 6 ⽇⼆〇⼀七年⼀⽉基于单⽚机智能红外遥控⼩车的设计摘要本次设计的简易智能⼩车,采⽤STC89C52RC单⽚机作为⼩车的检测和控制核⼼;采⽤红外线遥控远程⼈为控制⼩车⾏驶状态;采⽤SM4105W80U3显⽰⼩车处于⾃动⾏驶还是遥控⾏驶;可以实现⼩车的前进、后退、左转、右转、停⽌运动。

关键词:STC89C52RC;红外遥控1 前⾔本设计能实现对⼩车的运动状态进⾏实时控制,控制灵活、可靠,精度⾼,可满⾜对系统的各项要求。

本设计采⽤MCS-51系列中的STC89C52RC单⽚机。

以STC89C52RC为控制核⼼,使⽤红外遥控对⼩车的前进、后退、左转、右转、停⽌运动进⾏实时的控制。

本次设计主要内容是基于STC89C52RC设计⼀部智能⼩车,⼩车能够实现⾃动前进,和红外遥控的智能⼩车控制系统,包括了对驱动电路,红外通讯等的探索和研究。

2 ⽅案设计与论证2.1 遥控⽅案的选择由于属于⼩范围内遥控,⼩车在⼩范围内⾏驶,为了减少设计成本,增加便利性,所以采⽤常⽤的家⽤电视红外遥控器作为红外遥控发射部分,只需在⼩车上加装红外接收装置即可。

定义遥控器的上⼀曲键为左转键,暂停键为右转键,下⼀曲键为停⽌键,CH健为前进键,⾳量增⼤键为后退键,实现⼩车⾏驶的基本控制。

红外遥控系统的组成如图2.1所⽰。

发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放⼤器、解调、解码电路。

图2.1 红外流程图2.2 遥控对⼩车的控制切换到红外遥控功能,对⼩车的前进、后退、左转、右转、停⽌运动实现实时控制,具体如下所述:(1)前进是左右两个电机同时顺时针旋转,实现⼩车的前进;(2)后退是左右两个电机同时逆时针旋转,实现⼩车的后退;(3)停⽌是左右两个电机同时停⽌旋转,实现⼩车的停⽌;(4)右转是右电机逆时针旋转和左电机顺时针旋转同时⼯作,实现⼩车的右转;(5)左转是左电机逆时针旋转和右电机顺时针旋转同时⼯作,实现⼩车的左转;实现不同的运动⽅式,是通过PWM信号对L293D芯⽚中的H桥进⾏控制。

基于单片机的红外遥控小车控制电路的设计讲解

基于单片机的红外遥控小车控制电路的设计讲解

华北科技学院毕业设计(论文)目录设计总说明 (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)华北科技学院毕业设计(论文)基于单片机的红外遥控小车控制电路设计设计总说明红外线是近距离、高速无线通信的一种手段,一直以来,红外遥控、遥测技术在玩具生产、家电制造及工业测控等领域得到了广泛的应用.作为近距离、室内通信的手段,红外线具有无线电无法比拟的优势.因此,遥控加智能的技术研究、应用都是非常有意义而且有很高的市场价值的。

红外遥控的特点是利用红外线进行点对点通信的技术,不影响周边环境,不干扰其他电器设备。

基于单片机控制的红外遥控小车(最终修订版)3

基于单片机控制的红外遥控小车(最终修订版)3

ANYANG INSTITUTE OF TECHNOLOGY专科毕业论文基于AT89C52的红外遥控小车设计An Infrared Telecontrol Car Based on The AT89C52 Chip系(院)名称:电子信息与电气工程系专业班级:学生姓名:指导教师姓名:指导教师职称:讲师2009年5月目录摘要 (I)Abstract (II)第一章绪论 (1)1.1 课题背景 (1)1.2 设计要求 (1)1.3 设计方案 (1)第二章硬件设计 (2)2.1 AT89C52单片机 (2)2.1.1 单片机选型 (2)2.1.2 AT89C52单片机的硬件结构简介 (2)2.1.3 单片机的中断 (7)2.1.4 单片机输出控制隔离电路 (7)2.2 电源电路 (8)2.2.1集成稳压块选型 (8)2.2.2 集成稳压块7805介绍 (8)2.2.3单片机5V电源的获得 (9)2.3 红外遥控与接收 (9)2.3.1 PWM(Pulse Width Modulation)脉宽调制技术 (9)2.3.2红外接收电路 (11)2.3.3用单片机解码红外信号 (13)2.4 直流电机 (14)2.4.1直流电机工作原理 (14)2.4.2 电机驱动芯片L298 (15)2.4.3电机驱动电路和保护电路 (18)2.5 硬件原理总图 (19)第三章软件设计 (20)3.1 产品主程序的设计 (20)3.2 程序流程图 (24)第四章安装与调试 (25)4.1 安装制作 (25)4.2 调试 (25)结论 (27)致谢 (28)参考文献 (29)基于AT89C52的红外遥控小车设计专业班级:06通信技术学生姓名:王利强指导教师:杨丽飞职称:讲师摘要:本设计是以单片机(AT89C52)为核心,利用小功率芯片L298驱动直流电机,通过脉宽调制技术控制电机的正反转和转速;利用单片机提供的中断功能和指令系统接收由红外传感器发出的中断信号,并查找相应的中断服务子程序,执行相应的指令,控制并改变直流电机的运行状态,从而实现小车的前进、后退、左转、右转及慢速前进、慢速后退等。

基于单片机的红外遥控小车系统设计

基于单片机的红外遥控小车系统设计

红外接收与控件电路原理图: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单片机的红外遥控小车一、引言随着科技的发展,遥控小车成为了儿童玩具市场上的一大热门。

遥控小车的设计不仅考虑到了玩乐性,还考虑到了教育性,可以培养儿童的动手能力和逻辑思维能力。

本文基于51单片机,设计了一款红外遥控小车,以满足儿童的玩乐需求。

二、系统设计1.系统功能设计:本系统的主要功能是通过红外遥控器控制小车的运动,包括前进、后退、左转、右转。

2.硬件设计:主控芯片:选用51单片机作为主控芯片,具有较好的性能和稳定性。

红外接收模块:接收红外信号并将信号转换为数字信号,以供单片机处理。

电机驱动模块:用于控制小车的运动方向和速度。

电源模块:提供系统所需的电源电压。

车身模块:包括小车的车身、轮子。

3.软件设计:使用Keil C编程语言编写程序,实现功能的具体控制。

程序主要分为红外信号接收、数据解码、电机控制等模块。

三、工作原理1.红外信号接收:通过红外接收模块接收红外信号,将信号转换为数字信号。

2.数据解码:通过程序对接收到的数字信号进行解码,将信号转换为指令,如前进、后退、左转、右转。

3.电机控制:根据解码得到的指令,控制电机驱动模块,实现小车的运动。

四、实验结果与分析在实验中,我们使用了51单片机和红外接收模块来控制小车的运动。

通过红外遥控器发送不同的指令,小车可以做出相应的动作。

经过实验,我们发现系统设计能够满足预期的功能。

红外遥控小车的控制灵敏度较高,操作简单,容易上手。

五、总结与展望本设计初稿基于51单片机的红外遥控小车,实现了通过红外遥控信号控制小车的运动。

该系统技术上相对成熟,功能完善,可以作为儿童玩具市场的一种选择。

然而,还存在一些不足之处,例如电池寿命较短、遥控距离有限等。

在后续的设计中,我们将进一步优化电源模块,延长电池寿命,并尝试添加更多有趣的功能。

总之,基于51单片机的红外遥控小车设计初稿已经基本完成,未来还可以对该系统进行进一步开发,以满足不同需求的儿童。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机系统设计实例红外遥控小车专业:信息对抗技术:吴志飞学号:1411050121指导教师:东阳目录1 绪论 (1)2 系统分析 (2)2.1 系统框架 (2)2.2 电机驱动模块 (3)2.3 LCD显示模块 (4)3 系统硬件设计 (5)3.1 主控模块的电路设计 (6)3.1.1 AT89C51单片机的简介 (8)3.1.2 AT89C51管脚功能 (8)3.2 红外遥控模块的电路设计 (9)3.2.1 红外遥控的实现原理 (10)3.2.2 红外发射器 (11)3.2.3 红外接收器 (12)3.3 电机驱动模块的电路设计 (12)3.4 显示模块的电路设计 (13)4 系统软件设计 (14)4.1 程序代码 (14)4.2 软件流程图 (17)5 调试与仿真 (18)5.1 在keil中进行调试 (18)5.2在Proteus中进行仿真 (19)6 总结 (21)参考文献 (22)1 绪论随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,,智能化程度越来越高,应用围也越来越广,包括海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。

智能电动小车系统以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科。

主要由路径识别、角度控制及车速控制等功能模块组成。

同时,当今机器人技术发展的如火如荼,其在国防等众多领域的应用广泛开展。

神五、神六升天、无人飞船等等无不得益于机器人技术的迅速发展。

一些发达国家已把机器人制作比赛作为创新教育的战略性手段,参加者多数为学生,目的在于通过大赛全面培养学生的动手能力、创造能力、合作能力和进取精神,同时也普及智能机器人的知识。

从某种意义上来说,机器人技术反映了一个国家综合技术实力的高低,而智能电动小车是机器人的雏形,它的控制系统的研制将有助于推动智能机器人控制系统的发展,同时为智能机器人的研制提供更有利的手段。

本次课设设计的红外遥控智能小车可以分为四大组成部分:红外遥控部分、显示部分、执行部分、控制部分。

智能小车可以实现按遥控指示前行,后退,左转和右转。

该设计主要通过对系统硬件电路的设计,软件设计和程序的编写,然后通过后期软硬件调试达到设计初衷。

2 系统分析2.1 系统框架该系统以AT89C51单片机为核心的控制电路,采用模块化的设计方案,利用红外遥控器代替开关按键控制小的启动和停止,能够轻松自如的实现小车的启动停止、左转、右转和前进后退等功能。

系统控制框图如图2-1所示:图2.1 系统控制框图采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。

充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。

这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。

因此,这种方案是一种较为理想的方案。

2.2 电机驱动模块常用的电机驱动电路有采用功率三极管作为功率放大器的输出控制直流电机,其线性型驱动的电路结构和原理简单,加速能力强;采用由达林顿管组成的H 型桥式电路,用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。

这种电路由于工作在管子的饱和截止模式下,效率非常高,带负载能力强;采用集成H桥L298N电路驱动电机,使用方便可靠。

本次设计采用L298N作为电机驱动部分,其主要特点有:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A;含两个H桥的高电压大电流全桥式驱动器,既可以驱动直流电机,也可以驱动步进电机;逻辑“0”输入电压高达1.5V,具有高抗噪性能。

其引脚排列如下图所示:图2.2 L298管脚排列图现对L298各个引脚及其功能做一简要说明。

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(13脚)、OUTPUT4(14脚):电桥B的输出端。

2.3 LCD显示模块常用的数码显示器件主要有LED数码显示器和LCD液晶显示器。

LCD显示器具有低功耗、散热小、浅薄轻巧、显示锐利、屏幕调节方便等特点,同时又是现在市场的主流产品,价格较以往也有大幅的下降。

常用的有12864和1602考虑到价格和实用性最终选择了1602液晶屏,既可以满足产品需要价格也相对低廉。

图2.3 LCD 1602管脚排列图各引脚功能说明如下:Vss:电源地。

Vcc:电源正极。

RS: 寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。

R/W: 读写信号线,高电平时进行读操作,低电平时进行写操作。

E:使能端,当E从高电平跳转到低电平时有效。

D0-D7:8位双向数据线。

3 系统硬件设计3.1 主控模块的电路设计3.1.1 AT89C51单片机的简介51系列单片机的部功能可由图3.1所示的框架来描述。

图3.1 51系列单片机部组成功能图1.中央处理器CPUCPU又称微处理器,或中央处理器,是单片机的核心部件,它决定了单片机的主要功能特性。

CPU负责控制、指挥和调度整个系统单元协调工作,完成运算和控制输入输出功能。

CPU就像人的大脑一样,决定了单片机的运算能力和出理速度。

2.程序存储器ROMROM是只读存储器的简称,是一种只能读出事先所存数据的固态半导体存储器,用来存放用户程序,可分为EPROM、EEPROM、MaskROM、OTP ROM和Flash ROM 等。

3.随机存储器RAMRAM是随机存储器的简称,用来存放运行程序的地址和数据,由于RAM的制造工艺复杂,价格比ROM高得多。

当电源关闭时RAM不能保留数据。

如果需要保存数据,就必须把它们写入静态随机存取存储器(例如硬盘)。

RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会动消失,可以长时间断电保存。

4.可编程并行输入输出I/O口可编程并行输出口通常作为独立的双向I/O口使用,既可作为输入方式,又可作为输出方式,通过软件设定实现。

I/O口是单片机的重要资源,也是衡量单片机功能的重要指标。

5.定时计数器T/C定时/计数器用于单片机部精确定时或对外部信号或脉冲计数,通常单片机部有多个定时计数器。

6.中断系统中断系统使技术安吉的重要组成部分。

实时控制中往往用到中断系统,计算机与外部设备传送数据及实现人机联系时要用到中断系统。

7.时钟电路单片机通常需要外接石英晶振或其他振荡源提供时钟信号输入,也有的使用部RC震荡器。

3.1.2 AT89C51管脚功能51系列单片机最常用的是40引脚集成电路芯片,由于单片机是一个芯片,体积较小,为了增其功能,许多引脚具有两个功能,其引脚功能如下图所示。

图3.2 单片机引脚功能图1.主电源引脚Vcc(40脚):接+5V电源;Vss(20脚):接数字电路地。

2.外接晶体引脚XTAL1(19脚):接石英晶体一端;XTAL2(18脚):接石英晶体另一端。

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/VPD(9脚):该引脚为单片机的上电复位端或掉电保护段。

ALE(30脚):地址锁存有效信号输出端,高电平有效。

EA/Vpp(31):片外程序存储器选用段,低电平有效。

高电平时选用片程序存储器。

3.2 红外遥控模块的电路设计3.2.1 红外遥控的实现原理红外遥控的实现主要是如何用程序去分析位0和位1。

位0和位1所不同之处就是在高电平脉冲后的低电平脉宽不一样,采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“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左右均可。

根据码的格式,应该等待9ms的起始码和4.5ms的结束码完成后才能读码。

红外遥控系统主要分为调制、发射和接收三部分。

红外遥控芯片将红外码调制成合适的脉冲信号经红外发射二极管发射红外编码后由红外接收器把接收到的遥控发射遥控接收图3.3 红外遥控系统框图红外线遥控是目前使用最广泛的一种通信和遥控手段。

由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。

工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。

3.2.2 红外发射器该电路的主要控制器件为遥控器芯片HT6221。

HT6221是Holtek公司生产的多功能编码芯片,采用脉冲位置调制PPM(Pulse Position Modulation)进行编码,利用脉冲的时间间隔来区分0和1。

1.12ms为0,2.24ms为1。

HT6221能编码16位地址码和8位数据码,最多能同时支持32个开关键。

HT6221键码的形成:当一个键按下超过36ms,振荡器使芯片激活,如果这个按键按下且延迟大约108ms,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这个8位数据码的反码(9ms~18ms)组成,如果按键按下超过108ms 仍未松开,接下来发射的代码将仅由起始码(9ms)和结束码(2.5ms)组成。

相关文档
最新文档