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

Ai8051U视频学习记录

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-04-09 08:28:45
已绑定手机

1

主题

14

回帖

87

积分

注册会员

积分
87
发表于 2026-2-26 17:18:31 | 显示全部楼层 |阅读模式
第一集 序言

介绍了Ai8051u的优势点及具体应用:
①屏幕显示和视频播放(flash编程器),利用8080并口使用自带的TFT屏驱动;
②I2S录放音,Ai8051u自带I2S音频总线;
③PWM_DMA,可用作数字显示LED矩阵应用,相比STC32G用SPI+DMA实现起来更为高效;
④频谱分析仪(上位机)的实现,用到了I2S录音功能,可以实现快速FFT数据刷新;
⑤手写计算器的实现,识别手写数字,功能向AI靠近;
⑥QSPI,PWM移相,硬件乘除,单精度浮点。
截图202602261716061048.jpg

Ai8051u可以兼容早期芯片,如89C52RC和12C5A60S2;可以兼容8位指令集、32位指令集,可以替代8H8K64U、32G12K128、32G12K64;具有34K的SRAM和64Kflash,有PWM硬件移相功能等。
截图202602261716313878.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2026-04-03 08:37:07
已绑定手机

14

主题

143

回帖

986

积分

版主

积分
986
发表于 2026-2-27 08:31:46 | 显示全部楼层
要 做到 USB不停电下载
要 尝试 AiCube 图形化自动配置生成程序工具
推荐优先看的:  
printf_usb("Hello World !\r\n")
USB不停电下载, 演示视频链接:
https://www.stcaimcu.com/thread-19077-1-1.html

下载 最新的 AiCube-ISP-V6.96S 或以上版本软件 !

深圳国芯人工智能有限公司-工具软件

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

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

下载 最新的 Ai8051U 实验指导书,
AiCube 图形化自动配置生成程序工具使用说明
https://www.stcaimcu.com/data/do ... %AF%BC%E4%B9%A6.pdf


推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接



回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-04-09 08:28:45
已绑定手机

1

主题

14

回帖

87

积分

注册会员

积分
87
发表于 2026-2-27 14:08:10 | 显示全部楼层
第二集 硬件及工具介绍

介绍了AI8051U实验箱V1.2的硬件,其中包括了立体声输入输出录音功能、OLED显示屏、TFT彩屏、掉电检测电压调节、红外接收发射等功能,需要注意矩阵键盘和ADC键盘的区别,T0T1和INT0 INT1的区别(这些在后续课程中会详细说明) 截图202602271401438130.jpg
介绍了所需的软件及工具,keil编程软件、ISP软件及相关拓展插件和代码包手册。
跟随视频连接好实验箱和电脑,根据按下P32→按下POWER→松开POWER→松开P32的顺序进入下载模式,下载好第一个程序来点亮跑马灯。其中可从keil文件的main文件中找到所需主频。
截图202602271405453070.jpg
点亮的跑马灯:


回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-04-09 08:28:45
已绑定手机

1

主题

14

回帖

87

积分

注册会员

积分
87
发表于 2026-3-2 14:51:55 | 显示全部楼层
第三集 点亮第一颗LED
学习了如何新建工程,推荐使用 #include “文件名.h” 形式的头文件。
截图202603021448303180.jpg
编写点亮第一颗LED的文件,理解点亮原理(设置P40和P00端口输出电压为0V,即可联通开关和第一个LED)。
截图202603021448467547.jpg 截图202603021448548920.jpg
点亮了第一颗LED:
截图202603021449054454.jpg
同理添加P05端口输出电压为0V,可以控制第六个LED。
截图202603021449174219.jpg 截图202603021451482844.jpg
ISP软件中有针对I/O口配置的便捷选择并且可以复制对应的配置代码。
第三集点亮第一颗LED.zip (63.84 KB, 下载次数: 0)



回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-04-09 08:28:45
已绑定手机

1

主题

14

回帖

87

积分

注册会员

积分
87
发表于 2026-3-3 14:48:38 | 显示全部楼层
第四集 USB不停电下载
这节课学习如何给自己的工程文件添加USB不停电下载功能,手动进入下载模式的方法前面两节课已经提到过了。关于USB-CDC和USB-HID模式,视频中建议使用CDC模式。
如何移植关键部分到工程文件中:
①   添加头文件,有中断方式和查询方式。其中中断方式是执行一行语句就执行一次中断文件,查询方式是执行一个循环的程序就执行一次查询文件,相较而言查询方式更加高效。
②   USB初始化函数(lib+.h库实现)
③   命令参数
④   打开P_SW2寄存器和IE2寄存器,只打开EA位和EUSB位(置1)
下面是命令参数时参考的规格书截取:
截图202603031447289985.jpg 截图202603031447366478.jpg 截图202603031447432183.jpg
可以看到USB中断涉及到EUSB和EA两个开关,需要给它们都置1打开开关。
给第三课的程序添加好USB不停电下载功能,如下:
截图202603031448063822.jpg
再在ISP软件中按如下方式设置,便可给工程加上USB不停电下载功能,可以更高效地检测工程。
截图202603031448226734.jpg
第四集USB不停电下载.zip (85.15 KB, 下载次数: 0)



回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-04-09 08:28:45
已绑定手机

1

主题

14

回帖

87

积分

注册会员

积分
87
发表于 2026-3-4 14:38:40 | 显示全部楼层
第五集 c语言基础
1.C语言 USB-CDC串口之printf函数的实现
注意:#define 替换名被替换名   关注%d,%u,%s,\t,\r,\n,ASCII码
2.数的进制:2进制、10进制、16进制
注意:如何换算进制
3.数据的基本类型
注意:每个变量类型所对应的数值长度,尤其是unsigned char(0~+255);signed char(-128~+127);unsignedshort(0~+65535);signed short(-32768~+32767)
4.C语言常用运算符
注意:0为假,非0为真。If等判断语句要用到真假的概念。
截图202603041438322150.jpg
第五集C语言基础.zip (87.51 KB, 下载次数: 0)



回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-04-09 08:28:45
已绑定手机

1

主题

14

回帖

87

积分

注册会员

积分
87
发表于 2026-3-5 15:11:26 | 显示全部楼层
第六集I/O输入输出
1、  什么是GPIO
GPIO:通用输入输出端口,可以通过它们输出高低电平/读入引脚的状态是高(低)电平
高电平:接近于Vcc的电平,也叫逻辑“1”
高电平→输出Vcc电压  低电平→输出GND电压,“0”
VDD对地电压→Vcc的电压范围  IO对地电压→IO口电压范围
IO四个工作模式:准双向口(常用)、推挽输出、高阻输入、开漏模式
输入低电平≤V1L1,输入高电平≥V1H1,具体数值看手册和施密特触发器状态
2、  按键输入检测
截图202603051510237728.jpg
原理:没按下开关是高电平,按下是低电平
代码实现原理:程序直接读取按键的IO电平即可,一般使用“==”
机械按键按下或松开有抖动,会让高低电平检测不稳定,一般在20ms之内

3、  课内任务
截图202603051510353421.jpg
任务1:按下P32按钮灯亮,松开P32按钮灯灭
任务2:按下P32按钮灯灭,松开P32按钮灯亮
任务3:按一下灯亮,按一下灯灭

ISP软件中有自动生成延时代码的功能:
截图202603051511114795.jpg
第六集IO输入输出.zip (89.39 KB, 下载次数: 0)



回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-04-09 08:28:45
已绑定手机

1

主题

14

回帖

87

积分

注册会员

积分
87
发表于 2026-3-6 16:49:37 | 显示全部楼层
第七集 定时器中断
1、  定时器的介绍
8051是单核的,同一时间只能执行一个事情,没有特殊情况不能打断,所以要引入定时器打断。
定时器作用:(1)用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作
                   (2)替代长时间的delay,提高程序的运行效率和处理速度(可打断主循环)
