damon.wood 发表于 2025-12-3 16:32:28

《8051U深度入门到32位51大型实战教学视频》|擎天柱学习打卡

新人第一次发帖,还请各位大佬多多指教~~

按照教学视频一步步学习,希望早日收到实验箱,进一步学习,目标:可以做一个示波器

第3集 擎天柱点亮LED灯
1.编译图片:

2.代码:

#include <AI8051u.h>
// #include <INTRINS.H>
// #define uint8_tunsigned char
// #define uint16_t unsigned int

// void Delay_ms(uint16_t ms);

void main(void)
{
    P0M0 = 0x00; P0M1 = 0x00;
    P1M0 = 0x00; P1M1 = 0x00;
    P2M0 = 0x00; P2M1 = 0x00;
    P3M0 = 0x00; P3M1 = 0x00;
    P4M0 = 0x00; P4M1 = 0x00;
    P5M0 = 0x00; P5M1 = 0x00;
    P6M0 = 0x00; P6M1 = 0x00;
    P7M0 = 0x00; P7M1 = 0x00;

    while (1)
    {
      P20 = 0;
      P21 = 0;
      // Delay_ms(100);
      // P20 = 1;
      // Delay_ms(100);
    }
   
}

// void Delay_ms(uint16_t ms)   //@24.000MHz
// {
//uint8_t data i, j;

//   do
//   {
//         _nop_();
//         i = 32;
//         j = 40;
//         do
//         {
//             while (--j);
//         } while (--i);
//   }while(--ms);
   
// }


3.验证图片:



第4集USB-CDC 不停电下载
1.编译照片:

2.代码:

#include <AI8051u.h>
#include <ai_usb.h>
// #define uint8_tunsigned char
// #define uint16_t unsigned int
// void Delay_ms(uint16_t ms);
void main(void)
{
    P_SW2 |= 0x80;

    P0M0 = 0x00; P0M1 = 0x00;
    P1M0 = 0x00; P1M1 = 0x00;
    P2M0 = 0x00; P2M1 = 0x00;
    P3M0 = 0x00; P3M1 = 0x00;
    P4M0 = 0x00; P4M1 = 0x00;
    P5M0 = 0x00; P5M1 = 0x00;
    P6M0 = 0x00; P6M1 = 0x00;
    P7M0 = 0x00; P7M1 = 0x00;

    usb_init();
    EA = 1;

    while (1)
    {
      if (bUsbOutReady)
      {
            USB_SendData(UsbOutBuffer,OutNumber);                  // CDC 串口测试
            usb_OUT_done();
      }

      P20 = 0;
      P21 = 0;
    }
}

// void Delay_ms(uint16_t ms)   //@24.000MHz
// {
//uint8_t data i, j;

//   do
//   {
//         _nop_();
//         i = 32;
//         j = 40;
//         do
//         {
//             while (--j);
//         } while (--i);
//   }while(--ms);
   
// }


3.验证视频:



第5集C语言基础及USB-CDC串口
1.编译图片:

2.代码:

#include <AI8051U.h>
#include <ai_usb.h>

uint16_t a = 8;
uint16_t b = 10;
uint16_t c = 0;

uint8_t i = 0;
void main(void)
{
    P_SW2 |= 0x80;

    P0M0 = 0x00; P0M1 = 0x00;
    P1M0 = 0x00; P1M1 = 0x00;
    P2M0 = 0x00; P2M1 = 0x00;
    P3M0 = 0x00; P3M1 = 0x00;
    P4M0 = 0x00; P4M1 = 0x00;
    P5M0 = 0x00; P5M1 = 0x00;
    P6M0 = 0x00; P6M1 = 0x00;
    P7M0 = 0x00; P7M1 = 0x00;

    usb_init();
    IE2 |= 0x80;
    EA = 1;

    c = a + b;

    while (1)
    {
      if (bUsbOutReady)
      {
            USB_SendData(UsbOutBuffer,OutNumber);//);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)

            // if(c == 0)
            //   printf("STC YYDS\r\n");                        //printf 在usb.h中需重定向到 printf_usb
            
            // else printf("c = %d + %d \r\n",a,b);
            // printf("c =%d\r\n",(uint16_t)(a+b));

            // for(i = 0; i<64;i++)
            //   printf("%d\t",(uint16_t)UsbOutBuffer);

            // if(UsbOutBuffer == '0')                         //CDC 串口发送0,显示大写;其他显示小写
            //   printf("STC YYDS\r\n");
            // else   
            //   printf("stc yyds\r\n");

            usb_OUT_done();
      }
      // P20 = 0;
      // P21 = 0;
      // P22 = 0;
    }
   

}

