找回密码
 立即注册
查看: 1074|回复: 18

学习官方Ai8051U视频教程打卡 |已送实验箱

[复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-06-06 07:58:42
已绑定手机

3

主题

37

回帖

115

积分

注册会员

积分
115
发表于 2025-2-22 09:45:58 | 显示全部楼层 |阅读模式
感谢STC 免费 + 包邮  提供的Ai8051U转89C52核心功能实验板

我是今年年初,无意间看到AI有推出这款芯片。感受到了国产MCU的技术发展的速度。


也非常实际感受一下这款芯片的魅力。


客服小姐姐在和我简单沟通后,便寄出了擎天柱Ai8051U转89C52核心功能实验板。


这就是我"入坑"AI8051U的起点。






Ai32位8051
8 0 5 1  凌绝顶,核心算力在哪里 !
算力一日同风起,扶摇直上九万里 !
百兆硬件真浮点,三角函数运算器 !
神州春色三万里,封神榜永远是你 !
===老骥伏枥志在万里,我们再战三万里
截图202502220945392639.jpg
屏幕截图 2025-02-25 081717.png
屏幕截图 2025-02-25 082313.png
屏幕截图 2025-02-25 082813.png
截图202503071314511687.jpg
截图202503071315197431.jpg
截图202503071326247780.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-06-06 07:58:42
已绑定手机

3

主题

37

回帖

115

积分

注册会员

积分
115
发表于 2025-2-22 09:49:56 | 显示全部楼层

8051U深度入门:初识AI8051U

哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前


今天正式开始了学习之路,上面这句话让我很有感触。


很多时候,我们有了学习的热情,但却经不起时间的磨砺,如果我们一直勇往直前,终能成就更好的自己。


今天听冲哥介绍了AI8051U的强大功能。我都开始想像自己学会之后的各种炫技了。


最让我感兴趣的是,手写计算器,功放,录音功能。


由于实验箱还没发,不能测试感受,等实际东西到了,再和大家分享。



截图202502220952418129.jpg
截图202502220953077238.jpg
截图202502220953507622.jpg
截图202502220954334674.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-06-06 07:58:42
已绑定手机

3

主题

37

回帖

115

积分

注册会员

积分
115
发表于 2025-2-25 08:37:52 | 显示全部楼层
AI8051U学习打卡2


这一节的内容总结一下就三个:


1,硬件介绍


2,软件介绍


3,程序下载


硬件部分
主控芯片 • AI8051U:核心微控制器,推测为增强型8051内核单片机,支持仿真功能(可直接仿真),具备高性能和丰富外设接口。   


显示与交互模块
1.OLED显示屏:用于图形或文本显示,低功耗。
2.TFT彩屏:彩色触摸屏,支持更复杂的界面交互。
3.8位数码管:显示数字或简单字符,常用于基础实验(如计数器、时钟)。
4.LCD显示屏:可能为字符型液晶,用于基本信息显示。
     
输入与输出设备
1.矩阵键盘:多按键输入,适合菜单操作或密码输入实验。
2.T0、T1按键:独立按键,可能用于中断触发或功能选择。
3.红外接收与发射:支持红外遥控通信(如家电控制实验)。
4.立体声话筒录音 & 耳机输出:音频输入/输出功能,可用于语音处理或播放。
5.线路输出(Line Out):音频信号输出接口。    通信与扩展接口 1.SPI/I2C接口:连接传感器、存储器等外设(如OLED、EEPROM)。
2.USB转双串口:通过Type-C或Type-A接口实现串行通信和程序下载。 3.QSPI/SPI总线:高速数据传输,用于扩展存储或外设。
4.外部并行总线:扩展高速设备或存储器(如32K SRAM)。
5.TF卡插座:存储扩展,支持文件系统操作实验。   


调试与测试功能


1.示波器BNC输入:接入外部信号进行波形观测(需配合示波器)。 2.信号源(AI):可能提供可调信号输出(如PWM、方波)。 3.ADC(模数转换):支持模拟信号采集(如温度、光强传感器)。 4.掉电检测 & 电压调节:监控电源状态,支持2.0-5.5V宽电压输入。   


其他功能


实时时钟(RTC):依赖电池供电,用于时间记录功能。 • 8路流水灯:基础GPIO控制实验(如跑马灯)。 • 复位按键 & 电源按键:硬件复位和电源控制。 • 扩展32K SRAM & FLASH:外部存储扩展,支持大程序或数据存储。


软件部分和程序下载和之前的STC89C52类似,新增了一个USB下载功能。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-06-06 07:58:42
已绑定手机

3

主题

37

回帖

115

积分

注册会员

积分
115
发表于 2025-2-26 09:47:52 | 显示全部楼层
AI8051U学习打卡2 点亮一颗LED灯 点亮AI805U的学习之路

成功在擎天柱开发板上亮起了一颗LED, 注意开发板是低电平亮灯。下面是完整代码。
  1. #include "AI8051_32BIT.H"
  2. void main()
  3. {
  4.     P2M0 = 0xff; P2M1 = 0x00; //设置P2口工作模式
  5.     P2=0XFE;//低电平亮灯
  6.    
  7.     while(1){
  8.    
  9.    
  10.     }
  11. }
复制代码


接下来说一下本次视频的内容,及碰到的问题。
AI8051U教学视频第三集,主要内容总结下来就三点。

一,新建工程

二,写代码

三,输出烧录文件,下载程序


新建工程后要先设配置一下开发环境,头文件路径
这个按文件配置就行,我今天碰到的问题是,在新建工程时,如果选用AI3051U-32bit.  KEIL找不到系统头文件。
如果选用AI3051U-8bit.则没问题。
解决方法,自已去ISP里面下载头文件,并在C251里面配置路径。
截图202502261012308988.jpg


写代码这一块就不多说了,需要花时间打磨。总体来说和89C52差不多。 区别是要先配置IO. STC89C52不用配置。




程序下载我是通过USB下载,刚开始很难成功的进入USB-Writer
后来总结了一个方法,在带电的情况下,先按住P32,长按不松手。再按一下POWER键。点按一下就行。100%能进入USB下载。



截图202502261018216041.jpg
截图202502261020143108.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-06-06 07:58:42
已绑定手机

3

主题

37

回帖

115

积分

注册会员

积分
115
发表于 2025-3-2 20:57:44 | 显示全部楼层

学习Ai8051U四,不掉电USB下载

移值官方的的USB不掉电下载程序,代码能编译成功,也能通过USB下载,但是程序现象和代码不一样

我目前暂没有官方的开发板,直接买了一颗DIP的AI8051U,放到了之前的普中开发板上。


可能是电路硬件问题,目前没办法达到和官方演示一样的效果。


  1. #include <AI8051_32BIT.H>
  2. #include "stc32_stc8_usb.h"
  3. /*定义的三个 char* 类型的指针变量*/
  4. char *USER_DEVICEDESC = NULL;
  5. char *USER_PRODUCTDESC = NULL;
  6. char *USER_STCISPCMD = "@STCISP#";
  7. void main()
  8.     {   
  9.         
  10.     P_SW2 |=0X80;//使能访问XFR
  11.    
  12.         P0M0 = 0xff; P0M1 = 0x00; //P0设为准双向口
  13.         
  14.     usb_init();//初始化USB
  15.     IE2 |=0X80;//充许USB中断
  16.     EA=1;      //开总中断
  17.    
  18.     while (DeviceState != DEVSTATE_CONFIGURED);  //等待USB完成配置  
  19.       
  20.     while(1)
  21.     {
  22.         if (bUsbOutReady)
  23.         {
  24.            USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区
  25.             
  26.             usb_OUT_done();
  27.         }
  28.     P0=0x02;
  29.     }
  30. }
复制代码


截图202503022139379700.jpg
代码中定义的是亮第二颗指示灯。实际上全部点亮了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:428
  • 最近打卡:2025-06-17 07:34:58
已绑定手机

10

主题

155

回帖

814

积分

高级会员

积分
814
发表于 2025-3-2 21:29:12 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-06-06 07:58:42
已绑定手机

3

主题

37

回帖

115

积分

注册会员

积分
115
发表于 2025-3-2 21:45:43 | 显示全部楼层
无用*** 发表于 2025-3-2 20:57
移值官方的的USB不掉电下载程序,代码能编译成功,也能通过USB下载,但是程序现象和代码不一样

我目前暂没 ...

明天拿擎天柱的开发板试一下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-06-06 07:58:42
已绑定手机

3

主题

37

回帖

115

积分

注册会员

积分
115
发表于 2025-3-3 10:10:16 | 显示全部楼层

程序运行错误居然是软件设置不对

无用*** 发表于 2025-3-2 20:57
移值官方的的USB不掉电下载程序,代码能编译成功,也能通过USB下载,但是程序现象和代码不一样

我目前暂没 ...

经过一天的研究,发现是软件设置问题。

如下图示,Memory Model:一定要选择:XSmall

选其它选项,系統不会有任何报错问题,但程序就是不能正确运行。

截图202503031010267273.jpg


MEMORY MODEL(内存模式)是用于设置程序和数据在单片机内存中的存储方式和分配策略的参数。不同的内存模式会影响变量的存储位置、访问速度以及代码的生成方式
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-06-06 07:58:42
已绑定手机

3

主题

37

回帖

115

积分

注册会员

积分
115
发表于 2025-3-5 23:54:41 | 显示全部楼层

学习Ai8051U五,C语言基础知识

学习Ai8051U五,C语言基础知识

本节内容主要是总结了进制转换, 数据类型,数据运算。

下面是我总结在8051中的用法,当然在8051中也是一样的。
  1. #include <reg51.h>  // 包含8051单片机的头文件
  2. // 定义位类型变量,取值为0或1
  3. bit flag_bit = 0;  
  4. // 有符号字符型,占8位,取值范围 -128 到 +127
  5. signed char signed_char_num = -10;  
  6. // 无符号字符型,占8位,取值范围 0 到 +255
  7. unsigned char unsigned_char_num = 200;  
  8. // 枚举类型,这里简单定义一个示例
  9. enum color {RED, GREEN, BLUE};  
  10. enum color my_color = RED;  
  11. // 有符号短整型,占16位,取值范围 -32768 到 +32767
  12. signed short int signed_short_int_num = -1000;  
  13. // 无符号短整型,占16位,取值范围 0 到 +65535
  14. unsigned short int unsigned_short_int_num = 50000;  
  15. // 有符号整型,占16位,取值范围 -32768 到 +32767
  16. signed int signed_int_num = -5000;  
  17. // 无符号整型,占16位,取值范围 0 到 +65535
  18. unsigned int unsigned_int_num = 60000;  
  19. // 有符号长整型,占32位,取值范围 -2147483648 到 +2147483647
  20. signed long int signed_long_int_num = -1000000000;  
  21. // 无符号长整型,占32位,取值范围 0 到 +4294967295
  22. unsigned long int unsigned_long_int_num = 3000000000;  
  23. // 单精度浮点型,占32位,取值范围 ±1.17549435E-38 到 ±3.4028235E+38
  24. float float_num = 3.14;  
  25. // 双精度浮点型,默认与单精度浮点型大小和范围相同,如需不同需使用FLOAT64编译指令
  26. double double_num = 2.71828;  
  27. // 指向idata、data、pdata的指针,占8位,取值范围 0 到 0xFF
  28. idata char *idata_ptr;  
  29. data char *data_ptr;  
  30. pdata char *pdata_ptr;  
  31. // 指向near、xdata、code的指针,占16位,取值范围 0 到 0xFFFF
  32. near char *near_ptr;  
  33. xdata char *xdata_ptr;  
  34. code char *code_ptr;  
  35. // 指向far、huge的指针,占32位,取值范围 0 到 0xFFFFFFFF
  36. far char *far_ptr;  
  37. huge char *huge_ptr;  
  38. // 位寻址变量,从sfr定义的字节中选取一位,取值为0或1
  39. sbit my_sbit = P1^0;  
  40. // 特殊功能寄存器,占8位,取值范围 0 到 +255
  41. sfr my_sfr = 0x80;  // 假设P0口地址为0x80,仅作示例
  42. // 16位特殊功能寄存器,占16位,取值范围 0 到 +65535
  43. sfr16 my_sfr16 = 0x82;  // 假设一个16位特殊功能寄存器地址从0x82开始,仅作示例
  44. void main() {
  45.     // 这里可以添加具体的功能代码
  46.     while(1);  // 死循环,防止程序跑飞
  47. }
复制代码

  1. #include <reg51.h>  // 包含8051单片机的头文件,定义了特殊功能寄存器等
  2. // 假设A和B的值,括号内为二进制表示,但在代码中直接用十进制体现
  3. unsigned char A = 5;  // 二进制:0000 0101
  4. unsigned char B = 10; // 二进制:0000 1010
  5. void main() {
  6.     bit result_logic_and;  // 定义一个位变量用于存储逻辑与结果
  7.     bit result_logic_or;   // 定义一个位变量用于存储逻辑或结果
  8.     bit result_logic_not;  // 定义一个位变量用于存储逻辑非结果
  9.     unsigned char C = 0;   // 定义变量C用于演示赋值运算符
  10.     // 逻辑运算符演示
  11.     result_logic_and = (bit)(A && B);  // 逻辑与,全真为真,有假为假,这里A和B都为非零值,视为真
  12.     result_logic_or = (bit)(A || B);   // 逻辑或,有真为真,皆假为假,这里A和B至少一个为非零值,视为真
  13.     result_logic_not = (bit)(!A);      // 逻辑非,真变假,假变真,A为非零值视为真,取反后为假
  14.     // 赋值运算符演示
  15.     C = A + B;  // 把A + B的值赋给C
  16.     C += A;     // 相当于C = C + A
  17.     C -= A;     // 相当于C = C - A
  18.     C *= A;     // 相当于C = C * A
  19.     C /= A;     // 相当于C = C / A
  20.     C %= A;     // 相当于C = C % A
  21.     // 移位和位运算赋值运算符演示
  22.     C = 1;
  23.     C <<= 2;    // 相当于C = C << 2
  24.     C = 8;
  25.     C >>= 2;    // 相当于C = C >> 2
  26.     C = 3;
  27.     C &= 2;     // 相当于C = C & 2
  28.     C = 3;
  29.     C ^= 2;     // 相当于C = C ^ 2
  30.     C = 3;
  31.     C |= 2;     // 相当于C = C | 2
  32.     while(1);  // 主循环,防止程序跑飞
  33. }
复制代码


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-06-06 07:58:42
已绑定手机

3

主题

37

回帖

115

积分

注册会员

积分
115
发表于 2025-3-7 08:29:16 | 显示全部楼层

学习官方AI8051U视频教程打卡6:IO输入输出及按键控制LED状态


首先我们需要定义MCU的IO工作模式。

常见的工作模式有:双向输入输出  开漏模式 推挽模式 高阻模式

本次案例我们需要用到按键扫描及点亮LED的功能。

所以IO口的模式定义为准双向。

下面是按键按下时LED点亮, 松手LED熄灭的代码:
  1. #include <AI8051U.H>
  2. #include "intrins.h"
  3. void Delay20ms(void)        //@24.000MHz
  4. {
  5.         unsigned long edata i;
  6.         _nop_();
  7.         _nop_();
  8.         i = 119998UL;
  9.         while (i) i--;
  10. }
  11. void main(){
  12.    
  13.     WTST = 0;      
  14.     EAXFR = 1;      
  15.     CKCON = 0;      
  16.    
  17.     P0M0 = 0x00; P0M1 = 0x00;
  18.     P1M0 = 0x00; P1M1 = 0x00;
  19.     P0=0X00;
  20.    
  21.     while(1){
  22.    
  23.     if(P10==0){
  24.    
  25.     P01=1;
  26.            
  27.     }
  28.     else{
  29.    
  30.     P01=0;
  31.     }
  32.    
  33.    
  34.     }
  35. }
复制代码


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-18 00:20 , Processed in 0.212705 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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