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

上传人:壹****1 文档编号:507397526 上传时间:2024-02-07 格式:DOC 页数:17 大小:341.50KB
返回 下载 相关 举报
单片机大作业简易红外遥控小车设计_第1页
第1页 / 共17页
单片机大作业简易红外遥控小车设计_第2页
第2页 / 共17页
单片机大作业简易红外遥控小车设计_第3页
第3页 / 共17页
单片机大作业简易红外遥控小车设计_第4页
第4页 / 共17页
单片机大作业简易红外遥控小车设计_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《单片机大作业简易红外遥控小车设计》由会员分享,可在线阅读,更多相关《单片机大作业简易红外遥控小车设计(17页珍藏版)》请在金锄头文库上搜索。

1、安阳工学院单片机基础课程大作业简易红外遥控小车设计院系:计算机科学与信息工程学院专业班级:姓名:学号:成绩(教师填写)20 年 月 日一、课题名称:简易红外遥控小车设计二、方法步骤:1.总体设计主要设计思想: 本设计利用通用红外遥控器控制小车后轮两个电机的动作来实现小车走、停、转弯等功能。并通过软件控制小车方向和PW调速小车的转速。具体思想如下:通过外部中断 1接收红外信息,并通过 软件解码,根据接收信息的不同通过 PW和控制函数做出响应,并且 在二极管上面反映出来,所以说二极管充当车灯和档位指示灯的作 用,且每次接收信号,蜂鸣器鸣叫用来显示有信号的传入。主要设计任务: 红外遥控小车的设计主要

2、分两大步,第一是硬件实现的设计, 第二是单片机软件实现的设计。(1)其中硬件又分几块: 51单片机最小系统板,小型直流电机(39V驱动电路模块,红外接收模块(已集成在最小系统板),蜂 鸣器和二极管显示模块,车体。( 2)软件比较简单,但也分了几块:外部中断红外接收解码模 块,PW电机调速模块,主程序。2.设计任务与要求(1)主要完成的性能指标本小车设计完成后能够实现如下功能: 前进、后退、左前传(以做轮胎为轴转弯)、右前转、左圆转(以车体为轴进行转弯)、右圆转、左倒转、右倒转、紧急暂停、123级加减速。(2)器件选择本设计主要用到以下材料:51单片机一个、通用遥控器一 个、红外接收头一个、5号

3、电池7节、车体(双电机+万向轮)一套、 蜂鸣器一个、杜邦线若干、二极管9个、L9110Sfe机驱动芯片2个、其 他电阻电容若干(3)单片机选择本设计用到宏晶公司的STC125A32A单片机说明总体框图(可选)(5)画出总线路图(硬件)U1905151单片机最小系统如右:P11 2P123P134P145?156P161 Pl? SKST9P30 10P10 IP31 11P31 12 fP53 13P34 14 1呼13F药厉fP听仃4PIO PllP12P13P14P15P16P17RKFT 畑F 乂INTDP32 IXT1P33 TOPW TTP35TOP36 REP 37百XIGNDPO

4、OP01P02P03FC4PO?P06 J*O7A1PF冋P27262524U 卫耳 F p p p p P39 P03S P037 P03d P035 PQ34 P033 P032 P03T3029a is P27 P26 P方P24 P23 P22 P21 P TCll22?F红外电路图如下:謠:外(HS0038)J10R7 838I 17|_2P32 U14LED10110UF11 +P33CON2L9110S电机驱动电路如下:vcc匸转信兮反转信号L9110S电气特性如下:符号 数范围单位最小典型最大VCC电源电压2.5612VIdd静态电流02uAIin操作电流200350500AI

5、C持续输出电流750800850mAIMax电流峰值15002000mAIAIBOAOBHLH ;LLHILHLLLLHHLL完成后的驱动:实现后的实物图如下:(6)流程图及程序清单*简易红外小车完全调试程序版本V0.2* *2012年 5月 13日 10:49:26*修改优化时间2012年5月14日0:02:21 再次修改时间2012年5月18日20:49:28Made by*#in clude #i ncludei ntrin s.h #defi ne uint un sig ned int#defi ne uchar un sig ned char sbit M11=P1A0; / 电机

6、 1 接口sbit M12=PM1; sbit M21=P1A2;sbit M22=P1A3;sbit LED0=P0A0;sbit LED仁 P0A1;sbit LED2=P0A2;sbit LED3=P0A3;sbit LED4=P0A4;sbit LED5=P0A5;sbit LED6=P0A6;/电机2接口/左前灯/档1灯/档2灯/档3灯紧急灯/右前灯/左后灯sbit LED7=P0A7;右后灯sbit F=P1A4; 蜂鸣器接口uchar TEMP1=0;全局变量,用于存放红外返回值-用于PWM占空比的控制uchar TEMP2=10; / 用于方向的控制sbit Int0 = P3

7、A3; / 红外接收采用外部中断 1uchar databus7;/用于红外接收存放数据/延时函数 void delay1(uint xms)/delay 0.1msuint i,j;for(i=xms;i0;i-) for(j=13;j0;j-); 接受解码函数uchar Rec()uchar temp=0;/函数内部临时变量,用于返回函数值uint j=0; uint m=0; uint n=0; uint k=0;EX1=0;uint i=0;/ 用于存放数据的临时变量/ 局部计数临时变量/局部计数临时变量/局部计数临时变量/关外部中断 1 ,以防再次外部1中断的介入while(!lnt

8、0) 用于计时前9Ms低电平的引导码delay1(1);1m+;/计数引导码的长度if(m=60)/50,可变,大概数,m应该在90左右,如果引导码时间太小(如50),就表示/此次接收有误,返回 0return 0; /while(lnt0)用于计时4.5ms高电平的引导码delay1(1);n+;/计时高电平if(n=30)/ 20大概值,应该在45左右,如果太小或太大,都有问题return 0;/当上面的两步都完成时,表示 9mS氐电平,4.5ms高电平的引导码验证 完毕/可进行下步接收数据工作。 后面有32位高氐电平组成的编码分为: 系统 码1,系统码 2,数据码和数据反码/其中前 16

9、位,为用户识别码(系统码 1和2)用于区别不同的电器,因为 使用的通用遥控器和接收器所以/不用关心前 16位。M11=M12=M21=M22=0;/进入中断,停止电机,防止电机颤抖for(i=0;i4;i+)/ 4组接收for(j=0;j1; / 数据接收数组首先默认接收 为0信号,即databus【i】第7位移入0if(k=10)/ 而后,判断刚才接收到的数据是否为1,因为1的高点平持续 1.655ms低电平持续0.56ms,所以只要k大于10, 就能确定为 1 databusi=databusi|0x80; / 若为1,把第8位 置1k=0;把k的值重新置零;if(databus2!=da

10、tabus3) / 2和3组数据为反码关系。 所以判断 它们是否相反,来确定接收数据/是否正确return 0; temp=databus2;/ 返回赋值/return temp;/*/* 红外接受中断服务函数, +接受编码 TEMP1,TEMP2void int0() interrupt 2uchar temp; / 临时存放红外接收函数返回值uint i=0; / 计数临时变量LED4=1;/(因紧急灯是闪烁的每次中断时结果不一样, 为保证效果)先灭紧急指示灯temp=Rec(); / 红外函数返回赋值switch (temp) / 对返回的数据进行编码,方便后面的操作case 0x0d:

11、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

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

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号