找回密码
 立即注册
楼主: kaqtildd

AI8051U学习日志

[复制链接]
已绑定手机

5

主题

64

回帖

128

积分

注册会员

积分
128
 楼主| 发表于 2025-10-21 21:35:21 | 显示全部楼层

今日已收到从 STC 申请的擎天柱核心板,实验箱也已完成申请,目前正等待收货。后续学习过程中会涉及代码编写,此帖仅作为本人学习经历的记录,以便后续查阅。


本次实验基于擎天柱核心板。
实验目标:通过 USB-CDC 接收指定字符,实现对 LED 灯亮灭的控制。




第一步,完成USB-CDC收发功能


  • 打开集成 AiCube 的 STC 程序下载工具,进入 AiCube 界面;
  • 新建 AiCube 项目,选择单片机型号为 Ai8051U-32Bit,项目命名为 USB_CDC_LED;
  • 在项目设置中勾选外设的 USB 选项,完成项目工程创建;


截图202510211956107909.jpg
4.在 STC 下载工具中找到 printf_usb 例程,将其内容复制到新建工程中,注意需先注释掉主函数 While 循环内的 USBLIB_OUT_Done (); 语句;
3.png
5.编译程序生成 Hex 文件后,打开 STC 程序下载工具,连接擎天柱核心板,加载刚生成的 Hex 文件;找到 “收到用户命令后复位到 ISP 监控程序区” 界面,勾选左下角 “当目标文件变化时自动装载并发送下载命令”(勾选后,首次下载程序完成,后续修改工程并编译后即可自动下载);同时选择自定义命令下的三个选项,完成后界面如下图所示;
截图202510212009375636.jpg
6.在 STC 下载工具中打开 “CDC/HID - 串口助手”,开启串口后,选择 HEX 模式发送数据:发送 “6” 时,串口返回 “Hello World !”;发送 “7” 时,串口返回 “China !”。需注意,“\r\n” 字符在文本模式下不可见,在接收缓冲区同时选择文本和 HEX 模式即可查看实际数据;
截图202510212015499106.jpg
7.将原有代码修改为以下内容后,可将发送缓冲区模式切换为文本模式。此时会发现,电脑发送的数据从 06、07 变为 36、37,原因是在 C 语言中,6、7 为数字,而 '6'、'7' 为文本字符,单片机发送文本时会以 ASCII 码形式传输。完成上述代码修改后,即完成第一步操作。
截图202510212019053034.jpg
截图202510212019306095.jpg


第二步,完成LED控制功能
这块擎天柱核心板LED连接在P2端口
1.通过 STC 下载工具对 P2 端口进行配置,可将其设为准双向口或推挽输出模式;
截图202510212119288594.jpg
2.由于 LED 的阴极连接 P2 端口、阳极接 5V 电平,因此当 P2 端口为高电平时,LED 点亮;P2 端口为低电平时,LED 熄灭。编写以下代码实现实验功能:串口发送字符 '1' 时,LED 点亮;发送字符 '0' 时,LED 熄灭;且串口接收到消息后,会同步打印 LED 的当前状态。
截图202510212123388745.jpg
截图202510212124206905.jpg
本次实验代码主要基于 AiCube 和 STC 下载工具生成,参考文档为《AI8051U-20250919.pdf》,参考视频链接为https://www.stcaimcu.com/thread-11902-1-1.html。

回复

使用道具 举报 送花

已绑定手机

5

主题

64

回帖

128

积分

注册会员

积分
128
 楼主| 发表于 2026-6-12 20:27:54 | 显示全部楼层
《8051U深度入门到32位51大型实战视频》,【免费 + 包邮 送】实验箱@Ai8051U,100万套
https://www.stcaimcu.com/thread-11902-1-1.html
(出处: 国芯人工智能技术交流网站)


已经收到了申请的AI8051U实验箱,在此对STC表达感谢,从本贴开始,我将记录对于AI8051U实验箱的外设开发,不会完全复刻视频中的程序,把视频中的内容真正能够理解使用,才是真正有用的。

