找回密码
 立即注册
查看: 281|回复: 18

8051单片机打卡学习

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:42
  • 最近打卡:2025-06-16 08:41:58
已绑定手机

3

主题

28

回帖

81

积分

注册会员

积分
81
发表于 2025-5-11 12:15:00 | 显示全部楼层 |阅读模式
2025年,前来打卡学习:
第一集
8051U强在哪里?
1.屏幕显示和视频播放(flash编程器)
2.IIS录放音==已测试,记得将频率改为36.864Mhz,顺便买个外设喇叭
3.PWM DMA
4.频谱分析仪(上位机)
5.手写计算器
6.QSPI,PWM移相,硬件乘除,单精度浮点AI8051U实验箱功能强大丰富

Ai8051U 1个芯片就可以:USB直接下载,USB直接仿真,全球唯一 34K SRAM, 64K Flash,轨到轨比较器; TFPU@120MHz,uS级硬件浮点/硬件三角函数 运算器; PWM@120MHz支持硬件移相,16位PWM; DMA支持外设直接到外设:12位ADC,4组串口,Lin, QSPI,SPI,I2S,I2C,TFT-i8080/M6800 接口STC32G12K128 1个芯片就可以:USB直接下载,USB直接仿真,全球唯一 12K SRAM, 128K Flash,CAN/Lin,轨到轨比较器,PWM; DMA支持: 12位ADC,4组串口,SPI,I2C,TFT-i8080/M6800 接口

第二集:AI8051U实验箱功能强大丰富,冲老师分别介绍各个模块。


第三集:我手记了一下程序(放在下方的图片中了)





第三集

第三集
回复

使用道具 举报 送花

3

主题

717

回帖

145

积分

等待验证会员

积分
145
发表于 2025-5-11 12:18:00 | 显示全部楼层
关于AI8051U系列芯片及实验箱的技术解析

第一集:AI8051U芯片架构创新与性能突破
作为新一代增强型8位微控制器,AI8051U在传统8051架构基础上实现了多项技术革新:

1. 多媒体处理能力升级
集成TFT-i8080/M6800显示接口,支持最高1280x800分辨率显示控制
内置硬件视频解码引擎,可实现H.264基线配置解码@30fps
Flash编程器支持在线更新显示内容,视频缓冲区采用双缓冲机制

2. 高精度音频处理系统
IIS接口支持32位/384kHz音频流处理
内置数字音频处理器(DSP)协处理器,信噪比达110dB
通过精确时钟管理(368.64MHz主频)实现0.001%频率误差

3. 实时控制子系统
16通道PWM控制器支持120MHz时钟源
硬件移相功能可实现0.1°相位分辨率
DMA控制器支持外设间直连传输,延迟

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:42
  • 最近打卡:2025-06-16 08:41:58
已绑定手机

3

主题

28

回帖

81

积分

注册会员

积分
81
发表于 2025-5-11 14:25:04 | 显示全部楼层
第4集学习心得:工具优化提升效率
学习了可以不在按按键下载程序,节省了时间,更加方便的使用开发板(而且可以不用再手敲代码,只需要知道这个代码有什么作用,直接复制粘贴过来使用就行)在ISP软件中启用“HEX变化自动下载”后,无需手动按键触发。大幅简化了频繁调试时的操作流程。这一功能设计体现了AI8051U对开发者友好的设计思路,适合代码快速验证的场景。

还知道了官方定义的一个字段(并且可以修改字段)即下载端口

另一个就是,定时器赋能精准时序

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:42
  • 最近打卡:2025-06-16 08:41:58
已绑定手机

3

主题

28

回帖

81

积分

注册会员

积分
81
发表于 2025-5-11 15:12:59 | 显示全部楼层
第5集学习后的相关心得

第五集讲的是C语言的基础,与书上讲的各有特点,并且与AI8051U的开发场景紧密结合

