STC企鹅 发表于 2024-12-8 19:45:08

学习《Ai8051U教学视频》 打卡贴

<p><a href="https://www.stcaimcu.com/forum.php?mod=viewthread&amp;tid=11902">学习《Ai8051U教学视频》发表七集 以上学习心得,送强大的 Ai8051U实验箱</a></p>
<p>昨天,一口气看完了冲哥新课程,今天,边看边写学习笔记</p>
<h4><strong>哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前</strong></h4>

STC企鹅 发表于 2024-12-8 23:26:59

<p>看了视频教学第一集 序言,从三个方向得到新收获:</p>
<h4>一、屏幕显示和视频播放上带来的能性提升</h4>
<p>AIi8051U相较于之前的32G系列,在屏幕显示和视频播放方面,它优化了QSPI Flash芯片读写功能,使得大容量视频播放的质量有了质的飞跃。这一改进让实现复杂的图形界面和多媒体应用更轻松。</p>
<p>今后,可尝试对于一些类似于老人视频播放机的Linux极简应用,改使用Ai8051U方案尝试。</p>
<h4>二、实用功能的增强</h4>
<p>除了性能上的提升,Ai8051U还增加了许多实用的功能。 PWM与DMA的无缝结合,以及新增的频谱分析仪功能。这些新特性不仅让开发变得更加便捷,也为开发者提供了更多创造性的空间。</p>
<p>特别是手写计算器的应用演示,展示了如何通过硬件浮点运算单元来处理复杂计算任务,使单片机的应用范围进一步扩大接近ARM 超越ARM。</p>
<h4>三、兼容性与灵活性</h4>
<p>Ai8051U可使用251编译器支持现代32位指令集,还能使用51编译器兼容早期的8051指令集。这意味着对于那些已经拥有旧版开发板的用户来说,可以无缝过渡到新版单片机而无需重新设计整个系统架构。这种向后兼容的能力极大地降低了学习成本和技术门槛,促进了新技术的快速普及。</p>

STC企鹅 发表于 2024-12-8 23:48:53

<p>第二课 硬件及工具介绍</p>
<p>这一课 从四个方面详细讲述了实验箱的外观和内部结构,包括USB接口、USB-blink下载烧录调试工具、USB转双串口等。接着讲解了实验箱的功能,如卡插座、示波器输入、放音输出、话筒录音等。然后介绍了主芯片Ai8051U的特性和功能,以及T0T1、INT0 、INT1等按键的作用。最后讲解了软件安装和编程过程,包括安装keil编程软件、下载ISP软件、添加头文件、下载keil中断扩展插件,并演示了如何下载并运行第一个程序——点灯程序,以此作为单片机的入门实验。</p>
<ol>
<li><strong>课程介绍</strong>:
<ul>
<li>这是一堂关于Ai8051单片机深度入门的实战视频课程。</li>
<li>课程强调动手实践,并围绕官方发行的Ai8051U实验箱展开。</li>
</ul>
</li>
<li><strong>硬件介绍</strong>:
<ul>
<li>实验箱包含PCB板、短路帽、数据线等组件。</li>
<li>硬件特性包括USB接口(Type A和Type C)、USB转双串口芯片、TF卡插座、示波器输入端子、音频输出、麦克风录音、OLED屏、流水灯、数码管、TFT彩屏、掉电检测电路、红外接收头、矩阵键盘、ADC键盘、主控芯片(Ai8051U)、复位键、电源键、QSPI Flash、LCD对比度调节、RTC电池、晶振、温度传感器、蜂鸣器、SP3485通信芯片、存储芯片等。</li>
</ul>
</li>
<li><strong>软件安装与配置</strong>:
<ul>
<li>推荐使用KEIL uVision编程环境进行开发。</li>
<li>需要下载并安装ISP烧录工具用于程序下载到单片机。</li>
<li>添加单片机型号对应的头文件以支持特定的MCU型号。</li>
<li>安装中断向量扩展插件以处理更多的中断。</li>
<li>下载实验箱代码包及使用手册,帮助理解和使用实验箱。</li>
</ul>
</li>
<li><strong>首个实验</strong>:
<ul>
<li>第一个实验是通过P0口实现跑马灯效果,以此验证单片机的基本功能。</li>
<li>演示了如何选择正确的单片机型号、进入下载模式、选择合适的波特率和运行频率,以及成功下载程序后观察到预期的硬件反应。</li>
</ul>
</li>
</ol>

