xiao_jiang 发表于 2024-12-11 19:06:20

《8051U深度入门到32位51大型实战教学视频》小酱学习打卡 | 已送

<blockquote>
<p><strong>【全球《单片机原理及应用@Ai8051U》 免费教育 大学】:</strong><br />
===如用Ai8051U 做为主控参加 2025年 / 2027年 全国大学生电子设计竞赛,        最高奖 100万,一等奖2万,二等奖5000元 !总额 200万元<br />
        需要在正式比赛前 3个月,到本坛打卡,发表准备参赛的心路历程<br />
        同意获奖后,参赛作品的全套资料知识产权归本坛所有,共享给51世界前进===保姆级免费视频教程, 单片机0基础开始,C语言0基础开始<br />
**《8051U深度入门到32位51大型实战教学视频》**<br />
**发表学习心得 七集 以上,赠送 超级强大的 Ai8051U实验箱,并保证会持续到15集课程以后**<br />
**可做:USB声卡,各种USB教学设备,音频播放器,示波器,FFT频谱分析仪, AI手写计算器100万套 Ai8051U-实验箱,等您在本坛学习打卡区,发表学习感悟后,【免费 + 包邮 送】**</p>
</blockquote>
<p>2024/12/11第一集学习感悟</p>
<p>通过参与这个项目,我从一个对单片机几乎一无所知的新手,逐渐成长为可以独立设计并实现复杂电子系统的实践者。《8051U深度入门到32位51大型实战教学视频》系列课程为我打开了通向嵌入式系统世界的大门,第一节课序言详细列出了Ai8051UJ这款微控制器的特性,包括其支持的指令集、内存配置、外设接口等。通过学习这些内容,我不仅了解了这款微控制器的基本功能,还学会了如何选择合适的编译器进行开发,以及如何利用其丰富的外设接口进行硬件设计。</p>
<p><img src="data/attachment/forum/202412/11/190303yg8k6vzg45l2z2tm.png" alt="PixPin_2024-12-11_19-02-58.png" title="PixPin_2024-12-11_19-02-58.png" /></p>

xiao_jiang 发表于 2024-12-11 20:01:52

<p>2024/12/11 第二集学习感悟</p>
<p>在深入学习第二集 硬件及工具介绍后,我不仅对单片机有了更深层次的理解,还体验到了从理论到实际操作转变的乐趣。通过详细阅读并理解《AI8051U实验箱V1.2使用说明书》,我逐步掌握了实验箱的硬件构成与工具使用方法。</p>
<p>特别是在学会了如何利用P0口来实现跑马灯功能后,我对单片机的I/O端口控制有了直观的感受。</p>
<p>在这个过程中,我意识到,成功并非一蹴而就,它需要反复试验、不断优化。每一次遇到问题时,查阅资料、尝试不同的解决方案成为了我的日常。而当最终看到跑马灯按照预期工作时,那种成就感是无法言喻的。这不仅仅是一次简单的技术练习,更是一次关于坚持与创新的精神洗礼。</p>
<p><img src="data/attachment/forum/202412/11/195621vshlpsb4iuu3813l.png" alt="PixPin_2024-12-11_19-56-18.png" title="PixPin_2024-12-11_19-56-18.png" /></p>
<p><img src="data/attachment/forum/202412/11/195642b74a7icfcpl7g4gi.png" alt="PixPin_2024-12-11_19-56-38.png" title="PixPin_2024-12-11_19-56-38.png" /></p>
<p><img src="data/attachment/forum/202412/11/195810xpzx1by53z1tb35w.png" alt="PixPin_2024-12-11_19-58-06.png" title="PixPin_2024-12-11_19-58-06.png" /></p>

xiao_jiang 发表于 2024-12-11 23:36:28

<p>2024/12/11 点亮第一颗LED 第三集学习感悟</p>
<p>通过研究8051微控制器的寄存器定义和位操作,我理解每一个寄存器和位的功能定义。例如,在实现一个简单的点亮LED功能时,通过配置P0端口的相应位(如P00),可以直接控制GPIO引脚的电平状态,从而轻松地控制外部LED的亮灭。</p>
<p><img src="data/attachment/forum/202412/11/233139ozoe67dspsa5yut6.png" alt="PixPin_2024-12-11_23-31-37.png" title="PixPin_2024-12-11_23-31-37.png" /></p>
<p><img src="data/attachment/forum/202412/11/233153kkvikvpztj9y1q0t.png" alt="PixPin_2024-12-11_23-31-50.png" title="PixPin_2024-12-11_23-31-50.png" /></p>