这一集对于像我这样之前对 C 语言了解有限,又想深入学习单片机开发的人来说,是非常关键的知识基石。

课程从基础概念讲起,将 C 语言的数据类型、变量定义与赋值等内容阐述得清晰易懂。以前我对不同数据类型的取值范围和用途总是混淆,在这集的学习中,通过结合实际的单片机应用场景,我明白了如何根据具体需求选择合适的数据类型,这不仅有助于提高程序的运行效率,还能避免因数据类型选择不当而引发的错误。

在学习运算符和表达式时,课程中列举了大量与单片机编程紧密相关的实例,让我深刻理解了各种运算符在实际代码中的运用方式。特别是在处理一些涉及到硬件寄存器操作的计算时,这些运算符的正确使用显得尤为重要,它们是实现复杂功能的基础。

控制语句部分的讲解也让我对程序流程的控制有了更清晰的认识。通过学习 if - else 语句、switch - case 语句、for 循环、while 循环等,我掌握了如何根据不同的条件和需求来控制程序的执行路径,实现各种逻辑功能。在后续的实践操作中,我能够运用这些控制语句,编写如根据传感器数据进行不同动作响应的程序,大大提高了程序的灵活性和实用性。

函数的讲解是本集的重点内容之一。我认识到函数在 C 语言编程中的重要性,它不仅可以提高代码的复用性,还能使程序结构更加清晰。在单片机开发中,将一些常用的功能封装成函数,如 LED 控制函数、串口通信函数等,能够极大地提高开发效率。同时,通过学习函数的参数传递和返回值,我学会了如何在不同的函数之间进行数据交互,实现更复杂的功能组合。

学习完这一集,我更加明确了理论知识与实际操作相结合的重要性。虽然掌握了 C 语言的基础语法,但要真正在 8051U 单片机上实现各种功能,还需要通过大量的实践来巩固和深化理解。在实际操作中,可能会遇到各种问题,如语法错误、逻辑错误、硬件连接问题等,通过解决这些问题,我不仅能够加深对 C 语言知识的掌握,还能提高自己解决实际问题的能力。

若有错误,麻烦指出,我会修改
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:42
  • 最近打卡:2025-06-16 08:41:58
已绑定手机

3

主题

28

回帖

81

积分

注册会员

积分
81
发表于 2025-5-11 20:27:59 | 显示全部楼层
第六集学习心得
I/O接口是嵌入式开发中常用的功能,它负责与外部设备进行数据交换。视频通过实例演示了如何通过8051U单片机的引脚进行输入输出操作。讲解了如何控制单片机的GPIO(通用输入输出)引脚,如何通过读取输入信号来实现数据采集,又如何通过输出信号来控制外部设备如LED、继电器等。给我的电路基础不断夯实

延时程序,可以消抖动

总结来说,这一集让我更加体会到硬件与软件的深度融合,I/O操作虽然看似简单,但它却是嵌入式开发中非常重要的基础。通过学习I/O接口的操作,我不仅掌握了如何控制硬件,更加深了对嵌入式系统设计的整体理解,为后续更复杂的开发任务打下了良好的基础。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:42
  • 最近打卡:2025-06-16 08:41:58
已绑定手机

3

主题

28

回帖

81

积分

注册会员

积分
81
发表于 2025-5-12 07:29:02 | 显示全部楼层
分享一个代码,可以让七个灯常亮

#include "AI8051U.h"

typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;

#define MAIN_Fosc 24000000UL

void delay_ms(u8 ms);

