张庆龙 发表于 2025-3-4 09:30:28

学习AI8051U

第一章 :序
哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前
8051U强在哪里?1.屏幕显示和视频播放(flash编程器)2.IIS录放音3.PWM_DMA4.频谱分析仪(上位机)5.手写计算器6.QSPI,PWM移相,硬件乘除,单精度浮点Ai8051U-LQFP48比普通 M0/M3,比 32F103C8T6 强太多的地方:
1,Ai8051U有TFPU@120MHz, 算力比他强, uS级硬件三角函数/浮点运算器;
2,Ai8051U的抗干扰比他强;
3,Ai8051U的内部复位是专业级的复位电路,彻底省外部复位;
4,Ai8051U的内部时钟完全满足串口通信要求,4组串口;
5,Ai8051U-LQFP48有 QSPI, i8080/M6800-TFT 接口,32F103C8T6没有;
6,Ai8051U的PWM支持硬件移相@120MHz
7,Ai8051U是 34K SRAM, DMA 支持 外设直接到外设,P2P
8,Ai8051U是 自带硬件USB, 1个芯片就能直接USB连接电脑仿真/下载,全球唯一

国芯人工智能 发表于 2025-3-4 09:33:00

AI8051U作为一款高性能微控制器,其在多个方面展现出显著优势。首先,AI8051U集成了TFPU@120MHz,提供了强大的算力支持,尤其在uS级硬件三角函数和浮点运算上表现突出。其次,其抗干扰能力优于普通M0/M3芯片,确保了在复杂环境下的稳定运行。此外,AI8051U内置专业级复位电路,省去了外部复位电路的需求,简化了设计并提高了系统的可靠性。

在功能扩展方面,AI8051U支持屏幕显示、视频播放、IIS录放音、PWM_DMA、频谱分析仪、手写计算器等多种应用场景,展现了其多功能性和高性能。特别是在Flash编程器、QSPI、PWM移相、硬件乘除和单精度浮点运算等方面,AI8051U的表现远超32F103C8T6,为开发者提供了更强大的工具和更广阔的应用空间。

总体而言,AI8051U凭借其卓越的性能和丰富的功能,成为微控制器领域的一颗新星,为各类嵌入式应用提供了强有力的支持。

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

国芯人工智能 发表于 2025-3-4 09:48:00

AI8051U作为一款高性能的8051架构微控制器,凭借其卓越的计算能力和丰富的功能集成,在现代嵌入式系统中展现出显著优势。其TFPU@120MHz提供了强大的算力,支持uS级硬件三角函数和浮点运算,显著提升了实时处理效率。此外,AI8051U在抗干扰能力、内部复位电路设计等方面均优于传统M0/M3架构及32F103C8T6,确保了系统的高可靠性和稳定性。其集成功能如屏幕显示、视频播放、IIS录放音、PWM_DMA、频谱分析仪等,进一步扩展了应用场景,满足了多样化需求。AI8051U-LQFP48的推出,无疑为开发者提供了更高效、更可靠的解决方案,助力技术创新与应用落地。

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

国芯人工智能 发表于 2025-3-4 09:48:00

AI8051U作为一款高性能8051架构微控制器,其在多个关键领域展现出显著优势。首先,AI8051U集成了TFPU@120MHz,具备uS级硬件三角函数和浮点运算能力,显著提升了计算效率。其次,其抗干扰能力优于普通M0/M3架构,确保在复杂电磁环境下的稳定运行。此外,AI8051U内置专业级复位电路,无需外部复位元件,简化了系统设计。在功能扩展方面,AI8051U支持IIS录放音、PWM_DMA、频谱分析仪、手写计算器等多样化应用,展现了其强大的外设集成能力。综合来看,AI8051U在性能、可靠性和功能扩展性上均表现出色,为嵌入式系统开发提供了强有力的支持。

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

芯启航 发表于 2025-3-4 09:51:54

您好,是要单独在学习打卡区板块开帖,并整理在同一个帖子下面哈

HD张先生 发表于 2025-3-5 10:52:19


第二章:硬件及工具介绍

