找回密码
 立即注册
楼主: ercircle

普中单片机学习板@89C52, 教学程序移植到强大的【Ai8051U】,32位8051,浮点/三角函数

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:151
  • 最近打卡:2026-03-25 08:22:36
已绑定手机

22

主题

2425

回帖

3416

积分

论坛元老

积分
3416
发表于 2026-3-2 13:28:18 | 显示全部楼层
软件设置:全部用的的IO都是推挽输出模式。使能上啦电阻

截图202603021328163519.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:151
  • 最近打卡:2026-03-25 08:22:36
已绑定手机

22

主题

2425

回帖

3416

积分

论坛元老

积分
3416
发表于 2026-3-2 13:33:02 | 显示全部楼层
P34P35P36

P0口全部

设置为推挽输出模式,使能上拉电阻
截图202603021331529009.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:151
  • 最近打卡:2026-03-25 08:22:36
已绑定手机

22

主题

2425

回帖

3416

积分

论坛元老

积分
3416
发表于 2026-3-2 13:55:21 | 显示全部楼层
把前面的APP移植过来,改一下主函数:

//<<AICUBE_USER_HEADER_REMARK_BEGIN>>
////////////////////////////////////////
// 在此添加用户文件头说明信息  
// 文件名称: main.c
// 文件描述:
// 文件版本: V1.0
// 修改记录:
//   1. (2026-03-02) 创建文件
////////////////////////////////////////
//<<AICUBE_USER_HEADER_REMARK_END>>


#include "config.h"                     //默认已包含stdio.h、intrins.h等头文件


//<<AICUBE_USER_INCLUDE_BEGIN>>
// 在此添加用户头文件包含
#include "leddz.h"
//<<AICUBE_USER_INCLUDE_END>>