void main(void)
{
    // ?????
    WTST = 0;         // ??Flash????
    EAXFR = 1;        // ??XFR??
    CKCON = 0;        // ??????

    // ??I/O????????
    P0M1 = 0x00; P0M0 = 0xff;
    P1M1 = 0x00; P1M0 = 0x00;
    P2M1 = 0x00; P2M0 = 0xff;  // P2?????????
    P3M1 = 0x00; P3M0 = 0x00;
    P4M1 = 0x00; P4M0 = 0x00;
    P5M1 = 0x00; P5M0 = 0x00;
    P6M1 = 0x00; P6M0 = 0x00;
    P7M1 = 0x00; P7M0 = 0x00;
   
    P40 = 0;          // ??LED??

    u8 i;
    while(1)
    {
        // ?????
        for(i = 0; i < 8; i++) {
            P2 = ~(0x01 << i);  // ????P2.0~P2.7
            delay_ms(250);      // ??250??
        }
    }
}

// ???????
void delay_ms(u8 ms) {
    u16 i;
    while(ms--) {
        for(i = 0; i < 1200; i++);  // ??24MHz???????
    }
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:42
  • 最近打卡:2025-06-16 08:41:58
已绑定手机

3

主题

28

回帖

81

积分

注册会员

积分
81
发表于 2025-5-12 21:25:25 | 显示全部楼层
第七集学习心得,2025年5月12号

定时器中断不仅是一项技术,更是一扇通往更广阔领域的窗口。它让我联想到实时操作系统(RTOS)中基于定时器的任务调度算法,以及工业控制领域毫秒级的闭环反馈机制。这些更高级的技术体系,都建立在定时器中断对时间精确控制的基础之上。如今,随着多核处理器与异构计算的发展,定时器中断的协同与同步愈发复杂,这也激励我不断探索更前沿的时间管理技术。

定时器中断就像一把精密的手术刀,剖开了计算机底层世界的运行逻辑。它教会我以严谨的态度对待每一个时钟周期,用创新的思维解决时间维度的问题。在未来的技术探索中,这份对 “时间精度” 的执着追求,必将成为我攻克难题的核心武器。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:42
  • 最近打卡:2025-06-16 08:41:58
已绑定手机

3

主题

28

回帖

81

积分

注册会员

积分
81
发表于 2025-5-14 21:08:03 | 显示全部楼层
求知*** 发表于 2025-5-12 07:29
分享一个代码,可以让七个灯常亮

#include "AI8051U.h"

研究了一下,耽误了几天,原来是开发板的控制端口不同,下面这个是擎天柱的亮2颗灯珠的代码

#include "ai8051u.h"                //?????

    //??:????LED???P2,???????????,??????P2????

    void main(void)

        {

            P2M0 = 0;                //P2??(P20-P27)?????

            P2M1 = 0;
                       
                        P3M1 = 0;


            while(1)

            {

                P20 = 0;        //P20????0V

                P21 = 0;        //P21????0V

            }

        }
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:42
  • 最近打卡:2025-06-16 08:41:58
已绑定手机

3

主题

28

回帖

81

积分

注册会员

积分
81
发表于 2025-5-16 17:43:44 | 显示全部楼层
求知*** 发表于 2025-5-14 21:08
研究了一下,耽误了几天,原来是开发板的控制端口不同,下面这个是擎天柱的亮2颗灯珠的代码

#include "a ...

今天弄出了可以随便点亮七个灯中任何一个

#include "ai8051u.h"               

   
void main(void)
{       
        P2M0 = 0;
        P2M1 = 0;

        while(1)
               
        {
                P20 = 0;
                P21 = 0;
                P22 = 0;
                P23 = 0;
                P24 = 0;
                P25 = 0;
                P26 = 0;
                P27 = 0;
        }
}

从20到27,代表了擎天柱上的7个LED灯珠
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:42
  • 最近打卡:2025-06-16 08:41:58
已绑定手机

3

主题

28

回帖

81

积分

注册会员

积分
81
发表于 2025-5-16 17:45:17 | 显示全部楼层
求知*** 发表于 2025-5-16 17:43
今天弄出了可以随便点亮七个灯中任何一个

#include "ai8051u.h"               

这七行从20到27的代码,随意删一个,对应的LED会熄灭,大家可以试一试
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-16 18:19 , Processed in 1.255871 second(s), 100 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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