3.验证图片:




第6集GPIO输入输出
1.编译照片:

2.代码(包括课后任务):
#include <AI8051U.h>
#include <ai_usb.h>

uint8_t state = 1;
uint8_t cnt   = 0;

void Delay20ms(void)    //@24.000MHz
{
    unsigned char data i, j, k;

    _nop_();
    i = 3;
    j = 112;
    k = 91;
    do
    {
      do
      {
            while (--k);
      } while (--j);
    } while (--i);
}

void main(void)
{
    P_SW2 |= 0x80;

    P0M0 = 0x00; P0M1 = 0x00;
    P1M0 = 0x00; P1M1 = 0x00;
    P2M0 = 0x00; P2M1 = 0x00;
    P3M0 = 0x00; P3M1 = 0x00;
    P4M0 = 0x00; P4M1 = 0x00;
    P5M0 = 0x00; P5M1 = 0x00;
    P6M0 = 0x00; P6M1 = 0x00;
    P7M0 = 0x00; P7M1 = 0x00;

    usb_init();

    IE2 |= 0x80;
    EA = 1;

    while (1)
    {
      if (bUsbOutReady)
      {
            usb_OUT_done();
      }
      // 任务1:按下P33,擎天柱P20灯亮,松开P33灯灭
      // P33 == 0 ? (P20 = 0) : (P20 = 1);      // "=" 优先级高于条件判断符
      if(P33)
      {
            P20 = 1;
      }
      else
      {
            P20 = 0;
      }

      //任务2:按下P33,擎天柱P20灯灭,松开P33灯亮
      // P33 == 1 ? (P20 = 0) : (P20 = 1);      // "=" 优先级高于条件判断符
      // if(!P33)
      // {
      //   P20 = 1;
      // }
      // else
      // {
      //   P20 = 0;
      // }

      //任务3:按一下灯亮,再按一下灯灭
      // if(P33 == 0)
      // {
      //   Delay20ms();
      //   if(P33 == 0)
      //   {
      //         // P20 = ~P20;                         // 擎天柱
      //         state = !state;
      //         P20 = state;
      //         printf("state = %d\r\n",(uint16_t)state);
      //         while(!P33);
      //   }
      // }

      // 课后任务1:按一下P32灯亮,按一下P33灯灭
      // if(!P32)
      // {
      //   Delay20ms();
      //   if(!P32)
      //   {
      //         state = 0;
      //         while(!P32);
      //         printf("state = %d\r\n",(uint16_t)state);
      //   }
      // }
      // else if(!P33)
      // {
      //   Delay20ms();
      //   if(!P33)
      //   {
      //         state = 1;
      //         while(!P33);
      //         printf("state = %d\r\n",(uint16_t)state);
      //   }
      // }
      // P20 = state;

      // 课后任务2:按一下P33亮一颗灯,直至8颗全亮
      // if(!P33)
      // {
      //   Delay20ms();
      //   if(!P33)
      //   {
      //         cnt++;
      //         if(cnt > 8)
      //         {
      //             cnt = 0;
      //             P2 = 0xff;
      //         }
      //         P2 = 0xff << cnt;
      //         printf("P2 = 0x%x\r\n",P2);
      //         while(!P33);
      //   }
      // }
    }
}


3.验证视频:




第7集定时器中断
1.编译照片:

2.代码(包括课后任务):
#include <AI8051U.h>
#include <ai_usb.h>

uint16_t state = 0;
uint16_t cnt   = 0;
uint8_t Run_State = 0;         

void Delay20ms(void);   //@24.000MHz
void Timer0_Init(void);   //3秒@24.000MHz

