#include <reg52.h> #define uchar unsigned char //将数据类型'uchar'定义为'无符号字符' #define uint unsigned int //宏定义变量类型 #define Speed 5 #define Ms_Cnt 1000 sbit IN1=P1^0; //定义IN1引脚 sbit IN2=P1^1; //定义IN2引脚 sbit IN3=P1^2; //定义IN3引脚 sbit IN4=P1^3; //定义IN4引脚

uchar code table[4][4]={ //定义4*4的矩阵 {0,1,0,1}, {1,0,0,1}, {1,0,1,0}, {0,1,1,0} };

void delay(uint i){ //延时函数 while(i--); }

void motor_forword(){ //电机正转 IN1=0; IN2=1; IN3=0; IN4=1; }

void motor_reversal(){ //电机反转 IN1=1; IN2=0; IN3=1; IN4=0; }

void motor_stop(){ //电机停止 IN1=0; IN2=0; IN3=0; IN4=0; }

void main(){ uchar i,j; while(1){ for(i=0;i<4;i++){ for(j=0;j<4;j++){ if(table[i][j]==1){ //如果矩阵中的元素为1,则电机正转 motor_forword(); } else{ //否则电机反转 motor_reversal(); } delay(Ms_Cnt/Speed); //延时一段时间 motor_stop(); //停止电机转动 delay(Ms_Cnt/Speed); //再次延时 } } } }

单片机电机控制代码 - 51单片机正反转控制实例

原文地址: https://www.cveoy.top/t/topic/nAoL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录