STC企鹅 发表于 2024-12-9 07:51:51

<p>第三课 点亮第一颗LED</p>
<p>Ai8051u深度入门到32位51大型实战视频的第三集,讲解了如何新建一个工程、添加头文件、编写并编译代码以点亮第一颗LED灯。</p>
<p>首先展示了如何创建空工程、设置项目路径和名称、选择单片机型号,并详细解释了如何通过ISP软件添加头文件。</p>
<p>接着,通过编写和编译代码,实现了P0.0端口的LED灯点亮。视频还解释了代码的原理和端口配置方法,并介绍了如何使用配置工具快速设置端口模式。</p>
<p>最后,视频鼓励同学尝试点亮板子上的其他LED灯以加深理解。</p>
<p><strong>新建工程</strong></p>
<p>1.创建空工程:选择“新建工程”,按照手册六点五章节的步骤进行操作,设置项目路径和项目名称,选择单片机型号。</p>
<p>2.添加头文件:利用ISP软件结合手册六点四章节,学习头文件的用法,推荐使用双引号引用当前文件夹下的头文件。</p>
<p>3.输入代码:在项目中新建main.c文件,输入简单的代码,包括头文件引用和main函数。</p>
<p>4.编译代码:使用软件中的编译图标进行编译,选择单个文件编译或全部文件编译。</p>
<p><strong>点亮LED</strong></p>
<p>1.配置IO口:将P0和P4端口配置为准双向口,通过P0M0和P0M1寄存器进行配置。</p>
<p>2.输出低电平:将P0和P4端口的所有引脚输出低电平,以点亮连接的LED灯。</p>
<p>3.编译下载:编译代码并下载到单片机,通过ISP软件选择正确的单片机型号和端口进行下载。</p>
<p>4.测试结果:观察摄像头或开发板上的LED灯是否点亮,调整代码和配置直到成功点亮LED。</p>
<p><strong>LED点亮原理</strong></p>
<p>1.电路原理:通过电源正极、开关、LED灯和电源负极构成简单电路,开关打开时LED灯点亮。</p>
<p>2.单片机控制:单片机通过输出低电平到P0和P4端口,控制三极管开关打开,从而点亮LED灯。</p>
<p>3.箭头方向:箭头从高电压指向低电压,表示开关打开的方向。</p>
<p><strong>IO寄存器操作</strong></p>
<p>1.端口模式寄存器:通过P0M0和P0M1寄存器配置P0端口的模式,设置为准双向口。</p>
<p>2.端口数据寄存器:通过直接赋值的方式,将P0和P4端口输出低电平,点亮LED灯。</p>
<p>3.二进制和十六进制:了解二进制和十六进制的转换方法,以及在代码中的表示形式。</p>
<p><strong>IO模式配置工具</strong></p>
<p>1.配置工具:利用公司的配置工具,快速生成IO口的配置代码。</p>
<p>2.选择模式:通过勾选需要的模式,生成对应的配置代码,复制并粘贴到项目中。</p>
<h3>重点内容在视频中定位:</h3>
<p><strong>设置项目路径 01:45</strong></p>
<p><strong>设置项目模式 04:51</strong></p>
<p><strong>添加头文件的方法 06:34</strong></p>
<p><strong>代码缩进和注释的设置方法 10:07</strong></p>
<p><strong>主函数的作用 12:04</strong></p>
<p><strong>点亮LED灯的原理 18:50</strong></p>

STC企鹅 发表于 2024-12-9 07:53:55

