AT89C52小车 循迹代码
时间: 2023-09-26 17:08:06 浏览: 107
以下是AT89C52微控制器循迹小车的代码示例:
```c
#include <reg52.h>
#include <intrins.h>
sbit leftSensor=P1^0; //左传感器
sbit rightSensor=P1^1; //右传感器
sbit leftMotor=P2^0; //左电机
sbit rightMotor=P2^1; //右电机
void delay(unsigned int xms) //延时函数
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void main()
{
while(1)
{
if(leftSensor==1 && rightSensor==0) //左侧传感器在黑线上
{
leftMotor=1;
rightMotor=0;
}
else if(leftSensor==0 && rightSensor==1) //右侧传感器在黑线上
{
leftMotor=0;
rightMotor=1;
}
else if(leftSensor==0 && rightSensor==0) //两个传感器都在黑线上
{
leftMotor=0;
rightMotor=0;
delay(200); //延时一段时间,让小车继续前进
}
else //两个传感器都不在黑线上
{
leftMotor=1;
rightMotor=1;
}
}
}
```
以上代码是一个简单的循迹程序,根据左右两个传感器检测到的黑线情况,控制小车左右轮的运动方向,实现循迹功能。在代码中,使用了延时函数来控制小车在两个传感器都在黑线上时,先停顿一段时间再继续前进,以避免小车过快跨越黑线。
阅读全文