目录
一、资源说明
二、基本参数
1、参数
2、引脚说明
三、驱动说明
SETP时序
对应程序:
细分说明
程序
四、部分代码说明
1、接线说明
1.1、STC89C52RC+A4988模块
1.2、STM32F103C8T6+A4988模块
五、基础知识学习与相关资料下载
六、视频效果展示与程序资料获取
七、项目所有材料清单
八、注意事项
九、接线表格
一、资源说明
| 单片机型号 | 测试条件 | 模块名称 | 代码功能 |
| STC89C52RC | 1.晶振11.0592M | A4988模块 | 单片机驱动A4988模块按键控制步进电机正反转 |
| STM32F103C8T6 |
| A4988模块 |
二、基本参数
1、参数

2、引脚说明
| A4988模块 | 引脚说明 |
| DIR | 电机正反转控制 |
| STEP | 脉冲输入 |
| SLEEP | 低电平使能使模块处于休眠模式(此处直接与RESET连接) |
| RESET | 复位 (此处直接与SLEEP连接) |
| MS3 | 细分选择MS3 |
| MS2 | 细分选择MS2 |
| MS1 | 细分选择MS1 |
| ENABLE | 使能引脚 低电平有效 |
| GND | 接单片机GND |
| VDD | 接单片机5V |
| 1B | 接步进电机A+ |
| 1A | 接步进电机A- |
| 2A | 接步进电机B+ |
| 2B | 接步进电机B- |
| GND | 外接电源负极 |
| VMOT | 外接电源正极 此处用的是8V |
三、驱动说明
SETP时序

对应程序:
51用定时器来产生PWM信号
//定时器0中断服务函数
void tim0() interrupt 1
{
TL0 = 0xF7; //设置定时初始值
TH0 = 0xFF; //设置定时初始值10US
times++;
if(times<=Speed)
{
SETP=1;
}
else
{
SETP=0;
}
}
细分说明

程序
此处用的是P1的1、2 、3引脚
#define A4988_MS P1
#define Full_Step 0x00
#define Half_Step 0x01
#define Quarter_Step 0x02
#define Eighth_Step 0x03
#define Sixteenth_Step 0x07
//配置细分函数
void Excitation_Mode(uint8_t F_Step)
{
A4988_MS=(A4988_MS&0xf1)|(F_Step<<1);
}
四、部分代码说明
1、接线说明
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
1.1、STC89C52RC+A4988模块
//A4988模块引脚定义
sbit ENABLE=P1^0;
sbit MS1=P1^1;
sbit MS2=P1^2;
sbit MS3=P1^3;
sbit SETP=P1^4;
sbit DIR=P1^5;
//按键引脚定义
sbit K_Syntropy=P2^0; //顺时针
sbit K_Reverse =P2^1; //逆时针
1.2、STM32F103C8T6+A4988模块
//A4988模块引脚定义
// TIM3 输出比较通道1 SETP引脚
#define GENERAL_TIM_CH1_GPIO_CLK RCC_APB2Periph_GPIOA
#define GENERAL_TIM_CH1_PORT GPIOA
#define GENERAL_TIM_CH1_PIN GPIO_Pin_6
//GPIOA
#define A4988_ENABLE GPIO_Pin_0 //
#define A4988_MS1 GPIO_Pin_1 //
#define A4988_MS2 GPIO_Pin_2 //
#define A4988_MS3 GPIO_Pin_3 //
#define A4988_DIR GPIO_Pin_4 //
//GPIOA //按键引脚定义
#define K_Syntropy GPIO_Pin_5 // #define K_Reverse GPIO_Pin_7 //
五、基础知识学习与相关资料下载
- STC89C52RC程序下载 直戳跳转
- STM32F103C8T6程序下载
- 串口下载 直戳跳转
- ST-LINK下载 直戳跳转
- J-LINK下载 直戳跳转
- DAP-LINK下载 直戳跳转
六、视频效果展示与程序资料获取
视频连接 直戳跳转
资料获取 直戳跳转
七、项目所有材料清单
| STC89C52RC驱动方案 | 图片 | STM32F103C8T6驱动方案 | 图片 | 备注 K_A07_001 |
| STC89C52RC系统板X1 | ![]() | STM32F103C8T6系统板X1 | ![]() | 1、STM32系统板两根Micro USB线一根用于J-LINK下载器,另一根用于给系统板供电 2、杜邦线建议不用太长的 |
| A4988模块x1 | ![]() | A4988模块x1 | ![]() | |
| 步进电机x1 | ![]() | 步进电机x1 | ![]() | |
| Micro USB线X1 | ![]() | Micro USB线X2 | ![]() | |
| 母母杜邦线X16 | ![]() | 母母杜邦线X16 | ![]() | |
| J-LINK下载器 | ![]() |
八、注意事项
- VCC GND请勿接反,接反易烧
- 显示异常时,排除接线接触不良
- 电机抖动线且电流很大 先断电再排查步进电机接线顺序
- 电机抖动 也可能是接线接触不良引起 需要排查
- 电机抖动 也可是电流不适配原因 可调电位器调节电流大小
九、接线表格
| 单片机型号 | 模块 | 对应引脚(上:模块引脚 下:单片机引脚) | |||||||
| STC89C52RC | A4988模块 | DIR | SETP | SLEEP | RESET | MS3 | MS2 | MS1 | ENABLE |
| P1.5 | P1.4 | 接RESET | 接 SLEEP | P1.3 | P1.2 | P1.1 | P1.0 | ||
| GND | VCC | 1B | 1A | 2A | 2B | GND | VMOT | ||
| GND | 5V | A+ | A- | B+ | B- | 电源GND | 电源8V | ||
| 按键模块 | KEY_L | KEY_R | GND | ||||||
| P2.0 | P2.1 | GND | |||||||
| STM32F103C8T6 | A4988模块 | DIR | SETP | SLEEP | RESET | MS3 | MS2 | MS1 | ENABLE |
| PA4 | PA6 | 接 RESET | 接 SLEEP | PA3 | PA2 | PA1 | PA0 | ||
| GND | VCC | 1B | 1A | 2A | 2B | GND | VMOT | ||
| GND | 5V | A+ | A- | B+ | B- | 电源GND | 电源8V | ||
| 按键模块 | KEY_L | KEY_R | GND | ||||||
| PA5 | PA7 | ||||||||






















![[附源码]计算机毕业设计JAVA基于协同过滤算法的网上招聘系统](https://img-blog.csdnimg.cn/6bda8b0bba514b84b53b5e5a2a627a34.png)