//<<AICUBE_USER_GLOBAL_DEFINE_BEGIN>>
// 在此添加用户全局变量定义、用户宏定义以及函数声明
u8 gled_row[8]={0x00,0x7c,0x82,0x82,0x82,0x7c,0x00,0x00};   //LED点x阵显示数字0的行数据
u8 gled_col[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED点阵显示数字0的列数据
//<<AICUBE_USER_GLOBAL_DEFINE_END>>



////////////////////////////////////////
// 项目主函数
// 入口参数: 无
// 函数返回: 无
////////////////////////////////////////
void main(void)
{
    //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
    // 在此添加用户主函数初始化代码
                u8 i = 0;
    //<<AICUBE_USER_MAIN_INITIAL_END>>

    SYS_Init();

    //<<AICUBE_USER_MAIN_CODE_BEGIN>>
    // 在此添加主函数中运行一次的用户代码  
    //<<AICUBE_USER_MAIN_CODE_END>>

    while (1)
    {
        //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
        // 在此添加主函数中用户主循环代码  
                for(i=0;i<8;i++)
                {
                        LEDDZ_COL_Write_Data(gled_col[i]); //列输出函数
                       
                        LEDDZ_write_data(gled_row[i]);//行控制输出函数
                       
                        delay_ms(1);
                       
                        LEDDZ_write_data(0x00);//行消隐
                       
                }
        //<<AICUBE_USER_MAIN_LOOP_END>>
    }
}
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:151
  • 最近打卡:2026-03-25 08:22:36
已绑定手机

22

主题

2425

回帖

3416

积分

论坛元老

积分
3416
发表于 2026-3-2 13:57:33 | 显示全部楼层
一切顺利:(换台PC就可能出问题,这块板子稳定性不太好)

截图202603021357302811.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:151
  • 最近打卡:2026-03-25 08:22:36
已绑定手机

22

主题

2425

回帖

3416

积分

论坛元老

积分
3416
发表于 2026-3-8 08:50:13 | 显示全部楼层
这2天在修改步进电机的程序,遇到的问题是不能反转,只能正转

  1. #include "step_motor.h"
  2. void Step_Motor_Run(u8 step,u8 dir,u8 speed,u16 angle,u8 sta)
  3. //step是节拍数,dir是方向 speed是速度 ganle是角度 sta是运行或停止
  4. {
  5.         u16 j ;
  6.         u8 i = 0 ;
  7.         if(sta==1)
  8.         {
  9.                 if(dir==0)  //顺时针转
  10.                 {
  11.                         //28BYJ-48电机一个脉冲转过的角度:5.625/64,4096个脉冲转1圈
  12.                         //90°就是1024个脉冲,angle度对应的脉冲=(64/45)*angle*8
  13.                        
  14.                         for(j=0;j<64*angle/45;j++)
  15.                         {
  16.                                 for(i=0;i<8;i+=8/step) //step是步进--就是节拍数
  17.                                 {
  18.                                         switch(i) //8拍8步
  19.                                         {
  20.                                                 case 0:  MOTOR_IN1=1;MOTOR_IN2=0;MOTOR_IN3=0;MOTOR_IN4=0;break;
  21.                                                 //第一步,A 色=0,其他=1,输入刚好相反
  22.                                                 case 1:  MOTOR_IN1=1;MOTOR_IN2=1;MOTOR_IN3=0;MOTOR_IN4=0;break;
  23.                                                 //第二步,A 色=0,B 色=0,其他=1,输入刚好相反
  24.                                                 case 2:  MOTOR_IN1=0;MOTOR_IN2=1;MOTOR_IN3=0;MOTOR_IN4=0;break;
  25.                                                 //第三步,A 色=1,B 色=0,其他=1,输入刚好相反
  26.                                                 case 3:  MOTOR_IN1=0;MOTOR_IN2=1;MOTOR_IN3=1;MOTOR_IN4=0;break;
  27.                                                 //第四步,A 色=1,B 色=0,B 色=0,其他=1,输入刚好相反
  28.                                                 case 4:  MOTOR_IN1=0;MOTOR_IN2=0;MOTOR_IN3=1;MOTOR_IN4=0;break;
  29.                                                 //第五步,A 色=1,B 色=1,C 色=0,D 色=1,输入刚好相反
  30.                                                 case 5:  MOTOR_IN1=0;MOTOR_IN2=0;MOTOR_IN3=1;MOTOR_IN4=1;break;
  31.                                                 case 6:  MOTOR_IN1=0;MOTOR_IN2=0;MOTOR_IN3=0;MOTOR_IN4=1;break;
  32.                                                 case 7:  MOTOR_IN1=1;MOTOR_IN2=0;MOTOR_IN3=0;MOTOR_IN4=1;break;
  33.                                                
  34.                                         }
  35.                                         delay_ms(speed);
  36.                                        
  37.                                 }
  38.                         }
  39.                                
  40.                        
  41.                        
  42.                 }
  43.                 else  //逆时针转,把上面的switch倒过来
  44.                 {
  45.                                 for(j=0;j<64*angle/45;j++)
  46.                         {
  47.                                 for(i=0;i<8;i+=8/step) //step是步进--就是节拍数
  48.                                 {
  49.                                         switch(i) //8拍8步
  50.                                         {
  51.                                                 case 0:  MOTOR_IN1=1;MOTOR_IN2=0;MOTOR_IN3=0;MOTOR_IN4=1;break;
  52.                                                 //第一步,A 色=0,其他=1,输入刚好相反
  53.                                                 case 1:  MOTOR_IN1=0;MOTOR_IN2=0;MOTOR_IN3=0;MOTOR_IN4=1;break;
  54.                                                 //第二步,A 色=0,B 色=0,其他=1,输入刚好相反
  55.                                                 case 2:  MOTOR_IN1=0;MOTOR_IN2=0;MOTOR_IN3=1;MOTOR_IN4=1;break;
  56.                                                 //第三步,A 色=1,B 色=0,其他=1,输入刚好相反
  57.                                                 case 3:  MOTOR_IN1=0;MOTOR_IN2=0;MOTOR_IN3=1;MOTOR_IN4=0;break;
  58.                                                 //第四步,A 色=1,B 色=0,B 色=0,其他=1,输入刚好相反
  59.                                                 case 4:  MOTOR_IN1=0;MOTOR_IN2=1;MOTOR_IN3=1;MOTOR_IN4=0;break;
  60.                                                 //第五步,A 色=1,B 色=1,C 色=0,D 色=1,输入刚好相反
  61.                                                 case 5:  MOTOR_IN1=0;MOTOR_IN2=1;MOTOR_IN3=0;MOTOR_IN4=0;break;
  62.                                                 case 6:  MOTOR_IN1=1;MOTOR_IN2=1;MOTOR_IN3=0;MOTOR_IN4=0;break;
  63.                                                 case 7:  MOTOR_IN1=1;MOTOR_IN2=0;MOTOR_IN3=0;MOTOR_IN4=0;break;
  64.                                                
  65.                                         }
  66.                                         delay_ms(speed);
  67.                                        
  68.                                 }
  69.                         }
  70.                                
  71.                
  72.                 }
  73.                
  74.         }
  75.         else  //sta==0 ,电机停止
  76.         {
  77.                 MOTOR_IN1=0;MOTOR_IN2=0;MOTOR_IN3=0;MOTOR_IN4=0;//电机停止
  78.         }
  79. }
复制代码


反复检查程序,也没发现问题啊?版主或者哪位大侠帮手看看?

点评

51开源,步进电机驱动 程序, 直接驱动, 或驱动步进电机驱动器 一共8个程序 - 步进电机控制 国芯人工智能技术交流网站 - AI32位8051交流社区 在这个版块发帖,完整上传电路图,工程打包,测试视频,关键引脚波形 步  详情 回复 发表于 2026-3-8 18:20
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:486
  • 最近打卡:2026-03-26 08:54:23
已绑定手机

104

主题

4202

回帖

9327

积分

荣誉版主

无情的代码机器

积分
9327
发表于 2026-3-8 18:20:21 | 显示全部楼层
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:151
  • 最近打卡:2026-03-25 08:22:36
已绑定手机

22

主题

2425

回帖

3416

积分

论坛元老

积分
3416
发表于 2026-3-15 09:33:28 | 显示全部楼层
erci*** 发表于 2026-3-8 18:20
51开源,步进电机驱动 程序, 直接驱动, 或驱动步进电机驱动器 一共8个程序 - 步进电机控制 国芯人工智能 ...

感谢感谢感谢!

我早就应该买块普中的新板子,看看是旧版子本身的问题还是软件的问题,顺带响应老总号召,支持普中科技!

昨天新普中的板子到了,今天先下载软件,很大3.98G............

这样很快就会查到原因............
截图202603150954589355.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-3-27 03:12 , Processed in 0.116014 second(s), 77 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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