找回密码
 立即注册
查看: 943|回复: 10

跟着冲哥学习《8051U深度入门到32位51大型实战视频》-- 学习体会

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:264
  • 最近打卡:2025-05-07 08:12:01

3

主题

34

回帖

709

积分

高级会员

积分
709
发表于 2024-11-23 14:21:20 | 显示全部楼层 |阅读模式
本帖最后由 chun1234 于 2024-11-26 08:54 编辑

第一集 序言

AI 8051U 强大在哪里,通过学习这一集视频,充分体会到STC公司新的8051U单片机的功能确实很强大,具体体现在以下几个方面:

1、屏幕显示和视频播放,由于这颗芯片的运算速度有了很大的提升,由于使用的是8080并口,使得用它来播放视频很流畅顺滑,刷新率很高,没有过去那种卡顿的感觉。
2、IIS数字录放音,看到冲哥视频中的演示,录放音的效果很逼真,完全可以替代过去的专门用于录放音的模块,可以体会到这颗芯片的强大之处。
3、PWM_DMA功能也是非常强大的,冲哥在这里用了一个WS2812点阵屏来显示时钟,可以同时驱动1000+颗LED,显示出这颗芯片的处理能力之强大。
4、频谱分析仪的功能,是通过CDC串口连接至上位机显示,可以看到256点显示很快,相应速度完全可以达到使用要求。
5、手写计算器功能,使用很方便,也是速度非常快,预示着这颗单片机已经正式向AI靠近。
6、最后讲到Flash编程器,通过演示多幅图片通过编程组合成连续动画,播放效果很逼真。

通过冲哥的演示、讲解,使我们对8051U单片机有了初步了解,相信通过后边的视频课程学习,可以很快掌握这颗单片机的更多功能。继续努力学习!


1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
  • +1

    楼主威武~

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:156
  • 最近打卡:2025-05-07 08:55:25
已绑定手机

15

主题

630

回帖

738

积分

高级会员

积分
738
发表于 2024-11-23 15:50:31 | 显示全部楼层
学这个 自己买板子?
STC 666 888
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:527
  • 最近打卡:2025-05-07 00:40:41

10

主题

1162

回帖

5197

积分

论坛元老

积分
5197
发表于 2024-11-23 17:48:31 | 显示全部楼层
本帖最后由 angmall 于 2024-11-23 17:50 编辑
rpbdibvj 发表于 2024-11-23 15:50
学这个 自己买板子?

AI8051U实验箱 论坛积分商城已上架



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:264
  • 最近打卡:2025-05-07 08:12:01

3

主题

34

回帖

709

积分

高级会员

积分
709
发表于 2024-11-29 14:21:13 | 显示全部楼层
本帖最后由 chun1234 于 2024-11-29 14:23 编辑

第二集  硬件及工具介绍
      在这一集中冲哥拿了一个8051U实验箱本体来做讲解,我目前还没有这个实验箱,先看一遍视频课,初步体验一下:
      1、绿色部分叫PCB板,也就是印刷电路板;所以元器件都焊上以后的完整电路板称为PCBA板,就是正式产品。

      2、实验箱布局图:

            截图202411291418125018.jpg
      这个是实验箱正面的元器件布局图,板子的背面还有一些器件,比如:485、USB转双串口、2640、I2S、DAC、18B20等等。结合原理图可以更清晰的了解到STC公司这个实验箱功能非常丰富,同时板子上的丝印很清晰,各种元器件、插接口都印在板子上,方便使用者一目了然连接各种外设。
3、软件和工具:
通过学习冲哥的这一节内容,了解到要使用实验箱必须先安装必要的软件和工具,从STC官网可以下载大部分的软件和插件。
             截图202411291420107787.jpg
      需要下载并仔细阅读 Ai8051实验箱 V1.2 使用说明书》


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:264
  • 最近打卡:2025-05-07 08:12:01

3

主题

34

回帖

709

积分

高级会员

积分
709
发表于 2024-11-30 09:36:51 | 显示全部楼层
本帖最后由 chun1234 于 2024-11-30 09:42 编辑

    第三集   点亮第一颗LED

    新建工程:

1、创建空工程(参考手册6.5章节)
2、添加头文件(利用ISP软件,结合手册6.4章节)
3、输入如下代码,并编译:


