单片机大作业-简易红外遥控小车设计

合集下载

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

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

单片机系统课程设计智能小车(避障及循迹)的设计学院:班级:姓名:学号:同组成员:指导老师:日期:摘要智能作为现代社会的新生产物,是未来的发展的一个重要方向,它可以按照预定的模式在特定的环境里自动的运作,无需人为管理,便可以完成预期目标。

本设计主要体现多功能小车的智能模式,设计中的理论方案、分析方法及特色与创新点等对智能化机器人,智能家用电器等自动半自动机器人的设计与普及有一定的参考意义。

整个智能小车设计主要以单片机为控制核心,通过红外遥控实现小车前后左右的移动,以及对小车功能模式的转换;通过红外传感器,实现小车的避障功能和循迹功能。

设计采用对比选择,模块独立,综合处理的研究方法。

结合实际情况对比方案优劣选出最优方案进行设计。

从红外遥控,红外循迹和避障,都严格按照科学严谨态度完成。

通过调试检测各模块,得到正确的信号输出,实现其应有的功能。

最后将各个调试成功的模块结合到小车的车体上,结合程序,通过单片机的控制,将各模块有效整合在一起,达到所预期的目标,完成最终设计与制作,能使小车在一定的环境中智能化运转。

关键词:智能小车避障循迹遥控ABSTRACTSmart as a new product of modern society, it is an important direction of future development, it can be according to the predetermined pattern in a specific environment of automatic operation, without human management, can achieve expected goal. This design mainly reflects the multi-function car intelligent mode, the theory in the design of scheme, analysis method and special features and innovation point of intelligent robot, intelligent home appliances such as the design of automatic semi-automatic robot and popularity have certain reference significance.The smart car design mainly by the single chip processor as the core, through infrared remote control to realize the car moving around, as well as to the car function mode conversion; Through the infrared sensor, achieve the function of car obstacle avoidance and tracking function. Independent design USES contrast to choose, module, integrated processing methods. Combined with actual situation comparing scheme to design and choose the optimal solution. From the infrared remote control, infrared tracking and obstacle avoidance, are in strict accordance with the scientific rigorous attitude to complete. Through debugging test module, get the correct output signal, realize its function. Finally combine the modules of various debugging success on car body, combined with the program, through the single-chip microcomputer control, to effectively integrate various modules together, achieve the expected goals, complete the final design and production, can make the car intelligent operation in a certain environment.Keywords: intelligent car avoidance tracking control第一章绪论 (1)1.1 设计的背景和意义 (1)1.2 智能小车的发展现状 (2)1.3 该设计的主要内容和目的 (4)第二章系统总体方案设计与论证 (5)2.1 系统的总体方案设计 (5)2.2 主控系统 (6)2.3 电机驱动模块 (6)2.4 循迹模块 (6)2.5 显示模块 (6)第三章系统硬件电路设计 (7)3.1 主控模块的电路设计 (7)3.1.1 AT89S52单片机的简介 (7)3.2 红外避障模块的电路设计 (9)3.2.1 LM393双电压比较器集成电路 (9)3.2.2红外对管工作原理 (11)3.2.3红外避障电路图及工作原理 (12)3.3红外循迹电路的设计 (13)第四章系统软件设计 (15)4.1 主程序 (15)第五章总结 (25)附录1程序清单 (26)附录2硬件原理图 (35)附录3 实物图 (36)第一章绪论1.1 设计的背景和意义随着电子技术、计算机技术和制造技术的飞速发展,数码相机、DVD、洗衣机、汽车等消费类产品越来越呈现光机电一体化、智能化、小型化等趋势。

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

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

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

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. 引言智能小车控制系统是一种目前比较受关注的智能化系统,在智能出行和智慧交通中有着广泛的应用。

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

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

编号单片机课程设计(级)题目:基于单片机智能红外遥控小车的设计学院:物理与机电工程学院专业:电子信息科学与技术作者姓名:指导教师:职称:副教授完成日期: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桥进行控制。

单片机大作业简易红外遥控小车设计

单片机大作业简易红外遥控小车设计

安阳工学院《单片机基础》课程大作业《简易红外遥控小车设计》院系:计算机科学与信息工程学院专业班级:姓名:学号:成绩(教师填写)___________20 年月日一、课题名称:《简易红外遥控小车设计》二、方法步骤:1.总体设计主要设计思想:本设计利用通用红外遥控器控制小车后轮两个电机的动作来实现小车走、停、转弯等功能。