<p>第四课 USB不停电下载</p>
<p>8051u深度入门系列视频第四集,主题为USB不停电下载技术。视频首先回顾了上一集LED点亮程序下载的繁琐过程,并提出了通过USB实现不停电下载的新方法,以简化编程过程。视频详细介绍了实现不停电下载的技术步骤,包括库文件的下载与安装、代码的移植与编译,以及利用USB功能进行程序下载的操作。此外,还特别强调了选择合适的库文件和寄存器设置的重要性,以确保程序的正确运行。通过演示和实践操作,可以掌握利用USB不停电下载技术进行单片机程序开发的方法,提高开发效率。</p>
<p><strong>USB不停电下载的实现方法 01:23</strong></p>
<p><strong>下载所需文件</strong></p>
<p>1.STC官网地址:stc.3sct.com。 2.软件工具库函数USB库文件下载:在软件工具库函数中找到USB库文件并下载</p>
<p><strong>库文件解压与查看</strong></p>
<p>1.下载完成后的文件解压:解压到当前文件夹。 2.库文件内容:包括演示代码和库文件。</p>
<p><strong>选择合适的库文件</strong></p>
<p>1.CDC和HID的区别:建议使用CDC。 2.库文件选择:根据所选的8位和32位文件选择相同位数的库文件。</p>
<p><strong>工程文件编译与检查</strong></p>
<p>1.上一节课的代码:确保复制过来的代码没有问题。 2.添加头文件:复制所需的头文件到工程中。</p>
<p><strong>USB初始化函数的作用 12:40</strong></p>
<p><strong>初始化函数与命令参数</strong></p>
<p>1.USB初始化函数:USB_Init。 2.端口设置:将所有端口设置为准双向口。 3.命令参数:包括产品代码和自定义命令。</p>
<p><strong>头文件与库文件的复制</strong></p>
<p>1.头文件复制:复制所需的头文件到工程中。 2.库文件复制:复制库文件到工程中。</p>
<p><strong>中断允许寄存器的设置方法 24:48</strong></p>
<p><strong>中断允许寄存器IE2</strong></p>
<p>1.IE2寄存器:中断允许寄存器,用于打开USB中断。 2.EA寄存器:总中断开关,所有中断都需要经过EA开关。</p>
<p><strong>USB完成配置与不停电下载实现</strong></p>
<p>1.USB完成配置:等待USB完成配置后,实现不停电下载。 2.数据发送:接收到的数据自动发送回去,实现不停电下载。</p>

STC企鹅 发表于 2024-12-9 07:59:56

