目录
单片机型号 | 测试条件 | 模块名称 | 代码功能 |
1.晶振11.0592M | MAX1508模块 | 单片机驱动MAX1508模块按键控制直流电机正反转加减速启停 | |
| MAX1508模块 |
MAX1508模块 | 引脚说明 |
+(正极) | 给电机供电(此处8V供电 根据需要来) |
-(GND) | 电源地 此处要与单片机共地 |
IN1 | 对应OUT1 IN1输入高则OUT1输出高 |
IN2 | 对应OUT2 IN2输入高则OUT2输出高 |
IN3 | 对应OUT3 IN3输入高则OUT3输出高 |
IN4 | 对应OUT4 IN4输入高则OUT4输出高 |
MOTOR-A | 接电机和OUT2为一组 输出高低由IN1控制 |
接电机和OUT1为一组 输出高低由IN2控制 | |
MOTOR-B | 接电机和OUT4为一组 输出高低由IN3控制 |
接电机和OUT3为一组 输出高低由IN4控制 |
以下以STC89C52RC程序为例
- //正转
-
- void turn_Syntropy(void)
-
- {
-
- Pwm_IN1_R=0;
-
- Pwm_IN3_L=0;
-
- }
-
- //反转
-
- void turn_Reverse(void)
-
- {
-
- Pwm_IN2_R=0;
-
- Pwm_IN4_L=0;
-
- }
-
- //停止
-
- void turn_Stop(void)
-
- {
-
- Pwm_IN1_R=1;
-
- Pwm_IN2_R=1;
-
- Pwm_IN3_L=1;
-
- Pwm_IN4_L=1;
-
- TR0=0;
-
- }
此处用51定时器1来生成
- void tim0() interrupt 1
- {
- TL0 = 0xA4; //设置定时初值
- TH0 = 0xFF; //设置定时初值 0.1ms
-
- times++;
- if(times<=Speed)
- {
- if(!Flag_Syntropy_Reverse)
- {
- Pwm_IN2_R=1;
- Pwm_IN4_L=1;
- }
- else
- {
- Pwm_IN1_R=1;
- Pwm_IN3_L=1;
- }
-
- }
- else
- {
- if(!Flag_Syntropy_Reverse)
- {
- Pwm_IN2_R=0;
- Pwm_IN4_L=0;
- }
- else
- {
- Pwm_IN1_R=0;
- Pwm_IN3_L=0;
- }
- }
- if(times>=Period)
- {
- times=0;
- }
- }
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
- //MAX1508引脚定义
-
- sbit Pwm_IN1_R=P1^0;
-
- sbit Pwm_IN2_R=P1^1;
-
- sbit Pwm_IN3_L=P1^2;
-
- sbit Pwm_IN4_L=P1^3;
-
- //按键引脚定义
-
- sbit K_Start_Stop=P2^0; //启停按键
-
- sbit K_Syntropy_Reverse=P2^1; //两电机同向反向按键
-
- sbit K_UP_Speed=P2^2; //两电机同时加速按键
-
- sbit K_Down_Speed=P2^3; //两电机同时减速按键
- //MAX1508引脚定义
-
- // TIM3 输出比较通道1
-
- #define GENERAL_TIM_CH1_GPIO_CLK RCC_APB2Periph_GPIOA
-
- #define GENERAL_TIM_CH1_PORT GPIOA
-
- #define GENERAL_TIM_CH1_PIN GPIO_Pin_6
-
-
-
- // TIM3 输出比较通道2
-
- #define GENERAL_TIM_CH2_GPIO_CLK RCC_APB2Periph_GPIOA
-
- #define GENERAL_TIM_CH2_PORT GPIOA
-
- #define GENERAL_TIM_CH2_PIN GPIO_Pin_7
-
-
-
- // TIM3 输出比较通道3
-
- #define GENERAL_TIM_CH3_GPIO_CLK RCC_APB2Periph_GPIOB
-
- #define GENERAL_TIM_CH3_PORT GPIOB
-
- #define GENERAL_TIM_CH3_PIN GPIO_Pin_0
-
-
-
- // TIM3 输出比较通道4
-
- #define GENERAL_TIM_CH4_GPIO_CLK RCC_APB2Periph_GPIOB
-
- #define GENERAL_TIM_CH4_PORT GPIOB
-
- #define GENERAL_TIM_CH4_PIN GPIO_Pin_1
-
-
-
- //按键引脚定义
-
- #define K_Start_Stop GPIO_Pin_4 //启停按键 GPIOB_Pin_4 0x0010 //?GPIOB_Pin_3
-
- #define K_Syntropy_Reverse GPIO_Pin_5 //两电机同向反向按键 GPIOB_Pin_5 0x0020
-
- #define K_UP_Speed GPIO_Pin_6 //两电机同时加速按键 GPIOB_Pin_6 0x0040
-
- #define K_Down_Speed GPIO_Pin_7 //两电机同时减速按键 GPIOB_Pin_7 0x0080
视频连接 直戳跳转
资料获取 ( 滑到最后添加群号看公告免费获取)
STC89C52RC驱动方案 | 图片 | STM32F103C8T6驱动方案 | 图片 | 备注 K_A08_002 |
STC89C52RC系统板X1 | STM32F103C8T6系统板X1 |
| ||
MAX1508模块x1 | MAX1508模块x1 | |||
直流电机x2 | 直流电机x2 | |||
Micro USB线X1 | Micro USB线X2 | |||
母母杜邦线X6 公母杜邦线X6 公公杜邦线X2 | 母母杜邦线X6 公母杜邦线X6 公公杜邦线X2 | |||
J-LINK下载器 |
单片机型号 | 模块 | 对应引脚(上:模块引脚 下:单片机引脚) | ||||
STC89C52RC | MAX1508模块 | IN1 | IN2 | IN3 | IN4 | GND |
P1.0 | P1.1 | P1.2 | P1.3 | GND(共地) | ||
按键模块 | KEY1 | KEY2 | KEY3 | KEY4 | GND | |
P2.0 | P2.1 | P2.2 | P2.3 | GND | ||
STM32F103C8T6 | MAX1508模块 | IN1 | IN2 | IN3 | IN4 | GND |
PA6 | PA7 | PB0 | PB1 | GND(共地) | ||
按键模块 | KEY1 | KEY2 | KEY3 | KEY4 | GND | |
PB4 | PB5 | PB6 | PB7 | GND |