入戏太深 发表于 2024-12-29 17:25:26

【AI8051U擎天柱】学习记录贴

感谢官方 免费+包邮 的 擎天柱 核心板,
ai8051u芯片自带usb下载,超级方便,
方法:先按住INT0-P32按键,然后按下power键,然后松开power键,最后再松开INT0-P32按键。
这个过程其实就是在断电状态下,按住INT0给芯片上电操作。



拿到板子先上电点LED灯玩玩,感受一下32位8051的不同。
查看原理图

LED灯在P2口,配置IO,直接用ai-isp工具起飞,这个工具爽歪歪。

延时函数又飞起了

根据ai8051u芯片手册第六章内容新建工程,配置工程

新建多源程序文件

行云流水,一气呵成。
附上demo



入戏太深 发表于 2025-1-7 15:33:34

【AI8051U擎天柱】学习记录贴-2

usb不断电下载,根据视频和ai8051u手册,创建工程,添加usb库。





#include "main.h"
#include "led.h"
#include "stc32_stc8_usb.h"


char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";


void Delay1ms(void)        //@22.1184MHz
{
        unsigned long edata i;

        _nop_();
        i = 5528UL;
        while (i) i--;
}


void DelayMs(unsigned int ms)
{
    for(;ms;ms--)
    {
      Delay1ms();
    }
}


void main(void)
{
    P_SW2 |= 0x80;//enable xfr
   
    led_Init();
   
    usb_init();   //USB CDC config
    IE2 |= 0x80;    //enable usb isr
    EA = 1;
    while (DeviceState != DEVSTATE_CONFIGURED); //wait usb init finish!
   
    for(;;)
    {
      if (bUsbOutReady)
      {
            USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回,用于测试)
            usb_OUT_done();
      }
      else
      {
            led_TrunOn();
//            DelayMs(500);
//            led_TrunOff();
//            DelayMs(500);
      }
    }
}



只是有一个问题,手册和视频都是用24MHz,但是我用12MHz,下载后可以用usb-cdc




附上代码




入戏太深 发表于 2025-1-9 09:54:36

【AI8051U擎天柱】学习记录贴-3

定时器学习
使用ai-isp直接生成定时器初始化代码

主函数

不知道usb源码在哪,看不到,usb初始化时系统时钟是不是有修改。


入戏太深 发表于 2025-1-9 10:04:09

【AI8051U擎天柱】学习记录贴-4

添加按键驱动,延时去抖动

附上代码

入戏太深 发表于 2025-1-9 16:13:45

【AI8051U擎天柱】学习记录贴-5


多任务处理是指在单个处理器上同时管理多个程序或任务的能力。
在单片机环境中,这通常意味着通过时间分割和优先级调度,使得多个任务看起来像是同时运行的。
小系统单片机中使用最多的就是时间分割多任务处理,
本次学习的就是时间片分割的轮询多任务,这种处理方式极大地提高了系统的响应性和效率。

任务处理

附上代码


页: [1]
查看完整版本: 【AI8051U擎天柱】学习记录贴