51单片机7个TCRT5000模块的循迹代码
时间: 2023-06-16 07:03:58 浏览: 157
以下是基于51单片机的7个TCRT5000模块循迹代码,可以根据需要进行修改:
```
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit L1 = P3^7; // 左1
sbit L2 = P3^6; // 左2
sbit L3 = P3^5; // 左3
sbit L4 = P3^4; // 左4
sbit L5 = P3^3; // 右1
sbit L6 = P3^2; // 右2
sbit L7 = P3^1; // 右3
void delay(uint i)
{
while (i--);
}
void main()
{
while (1)
{
if (L1 == 1 && L2 == 1 && L3 == 1 && L4 == 1 && L5 == 1 && L6 == 1 && L7 == 1) // 全黑
{
P1 = 0x00; // 停止
}
else if (L1 == 0 && L2 == 1 && L3 == 1 && L4 == 1 && L5 == 1 && L6 == 1 && L7 == 1) // 左1检测到黑色
{
P1 = 0x0a; // 左转
}
else if (L1 == 0 && L2 == 0 && L3 == 1 && L4 == 1 && L5 == 1 && L6 == 1 && L7 == 1) // 左1,2检测到黑色
{
P1 = 0x0a; // 左转
}
else if (L1 == 1 && L2 == 0 && L3 == 1 && L4 == 1 && L5 == 1 && L6 == 1 && L7 == 1) // 左2检测到黑色
{
P1 = 0x0a; // 左转
}
else if (L1 == 1 && L2 == 0 && L3 == 0 && L4 == 1 && L5 == 1 && L6 == 1 && L7 == 1) // 左2,3检测到黑色
{
P1 = 0x0a; // 左转
}
else if (L1 == 1 && L2 == 1 && L3 == 0 && L4 == 1 && L5 == 1 && L6 == 1 && L7 == 1) // 左3检测到黑色
{
P1 = 0x0a; // 左转
}
else if (L1 == 1 && L2 == 1 && L3 == 0 && L4 == 0 && L5 == 1 && L6 == 1 && L7 == 1) // 左3,4检测到黑色
{
P1 = 0x0a; // 左转
}
else if (L1 == 1 && L2 == 1 && L3 == 1 && L4 == 0 && L5 == 1 && L6 == 1 && L7 == 1) // 左4检测到黑色
{
P1 = 0x0a; // 左转
}
else if (L1 == 1 && L2 == 1 && L3 == 1 && L4 == 0 && L5 == 0 && L6 == 1 && L7 == 1) // 左4,5检测到黑色
{
P1 = 0x0a; // 左转
}
else if (L1 == 1 && L2 == 1 && L3 == 1 && L4 == 1 && L5 == 0 && L6 == 1 && L7 == 1) // 左5检测到黑色
{
P1 = 0x0a; // 左转
}
else if (L1 == 1 && L2 == 1 && L3 == 1 && L4 == 1 && L5 == 0 && L6 == 0 && L7 == 1) // 右1检测到黑色
{
P1 = 0x05; // 右转
}
else if (L1 == 1 && L2 == 1 && L3 == 1 && L4 == 1 && L5 == 1 && L6 == 0 && L7 == 1) // 右1,2检测到黑色
{
P1 = 0x05; // 右转
}
else if (L1 == 1 && L2 == 1 && L3 == 1 && L4 == 1 && L5 == 1 && L6 == 0 && L7 == 0) // 右2检测到黑色
{
P1 = 0x05; // 右转
}
else if (L1 == 1 && L2 == 1 && L3 == 1 && L4 == 1 && L5 == 1 && L6 == 1 && L7 == 0) // 右3检测到黑色
{
P1 = 0x05; // 右转
}
else if (L1 == 1 && L2 == 1 && L3 == 1 && L4 == 0 && L5 == 1 && L6 == 1 && L7 == 0) // 右3,4检测到黑色
{
P1 = 0x05; // 右转
}
else if (L1 == 1 && L2 == 1 && L3 == 0 && L4 == 0 && L5 == 1 && L6 == 1 && L7 == 0) // 右4检测到黑色
{
P1 = 0x05; // 右转
}
else if (L1 == 1 && L2 == 0 && L3 == 0 && L4 == 0 && L5 == 1 && L6 == 1 && L7 == 0) // 右4,5检测到黑色
{
P1 = 0x05; // 右转
}
else if (L1 == 0 && L2 == 0 && L3 == 0 && L4 == 0 && L5 == 1 && L6 == 1 && L7 == 0) // 右5检测到黑色
{
P1 = 0x05; // 右转
}
else // 其他情况
{
P1 = 0x0f; // 直行
}
}
}
```
阅读全文