找回密码
 立即注册
查看: 905|回复: 11

AI8051U学习打卡

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-25 23:17:08
已绑定手机

1

主题

10

回帖

65

积分

注册会员

积分
65
发表于 2024-12-9 11:44:27 | 显示全部楼层 |阅读模式

《8051U深度入门到32位51大型实战视频》 学习记录

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:152
  • 最近打卡:2025-05-07 07:51:46

2

主题

73

回帖

310

积分

中级会员

积分
310
发表于 2024-12-9 12:15:46 | 显示全部楼层

哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-25 23:17:08
已绑定手机

1

主题

10

回帖

65

积分

注册会员

积分
65
发表于 2024-12-9 12:57:44 | 显示全部楼层

AI8051U开发板学习心得
第一集

初识AI8051U的核心优势
AI8051U单片机从传统的STC单片机进化而来,不仅保留了经典的8位指令集兼容性,还新增了32位指令集支持。这种双指令集模式使得它兼容老旧开发板的同时,具备了更强的性能提升空间。此外,它还内置了32K的SRAM和64K的Flash,配合丰富的外设(如PWM、DMA、硬件乘除单元等),是目前性能最强的8051系列单片机之一。

本次教程中通过多个实例详细演示了AI8051U的核心功能,以下是我的主要收获:

高帧率屏幕显示
AI8051U支持8080八位并口的显示屏驱动,能实现快速界面刷新和图形菜单显示。这让我看到了它在嵌入式图形化应用中的巨大潜力。

数字录放音
单片机支持数字音频的录制与播放功能,并且音量调节流畅。通过外接喇叭,我体验了单片机实现的清晰声音回放。这一功能展示了AI8051U在音频处理领域的广阔应用前景。

PWM与DMA结合的点阵显示
利用PWM和DMA实现的WS2812点阵屏控制,充分体现了AI8051U在复杂灯效控制上的高效性和可靠性。这对于灯光工程或者DIY项目来说非常实用。

频谱分析仪与FFT计算
教程中展示的频谱分析功能非常直观,实时FFT计算刷新迅速,证明了AI8051U在信号处理上的优越性能。让我认识到它在音频设备和信号分析中的应用潜力。

手写计算器与人工智能接口
手写数字识别功能展示了AI8051U具备一定的AI扩展能力,这种硬件能力与传统51单片机相比有了质的飞跃。

视频播放功能
使用Flash芯片作为视频存储,AI8051U实现了小型视频的流畅播放。这不仅展示了它在多媒体领域的应用能力,还体现了其存储优化和数据处理的高效性。

学习AI8051U开发板让我深刻感受到,嵌入式开发已经从传统的基础硬件控制向多功能、高性能方向发展。AI8051U结合了STC的经典设计和现代功能模块,使得它能够在工业控制、物联网设备、音视频处理等多领域提供解决方案。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-25 23:17:08
已绑定手机

1

主题

10

回帖

65

积分

注册会员

积分
65
发表于 2024-12-9 13:33:45 | 显示全部楼层

AI8051U开发板学习心得
第二集

硬件部分
硬件部分基于官方发行的STC8051实验箱。实验箱包含丰富的硬件资源,能够支持多种实战应用。

PCB板:是系统的核心,集成了主要的元器件,如主芯片、I/O接口、通信接口等。

短路帽:用于保护和测试各个信号通道的短路情况,有助于排除电路故障。

数据线:提供与外部设备(如计算机、外部芯片等)的连接接口,支持数据传输。

USB接口:支持外部设备(如U盘、串口调试器等)的直接连接和数据传输。

USB Link ED接口:用于连接编程器或调试器,支持在线编程和调试。

TF卡插座:支持扩展存储设备,便于数据存储和程序存取。

示波器输入:用于实时观察电路波形,帮助分析信号传输情况。

音频输出和话筒录音:支持音频信号的录制与输出,便于音频应用的开发与调试。

OLED屏插座:提供一个显示单元,支持字符、图像和数据的实时显示,便于开发和调试。

流水灯、数码管、TFT彩屏:提供多种显示方式,支持用户界面设计与开发。

掉电检测:检测电源状态变化,帮助保护数据安全。

红外接收:用于红外遥控信号的接收,支持红外控制应用开发。

矩阵键盘:用于输入数据或命令,支持多种按键操作。

主芯片:STC8051,是实验箱的核心,负责系统的控制与数据处理。

T0、T1和INT0、INT1按键:用于外部中断控制和输入信号检测,支持复杂控制功能的实现。

复位按键:用于系统复位,帮助系统恢复正常工作状态。

电源按键:用于控制系统电源的开关,方便操作。

QSPI Flash:快速外设存储器,提供高效的存储和读取速度。

LCD对比度调节:调整屏幕显示亮度,确保图像和数据清晰显示。

RTC电池:提供实时钟功能,帮助记录时间和日期信息。

SPI蜂鸣器:用于发出声音信号,支持音频反馈和提示。

DS18B20温度传感器:用于测量环境温度,支持温度监测应用。

SP3485通信芯片:用于串行通信,支持与其他设备的数据交换。

软件部分
软件部分是实战开发的核心,通过编程语言和开发工具实现硬件的控制与数据处理。

安装Keil编程软件:Keil编程软件是8051U的开发工具,支持8051芯片的编程与调试。安装过程中需要注意选择正确的安装路径和环境设置,确保软件能够正常运行。

ISP软件:用于在线编程和调试,通过ISP接口可以直接将代码上传到芯片内存。ISP软件的使用帮助快速实现代码烧录和系统调试。

头文件添加:8051U系统需要一些基础的头文件来定义输入输出端口、驱动函数和硬件操作。添加头文件能够简化程序编写,提高代码的可维护性。

Keil中断插件下载:8051U支持多种中断方式,其中Keil中断插件用于处理外部中断信号。下载Keil插件后,可以配置中断响应时间和优先级,优化系统的响应速度。

实验箱代码下载与使用说明:通过KR编程软件将预先编写好的代码下载到STC 8051实验箱中,按照实验步骤进行硬件连接与测试。使用过程中需要注意调试信息和错误提示,及时排除故障。

实验箱硬件使用说明:每个硬件模块都有特定的使用方法和功能介绍。掌握每个模块的功能和操作步骤,有助于提高开发效率和系统的稳定性。

通过硬件和软件部分的结合,8051U系统能够实现多种实际应用,如电机控制、温度监测、音频处理、图像显示等。希望大家在实战过程中能够掌握硬件使用技巧和软件编程方法,提升综合技术能力。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-25 23:17:08
已绑定手机

1

主题

10

回帖

65

积分

注册会员

积分
65
发表于 2024-12-9 14:12:03 | 显示全部楼层

第三期《8051U深度入门到32位51大型实战》的心得主要集中在工程创建、头文件添加和代码编写的具体步骤以及注意事项。

新建工程的流程:这一步骤是学习如何利用开发工具创建一个新的8051单片机项目。新建工程时,需要选择正确的单片机型号,并设置合适的CPU模式和内存类型,这对于确保代码能够与硬件兼容并能正常运行至关重要。此外,还要设置好固件路径和工程文件路径,以便日后管理。

头文件的添加:头文件是编写代码时不可忽视的部分,它提供了接口声明和硬件配置的具体细节。通过ISP软件生成头文件,有助于统一硬件配置,避免硬件资源的冲突。添加头文件时,需要注意头文件的路径和文件名的正确性,以便编译器能够顺利链接。

代码编写的技巧:编写代码是实际操作中最为关键的一环。视频中展示了如何通过简单的配置点亮LED灯作为实验的第一个目标。编写代码时,需确保每个程序段的缩进和代码格式的一致性,便于调试和维护。此外,编写过程中需要了解硬件资源的分配和使用,确保代码的高效执行。

编译与调试:成功编译代码后,进行调试是验证代码功能的关键步骤。调试过程中需要检查是否有语法错误、硬件资源冲突或逻辑问题。通过对照ISP软件中的配置和实际硬件输出,能够更好地理解和调整代码。

心得体会:本期课程帮助学习者理解了8051单片机从新建工程到编写代码的完整流程。掌握了如何利用ISP工具生成头文件、如何选择正确的硬件配置,以及如何编写并调试代码。这些技能是学习和使用8051单片机必不可少的基础知识。通过本期课程的学习,学员能够更好地理解8051单片机的工作原理,并能够独立开发简单的单片机应用程序。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-25 23:17:08
已绑定手机

1

主题

10

回帖

65

积分

注册会员

积分
65
发表于 2024-12-10 12:12:21 | 显示全部楼层

第四期课程是深入讲解如何实现 USB 自动下载功能的,我从中获得了以下几点心得体会:

简化操作流程: 本期课程让我认识到通过自动化方式来进行程序下载的重要性。传统的手动按按钮下载方式显得非常繁琐且容易出错,而通过编写适当的代码,可以实现自动化下载,省去按键操作。这不仅提高了操作的效率,还减小了人为失误的可能性。

代码集成与调试: 通过学习这期课程,我学会了如何将 USB 库文件集成到工程中,并进行必要的代码修改,以便实现自动下载功能。掌握了如何从官网下载库文件、如何调整代码以适应自动下载的要求,对于一个合格的单片机开发者来说至关重要。在实际工作中,这样的技巧可以大大节省开发时间和调试时间。

理解USB协议: 本期课程的重点是如何通过 USB 协议实现不间断的下载。了解 USB 协议的工作原理,以及如何利用它来快速进入下载模式,帮助我进一步理解了单片机与外部设备之间的通信机制。这也是我之前并没有深入了解的一个方面,通过课程的讲解,我对 USB 协议有了更加清晰的认识。

实际应用价值: 实践是检验技术的唯一标准,第四期课程不仅仅是理论的讲解,它更多的是给我提供了实际操作的经验。例如,如何正确地进行端口配置,如何调试程序下载时的常见问题等。这些实战经验使我能够更好地将学到的知识运用到实际项目中。

提升问题解决能力: 在课程中遇到的挑战帮助我提升了问题解决能力。例如,当程序无法自动下载时,我们需要检查代码、重新配置端口等。这种问题处理的过程让我理解了工程开发中的“循序渐进”,以及在实际应用中如何调试和解决问题。

总体来看,第四期课程让我在 USB 自动下载和代码编写方面有了很大的进展,学到了许多实用的技术和技巧。这些知识不但帮助我在项目开发中节省了时间,提高了工作效率,还增强了我在实际工作中的应变能力和解决问题的能力。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-25 23:17:08
已绑定手机

1

主题

10

回帖

65

积分

注册会员

积分
65
发表于 2024-12-11 08:51:43 | 显示全部楼层

8051U 第五期:深入理解C语言和数制转换

本期视频《8051U 第五期:深入理解C语言和数制转换》从多个方面详细讲解了C语言的基本概念和应用,以及如何在单片机开发中使用这些概念。主要分为以下几部分内容:

C语言的USB CDC和printf函数实现:

重点介绍了如何在单片机中使用printf函数,通过定义宏来简化输出操作。
解释了USB CDC(通信设备类)的使用方式,特别是在编写代码时如何通过定义去掉反斜杠来启用printf功能。
介绍了在开发过程中如何解决“不停电下载”问题,并提醒注意移植过程中的文件添加问题。
数制转换:

详细讲解了二进制、十进制和十六进制数的转换方法,包括如何将这些数值转换为十进制和如何利用程序员计算器简化计算。
提供了关于数制转换的基本类型、运算符及其实际应用的介绍。例如,如何理解并计算十进制数的十六进制数值,以及如何在代码中使用这些数制转换。
C语言的基本类型和常用运算符:

讨论了变量的基本类型及其在单片机程序中的应用,强调了如何使用C语言中的常用运算符来进行数值处理。
提供了实用的例子,帮助理解这些基本概念如何在实际项目中应用。
视频内容详细、结构清晰,对于理解C语言在单片机开发中的实际应用非常有帮助。在后续的课程中,掌握了这些基本知识将有助于更好地进行程序设计和调试,提高开发效率和代码的可维护性。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-25 23:17:08
已绑定手机

1

主题

10

回帖

65

积分

注册会员

积分
65
发表于 2024-12-11 18:38:00 | 显示全部楼层

8051U 第六期

  1. GPIO 基础概念
    首先,我学习了 GPIO(通用输入输出端口)的概念及其作用。GPIO 是单片机与外界交互的桥梁,能够实现高电平(逻辑 1)和低电平(逻辑 0)的输入输出。视频中特别提到高电平接近 VCC,低电平接近 GND,并对电压范围进行了详细的说明。通过这一部分,我认识到在设计电路时,需要特别注意电压范围,避免超出单片机的极限电压,防止损坏器件。
  2. GPIO 模式的理解
    GPIO 的四种工作模式:准双向口、推挽输出、高阻输入和开漏模式,是本节的核心内容之一。我学习到准双向口的特点是灌电流较大、拉电流较小,适合通用应用。而推挽输出则能够提供更大的电流驱动能力,适合对电流需求较高的场景。
  3. 按键输入检测
    通过对按键电路的讲解,我了解到按键输入的原理。默认情况下,GPIO 引脚通常处于高电平,当按下按键后,电路接地,从而将电平拉低,实现状态变化的检测。此外,使用施密特触发器可以提高电路的抗干扰能力,这部分内容为我日后处理复杂电路打下了基础。
  4. 代码编写与优化
    在实际编写代码的环节中,通过任务拆解,我逐步实现了以下功能:

按下按键点亮 LED,松开按键熄灭 LED;
按下按键熄灭 LED,松开按键点亮 LED;
按键切换 LED 的亮灭状态。
在第三个任务中,我体会到硬件按键抖动的影响以及标志位的重要性。通过在程序中引入标志位(state 变量)和优化逻辑判断条件,我能够有效解决按键抖动引起的多次触发问题。此过程让我深刻感受到嵌入式开发中“调试和优化”的重要性。

  1. 工具的使用
    视频还详细展示了如何通过软件工具(如编译器、下载工具)进行程序的编写和烧录,并通过串口调试工具验证程序运行状态。这部分内容让我熟悉了嵌入式开发中软件环境的搭建与使用。
  2. 收获与反思
    通过这次学习,我加深了对单片机基础知识的理解,并掌握了 GPIO 的应用技巧和按键电路的处理方法。同时,我意识到在开发过程中,必须从电路和代码两个方面综合考虑问题,注重细节,才能真正解决实际问题。

这次学习不仅让我对单片机开发有了进一步的了解,也让我意识到电子设计和编程思维的紧密结合。未来,我将结合更多实际项目,不断提升自己的开发能力。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-25 23:17:08
已绑定手机

1

主题

10

回帖

65

积分

注册会员

积分
65
发表于 2024-12-11 20:05:13 | 显示全部楼层

8051U 第七期

定时器引入背景:
通过一个简单的生活场景引入:妈妈要求儿子每分钟加一根木头到火堆中,儿子在数100到0时,无法做其他事情。这是因为在传统的延时方法下,程序无法执行其他任务。这种情况下,定时器中断显得尤为重要。

定时器基础:
传统的延时方法使用的是CPU的循环计时,可能导致无法同时处理其他任务。然而,定时器通过周期性中断,可以允许程序在执行定时任务时,仍能响应其他事件(如按钮按下)。视频中着重讲解了定时器如何工作,并使用定时器中断替代长时间的delay,避免阻塞主程序。

中断机制:
单片机是单核CPU,意味着只能同时执行一个任务。如果使用延时方法,程序将被阻塞。通过定时器中断,我们可以在主程序执行时插入中断任务,使得主程序在不中断执行的情况下,能够在特定时间点执行特定任务。

实践操作:
通过编写代码,讲解如何设置定时器中断,解决LED闪烁问题并能响应按钮按下。代码演示了如何利用定时器每隔3秒切换LED状态,同时能够统计按钮按下次数,并显示在串口监控窗口。

技术细节与调试:
视频中详细介绍了如何配置定时器的时钟和计时模式,特别是如何利用ISP软件生成定时器函数。并通过代码示范了如何处理按键输入,避免程序执行中断按钮检测。通过中断的方式,按键的检测能够在LED闪烁的同时正确响应。

乱码问题与解决方法:
在实现过程中,遇到了按键计数时串口输出乱码的问题,讲解了乱码的原因以及解决方法

学习心得总结:
通过这节课的学习,我深刻理解了单片机在处理定时任务时,如何通过定时器和中断机制优化程序执行效率。过去,我通常使用简单的延时函数来等待某个事件的发生,但这种方法存在很大的局限性,尤其是在需要同时处理多个任务时,延时就成为了一个瓶颈。定时器中断的使用,能够让程序在执行定时任务的同时,不会影响其他任务的正常进行。比如在本案例中,LED灯的闪烁和按钮的响应可以并行进行,而不会出现相互干扰的情况。

另外,我也学到了定时器的配置方法,如何在ISP软件中设定合适的时钟频率和定时器模式,利用自动重载功能实现精确的计时。这对于嵌入式开发中要求高效、精确的时间控制至关重要。

此外,通过实际操作和调试,我学会了如何处理一些常见的编码问题,如串口乱码,并且掌握了如何解决这些问题。视频中的示范让我更加熟悉如何调试单片机程序,提高了我解决问题的能力。

总的来说,这节课让我在单片机编程中掌握了定时器中断的应用,不仅增加了对硬件时钟与软件执行的理解,还提升了我处理复杂程序和调试问题的能力。在以后的项目中,我将更加灵活地应用定时器和中断机制,提升程序的响应速度和稳定性。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-25 23:17:08
已绑定手机

1

主题

10

回帖

65

积分

注册会员

积分
65
发表于 2024-12-11 20:52:23 | 显示全部楼层

第八期

8051单片机以及其定时器进行周期性任务的实现,并解决了一些常见的编程问题。
编译错误排查:

大小写错误:U8大小写错误会导致无法匹配定义。
中文符号:有时候由于使用了中文符号(如分号),编译器无法识别,导致错误。
缺少括号:括号不匹配或者丢失会导致代码错误。
代码对齐:代码中的括号对齐和格式清晰可以帮助避免错误。
周期性任务:

介绍了如何使用定时器实现周期性任务,LED灯通过定时反转状态(例如每0.3秒、0.6秒、0.9秒)。
通过设置计时器,每毫秒增加计时变量,当达到设定的300、600、900毫秒时,分别控制LED灯的状态。
定时器和数组的使用:

为了避免多个计时变量重复写代码,使用了数组来简化代码。通过for语句可以遍历数组,简化代码中的逻辑。
定时器初始化:

通过定时器中断来实现周期性任务,每1毫秒递增计时变量,控制LED灯的闪烁。
代码优化:

在原有的代码框架上进行了优化,使用数组和for循环减少重复代码,使程序更加简洁。
这段视频教程不仅提供了详细的定时器应用实例,还讲解了如何排查一些常见的编程错误,帮助新手更好地理解8051单片机编程的细节。
你讲述的内容涉及了如何在微控制器开发中使用任务调度、定时器和按键输入控制LED灯的状态以及按键检测的逻辑。下面我整理一下主要内容:

LED流水灯效果:

通过定时器和任务调度实现一个LED灯依次点亮熄灭的效果。这种效果模拟了汽车尾灯的流水效果,定时控制每个LED的点亮时间,达到预期的流水效果。
按键输入的处理:

按键输入需要避免因按键按下导致程序停滞在一个任务中。你通过引入按键检测技术来避免按键抖动问题,并通过定时器判断按键按下持续时间来触发相应的任务。
定时任务调度:

使用定时器和任务调度的方式,让不同的LED灯闪烁不影响其他任务的执行。这些任务独立进行,相互之间不互相干扰。
代码模块化和结构体数组调度:

引入了文件创建和模块化设计(config.h, config.c)。通过结构体和数组管理不同的定时任务,使得代码更简洁、可扩展。
函数和文件管理:

你提到了如何将系统初始化函数、外设驱动函数和定时器功能放到不同的.c和.h文件中,以便于代码管理和维护。
结构体数组周期性任务调度:

使用结构体定义不同任务的状态信息(例如任务是否执行、定时计数等),并在周期性任务中调度执行。这种方法使得任务调度更加灵活,可以方便地管理多个定时任务。
总结来说,代码的设计思路主要围绕任务调度、按键检测和代码模块化,目标是让多个任务可以同时执行而互不干扰,同时避免按键按下时导致程序停滞的问题。通过结构体和数组,你能够有效管理多个任务的定时执行和状态跟踪。

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 09:27 , Processed in 0.124332 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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