STC89C52与L298电机驱动芯片的软硬件仿真
硬件仿真平台:protues8.13
软件仿真平台:keil5
硬件连接图:
软件代码实现: (复制后 粘贴到keil5中,即可使用,无需修改)
#include <reg52.h>
sbit IN1 = P2^0; // IN1 连接 P2.0
sbit IN2 = P2^1; // IN2 连接 P2.1
sbit IN3 = P2^2; // IN3 连接 P2.2
sbit IN4 = P2^3; // IN4 连接 P2.3
sbit ENA = P2^4; // ENA 连接 P2.4
sbit ENB = P2^5; // ENB 连接 P2.5
void delay(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 110; j++); // 根据实际情况调整延迟时间
}
void motor1_forward() {
IN1 = 1;
IN2 = 0;
}
void motor1_backward() {
IN1 = 0;
IN2 = 1;
}
void motor2_forward() {
IN3 = 1;
IN4 = 0;
}
void motor2_backward() {
IN3 = 0;
IN4 = 1;
}
void motor_stop() {
IN1 = 0;
IN2 = 0;
IN3 = 0;
IN4 = 0;
}
void main() {
while (1) {
// 电机1正转,电机2反转
ENA = 1;
ENB = 1;
motor1_forward();
motor2_backward();
delay(6000); // 正转 6 秒
motor_stop();
delay(1000); // 停止 1 秒
// 电机1反转,电机2正转
ENA = 1;
ENB = 1;
motor1_backward();
motor2_forward();
delay(6000); // 反转 6 秒
motor_stop();
delay(1000); // 停止 1 秒
}
}