那个电机使能所对应的I/O口连接着的是驱动模块的那个地方?是总开关那里吗(程序是看帖子里某个大佬的

)
这是一个蓝牙小车单片机程序
#include <reg52.h>
sbit EN1 = P2^0; //为1 右电机使能
sbit EN2 = P2^1; //为1 左电机使能
sbit IN1 = P2^2; //为1 右电机反转
sbit IN2 = P2^3; //为1 右电机正转
sbit IN3 = P2^4; //为1 左电机正转
sbit IN4 = P2^5; //为1 左电机反转
#define left_motor_en EN1 = 1 //左电机使能
#define left_motor_stops EN1 = 0 //左电机停止
#define right_motor_en EN2 = 1 //右电机使能
#define right_motor_stops EN2 = 0 //右电机停止
#define left_motor_go IN1 = 0, IN2 = 1 //左电机正传
#define left_motor_back IN1 = 1, IN2 = 0 //左电机反转
#define right_motor_go IN3 = 1, IN4 = 0 //右电机正传
#define right_motor_back IN3 = 0, IN4 = 1 //右电机反转
double count = 0;//定义占空比,并初始占空比为26%
unsigned char time;
unsigned char pwm_left_val = 255;//左电机占空比值 取值范围0-170,0最快
unsigned char pwm_right_val = 255;//右电机占空比值取值范围0-170 ,0最快
unsigned char pwm_t = 0; //周期
void UART_INIT(); //蓝牙接收初始化
void Che_init(); //小车输出端口定时器初始化
void forward(); //小车前进
void back(); //小车后退
void right(); //小车左转
void left(); //小车右转
void stop(); //小车停止
void delay(unsigned int z); //延时函数
void main()
{
UART_INIT(); //蓝牙接收初始化
Che_init(); //小车输出端口定时器初始化
while(1);
}
void UART_INIT() //蓝牙接收初始化
{
SCON = 0X50;
TMOD = 0x20; //8位自动重装模式
TH1 = 0xfd;
TL1 = 0xfd; //9600波特率
TR1 = 1; //启动定时器1
ES = 1; //开串口中断
EA = 1; //开总中断
}
void Che_init() //小车使能输出端口定时器初始化
{
TMOD|= 0x02; //8位自动重装模块
TH0 = 0xdc;
TL0 = 0xdc; //11.0592M晶振下占空比最大比值是256,输出100HZ
TR0 = 1; //启动定时器0
ET0 = 1; //允许定时器0中断
EA = 1; //总中断允许
}
void forward() //小车前进
{
ET0 = 1;
TR0 = 1;
left_motor_go; //左电机前进
right_motor_go; //右电机前进
}
void back() //小车后退
{
ET0 = 1;
TR0 = 1;
left_motor_back; //左电机反转
right_motor_back; //右电机反转
}
void right() //小车左转
{
ET0 = 1;
TR0 = 1;
left_motor_go; //左电机正传
right_motor_back; //右电机反转
}
void left() //小车右转
{
ET0 = 1;
TR0 = 1;
right_motor_go; //右电机正传
left_motor_back; //左电机反转
}
void stop() //小车停止
{
ET0 = 0;
TR0 = 0;
count = 0;
left_motor_stops; //左电机停止
right_motor_stops; //右电机停止
}
void timer0() interrupt 1 //定时器0中断
{
pwm_t++;
pwm_left_val--;
if(pwm_left_val <= pwm_t)
EN1 = 1;
else
EN1 = 0;
if(pwm_t == 255)
pwm_t = 0;
/*
pwm_t++;
// pwm_left_val--;
// pwm_right_val--;
if(pwm_t == 255)
{
EN1 = 0;
EN2 = 0;
pwm_t = 255;
}
if(pwm_left_val == pwm_t)
EN1 = 1;
if(pwm_right_val == pwm_t)
EN2 = 1;*/
}
void UART_SER() interrupt 4 //串口中断
{
if(RI)
{
RI = 0;//清除接收标志
switch(SBUF)
{
case 'a': //前进
forward();
break;
case 'b': //后退
back();
break;
case 'l': //左转
right();
break;
case 'r': //右转
left();
break;
case 's': //停止
stop();
break;
default: //否则全部停止
stop();
break;
}
}
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);
}