<p>第五课 C语言基础</p>
<p>冲哥在这一课,围绕USB-CDC串口中的printf函数实现、数的进制转换(二、十、十六进制)、数的基本类型及C语言常用运算符等四个核心内容展开。重点介绍了printf函数在单片机开发中的应用,如何通过USB库宏定义实现printf功能,并解析了printf函数的原型及其使用效果。同时,解释了进制转换的基本概念和操作,说明了数的基本类型及其对应变量的长度。对C语言中的常用运算符进行了详细讲解,包括算术运算符、关系运算符、逻辑运算符等,并通过实例演示了它们的使用方法和作用。最后,对单片机串口通信中的USB-CDC串口特性进行了简要说明,并展示了如何通过printf实现数据的发送与接收。</p>
<ul>
<li>
<p>分段总结</p>
<p><strong>00:00</strong>C语言基础知识</p>
<p>1.C语言在单片机开发中的重要性及其与后续课程的关系。</p>
<p>2.C语言基础知识的主要内容:USB_CDC串口、printf函数的实现、数的进制(二进制、十进制、十六进制)、数的基本类型、C语言的常用运算符。</p>
<p><strong>00:43</strong>USB_CDC串口与printf函数的实现</p>
<p>1.USB_CDC串口的功能:通过USB接口进行数据通信,支持任意波特率。</p>
<p>2.printf函数的实现:通过重定向到get_printf_HID函数,实现变量的类型打印。</p>
<p>3.printf函数的原型:包含格式控制字符串(普通字符和转换说明符)。</p>
<p>4.转换说明符:如%s(字符串)、%d(十进制整数)等。</p>
<p>5.普通字符:直接复制到标准输出。</p>
<p>6.特殊转义符:如\n(换行)、\t(水平制表符)。</p>
<p><strong>02:43</strong>printf函数的使用示例</p>
<p>1.printf函数的位置:可以放在接收数据或发送数据的代码中。</p>
<p>2.示例代码:通过USB_CDC串口接收数据并打印返回结果。</p>
<p>3.编译和下载:确保lib文件已添加,避免停电下载问题。</p>
<p><strong>16:03</strong>数的进制转换</p>
<p>1.二进制、十进制和十六进制的转换方法。</p>
<p>2.二进制转十进制:按位权加权求和。</p>
<p>3.十进制转十六进制:除以16取余数。</p>
<p>4.十六进制转十进制:按位权加权求和。</p>
<p><strong>18:04</strong>变量的基本类型</p>
<p>1.变量的定义:包括变量类型和变量名称。</p>
<p>2.常用变量类型:如unsigned char(无符号字符)、int(整数)、float(浮点数)等。</p>
<p>3.变量类型的长度:如unsigned char为8位,int为16位或32位。</p>
<p>4.变量类型的定义域:在大括号内的变量只能在该大括号内使用。</p>
<p><strong>22:00</strong>运算符及其用法</p>
<p>1.算术运算符:加、减、乘、除、取余。</p>
<p>2.关系运算符:等于、不等于、大于、小于、大于等于、小于等于。</p>
<p>3.逻辑运算符:与、或、非。</p>
<p>4.位运算符:左移、右移、按位与、按位或、按位异或、取反。</p>
<p>5.赋值运算符:如+=、-=、*=、/=等。</p>
<p><strong>33:13</strong>if条件语句</p>
<p>1.if语句的语法:if(条件) {语句块} else {语句块}。</p>
</li>
<li>
<p>2.条件判断:条件为真时执行第一个语句块,条件为假时执行第二个语句块。</p>
</li>
<li>
<p>3.条件运算符:如==(等于)、!=(不等于)、&gt;(大于)、&lt;(小于)等。</p>
</li>
</ul>

STC企鹅 发表于 2024-12-9 08:01:40

