简易智能小车_源程序

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

简易智能小车——2003年全国大学生电子设计竞赛, c51源程序系统的单片机程序

#include ""

#define det_Dist */

void ctrMotor_Dist(float dist,unsigned char type) {unsigned char t=0;

mType=type;

P2=((P2&240)|15);

cntTime_Plues=(int)(dist/det_Dist);

while(cntTime_Plues)

{

if(Inter_EX0==1&&StartTask==0)

{

cntTime_Plues=0;

break;

}

if(Light_Flag==1) t=LightSeek();

if(type==0) 0为A仓库,1为B仓库,2为停车场*/ void fndIorn(void) interrupt 0

{

unsigned char i;

P10=1;

P2=((P2&240)|15); //停车

P07=1;

delay(1000);//刹车制动

P07=0;

Inter_EX0=1;

cntIorn++;

Display(cntIorn);

for(i=0;i<40;i++)

{

P2=P2&249;

delay(2);

P2=((P2&240)|15);

delay(2);

}

P2=P2&249;

delay(100);

P2=((P2&240)|15); //停车

IornColor(); //判断铁片黑白,设置bkAim

for(i=0;i<95;i++)

{

P2=P2&249;

delay(3);

P2=((P2&240)|15);

delay(2);

}

P2=((P2&240)|15); //停车

delay(4000); //把铁片吸起来

EX0=0;

}

/*外部中断1中断程序: */

/*对霍尔开关的脉冲记数,对小车的位置进行记录,以便对小车进行定位*/ void stpMove(void) interrupt 2

{

cntTime_Plues--;

if(Direction==0) //向上

{

if(mType==0) sY+=det_Dist;

else if(mType==2)

sY-=det_Dist;

}

else if(Direction==1) //向左

{

if(mType==0) sX+=det_Dist;

else if(mType==2)

sX-=det_Dist;

}

else if(Direction==2) //向下

{

if(mType==0) sY-=det_Dist;

else if(mType==2)

sY+=det_Dist;

}

else if(Direction==3) //向右

{

if(mType==0) sX-=det_Dist; else if(mType==2)

sX+=det_Dist;

}

}

相关文档
最新文档