并通过软件控制小车方向和PWM调速小车的转速。

具体思想如下:通过外部中断1接收红外信息,并通过软件解码,根据接收信息的不同通过PWM和控制函数做出响应,并且在二极管上面反映出来,所以说二极管充当车灯和档位指示灯的作用,且每次接收信号,蜂鸣器鸣叫用来显示有信号的传入。

主要设计任务:红外遥控小车的设计主要分两大步,第一是硬件实现的设计,第二是单片机软件实现的设计。

(1)其中硬件又分几块:51单片机最小系统板,小型直流电机(3~9V)驱动电路模块,红外接收模块(已集成在最小系统板),蜂鸣器和二极管显示模块,车体。

(2)软件比较简单,但也分了几块:外部中断红外接收解码模块,PWM电机调速模块,主程序。

2.设计任务与要求(1)主要完成的性能指标本小车设计完成后能够实现如下功能:前进、后退、左前传(以做轮胎为轴转弯)、右前转、左圆转(以车体为轴进行转弯)、右圆转、左倒转、右倒转、紧急暂停、123级加减速。

(2)器件选择本设计主要用到以下材料:51单片机一个、通用遥控器一个、红外接收头一个、5号电池7节、车体(双电机+万向轮)一套、蜂鸣器一个、杜邦线若干、二极管9个、L9110S电机驱动芯片2个、其他电阻电容若干(3)单片机选择本设计用到宏晶公司的STC——125A32Ad单片机(4)说明总体框图(可选)(5)画出总线路图(硬件)51单片机最小系统如右:红外电路图如下:L9110S电机驱动电路如下:L9110S电气特性如下:完成后的驱动:实现后的实物图如下:(6)流程图及程序清单//******************************************************************** ***********//***************简易红外小车完全调试程序//***************版本V0.2//***************2012年5月13日10:49:26//***************修改优化时间2012年5月14日0:02:21//***************再次修改时间2012年5月18日20:49:28//***************Made by **************#include<reg52.h>#include"intrins.h"#define uint unsigned int#define uchar unsigned charsbit M11=P1^0; // 电机1接口sbit M12=P1^1;sbit M21=P1^2; // 电机2接口sbit M22=P1^3;sbit LED0=P0^0; // 左前灯sbit LED1=P0^1; // 档1灯sbit LED2=P0^2; // 档2灯sbit LED3=P0^3; // 档3灯sbit LED4=P0^4; //紧急灯sbit LED5=P0^5; //右前灯sbit LED6=P0^6; //左后灯sbit LED7=P0^7; //右后灯sbit F=P1^4;//蜂鸣器接口uchar TEMP1=0;//全局变量,用于存放红外返回值-用于PWM占空比的控制uchar TEMP2=10; // 用于方向的控制sbit Int0 = P3^3; // 红外接收采用外部中断1uchar databus[7];//用于红外接收存放数据//************************************************************//延时函数void delay1(uint xms)//delay 0.1ms{uint i,j;for(i=xms;i>0;i--)for(j=13;j>0;j--);}//************************************************************//********************接受解码函数uchar Rec(){uchar temp=0; //函数内部临时变量,用于返回函数值uint i=0; // 用于存放数据的临时变量uint j=0;uint m=0; // 局部计数临时变量uint n=0; // 局部计数临时变量uint k=0; // 局部计数临时变量EX1=0; // 关外部中断1 ,以防再次外部1中断的介入while(!Int0) //用于计时前9Ms低电平的引导码{delay1(1);m++; // 计数引导码的长度}if(m<=60) //50,可变,大概数,m应该在90左右,如果引导码时间太小(如<50),就表示//此次接收有误,返回0return 0; //while(Int0) //用于计时4.5ms高电平的引导码{delay1(1);n++; //计时高电平}if(n<=30) // 20大概值,应该在45左右,如果太小或太大,都有问题return 0;//当上面的两步都完成时,表示9ms低电平,4.5ms高电平的引导码验证完毕//可进行下步接收数据工作。

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

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

基于单片机的红外遥控智能小车设计引言:随着科技的不断发展,智能物联网已经走进了我们的生活。

智能小车作为一种智能化的产品,能够实现远程遥控、自动避障等功能,受到了广大消费者的青睐。

本文就基于单片机的红外遥控智能小车设计进行详细介绍。