本次所使用的STC调试工具为:AiCube-ISP-v6.96X.exe。后续所有的AiCube生成都是基于这个程序。

01_USB不停电下载
第一步,新建AiCube项目。
截图202606122010435335.jpg
第二步,勾选时钟,默认配置即可。
截图202606122012577438.jpg
第三步,勾选USB外设,默认配置即可。
截图202606122014428242.jpg
第四步,生成代码,简单写一个printf打印内容,这里因为第三步没有勾选“与 printf 函数关联”,所以采用printf_usb把数据传输到USB进行输出,写好程序之后编译。
截图202606122019168697.jpg
第五步,下载程序。
(1)勾选左下角“每次下载前都重新装载目标文件”和“当目标文件变化时自动装载并发送下载命令”;
(2)“收到用户命令后复位到 ISP 监控程序区”区域如下图配置;
(3)打开程序文件,找到第四步工程中生成的hex文件;
(4)点击下载;
(5)打开“CDC/HID - 串口助手”区域 ,打开串口,你就可以看到程序每隔1秒打印一次“Hello STC”,并自动换行回车。

(1)和(2)配置好后最大的用处就是,如果你选择的hex文件发生了变动,,程序会自动下载,这样修改完程序,进行编译后就会自动下载程序了。
截图202606122020523913.jpg

后续不会详细再分步骤讲述新建工程。
回复

使用道具 举报 送花

已绑定手机

5

主题

64

回帖

128

积分

注册会员

积分
128
 楼主| 发表于 2026-6-12 22:03:38 | 显示全部楼层
《8051U深度入门到32位51大型实战视频》,【免费 + 包邮 送】实验箱@Ai8051U,100万套
https://www.stcaimcu.com/thread-11902-1-1.html
(出处: 国芯人工智能技术交流网站)



02_点亮LED灯

截图202606122034594662.jpg
第一步,分析Ai8051U的原理图。
Q2为SS8550三极管,是PNP型,基极为低电平时,三极管导通;反之三极管截止。
LED发光二极管导通条件为正极为高电平,负极为低电平,此时LED就可以点亮。
分析原理图可以得到LED亮灭的控制条件如下:
截图202606122051471537.jpg

第二步,开始编写LED控制程序。
(1)LED可以由P4.0引脚直接关断,则可以单独编写LED总电源控制程序;
(2)LED引脚全部在P0端口,故此可以直接给P0端口赋值,达到控制LED灯,一共可以由255种组合,可以用Excel表格来计算数据;
截图202606122156416415.jpg
我将上传本次内容所编写程序,仅供参考。
02_LED实验_20260612.zip (307.71 KB, 下载次数: 96)

回复

使用道具 举报 送花

已绑定手机

5

主题

64

回帖

128

积分

注册会员

积分
128
 楼主| 发表于 2026-7-26 16:22:53 | 显示全部楼层
《8051U深度入门到32位51大型实战视频》,【免费 + 包邮 送】实验箱@Ai8051U,100万套
https://www.stcaimcu.com/thread-11902-1-1.html
(出处: 国芯人工智能技术交流网站)



03_IO口输入输出

03_按键.png

对于I/O输入最简单的实验就是读取按键,通过读取引脚电平来了解按键是否被按下。
以 AI8051U实验箱中,P3.4引脚为例。

设置P3.4默认为高电平,读取P3.4引脚电平。当SW_4被按下时,P3.4为低电平;当SW_4被松开时,P3.4为高电平。
以下是简易的按键控制程序,通过按下SW_4和SW_5来控制i的增减,数值范围为0~255,并通过串口打印出来。
程序按下按键,必须要松开。
想要实现长按只需要注释掉while(!Get_SW4State());和while(!Get_SW5State());即可,这两行代码主要是判定按键按下后,是否一直保持低电平,如果是低电平就等待,直到按键松开,电平转变为高电平。


截图202607261616131000.jpg


03_IO口输入.zip

303.21 KB, 下载次数: 80

回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-7 13:14 , Processed in 0.069255 second(s), 54 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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