void main(void)
{
    P_SW2 |= 0x80;          //允许访问扩展的特殊寄存器,XFR                     
    WTST = 0;               //设置取程序代码等待时间,0代表不等待,最快速度运行
    CKCON = 0;            //设置访问片内xdata速度,0表示用最快速度访问,不增加额外等待时间

    P0M0 = 0x00; P0M1 = 0x00;
    P1M0 = 0x00; P1M1 = 0x00;
    P2M0 = 0x00; P2M1 = 0x00;
    P3M0 = 0x00; P3M1 = 0x00;
    P4M0 = 0x00; P4M1 = 0x00;
    P5M0 = 0x00; P5M1 = 0x00;
    P6M0 = 0x00; P6M1 = 0x00;
    P7M0 = 0x00; P7M1 = 0x00;

    usb_init();
    IE2 |= 0x80;            //使能usb中断
    // Timer0_Init();
    EA = 1;

    while (1)
    {
      if (bUsbOutReady)
      {
            // USB_SendData(UsbOutBuffer,OutNumber);//);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)

            usb_OUT_done();
      }
      
      // 任务1:LED灯3秒取反一次,这期间任意时刻按下按钮,串口打印按键次数
      // if(P33 == 0)
      // {
      //   Delay20ms();
      //   if(P33 == 0)
      //   {
      //         while(P33 == 0);
      //         printf("按键按下次数\xfd:%d次\r\n",++cnt);// 特殊汉字后需增加 \xfd
      //   }
      // }

      // 任务2:灯按一下点亮3秒后熄灭
      // if(P33 == 0)
      // {
      //   Delay20ms();
      //   if(P33 == 0)
      //   {
      //         P20 = 0;
      //         Timer0_Init();
      //         while(P33 == 0);
      //         printf("按键按下次数\xfd:%d次\r\n",++cnt);// 特殊汉字后需增加 \xfd
      //   }
      // }

      // 任务3:灯按一下P33 LED0,LED1交替闪烁,再按一下停止
      if(P33 == 0)
      {
            Delay20ms();
            if(P33 == 0)
            {
                Run_State = !Run_State;                     //运行状态取反
                if (Run_State == 1)
                {
                     Timer0_Init();
                }
                else
                {
                  TR0 = 0;                              //关闭定时器
                  P20 = 1;
                  P21 = 1;
                }
               
                while(P33 == 0);
                // printf("按键按下次数\xfd:%d次\r\n",++cnt);// 特殊汉字后需增加 \xfd
            }
      }

      // 课后小练 功德箱:
      // 1:按下P33,串口打印“双倍功德时间”,再按下显示“单倍功德时间”;
      // 2:按下P32,双倍功德时间下显示“功德+2,当前功德: ”,LED点亮2秒后熄灭;单倍功德时间按下显示“功德+1,当前功德: ”,LED点亮1秒后熄灭;
      // if(P33 == 0)
      // {
      //   Delay20ms();
      //   if(P33 == 0)
      //   {
      //         Run_State = !Run_State;                     //运行状态取反
      //         if (Run_State == 1)
      //         {
      //             printf("双倍功德时间\r\n");
      //         }
      //         else
      //         {
      //             printf("单倍功德时间\r\n");
      //         }
      //         while(P33 == 0);
      //   }
      // }

      // if(Run_State && !P32)
      // {
      //   Delay20ms();
      //   if(Run_State && !P32)
      //   {
      //         cnt += 2;
      //         printf("功德+2,当前功德:%d\r\n",cnt);

      //         P20 = 0;
      //         Timer0_Init();
      //         while(!P32);
      //   }
      // }

      // if(!Run_State && !P32)
      // {
      //   Delay20ms();
      //   if(!Run_State && !P32)
      //   {
      //         cnt += 1;
      //         printf("功德+1,当前功德:%d\r\n",cnt);
               
      //         P20 = 0;
      //         Timer0_Init();
      //         while(!P32);
      //   }
      // }

      // if(cnt > 9)
      // {
      //   printf("功德圆满\r\n");
      //   cnt = 0;
      // }
    }
}

void Delay20ms(void)    //@24.000MHz
{
    unsigned char data i, j, k;

    _nop_();
    i = 3;
    j = 112;
    k = 91;
    do
    {
      do
      {
            while (--k);
      } while (--j);
    } while (--i);
}

// 任务1 任务2
// void Timer0_Init(void)       //3秒@24.000MHz
// {
//TM0PS = 0x5B;         //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
//AUXR &= 0x7F;         //定时器时钟12T模式
//TMOD &= 0xF0;         //设置定时器模式
//TL0 = 0x3F;             //设置定时初始值
//TH0 = 0x01;             //设置定时初始值
//TF0 = 0;                //清除TF0标志
//TR0 = 1;                //定时器0开始计时
//ET0 = 1;                //使能定时器0中断
// }