一、设计目标本设计的目标是通过红外遥控,实现对智能小车的远程控制,小车能够根据收到的指令进行行驶、避障等操作。

二、设计原理1.主控芯片:本设计使用单片机作为主控芯片,常用的单片机有51系列、AVR系列等,可根据实际需求选择合适的芯片型号。

2.红外遥控模块:红外遥控模块是实现红外通信的设备,可以将遥控器发出的红外信号解码成数据,实现遥控操作。

3.电机驱动模块:电机驱动模块可将单片机的PWM信号转化为电机的动力驱动信号,控制小车的行驶方向和速度。

4.超声波传感器:超声波传感器可以感知到小车前方的障碍物距离,根据测得的距离,进行相应的避障操作。

5.电源模块:小车需要使用适当的电源,通常是锂电池或者直流电源供应。

三、系统设计1.硬件设计:(1)搭建小车底盘:根据所选择的底盘,搭建小车结构,并安装好电机驱动模块、电源模块等硬件设备。

(2)连接电路:将红外遥控模块、超声波传感器等硬件设备与主控芯片进行连接,确保每个模块正常工作。

2.软件设计:(1)红外遥控程序设计:通过红外遥控模块接收红外信号,并解码成相应的指令。

根据指令控制电机驱动模块,实现小车的行驶方向和速度控制。

(2)超声波避障程序设计:根据超声波传感器测得的距离,判断是否有障碍物,如果有障碍物就停止或者转向。

四、实验结果和讨论经过实验验证,本设计的红外遥控智能小车能够准确接收红外信号,并根据指令控制小车的行驶方向和速度。

同时,超声波传感器能够及时感知到前方的障碍物,并进行相应的避障操作。

然而,该设计仍然存在一些不足之处,比如超声波传感器的测距范围有限,可能无法感知到较小的障碍物。

此外,红外遥控信号的传输距离也有一定限制,需要保持遥控器与小车之间的距离不过远。

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

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

基于单片机的红外遥控小车设计本文将详细介绍基于单片机的红外遥控小车设计。

小车采用红外遥控技术,能够实现远程控制和执行各种动作。

首先,将介绍设计的硬件和软件部分。

然后,将详细描述小车的功能和实现过程。

最后,将对设计进行总结和展望。

硬件部分主要由以下组成:单片机、红外接收器、电机驱动器、电机和电源。

单片机是控制整个系统的核心部件,负责接收红外信号,解码并执行相应的动作。

红外接收器用于接收红外信号并传输给单片机进行解码。

电机驱动器用于控制车辆的运动,根据单片机的指令控制电机的速度和方向。

电机则负责提供车辆的动力。

电源则提供整个系统的电能供应。

软件部分主要由以下组成:单片机的程序和红外信号的解码。

单片机的程序是使用C语言编写的,负责接收红外信号并判断相应的指令。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于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.小车前进可以避开(前、左、右)20cm的障碍物;2.实现下车前进时,不碰障碍物;3.具有声音播报功能。

引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能小车。

发挥:1.利用超声波测距2.红外寻迹可以控制小车行走的路迹3.红外发射接收器,用遥控来控制小车的行走方向工作日程安排:序号毕业设计各阶段的名称日期1 设计单片机外部接线图,以及其它相关电路连接。

09.11.23-09.11.242 设计单片机程序,驱动电路的程序及注解。

09.11.25-09.11.283 编制设计的元件明细表09.11.29-09.11.294 编制电路元件明细表09.11.29-09.11.305 编写操作原理说明09.11.31-09-11.316 编写在实验室进行硬件和软件的调试以及所需的补充资料10.1.1-10.1.37 在创新实验室做模拟调试10.1.4-10.1.68 编写摘要10.1.7-10.1.79 将设计资料装订成册,交给指导教师,准备答辩10.1.10摘要针对题目的要求,我们设计了一款简易的红外避障小车。

该电路设计分别以驱动模块,单片机控制显示模块组成。

为了达到题目的要求,我们以ATMEGA16-L为核心控制器件,以LM298驱动电机控制系统和红外监测系统设计而成。

关键词:ATMEGA16-L;红外避障检测电路;驱动电路。

整体构思:一.模块方案比较1.壁障模块在壁障模块中,可以选择超声波壁障。

其优点是反应速度灵敏,距离远,受外界干扰小。

红外遥控小车设计报告