xiao_jiang 发表于 2024-12-12 13:07:56

<p>glmos-code-explain</p>
<p>2024/12/12 USB不停电下载 第四集学习感悟</p>
<p>我了解了STC8单片机的USB通信初始化和基本数据传输机制,掌握了如何配置端口及处理USB中断。代码中的硬件初始化与USB枚举等待部分尤其关键。此外,直接控制端口输出的实践加深了我对I/O操作的理解。</p>
<p><img src="data/attachment/forum/202412/12/130345rkjp4r25rkjsr6pj.png" alt="PixPin_2024-12-12_13-03-40.png" title="PixPin_2024-12-12_13-03-40.png" /></p>
<p><img src="data/attachment/forum/202412/12/130643g57uuj9k9ez85eez.png" alt="PixPin_2024-12-12_13-06-35.png" title="PixPin_2024-12-12_13-06-35.png" /></p>

xiao_jiang 发表于 2024-12-12 18:35:00

<p>glmos-code-explain</p>
<p>2024/12/12第五集 C语言基础</p>
<p>这次学习经历不仅增强了我的专业知识和技术能力,更重要的是培养了我面对复杂问题时保持冷静思考的态度。</p>
<ol>
<li>社区的力量<br />
发现STC官网和论坛的存在,让我意识到,在学习的过程中并不孤单。遇到难题时,能够有一个社区的支持是非常宝贵的。这不仅提供了解决问题的途径,也让我有机会与其他爱好者交流心得,共同进步。</li>
<li>学习路径的重要性<br />
从基础入门到大型实战项目的逐步深入,这样的学习路径设计非常科学。它确保了我在掌握了必要的基础知识之后,能顺利过渡到实际项目中去。这种循序渐进的方式让我不再感到迷茫,而是充满信心地迎接每一个新的挑战。</li>
<li>对底层操作的理解加深<br />
通过学习如何在USB-CDC串口上实现printf函数,我对底层I/O操作有了更深的理解。这不仅是对C语言灵活性的一种体验,更是对硬件接口编程的一次重要接触。看到那些原本只存在于书本中的概念变得具体可感,内心充满了成就感。</li>
<li>数制转换的实际意义<br />
关于二进制、十进制、十六进制等数制的学习,不再仅仅是数学课上的抽象概念。它们在我处理硬件寄存器值或解析通信协议数据时发挥了重要作用。每一次成功的数制转换,都是向解决实际问题迈进了一步。</li>
<li>数据类型的细节考量<br />
了解到不同类型的数据声明方式及其应用场景,使我在编写代码时更加注重细节。选择合适的数据类型不仅仅是为了提高程序效率,也是为了减少潜在错误的发生。这教会了我编程不仅仅是追求功能实现,更要考虑性能优化。</li>
<li>运算符的魅力<br />
位运算符和其他运算符的应用展示了C语言的强大之处。它们不仅能简化代码,还能直接操控硬件特性。通过实例练习,我逐渐领悟到了逻辑运算符在条件判断中的精妙之处,这无疑提升了我的编程技巧。
<pre><code>#include &quot;ai8051u.h&quot;                        //调用头文件
#include &quot;stc32_stc8_usb.h&quot;                //调用头文件


#define u8unsigned char                //8位无符号变量(0-255)
#define u16 unsigned int                //16位无符号变量(0-65535)

u8 X = 200;
u8 Y = 10;

char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = &quot;@STCISP#&quot;;

void main(void)
{
    P_SW2 |= 0x80;                //B7位写1,使能访问XFR

    P0M1 = 0x00;   P0M0 = 0x00;
    P1M1 = 0x00;   P1M0 = 0x00;
    P2M1 = 0x00;   P2M0 = 0x00;
    P3M1 = 0x00;   P3M0 = 0x00;
    P4M1 = 0x00;   P4M0 = 0x00;
    P5M1 = 0x00;   P5M0 = 0x00;
    P6M1 = 0x00;   P6M0 = 0x00;
    P7M1 = 0x00;   P7M0 = 0x00;

        usb_init();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
    EA = 1;                                                                                        //IE |= 0X80;

        while (DeviceState != DEVSTATE_CONFIGURED);   //等待USB完成配置

        while(1)
        {

      if (bUsbOutReady)                                                        //如果接收到了数据
      {
            //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)

                        if( X &amp;&amp; Y )        //如果条件为真,输出什么
                        {
                                printf(&quot;条件为真\r\n&quot;);
                        }
//                        else
//                        {
//                                printf(&quot;条件为假\r\n&quot;);
//                        }

//                        printf(&quot;X / Y = %u \r\n&quot;,(u16)(X/Y));

//                        printf(&quot;X %% Y = %u \r\n&quot;,(u16)(X%Y));

            usb_OUT_done();                                                        //
      }

//                P40 = 0;        //P40端口输出0V
//                P00 = 0;        //P00端口输出0V
//                P02 = 0;        //P02端口输出0V
                //P01 = 0;        //P01端口输出0V
                //
        }
}
</code></pre>
</li>
</ol>