<p>第六课 IO输入输出</p>
<ul>
<li>
<p>摘要</p>
<p>冲哥在这一课围绕单片机IO输入输出进行讲解,详细介绍了gp IO(通用输入输出端口)的概念、高电平和低电平的定义与区别,以及单片机IO口的四种模式(准双向口、推挽输出、高阻输入和开漏模式)。还探讨了按键输入检测原理,包括如何通过单片机IO端口检测按键状态,并讨论了按键抖动现象及其解决方法。此外,视频演示了如何编写代码实现按键控制LED灯亮灭的功能,包括如何处理按键抖动,以及延时函数的运用。最后,布置了课后小练习,加深单片机IO输入输出操作的理解和应用。</p>
</li>
<li>
<p>分段总结</p>
<p><strong>00:00</strong>课程介绍和目标</p>
<p>1.介绍了课程的主要内容,包括C语言基础和单片机课程。</p>
<p>2.提出了本节课的主要任务:了解按键输入检测和GPIO(通用输入输出端口)的概念。</p>
<p><strong>00:34</strong>GPIO引脚功能</p>
<p>1.GPIO引脚可以输入或输出高低电平。</p>
<p>2.高电平接近电源正极电压,低电平接近电源负极电压。</p>
<p>3.单片机输出高电平时为VCC电压,输出低电平时为GND电压。</p>
<p>4.高电平也称为逻辑高(1),低电平称为逻辑低(0)。</p>
<p>5.电源电压为3.3V时,逻辑高为3.3V,逻辑低为0V。</p>
<p>6.引脚电压不能超过极限电压,如VCC引脚不能超过5.5V,其他引脚不能超过5.8V。</p>
<p><strong>02:52</strong>单片机IO口模式</p>
<p>1.单片机IO口有四种模式:准双向口、推挽输出、高阻输入和开漏模式。</p>
<p>2.准双向口:惯电流小,可输入输出。</p>
<p>3.推挽输出:可输出20mA电流,常用于点灯等应用。</p>
<p>4.高阻输入:输入电流小,适用于输入信号。</p>
<p>5.开漏模式:需要外部上拉电阻,适用于需要外部控制的场景。</p>
<p><strong>04:11</strong>IO口电压范围</p>
<p>1.输入低电平:小于0.99V,取决于施密特触发器的状态。</p>
<p>2.输入高电平:大于1.18V或1.09V,取决于施密特触发器的状态。</p>
<p>3.施密特触发器:使能后,输入电压需在特定范围内才能触发。</p>
<p><strong>05:56</strong>按键输入检测</p>
<p>1.按键按下时,引脚电压接地,从高电平变为低电平。</p>
<p>2.通过检测引脚电压变化来判断按键是否按下。</p>
<p>3.实验箱上的电路:P3.2引脚通过300Ω电阻接地,按键按下时引脚电压为低。</p>
<p><strong>18:40</strong>按键消抖</p>
<p>1.按键按下时会有抖动,导致多次触发。</p>
<p>2.通过延时20毫秒来消除抖动。</p>
<p>3.使用软件延时函数来实现延时。</p>
<p><strong>25:17</strong>延时函数实现</p>
<p>1.使用软件延时计算器生成20毫秒延时函数。</p>
</li>
<li>
<p>2.将系统频率、指令集和延时时间输入计算器,生成延时函数代码。</p>
</li>
<li>
<p>3.将生成的代码复制到项目中,实现延时功能。</p>
</li>
</ul>

STC企鹅 发表于 2024-12-9 08:04:47

<p>第七课 定时器中断</p>
<ul>
<li>
<p>摘要</p>
<p>这一课到了Ai8051u深度入门到32位单片机实战,讲解了定时器中断的应用与实现。用一个实际案例开场,妈妈炒菜时让儿子每分钟塞一根木头进火中,引出单核CPU执行任务时无法同时处理其他任务的问题。进而引出定时器的概念及其两大作用:计时与替代长时间延时以提高运行效率。视频通过详细解释代码与演示操作,教授如何利用定时器实现LED灯按需点亮与熄灭,同时处理按键输入的功能。此外,还探讨了函数定义、声明和调用的重要性,并通过实例展示了如何通过定时器实现更复杂的功能,如救护车灯的交替闪烁控制。最后提出课后练习,利用定时器设计电子功德箱等实际应用。</p>
</li>
<li>
<p><strong>00:00</strong>定时器中断引入</p>
</li>
</ul>
<p>1.通过妈妈炒菜儿子烧火的例子引入定时器中断的概念。</p>
<p>2.单核CPU的特点是每次只能执行一个任务,没有特殊情况不能被打断。</p>
<p>3.定时器中断可以打断正在执行的任务,执行预定操作后再回到原任务。</p>
<p><strong>01:13</strong>定时器的应用</p>
<p>1.定时器用于计时,可以实现软件计时和周期性操作。</p>
<p>2.定时器可以替代长时间的delay,提高运行效率和处理速度。</p>
<p>3.定时器中断可以打断主循环,执行预定操作后再回到主循环。</p>
<p><strong>04:14</strong>LED 3秒闪烁和按键计数</p>
<p>1.使用定时器实现LED 3秒闪烁。</p>
<p>2.在定时器中断中处理按键计数,实现按键次数串口打印。</p>
<p>3.通过ISP软件生成定时器初始化和中断函数。</p>
<p><strong>16:03</strong>定时器的配置</p>
<p>1.配置TM0PS寄存器,设置系统时钟。</p>
<p>2.选择12T模式,进行12分屏。</p>
<p>3.设置CT位,选择内部计数器。</p>
<p>4.设置GATE位,选择定时器启动方式。</p>
<p>5.配置定时器零的隐藏寄存器和计数器。</p>
<p>6.设置TF0位,开启定时器中断。</p>
<p><strong>28:00</strong>函数定义、声明和调用</p>
<p>1.函数定义包括返回值类型、函数名和入口参数。</p>
<p>2.函数声明在调用之前,告诉编译器函数的索引位置。</p>
<p>3.函数调用包括函数名、小括号和分号。</p>
<p>4.函数定义、声明和调用的例子。</p>
<p><strong>32:54</strong>任务二:灯按一下点亮,三秒后熄灭</p>
<p>1.通过按键初始化定时器,实现灯的点亮和熄灭。</p>
<p>2.在定时器中断中关闭定时器,实现灯的熄灭。</p>
<p>3.通过ISP软件生成定时器初始化和中断函数。</p>
<p><strong>35:22</strong>任务三:红蓝灯交替闪烁</p>
<p>1.通过按键控制红蓝灯的交替闪烁。</p>
<p>2.使用全局变量记录运行状态,实现灯的交替闪烁。</p>
<p>3.在定时器中断中切换灯的状态。</p>
<p>4.通过ISP软件生成定时器初始化和中断函数。</p>
<p><strong>41:09</strong>课后练习:电子功德箱</p>
<p>1.通过按键切换功德模式,实现单倍和双倍功德。</p>
<p>2.在定时器中断中处理功德计数和LED灯的点亮时间。</p>