红外遥控小车设计报告

单片机技能与认证培训设计报告题目:红外遥控小车姓名:学号:系别专业:电信系班级:完成时间: 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个地方有时会卡住无法转动,需要人工转动下带动左轮转动,经过除尘、添加润滑油等措施后,卡住现象稍有减少,但无法完全避免。

六、总结通过这次实验,我们锻炼了自己的动手能力,了解了遥控小车的原理及制作过程,使我们的团队意识增强,经过几天的努力,完成了模块的设计与制作,完成了整个系统的编程、组装与调试。

基本上满足竞赛的要求,使用模块时,综合考虑电路的简单、电路的成本、以及电路的性能。

此次设计仍有一些问题没有得到完全解决,对一些器件的应用还不是很熟悉,因此在今后的学习中,更要好好学习知识,增加技能训练。

比如红外传感器的原理与应用的知识,光敏二极管的原理与应用电路等,当我们遇到不懂不会的问题时,我们能通过图书馆、网络等各种渠道学习想要知道的知识,有时候虽然只是一个很简单的小车模块,但使我们认识到自己所学的专业知识在实践中所出现的很大的不足。

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

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

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

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

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

红外接收与控件电路原理图: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单片机的红外遥控小车设计初稿已经基本完成,未来还可以对该系统进行进一步开发,以满足不同需求的儿童。

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

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

摘要随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。

智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。

智能电动小车就是其中的一个体现。

设计者可以通过软件编程实现它的行进、循迹、停止的精确控制以及检测数据的存储、显示,无需人工干预。

因此,智能电动小车具有再编程的特性,是机器人的一种。

本设计采用AT89S52单片机加电机驱动电路和红外遥控及循迹模块还有红外接收一体化传感器设计而成,采用模块化的设计方案,运用红外遥控器控制小车的前进、后退、左转、右转、启动和停止。

关键词:单片机;红外遥控;电机驱动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 AT89S52 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 该设计的主要内容和目的 (4)第二章系统总体方案设计与论证 (5)2.1 系统的总体方案设计 (5)2.2 主控系统 (5)2.3 电机驱动模块 (6)2.4 循迹模块 (6)2.5 显示模块 (6)第三章系统硬件电路设计 (7)3.1 主控模块的电路设计 (7)3.1.1 AT89S52单片机的简介 (7)3.1.2 单片机工作电路 (11)3.1.3 时钟电路 (12)3.1.4 复位电路 (12)3.2 红外遥控模块的电路设计 (14)3.2.1 红外遥控的实现原理 (14)3.2.2 红外发射器 (15)3.2.3 红外接收器 (16)3.3 电机驱动模块的电路设计 (17)3.4 循迹模块的电路设计 (18)3.5 显示模块的电路设计 (19)第四章系统软件设计 (21)4.1 主程序 (21)4.2 LCD显示程序 (24)第五章总结与展望 (29)致谢 (30)参考文献 (30)附录一系统硬件电路图 (32)附录二 PCB (33)附录三程序 (33)附录四元件清单 (38)第一章绪论1.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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安阳工学院《单片机基础》课程大作业《简易红外遥控小车设计》院系:计算机科学和信息工程学院专业班级:姓名:学号:成绩(教师填写)___________20 年月日一、课题名称:《简易红外遥控小车设计》二、方法步骤:1.总体设计主要设计思想:本设计利用通用红外遥控器控制小车后轮两个电机的动作来实现小车走、停、转弯等功能。

并通过软件控制小车方向和PWM调速小车的转速。

具体思想如下:通过外部中断1接收红外信息,并通过软件解码,根据接收信息的不同通过PWM和控制函数做出响应,并且在二极管上面反映出来,所以说二极管充当车灯和档位指示灯的作用,且每次接收信号,蜂鸣器鸣叫用来显示有信号的传入。

主要设计任务:红外遥控小车的设计主要分两大步,第一是硬件实现的设计,第二是单片机软件实现的设计。

(1)其中硬件又分几块:51单片机最小系统板,小型直流电机(3~9V)驱动电路模块,红外接收模块(已集成在最小系统板),蜂鸣器和二极管显示模块,车体。

(2)软件比较简单,但也分了几块:外部中断红外接收解码模块,PWM电机调速模块,主程序。

2.设计任务和要求(1)主要完成的性能指标本小车设计完成后能够实现如下功能:前进、后退、左前传(以做轮胎为轴转弯)、右前转、左圆转(以车体为轴进行转弯)、右圆转、左倒转、右倒转、紧急暂停、123级加减速。

