智能小车比赛电气S095Word文件下载.docx
- 文档编号:17973063
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:15
- 大小:173.54KB
智能小车比赛电气S095Word文件下载.docx
《智能小车比赛电气S095Word文件下载.docx》由会员分享,可在线阅读,更多相关《智能小车比赛电气S095Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
循迹原理(以上图为例):
当小车在行驶的过程中踩到黑带时,红外对管发射的光大部分被黑带吸收,导致LM339的端口4的电压高于端口5的基准电压,IN1脚输出低电平,IN1接单片机P0口,当检测到IN1对应的IO口为低时,使接至P1口的电机进行相应的运转。
2、红外遥控电路图
原理:
红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作;
采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;
以脉宽为0.565ms、
隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如下所示。
3、扑火图
要智能小车实现灭火,首先要有对火源进行检测的功能,通常使用光敏晶体管组成的传感器——光电接收传感器实现上述功能。
光电接收传感器由光敏晶体管和光电模块组成。
光敏晶体管负责接收外界光信号,处理电路将光敏晶体管的信号进行转换,送到单片机的端口上
4,、无线遥控图
⏹原理、PT2262/2272是台湾普城公司生产的一种CMOS工艺制造的低功耗低价位通用编解码电路,PT2262/2272最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码,PT2262最多可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚串行输出,可用于无线遥控发射电路。
⏹编码芯片PT2262发出的编码信号由:
地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。
当发射机没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间315MHz的高频发射电路起振并发射等幅高频信号,当17脚为低平期间315MHz的高频发射电路停止振荡,所以高频发射电路完全收控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100%的调幅。
PT2262/2272特点:
CMOS工艺制造,低功耗,外部元器件少,RC振荡电阻,工作电压范围宽:
2.6~15v,数据最多可达6位,地址码最多可达531441种。
应用范围:
车辆防盗系统、家庭防盗系统、遥控玩具、其他电器遥控。
三、程序
/****************************主函数部分***********************************/
#include<
reg52.h>
#include"
define.h"
//包含定义的IO口
红外遥控.h"
//红外遥控函数
循迹.h"
//循迹函数
扑火.h"
//扑火函数
wireless.h"
//无线函数
voidmain()
{
timeinit();
//定时器初始化
while
(1)
{
irinit();
//红外解码初始
qiehuan();
//红外切换函数
if(functionflag==0)
P1=out4;
//一开始就停止,然后由遥控控制相关动作
elseif(functionflag==1)
trace();
//自动循迹
elseif(functionflag==2)
telecontrol();
//红外遥控
elseif(functionflag==3)
attackfire();
//灭火
elseif(functionflag==4)
wireless();
//无线遥控
}
}
/**************************define.h***********************/
#defineucharunsignedchar
#defineuintunsignedint
/*****车子运转定义********/
#defineout10xf9//前进
#defineout20xf5//右转
#defineout30xfa//左转
#defineout40xff//停止
#defineout50xf6//倒退
/***红外对管检测黑带定义***/
sbitp0_0=P0^0;
sbitp0_1=P0^1;
sbitp0_2=P0^2;
sbitp0_3=P0^3;
sbitp0_4=P0^4;
/*******灭火定义**********/
sbitllight=P2^7;
sbitrlight=P2^6;
sbitfan=P2^5;
sbitalarm=P0^7;
/*********无线定义**********/
sbitwireless_A=P2^2;
sbitwireless_B=P2^0;
sbitwireless_C=P2^3;
sbitwireless_D=P2^1;
/********解码定义***********/
ucharstartflag,irtime,bitnum,irdata[33],irreceiveok,ircode[4],decodeok,disp[8];
ucharfunctionflag;
//功能切换标志
ucharfireflag;
//灭火延时
ucharwireflag;
//无线切换标志
voiddelay1ms(uintz)//定义1ms
ucharx;
uinty;
for(x=110;
x>
0;
x--)
for(y=z;
y>
y--);
/*******红外切换函数*******/
voidqiehuan()
if(ircode[2]==0x4f)
{
functionflag=1;
}
elseif(ircode[2]==0x57)
functionflag=2;
elseif(ircode[2]==0x5b)
functionflag=3;
elseif(ircode[2]==0x4b)
functionflag=4;
/******************************红外遥控.h*************************/
voidtimeinit()//定时器0和外部中断0初始化
TMOD=0X02;
TH0=0X00;
TL0=0X00;
EA=1;
ET0=1;
TR0=1;
EX0=1;
IT0=1;
//定义为负跳变沿触发
voiddecode()//红外解码
uchari,j,k,value;
k=1;
for(j=0;
j<
4;
j++)
for(i=0;
i<
8;
i++)
{
value=value>
>
1;
if(irdata[k]>
6)
{
value=value|0x80;
}
k++;
}
ircode[j]=value;
value=0;
decodeok=1;
}
voidirinit()//红外初始化
if(irreceiveok)
irreceiveok=0;
decode();
if(decodeok)
decodeok=0;
voidtelecontrol()//红外控制函数
if(ircode[2]==0x03)//启动
{
P1=out1;
if(ircode[2]==0x1a)//右转
P1=0xfd;
if(ircode[2]==0x0e)//左转
P1=0xfb;
if(ircode[2]==0x07)//停止
P1=out4;
if(ircode[2]==0x02)//后退
P1=out5;
voidtimer0()interrupt1using0
irtime++;
voidextre0()interrupt0using0//由中断检测红外每个码占用的时间
if(startflag)
if(irtime>
33)
bitnum=0;
irdata[bitnum]=irtime;
bitnum++;
irtime=0;
if(bitnum==33)
{
irreceiveok=1;
else
startflag=1;
/*****************************循迹.h****************************/
voidtrace()//循迹
if((p0_2==0)&
&
(p0_0&
p0_1&
p0_3&
p0_4))//前进
if((((p0_2||p0_1)==0)&
p0_4))||(((p0_0||p0_1||p0_2)==0)&
(p0_3&
p0_4))||(((p0_0||p0_1||p0_2||p0_3)==0)&
(p0_4))||(((p0_0||p0_1)==0)&
(p0_2&
p0_4))||(((p0_0||p0_2)==0)&
(p0_1&
p0_4))||((p0_0==0)&
p0_2&
p0_4))||((p0_1==0)&
p0_4)))
P1=out2;
//右转
if((((p0_2||p0_3)==0)&
p0_4))||(((p0_2||p0_3||p0_4)==0)&
p0_1))||(((p0_1||p0_2||p0_3||p0_4)==0)&
(p0_0))||(((p0_3||p0_4)==0)&
p0_2))||(((p0_2||p0_4)==0)&
p0_3))||((p0_4==0)&
p0_3))||((p0_3==0)&
{
P1=out3;
//左转
if((!
(p0_0||p0_1||p0_2||p0_3||p0_4))||(p0_0&
p0_4))
delay1ms(30);
//停止
/***********************扑火.h*****************************/
voidattackfire()
if(rlight&
llight)
if((rlight==0)&
(llight==1))
alarm=0;
//左转
delay1ms(50);
delay1ms(100);
}
if((rlight==1)&
(llight==0))
//右转
if(!
(rlight||llight))
delay1ms(5);
while(!
P1=out4;
fan=0;
alarm=0;
delay1ms(2000);
fan=1;
//扑灭火之后延时一会,风扇停止转动
alarm=1;
if(fan==1)
fireflag=8;
while(fireflag--)
tright();
//扑灭火之后向右转动一段时间继续前进
}
/*************************无线.h****************************/
voidwireless()
if(wireflag==1)
//前进
if(wireflag==2)
tright();
//右转
if(wireflag==3)
tleft();
//左转
if(wireflag==4)
//停止
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 小车 比赛 电气 S095
![提示](https://static.bdocx.com/images/bang_tan.gif)