xiao_jiang 发表于 2024-12-13 16:52:18

<p>glmos-code-explain</p>
<p>glmos-code-explain</p>
<p>glmos-code-explain</p>
<p>2024/12/13 第六集 I/O输入输出</p>
<p>在学习这关于IO输入输出的视频后,我深刻体会到GPIO接口作为单片机与外界沟通桥梁的重要性。从最初对高电平和低电平概念的模糊理解,到现在能够清晰地认识到它们分别对应逻辑“1”和逻辑“0”,这让我对单片机如何通过简单的高低电平变化来控制外部设备有了全新的认识。特别是视频中提到的按键输入检测实验,通过编程实现按下按钮控制LED灯亮灭的功能,不仅让理论知识变得更加生动具体,而且极大地增强了我的动手能力和解决问题的信心。每一次成功运行代码并看到预期的结果时,那种成就感是无法言喻的。</p>
<p>此外,课后任务的设计也给我留下了深刻的印象。这些任务不仅仅是对课堂内容的简单重复,而是鼓励我去思考不同的应用场景,并尝试用学到的知识去解决实际问题。例如,在处理按键抖动的问题时,了解到可以通过软件延时的方式来过滤掉不必要的信号波动,这对我而言是一个非常实用的技巧。通过完成这些练习,我逐渐掌握了编写更复杂程序的方法,同时也明白了不断实践对于掌握技能的重要性。这份视频不仅仅教会了我如何使用STC单片机进行基本的IO操作,更重要的是它激发了我对嵌入式系统开发的兴趣,使我在探索这条道路上更加坚定地前行。</p>
<p><img src="data/attachment/forum/202412/13/165047empttz9rc9klz145.png" alt="PixPin_2024-12-13_16-50-45.png" title="PixPin_2024-12-13_16-50-45.png" /></p>
<p><img src="data/attachment/forum/202412/13/165102vpjvv2wfjlpj7hcx.png" alt="PixPin_2024-12-13_16-51-00.png" title="PixPin_2024-12-13_16-51-00.png" /></p>
<p><img src="data/attachment/forum/202412/13/165130cdkuxeuy1duu9kkz.png" alt="PixPin_2024-12-13_16-51-26.png" title="PixPin_2024-12-13_16-51-26.png" /></p>

xiao_jiang 发表于 2024-12-13 16:57:57

<p>glmos-code-explain</p>
<p>2024/12/13 第七集 定时器中断</p>
<p><img src="data/attachment/forum/202412/13/165600uc8g5g22zggvh20c.png" alt="PixPin_2024-12-13_16-55-57.png" title="PixPin_2024-12-13_16-55-57.png" /></p>
<p><img src="data/attachment/forum/202412/13/165631icb48mimj74irmm7.png" alt="PixPin_2024-12-13_16-56-25.png" title="PixPin_2024-12-13_16-56-25.png" /></p>
<p><img src="data/attachment/forum/202412/13/165713uojd9om0dfw2whz1.png" alt="PixPin_2024-12-13_16-57-07.png" title="PixPin_2024-12-13_16-57-07.png" /></p>
<p>视频内不仅讲解了定时器的基本概念,还通过生动的例子和实际应用案例展示了定时器在提高程序效率和响应速度方面的重要性。</p>
<p>从视频的开始,通过儿子数数来保持火不灭的例子,可以理解到在单核CPU环境中,如果程序采用简单的延时函数(如Delay60s()),那么在这段时间内,MCU将无法执行其他任务。这就像孩子在数数的时候不能做其他事情一样,这样的设计显然不够高效。而引入定时器中断的概念,则为解决这个问题提供了一个很好的方案:它允许我在等待特定事件发生的同时,还可以处理其他的任务,大大提高了程序的灵活性和效率。</p>
<p>接着,通过对LED灯闪烁和按键检测的例子分析,进一步了解到了定时器的实际应用场景。定时器不仅可以用来实现精确的时间控制,还能帮助我构建更加复杂的功能逻辑,例如按键次数统计、多任务管理等。同时,这也让我认识到,在编写代码时,合理地利用硬件资源(如定时器)是提升程序性能的关键之一。</p>
<p>此外,关于函数定义、声明与调用的内容也给我留下了深刻的印象。良好的函数命名习惯以及清晰的结构化编程思路,不仅有助于提高代码的可读性和维护性,而且对于团队协作开发也是非常重要的。最后,课后小练提供的“电子功德箱”项目,是一个非常有趣的实践机会,它综合运用了前面所学的知识点,包括定时器的应用、按键处理、状态切换及串口通信等,是对学习成果的一次全面检验。</p>