#include “ai8051u.h”                         // 调用头文件
Void main(void)                                // 主函数
{
P0M0 = 0x00;  
P0M1 = 0x00;   
P4M0 = 0x00;
P4M1 = 0x00;  

P40 = 0;  

  while(1)                                        //循环里的语句会一直运行
  {
       P00 = 0;               
   }


        经过编译,显示无错误无警告。说明程序没有问题,可以运行。由于我没有实验箱,暂时无法下载试验,只是在电脑上通过编译来了解一下。这一课的学习了解到:需要配置GPIO口,设置GPIO口的模式以及高低电平;需要先加载头文件;编写代码每一行要以逗号结尾;循环的作用 等等知识点。
       另外就是注意使用USB下载,需要先按下实验箱的P3.2按键,再给板子断电上电,等待ISP下载软件中自动识别出“(HID1) USB Writer”后,松开P3.2按键,点击ISP软件中的下载/编程按钮,这时就开始下载程序了。


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:264
  • 最近打卡:2025-05-07 08:12:01

3

主题

34

回帖

709

积分

高级会员

积分
709
发表于 2024-12-2 15:23:20 | 显示全部楼层
本帖最后由 chun1234 于 2024-12-2 15:30 编辑

    第四集 USB不停电下载

    要实现USB不停电下载,首先需要:
      1、下载所需文件(从STC官网--软件工具--库函数--USB库文件 中下载);
      2、移植关键部分到自己的工程;
      3、添加头文件;
      4、USB初始化函数(lib+.h库实现);
      5、添加命令参数;
      6、打开P_SW2寄存器和IE2寄存器(只打开一个位)。

        具体的操作是这样:
       截图202412021525564817.jpg

        移植过来需要包含这些文件:
       截图202412021527146836.jpg

        这一节完整的main.c文件是这样的:
       截图202412021528438678.jpg
      
      经过编译,显示无错误无警告。
       通过这一章节的学习,了解到由于8051U实验箱增加了一个不停电下载的芯片,使得用户只要添加必要的库文件和ISP软件中的下载命令,就可以实现单片机的不停电直接下载,方便用户的调试和使用。


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:264
  • 最近打卡:2025-05-07 08:12:01

3

主题

34

回帖

709

积分

高级会员

积分
709
发表于 2024-12-3 18:02:17 | 显示全部楼层
本帖最后由 chun1234 于 2024-12-3 18:03 编辑

    第五集  C语言基础

   1. C语言 USB-CDC串口之printf 函数的实现
   2. 数的进制:2进制、10进制、16进制
   3. 数据的基本类型
   4. C语言常用运算符

        学习这一节的具体内容:
      C语言 USB-CDC串口之printf函数的实现
  ① 打开USB库中的PRINTF_HID宏定义
  ② 理解PRINTF的函数原型的定义
    #define printf  printf_hid                        //define的作用 替换名 被替换名
    int printf_hid (const char *fmt, ...);
   // 参数fmt -- 是格式控制字符串。包含了两种类型的对象:普通字符和转换说明。

       普通字符:在输出时,普通字符将原样不动地复制到标准输出。
   如:printf(8051U深度入门到3251大型实战视频\r\n);
       转换说明:不直接输出,用于控制printf中参数的转换和打印。每个转换说明都由一个百分号字符(%)开始,以转换说明符结束,从而说明 输出输出数据的类型、宽度、精度等。
   如:printf(8051U深度入门大型实战视频,%s\r\n,加油)

        详见这一段代码,附说明:
       截图202412031756123282.jpg

       2节的内容是数的进制:2进制、10进制、16进制
    学会各种数的进制相互转换,同时也可以利用计算器来转换更加快捷。

       3节的内容是数据类型:
      想要使用64位变量,需要在程序文件里面添加申明:#pragma float64
   例如:unsigned char x;定义一个unsigned char类型的变量,名为x
   也可以用#define替换,如: #define u8 unsigned char;用U8替换unsigned char,这样写:u8 x;   简化了很多。

      4小节是C语言运算符:
    + 加    - 减     * 乘     / 除    % 取模运算(整除后的余数)   
      ++   自加运算(整数数值加1
     - -  自减运算(整数数值减1
    = =   检查两个操作数是否相等,相等则为真
    ! =   检查两个操作数是否相等,不相等则为真
    >    检查左操作数是否大于右操作数,是则为真
    <    检查左操作数是否小于右操作数,是则为真
   >=   检查左操作数是否大于或等于右操作数,是则为真
   <=   检查左操作数是否小于或等于右操作数,是则为真
   0为假,非0为真
   if 等判断语句需要用到真和假的概念

      通过这一章的学习,又重温了一遍C语言的基础知识。

      
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:264
  • 最近打卡:2025-05-07 08:12:01

3

主题

34

回帖

709

积分

高级会员

积分
709
发表于 2024-12-5 11:16:30 | 显示全部楼层
    第六集  I/O输入输出

1、什么是GPIO
            GPIO是指通用输入输出端口,就是单片机上的一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态----高电平或是低电平。
高电平是指接近于电源正极电压的电平;也叫逻辑1”;
单片机输出高电平就是输出VCC电压,输出低电平就是输出GND的电压。
I/O口有四种工作模式:
准双向口
推挽输出
高阻输入
开漏模式
通过PnM0PnM1的不同组合,可以设置I/O口的各种模式。

2、按键输入检测:
         截图202412051114456871.jpg
        代码实现原理:程序直接读取按键的I/O口电平即可,一般使用“ = = ”即可。前提是按键使用的I/O口,需要设为上拉模式。

3、课后练习:
      任务1:按下P32按钮 灯亮,松开P32按钮灯灭。
      练习的代码如下:
        
         截图202412051118081598.jpg
      编译后显示 无错误无警告。


      任务2:按下P32按钮 灯灭,松开P32按钮灯亮。
      练习的代码如下:

         截图202412051119404481.jpg
      编译后显示 无错误无警告。

       任务3:按一下灯亮,按一下灯灭
       练习的代码如下:

         截图202412051121204251.jpg
      编译后显示 无错误无警告。

      通过这一章节的学习,了解到单片机GPIO口的设置和使用,上拉与下拉的作用,按键的使用需要增加消抖动措施,一般是增加20毫秒的延时,while 循环的作用等知识,目前只能在软件中试验一下,等有了实验箱再具体做实际操作。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:264
  • 最近打卡:2025-05-07 08:12:01

3

主题

34

回帖

709

积分

高级会员

积分
709
发表于 2024-12-6 15:57:28 | 显示全部楼层
      第七集   定时器中断

这一集主要讲定时器
      
      1. 定时器的介绍
        定时器作用:
    (1) 用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作
    (2) 替代长时间的Delay,提高程序的运行效率和处理速度(可以打断主循环)

      2.定时器的应用
      任务1LED灯三秒取反一次,这期间任意时刻按下按钮,串口打印按键次数。
      利用ISP软件直接生成定时器函数,如下图:

截图202412061555484009.jpg

      定时器/计数器0 模式016位自动重装载模式下的计算公式:
         截图202412061556525096.jpg

      3函数的定义、声明、调用:
         定义:包含返回值、函数名和入口参数,并定义了函数具体功能。函数名称不能与C语言的关键字同名。
   例如:
      返回值类型 函数名(入口参数);
      {
      // 函数体
      // 函数执行的代码
      return返回值;
      }
        ②声明:在头文件或者被调用之前使用,注意末尾要加分号。
        ③调用:在需要调用的地方直接使用函数名,加上括号和分号。如果有入口参数的,需要在括号的多个参数之间加逗号隔开。

      通过这一章节的学习,了解到定时器的作用主要是计数和定时,定时器的应用,可以利用ISP软件直接生成定时函数,这就给使用者带来极大的方便之处。





回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:264
  • 最近打卡:2025-05-07 08:12:01

3

主题

34

回帖

709

积分

高级会员

积分
709
发表于 2024-12-7 16:03:58 | 显示全部楼层
      第八集  定时器周期性调度任务

   1、周期性任务介绍
任务1:用一个定时器实现这个任务。LED1实现0.3秒取反一次,LED2实现0.6秒取反一次,LED3 实现0.9秒取反一次
很明显这就是一个周期性任务,可以通过一个变量计数,假设这个变量1ms自加一次,加到300即为300ms,加到600就是600ms;计数到达后重新清0
     在这个知识点老师讲述了数组的概念,数组在单片机应用的比较多。数组必须先定义、后使用。最常用的一维数组。
         一维数组定义格式如下:
      类型说明符  数组名 [常量表达式]

类型说明符是指数组中的各个数组元素的数据类型;
数组名是用户定义的数组标识符;
方括号中的常量表达式表示数组元素的个数,也称为数组的长度。

定义数组时,应注意以下几点:
(1) 数组的类型实际上是指数组元素的取值类型。对于同一个数组,所有元素的数据类型都是相同的。
(2) 数组名的书写规则应符合标识符的书写规定。
(3) 数组名不能与其他变量名相同。
(4) 方括号中常量表达式表示数组元素的个数,如a[5]表示数组 a 5个元素。数组元素的下标从0开始计算,5个元素分别为 a[0]a[1]a[2]a[3]a[4]
(5) 方括号中的常量表达式不可以是变量,但可以是符号常数或常量表达式。
(6) 允许在同一个类型说明中,说明多个数组和多个变量。

   数组元素:
数组元素也是一种变量,其标志方法为数组名后跟一个下标。下标表示该数组元素在数组中的顺序号,只能为整型常量或整型表达式。在程序中不能一次引用整个数组,只能逐个使用数组元素。

   数组赋值:
给数组赋值的方法有赋值语句和初始化赋值两种:
在程序执行过程中,可以用赋值语句对数组元素逐个赋值,例如:
for(i=0;i<10;i++)
num=i;
数组初始化赋值是指在数组定义时给数组元素赋予初值,这种赋值方法是在编译阶段进行的,可以减少程序运行时间,提高程序执行效率。初始化赋值的一般形式为:
类型说明符 数组名[常量表达式 = (值,值,...,值)

   2、文件的创建(.c.h
     创建程序文件三步,把硬件需要的初始化弄一个config.c
     ① 新建文件并保存
     ② 添加到工程
     ③ 添加引用路径
     一般一个.c和一个.h文件执行一个外设或者一个任务或功能。这样可以让代码看起来简洁明了

    3、结构体的介绍
        结构体数组的周期性任务调度
    结合任务:LED1 0.3秒闪一次,LED2 0.6秒闪一次,LED3 0.9秒闪一次”,来了解结构体数组的周期性任务。
    具体代码如下:
         截图202412071602287300.jpg
      在工程项目中要创建.C\.H文件,需要在头文件中添加引用路径。

         通过这一章节的学习,基本了解了周期性任务以及数组的知识;结构体数组的周期性任务以及文件的创建。
         这节课讲的知识比较多,还需要慢慢消化吸收。


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 09:07 , Processed in 0.144288 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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