您的位置:首页 > 其它

51单片机循迹小车源程序

2015-11-30 21:04 211 查看
自动循迹小车程序(51)

#define P_IOA_Data (volatile unsigned int *)0x7000

#define P_IOA_Dir (volatile unsigned int *)0x7002

#define P_IOA_Attrib (volatile unsigned int *)0x7003

unsigned int scan();//检测黑线函数定声明

unsigned int num=0;

void delay();

void init_1()//输入初始化

{

[P_IOA_Dir]=0x00f0;

[P_IOA_Attrib]=0x00f0;

[P_IOA_Data]=0x000f;

}

//void init_2()//输出初始化

//{

//[P_IOA_Dir]=1;

//[P_IOA_Attrib]=1;

//[P_IOA_Data]=0;

//}

void main()

{

while(1)

{

void init_1();

num=scan();

//void init_2();

switch(num)

{

case 1:

{

while(1)

{

[P_IOA_Data]=0x9f;

delay(500);

// if([P_IOA_Data]==1)//传感器返回1,则终止转弯,下同

break;

}

}

case 2:

{

while(1)

{

[P_IOA_Data]=0x9f;

delay(500);

break;

}

}

case 4:

{

while(1)

{

[P_IOA_Data]=0x6f;

delay(500);

break;

}

}

case 5:

{

while(1)

{

[P_IOA_Data]=0x6f;

delay(500);

break;

}

}

case 0:

{

while(1)

{

[P_IOA_Data]=0x5f;

delay(500);

break;

}

}

}

[P_IOA_Data]=0x5f;//直走

delay(500);

}

}



void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

unsigned int scan()

{

if(P_IOA_Data==0xfe)

{

num=1;

return num;

}

if(line_2==0xfd)

{

num=2;

return num;

}

if(line_4==0xfb)

{

num=4;

return num;

}

if(line_5==0xf7)

{

num=5;

return num;

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: