找回密码
 立即注册
查看: 487|回复: 8

我也来《8051U深度入门到32位51大型实战视频》学习打卡了

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-06 08:26:52
已绑定手机

13

主题

1266

回帖

3009

积分

论坛元老

积分
3009
发表于 2024-12-11 14:03:16 | 显示全部楼层 |阅读模式
哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前!———冲哥

第一集:序言
1、8051U强在哪里?外设支持更多、更强,运算能力增强!
     ① 屏幕显示和视频播放:这个在之前的帖子中已经看到过了实际效果,这是我目前的兴趣点之一,通过QSPI的加持,真正实现视频级彩屏的播放
     ② IIS录放音:这个在之前的帖子中已经看到过了实际效果,这是我目前的兴趣点之二,可实现USB声卡功能、录音功能、播放功能
     ③ PWM_DMA:8051U是目前STC MCU中支持DMA最全面,外设P2P矩阵。大大增加了WS2812点灯的数量,同时更是期望8052U单线点灯功能
     ④ 频谱分析仪(上位机):频谱分析仪接触的少,专业的频谱分析仪好像不仅仅是声音频谱的分析
     ⑤ 手写计算器:这个也在之前的帖子中,这项目也充分体现了AI特性
     ⑥ QSPI、PWM移相、硬件乘除、单精度浮点:主要是性能提升的体现
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-06 08:26:52
已绑定手机

13

主题

1266

回帖

3009

积分

论坛元老

积分
3009
发表于 2024-12-11 15:57:37 | 显示全部楼层
第二集-硬件及工具介绍
已经使用过《STC32G12K128实验箱-V9.62》,再看8051U实验箱,盒子基本一样,上手应该会比较快。

相比STC32G实验箱,我感兴趣的主要是新增的音视频功能:双音频输出、MIC输入、P6800高速TFT显示接口、USB转双串口芯片,另外还有:外部扩展RAM、RTC电池、DAC芯片(用于实现I2S)TP2604S、LMV358(比较器?)

软件介绍、安装部分对我来说就没什么新内容了,AiAPP_ISP、Keil软件、添加头文件、调试驱动、中断扩展插件等不做赘述,平时就在使用。

8051U实验箱的代码包已下载,就等实验箱啦
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-06 08:26:52
已绑定手机

13

主题

1266

回帖

3009

积分

论坛元老

积分
3009
发表于 2024-12-11 18:01:35 | 显示全部楼层
第三集、点亮第一个LED

这一集对我来说算是轻车熟路了,所有单片机都是从点灯开始

创建工程,项目设置关键点:
CPU Mode选择Source模式,并勾选4k byte interrupt frame size
MEMORY Mode选择XSMALL
main.c代码自己敲一遍:
#include "ai8051u.h"

void main(void)
{
  P0M0 = 0; P0M1 = 0;   ///P0端口全部设置为准双向口
  P4M0 = 0; P4M1 = 0;   ///P4端口全部设置为准双向口
  
  while(1)
  {
    P40 = 0;   //P40端口输出0V,点亮对应的LED
    P00 = 0;   //P00端口输出0V,点亮对应的LED
  }
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-06 08:26:52
已绑定手机

13

主题

1266

回帖

3009

积分

论坛元老

积分
3009
发表于 2024-12-11 21:44:58 | 显示全部楼层
第四集、USB不停电下载

不停电下载,之前用论坛的方法实现了串口不停电下载的方法,并用蓝牙透传模块实现了“无线”方式的不停电下载。
这集用的USB端口实现不停电下载
1、实验对比演示:不需要按P3.2按键,ISP中设置HEX变化自动下载,Keil编译成功后ISP通过USB自动下载到MCU,大大加快、方便频繁的调试和下载
2、下载所需文件:USB库文件,注意8位和32位模式的库文件相同,这里使用查询模式的库文件
3、关键部分到自己的工程中:
①添加头文件:#include "stc32_stc8_usb.h";
②USB初始化函数(lib+.h库实现):.lib文件要添加到项目中;
③命令参数:USB CDC初始化、等待USB配置完成、USB CDC识别下载指令代码;
④打开P_SW2寄存器b7位允许访问扩展RAM和IE2寄存器(b7位,使能USB中断)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-06 08:26:52
已绑定手机

13

主题

1266

回帖

3009

积分

论坛元老

积分
3009
发表于 2024-12-12 14:16:42 | 显示全部楼层
第五集、C语言基础
1、C语言实现USB-CDC串口的printf函数
① 打开USB库中的PRINTF_HID宏定义
② 重定向printf到printf_hid:   #define printf printf_hid
③ printf的格式化打印输出
%d或%i:十进制整型
%ld:十进制长整型
%f:单精度浮点型
%o:八进制整型
%x或%X:十六进制整型
%u:十进制无符号整型
%c:单个字符
%s:字符串
%e或%E:指数型
%g或%G:自适应数据输出
%p:输出地址

2、数的进制:2进制、10进制、16进制

3、数据的基本类型
① 要使用64位变量,程序中添加声明:#pragma float64

4、C语言常用运算符
①算术运算:+  -  *  /  %  ++  --
②关系运算:== != >  <  >=  <=
③逻辑运算:&&  ||  !
④赋值运算:=  +=  -=  *=  /=  %=  <<=  >>= &=  ^=
⑤位运算:&  !  ^  ~  <<  >>
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-06 08:26:52
已绑定手机

13

主题

1266

回帖

3009

积分

论坛元老

积分
3009
发表于 2024-12-12 15:45:45 | 显示全部楼层
第六集、IO输入输出
1、什么是GPIO:
① 通用输入/输出端口,通俗来讲就是单片机的引脚
② 四种工作模式:准双向(灌电流20mA,拉电流200uA左右),推挽输出(拉电流最大20mA),高阻输入,开漏模式(可读可输出,加上拉电阻相当于准双向口)
注意:打开/关闭施密特触发器对输入高低电平的检测阈值有轻微的影响

2、按键检测:轮询检测
① 使用准双向口
② 20ms去抖检测按下或松开


3、课后小练:
任务①:按一下P32灯亮,按一下P33灯灭

#include "ai8051u.h"



void delay_20ms(void)        //@24.000MHz
{
        unsigned long edata i;

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


void main()
{
  WTST=0;
  EAXFR=1;
  CKCON=0;

  P2M0=0;P2M0=0;
  P3M0=0;P3M0=0;

  if(P32==0)
  {
    delay_20ms();
    if(P32==0)   P20=0;
    while(!P32)
  }

  if(P33==0)
  {
    delay_20ms();
    if(P33==0)   P20=1;
    while(!P33)
}


任务②:按一下亮一颗灯,再按一下亮两颗灯,直到全亮(变量+加法和乘法)
#include "ai8051u.h"

unsigned char n;

void delay_20ms(void)        //@24.000MHz
{
        unsigned long edata i;

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


void main()
{
  WTST=0;
  EAXFR=1;
  CKCON=0;

  P2M0=0;P2M0=0;
  P3M0=0;P3M0=0;

  if(P32==0)
  {
    delay_20ms();
    if(P32==0)
    {
      if(n<=128)
      {
         n=(n<<1)+1;
         P2 = ~n;
       }
       else n=0;
       while(!P32)
    }
  }
}


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-06 08:26:52
已绑定手机

13

主题

1266

回帖

3009

积分

论坛元老

积分
3009
发表于 2024-12-12 16:28:51 | 显示全部楼层
第七集、定时器中断
①定时器的介绍
②定时器的应用
③函数定义、声明与调用

定时器的优势是计时准确,减少对其他功能函数的影响。

8051定时器分四种模式:
方式0:13位定时器(兼容上一代)计数范围1-8192
方式1:16位定时器计数范围1-65536
方式2:8位自动重装定时器(能够自动重装初值蛋只能计数到1-255)
方式3:定时器就会被分成两个独立的计数器或者定时器,分为高八位和低八位

Ai8051U有T0、T1、T2、T3、T4、T11共6个定时器(8051只有T0和T1两个定时器),且Ai8051U的定时器支持16位模式,甚至支持24位模式(8位预分频器+16位定时器)

思考题:定时器一次还能定时一次,如果有多个定时任务怎么办?
定时器取几个定时任务的最小公约数,一般都是取1ms或10ms,在中断服务函数中对计时变量进行+1,当达到某个定时任务的时间后,对全局下定义的定时任务标志置位。在main中while中轮训这些定时任务标志位,被定时中断置位后则执行相关的定时任务

三个课后任务等实验箱到了再实践,期待STC最最强大的8051实验箱
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-06 08:26:52
已绑定手机

13

主题

1266

回帖

3009

积分

论坛元老

积分
3009
发表于 2024-12-13 16:39:16 | 显示全部楼层
已完成前7集的学习任务,期待8051宇宙超级实验箱,到时研究下视频高刷和音频功能。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-05-06 08:26:52
已绑定手机

13

主题

1266

回帖

3009

积分

论坛元老

积分
3009
发表于 2024-12-14 18:11:30 | 显示全部楼层
STC的效率是真高,今天已经收到AI8051U试验箱和擎天柱转接板,又可以愉快的玩耍几个月了,这里必须给个大大的赞
同时也感谢冲哥的视频分享。。。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 09:08 , Processed in 0.179819 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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