chun1234 发表于 2024-11-23 14:21:20

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

本帖最后由 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单片机有了初步了解,相信通过后边的视频课程学习,可以很快掌握这颗单片机的更多功能。继续努力学习!

wlhet 发表于 2024-11-23 15:50:31

学这个 自己买板子?

angmall 发表于 2024-11-23 17:48:31

本帖最后由 angmall 于 2024-11-23 17:50 编辑

rpbdibvj 发表于 2024-11-23 15:50
学这个 自己买板子?
AI8051U实验箱 论坛积分商城已上架
https://www.stcaimcu.com/data/attachment/forum/202411/20/170723ra5554o02rzz425p.jpg

https://www.stcaimcu.com/data/attachment/forum/202411/20/235429xnpxyhir9smiltsn.jpg

chun1234 发表于 2024-11-29 14:21:13

本帖最后由 chun1234 于 2024-11-29 14:23 编辑

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

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

chun1234 发表于 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软件中的下载/编程按钮,这时就开始下载程序了。


chun1234 发表于 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寄存器(只打开一个位)。
      具体的操作是这样:      
      移植过来需要包含这些文件:      
      这一节完整的main.c文件是这样的:
      
      
      经过编译,显示无错误无警告。
       通过这一章节的学习,了解到由于8051U实验箱增加了一个不停电下载的芯片,使得用户只要添加必要的库文件和ISP软件中的下载命令,就可以实现单片机的不停电直接下载,方便用户的调试和使用。

chun1234 发表于 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 printfprintf_hid                        //define的作用 替换名 被替换名    int printf_hid (const char *fmt, ...);   // 参数fmt -- 是格式控制字符串。包含了两种类型的对象:普通字符和转换说明。
       普通字符:在输出时,普通字符将原样不动地复制到标准输出。   如:printf(“8051U深度入门到32位51大型实战视频\r\n”);       转换说明:不直接输出,用于控制printf中参数的转换和打印。每个转换说明都由一个百分号字符(%)开始,以转换说明符结束,从而说明 输出输出数据的类型、宽度、精度等。   如:printf(“8051U深度入门大型实战视频,%s\r\n”,”加油”);
      详见这一段代码,附说明:      
       第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语言的基础知识。
      

chun1234 发表于 2024-12-5 11:16:30

    第六集I/O输入输出

1、什么是GPIO            GPIO是指通用输入输出端口,就是单片机上的一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态----高电平或是低电平。高电平是指接近于电源正极电压的电平;也叫逻辑“1”;单片机输出高电平就是输出VCC电压,输出低电平就是输出GND的电压。I/O口有四种工作模式:准双向口推挽输出高阻输入开漏模式通过PnM0与PnM1的不同组合,可以设置I/O口的各种模式。
2、按键输入检测:            代码实现原理:程序直接读取按键的I/O口电平即可,一般使用“ = = ”即可。前提是按键使用的I/O口,需要设为上拉模式。
3、课后练习:      任务1:按下P32按钮 灯亮,松开P32按钮灯灭。      练习的代码如下:                  编译后显示 无错误无警告。

      任务2:按下P32按钮 灯灭,松开P32按钮灯亮。
      练习的代码如下:
            编译后显示 无错误无警告。
       任务3:按一下灯亮,按一下灯灭       练习的代码如下:
            编译后显示 无错误无警告。
      通过这一章节的学习,了解到单片机GPIO口的设置和使用,上拉与下拉的作用,按键的使用需要增加消抖动措施,一般是增加20毫秒的延时,while 循环的作用等知识,目前只能在软件中试验一下,等有了实验箱再具体做实际操作。

chun1234 发表于 2024-12-6 15:57:28

      第七集   定时器中断

这一集主要讲定时器            1. 定时器的介绍:      定时器作用:    (1) 用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作;    (2) 替代长时间的Delay,提高程序的运行效率和处理速度(可以打断主循环)。
    2.定时器的应用:      任务1:LED灯三秒取反一次,这期间任意时刻按下按钮,串口打印按键次数。      利用ISP软件直接生成定时器函数,如下图:


      定时器/计数器0 模式0,16位自动重装载模式下的计算公式:
      

      3、函数的定义、声明、调用:
         ①定义:包含返回值、函数名和入口参数,并定义了函数具体功能。函数名称不能与C语言的关键字同名。   例如:      返回值类型 函数名(入口参数);      {      // 函数体      // 函数执行的代码      return返回值;      }      ②声明:在头文件或者被调用之前使用,注意末尾要加分号。      ③调用:在需要调用的地方直接使用函数名,加上括号和分号。如果有入口参数的,需要在括号的多个参数之间加逗号隔开。
      通过这一章节的学习,了解到定时器的作用主要是计数和定时,定时器的应用,可以利用ISP软件直接生成定时函数,这就给使用者带来极大的方便之处。




chun1234 发表于 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表示数组 a 有 5个元素。数组元素的下标从0开始计算,5个元素分别为 a、a、a、a、a。(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秒闪一次”,来了解结构体数组的周期性任务。    具体代码如下:            在工程项目中要创建.C\.H文件,需要在头文件中添加引用路径。
       通过这一章节的学习,基本了解了周期性任务以及数组的知识;结构体数组的周期性任务以及文件的创建。         这节课讲的知识比较多,还需要慢慢消化吸收。

页: [1] 2
查看完整版本: 跟着冲哥学习《8051U深度入门到32位51大型实战视频》-- 学习体会