(2)器件选择本设计主要用到以下材料:51单片机一个、通用遥控器一个、红外接收头一个、5号电池7节、车体(双电机+万向轮)一套、蜂鸣器一个、杜邦线若干、二极管9个、L9110S电机驱动芯片2个、其他电阻电容若干(3)单片机选择本设计用到宏晶公司的STC——125A32Ad单片机(4)说明总体框图(可选)(5)画出总线路图(硬件)51单片机最小系统如右:红外电路图如下:L9110S电机驱动电路如下:L9110S电气特性如下:完成后的驱动:实现后的实物图如下:(6)流程图及程序清单//******************************************************************** ***********//***************简易红外小车完全调试程序//***************版本V0.2//***************2012年5月13日10:49:26//***************修改优化时间2012年5月14日0:02:21//***************再次修改时间2012年5月18日20:49:28//***************Made by **************#include<reg52.h>#include"intrins.h"#define uint unsigned int#define uchar unsigned charsbit M11=P1^0; // 电机1接口sbit M12=P1^1;sbit M21=P1^2; // 电机2接口sbit M22=P1^3;sbit LED0=P0^0; // 左前灯sbit LED1=P0^1; // 档1灯sbit LED2=P0^2; // 档2灯sbit LED3=P0^3; // 档3灯sbit LED4=P0^4; //紧急灯sbit LED5=P0^5; //右前灯sbit LED6=P0^6; //左后灯sbit LED7=P0^7; //右后灯sbit F=P1^4;//蜂鸣器接口uchar TEMP1=0;//全局变量,用于存放红外返回值-用于PWM占空比的控制uchar TEMP2=10; // 用于方向的控制sbit Int0 = P3^3; // 红外接收采用外部中断1uchar databus[7];//用于红外接收存放数据//************************************************************//延时函数void delay1(uint xms)//delay 0.1ms{uint i,j;for(i=xms;i>0;i--)for(j=13;j>0;j--);}//************************************************************//********************接受解码函数uchar Rec(){uchar temp=0; //函数内部临时变量,用于返回函数值uint i=0; // 用于存放数据的临时变量uint j=0;uint m=0; // 局部计数临时变量uint n=0; // 局部计数临时变量uint k=0; // 局部计数临时变量EX1=0; // 关外部中断1 ,以防再次外部1中断的介入while(!Int0) //用于计时前9Ms低电平的引导码{delay1(1);m++; // 计数引导码的长度}if(m<=60) //50,可变,大概数,m应该在90左右,如果引导码时间太小(如<50),就表示//此次接收有误,返回0return 0; //while(Int0) //用于计时4.5ms高电平的引导码{delay1(1);n++; //计时高电平}if(n<=30) // 20大概值,应该在45左右,如果太小或太大,都有问题return 0;//当上面的两步都完成时,表示9ms低电平,4.5ms高电平的引导码验证完毕//可进行下步接收数据工作。

后面有32位高低电平组成的编码分为:系统码1,系统码2,数据码和数据反码//其中前16位,为用户识别码(系统码1和2)用于区别不同的电器,因为使用的通用遥控器和接收器所以//不用关心前16位。

M11=M12=M21=M22=0; //进入中断,停止电机,防止电机颤抖for(i=0;i<4;i++) // 4组接收for(j=0;j<8;j++) // 每组8个高低信号{//数据0由0.56ms低+0.56ms高组成即1:1//数据1由0.56ms低+1.655ms高组成1:3while(!Int0) //过滤数据的低位0.56ms低电平{delay1(1);}while(Int0) // 进入高电平计时{delay1(1);k++; // k计时每次的高电平}databus[i]=databus[i]>>1; // 数据接收数组首先默认接收为0信号,即databus【i】第7位移入0if(k>=10) // 而后,判断刚才接收到的数据是否为1,因为1的高点平持续1.655ms//低电平持续0.56ms,所以只要k大于10,就能确定为1{databus[i]=databus[i]|0x80; // 若为1,把第8位置1}k=0;//把k的值重新置零};if(databus[2]!=~databus[3]) // 2和3组数据为反码关系。

