📄 接触传感器.cpp
字号:
////////////////////////////接触传感器程序///////////////////////////
void touch(void) interrupt 0 //接触传感器函数,当接触到了物体是调用
{ //该函数在中断时调用,反应速度比较的快
LMP=LMD; //若用隔一段时间扫描的办法也行,不过反应就慢了些
RMP=RMD;
LC=colour(LW,LR,LB); //扫描颜色
RC=colour(RW,RR,RB);
if ((LC==1||LC==3)&&(RC==1||RC==3)&&(num>=2)) //若在投球的颜色区则投球
{ if(act) throw();
else act1(); //否则调用act后退转弯
}
else {if(act==2) act2();
else if(act==1||act==3) act1();
else return;
}
}
void timer1(void) interrupt 3 //计时函数每个周期20ms 每次time++
{uchar i;
time++; //同时,我们的数球光电探头的计时internal++
internal++;
if (time>2000) act=2; //每收到一个球,探头会产一信号,由于机器反应太快,在一段时间内信号不会消失,而产生误判
if (time>3200) act=3;
if (internal==20) TR0=1; //所以应该延迟一段时间再开启数球中断
if ((light1==P1)&&(light2==P3)) //与此同时,对颜色进行一次扫描,若一段时间颜色不改变表示车可能已经撞死
lightnum++;
else {lightnum=0;
light1=P1;
light2=P3;
}
if (lightnum>200)
{for(i=100;i;i--)
back(200,200);
turnleft(50);
lightnum=0;
}
TL1=0xC0;
TH1=0x63;
}
/***********************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -