曼妙肥仔 发表于 2025-9-23 11:14:24

ai8051u学习心得

这个学期开始学习51单片机,在舍友的推荐下找到这里,他还把他引脚焊反了的擎天柱送给了我,我自然拒绝不了他的好意
最近看完了七集教学视频,发表一个学习心得作为复习

第一集:了解了8051u的强大之处
1、优化了flash芯片的读写功能,可以实现屏幕显示和视频播放,对大容量的视频播放有了质的提升
2、能够做到IIS录放音。
3、能够兼容PWM_DMA,视频中基于此实现了8*32点阵的时钟显示,最高支持1000多颗2812的灯的显示
4、拥有硬件浮点存储单元,可以实现频谱分析仪的功能。
5、能够实现手写计算器,象征着ai8051u单片机正式的向AI靠近。
6、能够拥有QSPI、PWM移相、硬件乘除、单精度浮点的功能
兼容32位和8位指令集,可以兼容89c52、12c5a60s2


//原帖一到七集学习心得都在一楼,格式有误,现在为更改后的帖子

国芯人工智能 发表于 2025-9-23 11:18:01

AI8051U 学习心得

本学期开始接触 51 单片机的学习,得益于舍友的推荐,我有幸接触到 AI8051U 开发平台,并在学习过程中逐步掌握了其基本原理与应用方法。舍友还慷慨地将他因焊接失误导致引脚焊反的“擎天柱”开发板赠送给我,虽然引脚布局与标准开发板有所不同,但这也为我提供了一个深入了解硬件配置与电路图分析的机会。在学习过程中,我逐步克服了硬件差异带来的挑战,完成了从环境搭建到基础外设控制的多个实践任务。

以下是我对前六集教学视频的学习心得与总结,既是对所学知识的复习,也希望能为初学者提供一些参考。

第一至二集:认识 AI8051U 与搭建开发环境

在第一集中,我系统地了解了 51 单片机的发展历程,以及 AI8051U 这款增强型 8051 内核芯片的技术优势。AI8051U 不仅继承了传统 8051 架构的稳定性与兼容性,还在性能上进行了多项优化,例如更高的主频、更丰富的外设接口(如 USB 控制器、ADC、PWM 等),以及更强的中断管理能力。这些特性使得它在嵌入式教学与小型项目开发中具有很高的实用价值。

第二集主要围绕开发试验箱的硬件配置与编程环境的搭建展开。通过视频演示,我成功安装了 Keil uVision 开发环境,并配置了 STC-ISP 下载工具,为后续的程序烧录与调试打下了基础。同时,视频中对开发板上各模块(如 LED、按键、USB 接口等)的介绍,也帮助我建立了对硬件资源的整体认知。

第三集:点亮第一颗 LED —— 基础 GPIO 控制

第三集是我真正“入门”的开始。通过控制 GPIO(通用输入输出)引脚输出高低电平,我实现了对 LED 的点亮与熄灭操作。视频中演示的是通过 P0 口控制 LED,但由于我使用的“擎天柱”开发板引脚布局不同,我需要查阅其电路图,确认 LED 对应的 I/O 引脚。

经过分析,我发现该开发板的 LED 是连接在 P2 口上的,因此将代码中的 P0 = 0xFE; 修改为 P2 = 0xFE; 后,成功点亮了 LED。这一过程让我深刻体会到查阅硬件手册与电路图的重要性。

在代码层面,点亮 LED 的基本步骤如下:

1. 设置对应端口为准双向口(这是 51 单片机默认的 I/O 模式,适用于大多数输出场景);
2. 将对应引脚置为低电平(LED 通常为共阳极接法,低电平导通);
3. 利用延时函数控制亮灭时间。

通过这个简单的实验,我初步掌握了单片机对外设的基本控制逻辑。

第四集:USB 不断电下载 —— 提升开发效率

第四集介绍了 USB 不断电下载功能,这是在调试过程中非常实用的一项技术。特别是在我的“擎天柱”开发板因引脚焊反而导致手动断电按钮无法使用的情况下,USB 下载成为了唯一的程序更新方式。

STC 系列单片机的 USB 下载功能得益于其强大的生态支持。视频中演示了如何使用 STC 官方提供的 USB 库文件与调试平台软件,整个过程非常流畅。值得一提的是,最新的库文件已经简化了配置流程,不再需要手动定义 USERDEVICEDESC、USERPRODUCTDESC、USERSTCISPCMD 等宏定义。我在实际操作中曾一度因未查看更新说明而卡在编译阶段,直到查看了库文件夹中的使用文档才得以解决。这也提醒我,在使用第三方库时,及时查阅更新日志和文档是非常重要的。

第五集:串口通信与 printf 函数实现

第五集开始接触串口通信模块,学习了如何通过 USB-CDC 模拟串口,并实现字符串的发送与接收。通过配置串口寄存器,我成功实现了在串口调试助手中接收到单片机发送的“Hello World!”信息。

这一部分的学习也让我重新复习了 C 语言的基础知识,尤其是在嵌入式环境中如何实现 printf 函数的重定向。通过重写 putchar 函数,将标准输出重定向到串口发送函数,就可以实现类似 PC 端的打印调试功能,极大地提升了调试效率。

此外,视频中还讲解了串口通信的基本参数设置,如波特率、数据位、停止位等,这些知识为我后续学习蓝牙、WiFi 等无线通信模块打下了基础。

第六集:深入理解 GPIO 模式与电气特性

第六集是内容最为丰富的一集,开始接触一些较为深入的硬件知识。

1. GPIO 工作模式详解
   视频中详细讲解了 51 单片机 I/O 口的四种工作模式:准双向口、推挽输出、高阻输入和开漏输出。每种模式都有其适用场景:
准双向口:默认模式,适合大多数通用输入输出场景;
推挽输出:驱动能力强,可输出高/低电平,适合驱动大电流负载;
高阻输入:输入模式下引脚呈现高阻态,适合用于模拟输入或外部信号检测;
开漏输出:只能输出低电平或高阻态,常用于总线通信(如 I2C)。

   通过设置 PnM0 和 PnM1 寄存器的值,可以灵活切换每个端口的工作模式。这一知识点让我意识到,单片机的 I/O 控制远不止简单的高低电平设置,而是需要根据具体应用选择合适的电气特性。

2. 灌电流与拉电流的理解
   在学习过程中,我第一次系统地理解了“灌电流”与“拉电流”的概念。简单来说:
灌电流(Sink Current):电流从外部流向单片机 I/O 口;
拉电流(Source Current):电流从单片机流向外部设备。

   大多数单片机的拉电流能力较弱,而灌电流能力较强。因此在设计电路时,应优先考虑使用灌电流方式驱动 LED 或其他负载,以避免损坏芯片。

总结与展望

通过前六集的学习,我完成了从零基础到初步掌握 51 单片机开发的全过程。不仅掌握了基本的 GPIO 控制、串口通信与 USB 下载等技能,也对单片机的硬件特性有了更深入的理解。

接下来的学习计划包括:
继续深入学习定时器、中断系统;
探索 PWM 波形生成与电机控制;
学习 I2C、SPI 等总线通信协议;
尝试基于 AI8051U 的综合项目开发,如简易温度监测系统或蓝牙遥控小车。

总之,AI8051U 是一个非常适合入门与进阶学习的平台,感谢视频作者的细致讲解,也感谢舍友送来的“擎天柱”,让我在克服硬件差异的过程中收获了更多实践经验。希望未来能继续深入学习,逐步掌握嵌入式系统的开发流程与设计方法。

[本文内容由国芯人工智能辅助生成,仅供参考]

西西研究员 发表于 2025-9-23 14:30:53

推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接
https://v.stcai.com/sv/1c5eec2-197fcd9b766/1c5eec2-197fcd9b766.mp4
https://v.stcai.com/sv/1fce8086-197cf2b9dd4/1fce8086-197cf2b9dd4.mp4

曼妙肥仔 发表于 2025-9-24 15:51:03

西西研究员 发表于 2025-9-23 14:30
推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接

好的,多谢

曼妙肥仔 发表于 2025-9-24 16:26:58

第二集:跟随视频了解了试验箱的硬件构成,并成功配置了开发环境

曼妙肥仔 发表于 2025-9-24 16:27:11

曼妙肥仔 发表于 2025-9-24 16:26
第二集:跟随视频了解了试验箱的硬件构成,并成功配置了开发环境

第三集:终于入门了!在第三集我学习到了单片机的基本控制方法,即控制引脚输出高低电平,达成控LED的亮灭。
点亮LED的基本步骤为,将端口设置为准双向口,并将对应引脚输出为低电平,使芯片与LED间形成通路。
视频中使用的试验箱与朋友送我的擎天柱引脚不同,在找到擎天柱的电路图后,将视频中的p0端口改为p2接口,成功点亮!

曼妙肥仔 发表于 2025-9-24 16:28:21

曼妙肥仔 发表于 2025-9-24 16:27
第三集:终于入门了!在第三集我学习到了单片机的基本控制方法,即控制引脚输出高低电平,达成控LED的亮 ...这里格式错了,请无视此楼

曼妙肥仔 发表于 2025-9-24 16:34:56

第四集:这集学习了usb不断电下载,可以说非常有用,尤其当你的擎天柱引脚被舍友焊反,手动断电按钮将会被挡住,断电下载将变得困难无比。
在学习过程中可以感受到STC完善的生态与持续的更新,usb库文件代码一应俱全,调试平台软件功能丰富,而且最新的库文件已经不需要USER_DEVICEDESC,USER_PRODUCTDESC,USER_STCISPCMD进行定义了。(幸亏我即时看到了库文件文件夹里的使用说明,不然估计怎么也找不到原因)
后续:管理员推荐我去看新的usb不停电下载教学视频,我马上就去学习学习

曼妙肥仔 发表于 2025-9-24 16:35:45

第五集:本集学习了usb-cdc串口的printf函数,成功实现了字符串的返回(图片在一楼)
随后复习了c语言,成功唤醒了我大一的记忆()

曼妙肥仔 发表于 2025-9-24 16:36:02

第六集:
第六集开始接触新概念了,学习到了很多的新知识。
1、学习了GPIO的概念与输出电压限制,通过PnM0/PnM1的状态控制的I/O接口工作模式有准双向口(最泛用),推挽输出,高阻输入和开漏模式,灌电流(灌入io口),拉电流(从io口拉出)。学习了输入高低电平的范围与施密特触发器开关时的区别。
2、按键输入,没按下是高电平,按下了是低电平。
3、可以使用while函数等待按键松开,按键在触发过程中会不可抗力地产生抖动,影响控制,可以通过调试平台生成延迟函数来规避抖动影响,需要记得添加头文件和WTST=0;EAXFR=0;CKCON=0;(可直接复制代码包
页: [1] 2
查看完整版本: ai8051u学习心得