//任务3 500ms
void Timer0_Init(void)      //500毫秒@24.000MHz
{
    TM0PS = 0x0F;         //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
    AUXR &= 0x7F;         //定时器时钟12T模式
    TMOD &= 0xF0;         //设置定时器模式
    TL0 = 0xDC;             //设置定时初始值
    TH0 = 0x0B;             //设置定时初始值
    TF0 = 0;                //清除TF0标志
    TR0 = 1;                //定时器0开始计时
    ET0 = 1;                //使能定时器0中断
}

// void Timer0_Init(void)       //1秒@24.000MHz
// {
//TM0PS = 0x1E;         //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
//AUXR &= 0x7F;         //定时器时钟12T模式
//TMOD &= 0xF0;         //设置定时器模式
//TL0 = 0xFC;             //设置定时初始值
//TH0 = 0x03;             //设置定时初始值
//TF0 = 0;                //清除TF0标志
//TR0 = 1;                //定时器0开始计时
//ET0 = 1;                //使能定时器0中断
// }

// 任务1,2
// void Timer0_Isr(void) interrupt 1
// {
//   // state = !state;
//   // P20 = state;
//   P20 = 1;
//   TR0 = 0;
// }

// 500ms 任务3
void Timer0_Isr(void) interrupt 1
{
    state = !state;
    P20 = state;
    P21 = !state;
}

//功德箱中断
// void Timer0_Isr(void) interrupt 1
// {
//   state ++;
//   if( ((state == 2) && Run_State) || ((state == 1) && !Run_State))
//   {
//         P20 = 1;
//         TR0 = 0;
//         state = 0;
//   }
//   // if((state == 2) && Run_State)
//   // {
//   //   P20 = 1;
//   //   TR0 = 0;
//   //   state = 0;
//   // }
//   // if((state == 1) && !Run_State)
//   // {
//   //   P20 = 1;
//   //   TR0 = 0;
//   //   state = 0;
//   // }
// }


3.验证照片:




第 8 集 定时器周期性任务调度
1.编译照片:

2.代码:
#include "task.h"
#include "io.h"

static TASK_COMPONENTS xdata Task_Comps[]=
{
//状态计数周期函数
    {0, 300,300,LED0_Blink},      /* task 1 Period: 300ms */
    {0, 600,600,LED1_Blink},      /* task 2 Period: 600ms */
    {0, 900,900,LED2_Blink},      /* task 3 Period: 900ms */
    {0, 10,   10,   Key_Task},      /* task 4 Period: 10ms*/
};

uint8_t data Tasks_Max = sizeof(Task_Comps)/sizeof(Task_Comps);

//========================================================================
// 函数: Task_Handler_Callback
// 描述: 任务标记回调函数.
// 参数: None.
// 返回: None.
// 版本: V1.0, 2012-10-22
//========================================================================
void Task_Marks_Handler_Callback(void)
{
    uint8_t data i;
    for(i=0; i<Tasks_Max; i++)
    {
      if(Task_Comps.TIMCount)      /* If the time is not 0 */
      {
            Task_Comps.TIMCount--;   /* Time counter decrement */
            if(Task_Comps.TIMCount == 0) /* If time arrives */
            {
                /*Resume the timer value and try again */
                Task_Comps.TIMCount = Task_Comps.TRITime;
                Task_Comps.Run = 1;      /* The task can be run */
            }
      }
    }
}

//========================================================================
// 函数: Task_Pro_Handler_Callback
// 描述: 任务处理回调函数.
// 参数: None.
// 返回: None.
// 版本: V1.0, 2012-10-22
//========================================================================
void Task_Pro_Handler_Callback(void)
{
    uint8_t data i;
    for(i=0; i<Tasks_Max; i++)
    {
      if(Task_Comps.Run) /* If task can be run */
      {
            Task_Comps.Run = 0;      /* Flag clear 0 */
            Task_Comps.TaskHook();   /* Run task */
      }
    }
}


3.验证视频:



第 9 集ISP 虚拟接口 LED_40 及数码管
1.编译照片:

2.代码(IO.c):
#include "io.h"

uint16_t xdata key_vol = 0;

void LED0_Blink(void)
{
    P20 = !P20;
}
void LED1_Blink(void)
{
    P21 = !P21;
}
void LED2_Blink(void)
{
    P22 = !P22;
}