一. 实验箱外观图https://www.stcaimcu.com/data/attachment/forum/202412/05/184511mhmei0eolnonao0i.png二.实验箱布局图https://www.stcaimcu.com/data/attachment/forum/202412/05/184545xyp4dm6mkt2t24ei.pnghttps://www.stcaimcu.com/data/attachment/forum/202412/05/184602oks5s2qwjkcjxgbq.png在此,需要对“电源按键”进行说明 按住此按键时主控芯片断电,松开此按键时主控芯片会重新上电而进行上电复位。对于 Ai 单片机,要想进行 ISP 下载,则必须是在 MCU 上电或复位时接收到握手命令才会开 始执行 ISP 程序,所以下载程序到实验箱的正确步骤为:1. 使用 USB 线将实验箱与电脑进行连接2 .打开 AIapp-ISP-v6.94R 下载软件3.选择单片机型号为“AI8051U-34K64”,打开需要下载的用户程序4.实验箱使用硬件 USB 接口下载。进入 USB 下载模式需要先按住实验箱上的 P3.2/ INT0 按键 / 接地,然后按一下 ON/OFF 电源按键 / 断电,接着松开 ON/OFF 电源按键 /上电,最后可松开 P3.2/ INT0 按键。正常情况下就能识别出“STC USB Writer (HID1)” 设备5.点击 STC-ISP 下载软件中的“下载 / 编程”按钮 当用户使用硬件 USB 对 AI8051U 芯片进行 ISP 下载时,不支持调节内部 IRC 的频率,但是可 选择出厂时内部预置的多种高精准 IRC 时钟频率(分别是 5.5296M、6M、11.0592M、12M、 18.432M、20M、22.1184M、24M、27M、30M、33.1776M、35M、36.864M、40M、44.2368M、 45.1584M),不同的系列可能不一样,具体以下载软件的频率列表为准。 也就是下载时用户只能从频率下拉列表中选择其中之一,而不支持手动输入其他频率,使用 串口下载则可以输入 4M ~ 45.5M 之间的任意频率。https://www.stcaimcu.com/data/attachment/forum/202412/05/184626cn0k0xgiik9d0sg1.png三. 下载程序到实验箱首先使用 USB 线将实验箱与电脑正确连接,然后打开 AIapp-ISP-v6.94R 或以上版本。https://www.stcaimcu.com/data/attachment/forum/202412/05/184725sheznvrc9eq9hv9v.png在上面的界面中,下面几点需要注意:1.单片机型号选择“AI8051U-34K64”。2. 实验箱 使用硬件 USB 接口下载。进入 USB 下载模式需要先按住实验箱上的 P3.2/INT0 按键(P32 接地),然后按一下 ON/OFF 电源按键 / 断电,接着松开 ON/OFF 电源按键 / 上电,最后可松开。 P3.2/INT0 按键。正常情况下就能识别出“(HID1) USB Writer”设备。 点击界面中的“打开程序文件”按钮,在出现的打开程序代码文件的对话框中选择需要 下载的文件。https://www.stcaimcu.com/data/attachment/forum/202412/05/184750z504y54vrry6n4d5.png文件正确打开后,点击界面中的“下载 / 编程”按钮开始下载代码https://www.stcaimcu.com/data/attachment/forum/202412/05/184812p97uk9pqccsr1juz.png下载成功,会出现如下画面:https://www.stcaimcu.com/data/attachment/forum/202412/05/184833mdw3kkkf2zd3z3hb.png最简下载电路及步骤参考如下https://www.stcaimcu.com/data/attachment/forum/202412/05/184917j386r81n3vkak6ha.png硬件 USB 直接下载用户程序步骤: 1. 按下 P3.2 短接 GND 按键 2. 按一下电源按键断电再上电,或复位 3. 点击下载软件中的“下载 / 编程”按钮 4. 下载成功

HD张先生 发表于 2025-3-5 10:57:29