所以判断它们是否相反,来确定接收数据//是否正确return 0;temp=databus[2]; // 返回赋值return temp; //}//****************************************************//**********红外接受中断服务函数,+接受编码TEMP1,TEMP2void int0() interrupt 2{uchar temp; // 临时存放红外接收函数返回值uint i=0; // 计数临时变量LED4=1; //(因紧急灯是闪烁的每次中断时结果不一样,为保证效果)先灭紧急指示灯temp=Rec(); // 红外函数返回赋值switch (temp) // 对返回的数据进行编码,方便后面的操作{case 0x0d:{TEMP1=0; //TEMP1,编码用作,PWM参数,全局变量,LED1=LED2=LED3=1; //对应的指示灯状态break;}case 0x0c:{TEMP1=1;LED1=0;LED2=LED3=1;break;}case 0x18:{TEMP1=2;LED1=LED3=1; //2档LED2=0;break;}case 0x5e:{TEMP1=3;//TEMP1用于控制PWM占空比LED3=0;LED1=LED2=1;break;}case 0x40:{TEMP2=0;//紧急状态(暂停)。

TEMP2用于控制电机,暂停,前进,左右转,break;}case 0x46:{TEMP2=1;//前进LED0=LED5=0; //指示灯设置LED6=LED7=1;break;}case 0x44:{TEMP2=2;//左前转LED0=0;LED5=1;LED6=LED7=1;break;}case 0x43 :{TEMP2=3;//右前转LED5=0;LED0=1;LED6=LED7=1;break;}case 0x15:{TEMP2=4; //倒车状态LED6=LED7=0;//67为倒车指示灯LED0=LED5=1;break;}case 0x07:{TEMP2=5;//左后转LED6=0;LED7=LED0=LED5=1;break;}case 0x09:{TEMP2=6;//右后转LED7=0;LED6=LED0=LED5=1;break;}case 0x45:{TEMP2=7; //左园转LED0=LED7=0;LED5=LED6=1;break;}case 0x47:{TEMP2=8;//右园转LED5=LED6=0;LED0=LED7=1;break;}}//每次接受红外,蜂鸣器蜂鸣一次F=1;delay1(300);F=0;EA=1; // 开总中断EX1=1; // 开外1中断IT1=1; // 下降沿触发}//*****************************************//**********电机驱动函数void PWM_RUN(){uint m=0; // 临时计数变量uchar n=0; //uint i=0; //m=TEMP1*100; //m有0,1,2,3状态,PWM每小时间片为3*100,所以m*100 n=TEMP2; //TEMP1用于控制转速,TEMP2用于控制前后左右//对n(TEMP2)进行解码,设置不同的电机工作方式//注:暂定M*1=1,M*2=0正传,M*1=0,M*2=1倒转,M*1=M*2=0,停止if(n==0) //紧急状态,{M11=M12=M21=M22=0;LED4=~LED4; //设置紧急灯动作delay1(1000);}if(n==1) //m1和m2都前转,前进{M11=1;M12=0;M21=1;M22=0;}if(n==2) //m1停止,m2前转,实现左前转弯{M11=0;M12=0;M21=1;M22=0;}if(n==3) // m1前转,m2停止,实现右前转{M11=1;M12=0;M21=0;M22=0;}if(n==4)//m1m2倒转,实现倒车{M11=0;M12=1;M21=0;M22=1;}if(n==5) //m1停止,m2倒转,实现左后转{M11=0;M12=0;M21=0;M22=1;}if(n==6)// m1倒转,m2停止,实现右后转{M11=0;M12=1;M21=0;M22=0;}if(n==7)//m1倒传,m2前转,实现左方向,原地打转{M11=0;M12=1;M21=1;M22=0;}if(n==8)//m1前转,m2倒转,实现右方向,原地打转{M11=1;M12=0;M21=0;M22=1;}/* //PWM实现部分while(m--)_nop_(); // 电机动作while(i<300-m) // 电机歇菜{M11=M12=0;M21=M22=0;_nop_();i++;}while(1);*/}//***************************THE main()//*******void main(){ EA=1; // 开总中断EX1=1; // 开外1中断IT1=1; // 下降沿触发P1=0; // P1口为电机控制口,初始化为0,即,开机时电机是停止的while(1)PWM_RUN();}三、分析讨论本设计的设计过程遇到很多问题,例如电机驱动模块的设计,红外接收硬件模块,红外接收软件解码模块,电机调速模块,不过最终这些问题都经过查阅资料,询问老师一一解决。

相关文档
最新文档