找回密码
 立即注册
查看: 15|回复: 1

求大老帮写个代码,利用STC8g1k08-38i-tssop20与A4988做一个42步进电机驱动控制器

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-10-09 23:25:34
已绑定手机

1

主题

0

回帖

9

积分

新手上路

积分
9
发表于 昨天 23:25 | 显示全部楼层 |阅读模式
利用STC8g1k08-38i-tssop20与A4988做一个42步进电机驱动控制器,有一个正转开关,一个反转开关,开关点动模式,一个电位器调速开关。在线等高手

下面这个代码只有正转和反转,没有调速,帮我加个调度也可以

#include <STC8G.H>
#include <intrins.h>

// 引脚定义(严格按需求分配)
sbit STEP     = P3^2;    // 第13脚:A4988 STEP
sbit DIR      = P3^3;    // 第14脚:A4988 DIR
sbit KEY_FWD  = P3^5;    // 第16脚:正转开关(低电平有效)
sbit KEY_REV  = P3^4;    // 第15脚:反转开关(低电平有效)

// 函数声明(修复:添加所有函数原型)
void Delay_us(unsigned int us);
void Delay_ms(unsigned int ms);
void GPIO_Init(void);

// 全局变量
unsigned int pulse_delay = 1000;  // 固定速度1000us(可调)

void main()
{
    // 初始化
    GPIO_Init();
    STEP = 0;
    DIR = 0;
   
    while(1)
    {
        // 点动控制逻辑
        if(KEY_FWD == 0)
        {
            DIR = 0;  // 正转方向
            do {
                STEP = 1;
                Delay_us(50);    // 50us脉冲宽度
                STEP = 0;
                Delay_us(pulse_delay);
            } while(KEY_FWD == 0);
        }
        else if(KEY_REV == 0)
        {
            DIR = 1;  // 反转方向
            do {
                STEP = 1;
                Delay_us(50);
                STEP = 0;
                Delay_us(pulse_delay);
            } while(KEY_REV == 0);
        }
        else
        {
            STEP = 0;  // 停止
            Delay_ms(10);
        }
    }
}

// GPIO初始化
void GPIO_Init(void)
{
    P3M0 = 0x00;  // P3口准双向模式
    P3M1 = 0x00;
    KEY_FWD = 1;  // 启用内部上拉
    KEY_REV = 1;
}

// 微秒延时函数(12MHz时钟优化)
void Delay_us(unsigned int us)
{
    while(us--)
    {
        _nop_(); _nop_(); _nop_(); _nop_();
        _nop_(); _nop_(); _nop_(); _nop_();
    }
}

// 毫秒延时函数
void Delay_ms(unsigned int ms)
{
    unsigned int i, j;
    for(i = ms; i > 0; i--)
        for(j = 1100; j > 0; j--);
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:203
  • 最近打卡:2025-10-10 09:31:33

785

主题

1万

回帖

1万

积分

管理员

积分
19585
发表于 9 小时前 | 显示全部楼层
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-10 18:42 , Processed in 0.108237 second(s), 58 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表