第三章:点亮第一个LED
一.流程:1 添加头文件(利用ISP软件参考手册6.3章)2, 新建一个KEILC251工程,并设置工程参数(参考手册6.5章)3,编辑代码,编译并烧写到单片机中.4,观察运行结果
1,添加头文件(利用ISP软件参考手册6.3章)这一步比较简单,打开ISP软件,右侧KEIL仿真设置中,,找到添加型号和头文件Keil中…点击后找到KEIL251的安装目录 ,点击确定即可.图2 https://www.stcaimcu.com/data/attachment/forum/202412/16/155600y1n0qb9hacbdzwwm.png二.新建一个工程打开 Keil 软件,并点击“Project”菜单中的“NewuVision Project ...”项https://www.stcaimcu.com/data/attachment/forum/202412/16/155710elqecxcexemk4ill.png
将目录定位在准备好的项目文件夹中,并输入项目名称(例如:Demo)选择目标单片机型号在弹出的“Select aCPU Data Base File”窗口中选择“AI MCU Database”_选择确定的单片机型号ai8051u._添加源代码文件到项目_设置项目 1(“CPU Mode”选择 Source 模式)编译代码:#include "ai8051u.h"               //调用头文件

void main(void){         P0M0= 0;                  //P0端口(P00-P07)为准双向口         P0M1= 0;
         P4M0= 0;                  //P4端口为准双向口         P4M1= 0;         
         while(1)         {                   P40= 0;    //P40端口输出0V                   P00= 0;    //P00端口输出0V                   P01= 0;    //P01端口输出0V         }}运行结果
https://www.stcaimcu.com/data/attachment/forum/202412/16/155745onnsm3rrs85hr5un.png

HD张先生 发表于 2025-3-5 11:05:17

第四章:USB不停电下载

常规的程序下载,需要按下P32,然后断电重启单片机,然后才能下载,对于代码调试来说有点繁琐,那么能不能快速下载呢? 有。
ISP软件直接点击下载按钮以后,实现程序直接的下载到单片机中!!! 不再需要断电,也不需要按下按钮….方便 ,快捷。.
那么如何实现这个功能呢,,往下看,图中例出了实现不停电下载的流程.
图1
https://www.stcaimcu.com/data/attachment/forum/202412/18/162945iwwh72c5wyj2ccwe.png
看起来不复杂,,做起来也不复杂.
第一步. 下载USB库文件和USB库例程
根据官方的说明: Ai8051U根据所选的8位/32位模式可使用相同位数的库文件
例程中使用了STC32G的USB CDC库文件例程.
关于例程的说明 :
两大类 CDC 和 HID建议个人使用CDC类型
两大类又分为,查询模式和中断模式.

第二步. 创建一个工程(移植)
添加头文件,将stc_usb_cdc_32.LIB, stc32_stc8_usb.h文件复制到工程文件夹中,然后在工程中添加stc_usb_cdc_32.LIB文件(需要将文件类型设置为*.*或*.LIB才能找到),并定义头文件:#incledu “stc32_stc8_usb.h”
在主函数中添加USB初始化函数:usb_init();
把命令参数添加进来:
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

这里的"@STCISP#"是ISP软件中默认内部下载命令,这个也可以自定义哦,只要代码中设置的字符串和ISP软件中自定义命令设置相同即可.
图4
https://www.stcaimcu.com/data/attachment/forum/202412/18/162947i02dne4dv0nhhy4h.png
一个重要的寄存器设置!!!
P_SW2 |=0X80; //扩展RAM区特殊功能寄存器功能 打开 (EAXFR:1)
https://www.stcaimcu.com/data/attachment/forum/202412/18/162947dh43ry632sssgo7s.png
相关中断的设置
IE2   |=0X80; //使能USB中断
EA = 1;//打开总中断

再添加USB配置是否完成的检测语句:
while (DeviceState != DEVSTATE_CONFIGURED);   //等待USB完成配置

只有检测到USB配置完成以后,才能进行相关USB的操作,否则会出现意想不到的结果.

代码编写好以后,编译,下载到单片机中,就可以进行不断电进行下载了.
https://www.stcaimcu.com/data/attachment/forum/202412/18/162948ylib0c1vr5zcs2ri.png
将ISP软件主界面中最下方的:当目标文件变化时自动加载并发送下载命令勾选上.
只要重新编译一下代码,,ISP软件就会自动的发送自定义命令到单片机,,单片机接收到这个自定义命令以后,就会自动重启到系统ISP区,然后自动下载HEX固件.
通过本次学习,掌握了不停电下载固件的方法

HD张先生 发表于 2025-3-5 11:10:45

第五课C语言基础课程主要内容:1.C语言 USB-CDC串口之printf函数的实现2.数的进制:2进制、10进制、16进制3.数据的基本类型4.C语言常用运算符
开始了 很重要哦1.C语言 USB-CDC串口之printf函数的实现它可以快速打印出数据,帮助我们快速的开发,很有用哦图5-2图5-3 printf函数的原型Int printf_hid(const char *fmt,…);参数:fmt   是格式控制字符串,包含了两种类型的对象:普通字符和转换说明图5-42.数的进制:2进制、10进制、16进制这个很基础的知识,,运算的基础,复习一下图5-53.数据的基本类型这个常用的两三种都熟练了,别的还真的不太熟练,用的时候会查一下表.图5-64.C语言常用运算符常用运算符这个也很基础哦,常用 的+-*/ ,其中注意的是/ 是取整数部分 %取模运算,只得到余数部分++--自加自减图5-7https://www.stcaimcu.com/data/attachment/forum/202412/18/170414h7z99z62zlz6zyty.png
关系运算符:==!= ><   >= <=图5-8https://www.stcaimcu.com/data/attachment/forum/202412/18/170414zn6olalowcczlhiv.png
逻辑运算符:图5-9https://www.stcaimcu.com/data/attachment/forum/202412/18/170414jafr301ahifhz0j6.png
赋值运算符:图5-10https://www.stcaimcu.com/data/attachment/forum/202412/18/170415nc6wzyy600xwhrhh.png
位运算符图5-11https://www.stcaimcu.com/data/attachment/forum/202412/18/170415x5yqywz2qk1y1hky.png
其他运算符图5-12https://www.stcaimcu.com/data/attachment/forum/202412/18/170416xyasygkrqg1hhyyy.png

HD张先生 发表于 2025-3-5 11:46:24

第六课 I/O输入输出1.什么是GPIO2.按键输入检测3.课后小练1.什么是GPIOGPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。图6-1 高低电平的概念 高电平:接近于电源正极电压的电平,也叫逻辑”1”, 低电平:输出GND的电压,俗称”0”https://www.stcaimcu.com/data/attachment/forum/202412/19/114245c6lj6axi6yiaaiie.png
图6-2 端口模式的配置https://www.stcaimcu.com/data/attachment/forum/202412/19/114245xggp3kpr9uxz3ku6.png理解拉电流,和灌电流,通俗的来说,拉电流就是让IO口输出高电平来驱动,灌电流就是让端口输出低电平来驱动.(这样理解是否正确呢?)关于高低电平信号电压的定义,参照手册中高低电平的电压来确定…..图6-3https://www.stcaimcu.com/data/attachment/forum/202412/19/114246j84vkh4aamrtdz8x.png端口复位以后,默认都是高电平!!!!
在准双向口模式下的输入检测:图6-4https://www.stcaimcu.com/data/attachment/forum/202412/19/114247vqqfkws3qtkzq1fz.png
    如何在代码中实现对IO输入的检测 呢,一般可以使用判断来实现:if(P32== 0) //如果P32端口为低电平时,执行相应的代码
在这里有一个关键要处理 ,就是按键拉动,只要是按键就绕不开这个问题包括按下时的抖动和松开时的抖动;拉动的本质,见下图:图6-5;https://www.stcaimcu.com/data/attachment/forum/202412/19/114247cezwwc0ihd32pnf0.png在代码中对于按下时的前沿抖动,可以用延时来消抖,松开时有一个松开检测.课后任务1:按一下P32按钮灯亮,按一下P33按钮灯灭;课后任务2:按一下亮一颗灯,在按一下亮两颗灯,直到全亮(变量+加法和乘法)通过以上的学习,学习了关于8051U单片机在使用过程中,对于I/O的配置,以及按键使用的基础知识,包括8051U单片机软件延时代码的生成.
页: [1] 2
查看完整版本: 学习AI8051U