红外循迹小车主要通过红外传感返回的信号来控制,遇到黑线,红外传感熄灭,返回1,遇到白色部分,红外传感常亮,返回0.
先定义pwm,电机和红外。
unsigned char PWMA, PWMB,PWMC,PWMD; //定义PWM
sbit ENA_1 = P1^1; //定义电机转速
sbit ENB_1 = P1^0;
sbit ENA_2 = P1^2;
sbit ENB_2 = P1^3;
//定义控制电机方向引脚
sbit IN1_1 = P0^4; //前右轮
sbit IN2_1 = P0^5;
sbit IN3_1 = P0^6; //前左轮
sbit IN4_1 = P0^7;
sbit IN1_2 = P0^0; //后左轮
sbit IN2_2 = P0^1;
sbit IN3_2 = P0^2; //后右轮
sbit IN4_2 = P0^3;
sbit D1 = P2^5; //定义红外
sbit D2 = P2^4;
sbit D3 = P2^3;
sbit D4 = P2^2;
sbit D5 = P2^1;
sbit D6 = P2^0; //右侧红外
再设置定时器
void Timer0_Init ()
{
TMOD &= 0xF0;
TMOD |= 0x01;
TL0 = 0xA4;
TH0 = 0xFF;
TF0 = 0;
TR0 = 1;
ET0 = 1;
EA = 1;
PT0 = 0;
}
最后根据小车行驶中红外传感器的情况,给左右轮进行pwm调速,以达到转弯,停车的目的。
标签:P2,P0,P1,循迹,51,单片机,红外,sbit,定义 From: https://blog.51cto.com/u_16511093/9370125