STC企鹅 发表于 2024-12-9 08:07:18

<p>第八课 定时器周期性调度任务</p>
<p>摘要</p>
<ul>
<li>本课讲述了在编程环境中对代码进行编辑、优化和调用的综合过程。首先指出在特定位置添加代码,并删除不必要部分以精简代码。接着,展示了在已有技术变量基础上定义新变量,并说明了变量在特定条件下的调用过程。然后,强调了延时函数的重要性,并展示了其在不同执行位置的效果。此外,还讨论了按键检测功能及函数的定义和调用。最后,提到了头文件的使用,以实现代码的模块化和重用,提高代码的可维护性和可读性。</li>
<li></li>
</ul>
<p><strong>00:08</strong>编程错误与定时器应用</p>
<p>编程常见错误包括大小写、中英文符号及括号缺失,定时器用于周期性任务,实现LED不同频率闪烁。</p>
<p><strong>10:47</strong>周期性任务与数组应用</p>
<p>实现LED灯周期性闪烁,引入数组简化代码,提高功能精度。</p>
<p><strong>22:25</strong>编程for循环与数组应用</p>
<p>for循环执行固定次数,数组元素自增并用于流水灯控制。</p>
<p><strong>34:49</strong>单片机流水灯与按键控制</p>
<p>单片机实现流水灯效果,按键控制数组移动,并避免按键抖动问题。</p>
<p><strong>47:01</strong>C语言文件与结构体任务调度</p>
<p>C语言讲解点c点h文件划分,函数声明定义,及结构体数组任务调度实现。</p>
<p><strong>58:16</strong>任务调度与系统函数解析</p>
<p>讲解任务结构体定义,通过官方案例理解任务状态,实现系统任务调度与计时功能。</p>
<p><strong>01:11:09</strong>周期性任务调度系统讲解</p>
<p>讲解定时器驱动多任务系统,实现LED闪烁及按键单击功能。</p>
<p>刚好有个农业气雾培项目,客户需求精确的控制多个设备,全天循环定时启停应用,期待这个定时器周期性调度功能使用其中</p>
<h4><strong>哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前</strong></h4>

STC企鹅 发表于 2024-12-9 12:17:31

<h4><strong>哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前</strong></h4>
页: [1] 2
查看完整版本: 学习《Ai8051U教学视频》 打卡贴