xiao_jiang 发表于 2024-12-13 20:43:08

<p>glmos-code-explain</p>
<p>2024/12/13 第八集 定时器周期性调度任务</p>
<p><img src="data/attachment/forum/202412/13/203932clssgas239nqnis2.png" alt="PixPin_2024-12-13_20-39-27.png" title="PixPin_2024-12-13_20-39-27.png" /></p>
<p><img src="data/attachment/forum/202412/13/203946fupf6fc7ufarafny.png" alt="PixPin_2024-12-13_20-39-43.png" title="PixPin_2024-12-13_20-39-43.png" /></p>
<p><img src="data/attachment/forum/202412/13/204121xvabqqvv33vv63ta.png" alt="PixPin_2024-12-13_20-41-14.png" title="PixPin_2024-12-13_20-41-14.png" /></p>
<p>在观看了《8051U深度入门到32位 51大型实战视频》之后,我深刻体会到了定时器在单片机编程中的重要性和灵活性。冲哥通过一系列生动的实例和详尽的讲解,让我对如何利用定时器实现周期性调度任务有了全新的认识。</p>
<p>视频中,冲哥首先介绍了周期性任务的基本概念,并通过LED灯的不同频率闪烁演示了如何使用一个统一的计数器变量来控制多个设备的行为。这一部分的教学不仅帮助我理解了定时器的工作原理,还展示了如何简化程序逻辑以提高系统的响应速度。这种设计思路不仅仅适用于LED控制,更可以应用于其他需要精准时间管理的场景中。</p>
<p>接着,视频讲解了如何创建.c和.h文件,这教会了我模块化编程的重要性。将硬件初始化和其他功能性代码分开处理,并为每个特定功能建立独立的文件,使得整个项目结构更加清晰有序。当我在跟随视频新建这些文件时,感觉就像是在构建一座稳固的大厦,每一块砖都至关重要。这样的做法不仅方便了代码的维护与更新,也为团队协作提供了便利。</p>
<p>最令我印象深刻的是冲哥关于结构体数组的应用讲解。它提供了一种优雅的方式来组织和管理多个相似的任务。通过定义包含任务状态、计数器以及回调函数指针等成员的结构体,我们可以轻松地添加或移除任务,而无需修改核心算法。这一技巧大大增强了程序的可扩展性和复用性。在简易舞台灯光控制系统的设计中,正是借助于结构体数组的力量,才得以实现复杂多变的灯光效果。</p>
<p>此外,视频还涵盖了更多实用的内容,比如按键检测、流水灯移动的时间控制等细节问题,这些都是实际项目中经常会遇到的技术点。冲哥不仅详细解释了这些问题背后的原理,还给出了具体的解决方案,让我能够直接应用到自己的项目当中。</p>

xiao_jiang 发表于 2024-12-15 13:04:46

<p>glmos-code-explain</p>
<p>glmos-code-explain</p>
<p>2024/12/15第九集 数码管</p>
<p><img src="data/attachment/forum/202412/15/130127pkrs0k19o0d7u55v.png" alt="PixPin_2024-12-15_13-01-25.png" title="PixPin_2024-12-15_13-01-25.png" /></p>
<p><img src="data/attachment/forum/202412/15/130213d0161zzuha0qljn0.png" alt="PixPin_2024-12-15_13-02-10.png" title="PixPin_2024-12-15_13-02-10.png" /></p>
<p><img src="data/attachment/forum/202412/15/130317gphi6i4j7667ziqp.png" alt="PixPin_2024-12-15_13-03-12.png" title="PixPin_2024-12-15_13-03-12.png" /></p>

8H8K64U 发表于 2024-12-16 09:50:23

<p>加油,今日安排试验箱给您,希望再接再励,学有所成</p>
页: [1] 2
查看完整版本: 《8051U深度入门到32位51大型实战教学视频》小酱学习打卡 | 已送