void Key_Task(void)
{
    if(P32 == 0)
    {
      key_vol ++;
      if(key_vol == 5)
      {
            printf("按键按下\r\n");
      }
    }
    else   
      key_vol = 0;
}

uint8_t xdata state_LED = 0;
uint8_t xdata T_NUM = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//========================================================================
// ISP 调试仿真接口   擎天柱LED
// P2LED 流水灯
//========================================================================
void PLED_40(void)
{
    uint8_t cod;
    cod =0x0f;             //开启 P0~P3
    cod = ~0X01;             //P0 端口
    cod = ~0x01;             //P1 端口
    cod = ~T_NUM; //P2 端口
    cod = ~0x80;             //P3 端口
    LED40_SendData(cod,5);      //发送数据

    P2 = ~T_NUM;   //晴天住硬件对比
    state_LED ++;
    if(state_LED > 7)
      state_LED = 0;
}

//========================================================================
// ISP 调试仿真接口   数码管PC
// 字模 0~9DP-G-F-E-D-C-B-A
//========================================================================
uint8_t xdata SEG_NUM[] =
{
    0x3F,       /*'0', 0*/
    0x06,       /*'1', 1*/
    0x5B,       /*'2', 2*/
    0x4F,       /*'3', 3*/
    0x66,       /*'4', 4*/
    0x6D,       /*'5', 5*/
    0x7D,       /*'6', 6*/
    0x07,       /*'7', 7*/
    0x7F,       /*'8', 8*/
    0x6F,       /*'9', 9*/
    0x40,       /*'-', 10*/
    0x00,       /*' ', 11*/
    0x80,       /*'.', 12*/
};

uint8_t xdata shi= 0;
uint8_t xdata fen= 0;
uint8_t xdata miao = 0;
//========================================================================
// ISP 调试仿真接口   数码管PC
// 简易时钟,秒自加 1
//========================================================================
void SEG_PC(void)
{
    uint8_t cod;

    cod = SEG_NUM;
    cod = SEG_NUM;
    cod = SEG_NUM;

    cod = SEG_NUM;
    cod = SEG_NUM;
    cod = SEG_NUM;

    cod = SEG_NUM;
    cod = SEG_NUM;

    SEG7_ShowCode(cod);             // 发送数据

    miao ++;
    if(miao > 59)
    {
      miao = 0;
      fen ++;
      if(fen > 59)
      {
            fen = 0;
            shi ++;
            if(shi > 23)
                shi = 0;
      }
    }
}

uint8_t flag_1 = 0;   //初始值标志
uint8_t flag_2 = 0;   //计数启停标志
//temp = ms
//temp = s
uint8_t temp = {0};
//========================================================================
// ISP 调试仿真接口   数码管PC
// 课后小练:简易免单器
//========================================================================
void SEG7_Pra(void)
{
    uint8_t cod;


    if(!flag_1)
    {
      cod = SEG_NUM;
      cod = SEG_NUM|SEG_NUM;// 0xBF;
      cod = SEG_NUM;
      cod = SEG_NUM;

      cod = SEG_NUM;
      cod = SEG_NUM|SEG_NUM;// 0xBF;
      cod = SEG_NUM;
      cod = SEG_NUM;

      SEG7_ShowCode(cod);
    }

    if(flag_2)
    {
      cod = SEG_NUM;
      cod = SEG_NUM|SEG_NUM;// 0xBF;
      cod = SEG_NUM;
      cod = SEG_NUM;

      cod = SEG_NUM/10];
      cod = SEG_NUM%10]|SEG_NUM;// 0xBF;
      cod = SEG_NUM/10];
      cod = SEG_NUM%10];

      SEG7_ShowCode(cod);

      temp ++;
      if(temp > 99)
      {
            temp = 0;
            temp ++;
            if(temp > 99)
                temp = 99;
      }
    }

}

void Key_SEG7_Task(void)
{
    uint8_t key_cnt = 0;      // ????????????flag_1??

    if(P33 == 0)
    {
      key_vol ++;
      if(key_vol == 5)
      {
            if(key_cnt == 0)
                flag_1 = 1;
            flag_2 = !flag_2;
            key_cnt ++;
            if(key_cnt > 254)
                key_cnt = 254;
      }
    }
    else   
      key_vol = 0;
}


3.验证视频:

















神农鼎 发表于 2025-12-3 17:07:55

可以直接申请 AI8051U 实验箱了,