2、  定时器的应用
任务1:LED3秒取反一次,这期间任意时刻按下按钮,串口打印按键次数
任务2:灯按一下亮3s后熄灭
任务3:两颗LED模拟急救车灯
用ISP软件可以生成定时函数
截图202603061647559562.jpg
时钟太快,可以对时钟进行分频(TM0PS),还是太快使用AUXR进行12分频。
GATE置0,TR0置1可以启动定时器。

16位自动重载定时器本质是从设定值数到65536(溢出)之后置位一次标志位,如果使能ET0就可以进入中断。
截图202603061648101957.jpg
3、  函数的定义、声明、调用
定义:定义了函数的具体功能
声明:在头文件或被调用前使用,定义在调用后面,要在前面声明

调用:在需要调用的地方直接使用函数名
第七集定时器中断.zip (91.95 KB, 下载次数: 0)



回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-04-09 08:28:45
已绑定手机

1

主题

14

回帖

87

积分

注册会员

积分
87
发表于 2026-3-10 10:02:17 | 显示全部楼层
第八集 定时器周期性调度任务
1、  周期性任务介绍
数组的使用
(1)定义:类型 名称[长度] = { 数值 };
(2)使用:赋值:名称[索引] = 数值
                            For语句的使用
任务1:用一个定时器实现这个任务。LED1实现0.3秒取反一次,LED2实现0.6秒取反一次,LED3 0.9秒取反一次
注意:通过一个变量计数,假设这个变量1ms自加一次,加到300即为300ms,加到600就是600ms;计数到达后重新清0。
任务2:数组点亮LED,实现流水灯
注意:LED是0点亮,1熄灭;数组长度需要把握好;流水灯移动的时间。
任务3:按键1按一下,LED通过数组移动一下。
注意:按键不能在通过while判断是否按下松开了;可以通过按键按下计数。检测到按键连续按下,按键计数变量+1,只要松开一下,计数清0,计数累积到50ms的时候判定为按下。
实现串口打印+按键切换+LED指示任务,同时独立进行
截图202603101000343971.jpg
                              
2、  文件的创建(.c和.h)
创建程序文件三步,把硬件需要的初始化弄一个config.c
        (1)新建文件并保存         
        (2)添加到工程
        (3)添加引用路径
.h文件创建格式:方框里是文件名称(__XXX_H)
截图202603101000526664.jpg
.c文件创建格式:
#include “xxx.h”
函数定义
添加文件一定要记得引用新的文件夹路径和添加到工程里。可以将主程序、功能程序、IO口任务程序分开放入不同的.c.h文件中,在需要使用时调用。
3、结构体的介绍
4、结构体数据的周期性任务调度
截图202603101001046551.jpg
任务4:按键1按一下,LED通过数组移动一下,用虚拟LED显示;
定时器驱动的多任务单独运行
第八集定时器周期性调度任务.zip (138.28 KB, 下载次数: 0)



回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2026-04-09 08:28:45
已绑定手机

1

主题

14

回帖

87

积分

注册会员

积分
87
发表于 2026-3-11 14:26:47 | 显示全部楼层
第九集 数码管
1.    数码管介绍
外观:本质来说不同样式的数码管都是通过点亮内部的LED来显示的,只要面板做好了,理论可以显示任意的字符或者图案。
类型:共阴(负极连一起)或者共阳(正极连一起)。“AS”代表单色,而“BS”代表双色。实验箱使用共阴数码管。
2.数码管显示原理
截图202603111424452972.jpg
                              
3.数码管静态显示
任务1:数码管静态的显示一个数字
注意:利用原理调用LED工作
截图202603111425436454.jpg
4.    数码管动态显示
任务2:数码管显示“12345678”任务3:数码管显示“00-00-00”分别代表时分秒 ,每过1秒钟秒+1;
具体的控制的流程如图所示,N表示有几个数码管。其中需要注意每个延时不能太短,我们这边程序就以1ms为准,且需要保证总共一个循环结束的时间不能大于20ms,因为人眼的视觉不容易分辨出50HZ以上的动态刷新。
截图202603111425558444.jpg
5.虚拟显示——LED和数码管
第九集数码管.zip (147.81 KB, 下载次数: 0)



回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-9 18:07 , Processed in 0.123593 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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