USB用最新的库,深圳国芯人工智能有限公司-库函数
用最新的 AiCube 来自动生成 各外设如USB程序,
优先看下下面的视频


要 做到 USB不停电下载;
要 尝试 图形化配置外设;
推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接
从 www.STCAI.com

下载 最新的 AiCube-ISP-V6.96G 或以上版本软件 !
深圳国芯人工智能有限公司-工具软件


下载 最新的 USB库函数,永远用最新的 USB库函数 !
深圳国芯人工智能有限公司-库函数
下载 最新的 用户手册 !
下载 最新的 上机实践指导书 !

下载 最新的 AI8051U 用户手册
https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf

下载 最新的 AI8051U 实验指导书
https://www.stcaimcu.com/data/do ... %AF%BC%E4%B9%A6.pdf

https://v.stcai.com/sv/1c5eec2-197fcd9b766/1c5eec2-197fcd9b766.mp4
上面是 小李 演示:Ai8051U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成

https://v.stcai.com/sv/1fce8086-197cf2b9dd4/1fce8086-197cf2b9dd4.mp4
上面是 小赵 演示:Ai8051U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成

damon.wood 发表于 2025-12-3 17:09:51

神农鼎 发表于 2025-12-3 17:07
可以直接申请 AI8051U 实验箱了,

USB用最新的库,深圳国芯人工智能有限公司-库函数


感谢~~{:ciya:}

神农鼎 发表于 2025-12-3 17:17:48

多发些 我们强大的 辅助工具的 实验视频



神农鼎 发表于 2025-12-3 17:18:23

【免费 + 包邮 送】 送/申样/采购 可上班时间加 如下您对应地区分销商的客服 QQ或微信联系
加STC华南区客服司经理QQ: 2234917869 ;微信:18012226298要求 【免费+包邮】 送, 还免费教仿真
加STC华南区客服刘经理QQ: 3398500488 ;微信:18106296592要求 【免费+包邮】 送, 还免费教仿真
加STC华南区客服佘经理QQ: 614777595;   微信:18106296591 要求 【免费+包邮】 送, 还免费教仿真
加STC华南区客服曹经理QQ: 1933892258 ;微信:18106296595 要求 【免费+包邮】 送, 还免费教仿真
加STC华东区客服聂经理QQ: 2593903262; 微信:18106296598要求 【免费+包邮】 送, 还免费教仿真
加STC华东区客服吴经理QQ: 1463035472; 微信:19952583954要求 【免费+包邮】 送, 还免费教仿真
加STC西北区客服孙经理QQ: 1347154513 ;微信:18106296593要求 【免费+包邮】 送, 还免费教仿真
加STC华北区客服杨经理QQ: 1638975601 ;微信:19952583876要求 【免费+包邮】 送, 还免费教仿真
加STC华中区客服唐经理QQ:2571301708 ; 微信:18106296589 要求 【免费+包邮】 送, 还免费教仿真
加STC东北区客服李经理QQ: 1017142298 ;微信:19952583534要求 【免费+包邮】 送, 还免费教仿真
加STC西南区客服曹经理QQ: 3897745450 ;微信:18012226281 要求 【免费+包邮】 送, 还免费教仿真
加STC西南区客服吴经理QQ: 1463035472 ;微信:19952583954 要求 【免费+包邮】 送, 还免费教仿真

工作时间:8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)
【免费 + 包邮 送】 送/申样/采购传统电话热线:0513-89896509,0513-55012928,0513-55012929

xiaocao 发表于 2025-12-6 11:18:59

你好,eide插件开发ai8051u的话是不是只能8bit模式sdcc编译出来,32位eide没有251编译器

神农鼎 发表于 2025-12-6 11:23:17

https://www.stcaimcu.com/thread-21396-1-2.html   
参考这个打卡贴风格,达到这个水平,可以免费送 AI8051U实验箱

damon.wood 发表于 2025-12-8 13:58:42

xiaocao 发表于 2025-12-6 11:18
你好,eide插件开发ai8051u的话是不是只能8bit模式sdcc编译出来,32位eide没有251编译器 ...

是的 只能8bit

xiaocao 发表于 2025-12-9 23:18:09

damon.wood 发表于 2025-12-8 13:58
是的 只能8bit

{:xiaojiujie:}
页: [1]
查看完整版本: 《8051U深度入门到32位51大型实战教学视频》|擎天柱学习打卡