找回密码
 立即注册
查看: 616|回复: 13

AI8051U课程第一节心得

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-03-14 23:43:31
已绑定手机

1

主题

13

回帖

95

积分

注册会员

积分
95
发表于 2024-12-6 21:20:21 | 显示全部楼层 |阅读模式

第一节AI8051U课程主要介绍了AI8051U芯片,AI8051U能用flash编程器进行屏幕显示和视频播放,能用IIS录音、放音,有PWM_DMA,上位机能有频谱分析仪,做手写计算器等。

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:155
  • 最近打卡:2025-05-06 16:02:38
已绑定手机

15

主题

630

回帖

734

积分

高级会员

积分
734
发表于 2024-12-7 08:37:22 | 显示全部楼层

这是不是发错了板块

STC 666 888
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-03-14 23:43:31
已绑定手机

1

主题

13

回帖

95

积分

注册会员

积分
95
发表于 2024-12-7 17:39:25 | 显示全部楼层
看了AI8051U课程第二节,对AI8051U硬件有了一定的了解,并学习了AI8051U烧录程序的步骤以及设置。AI8051U实验箱有数码管、流水灯、TFT彩屏等硬件,能为学习以及开发基于AI8051U的项目提供丰富的硬件设备,极大的方便了学习以及开发。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-03-14 23:43:31
已绑定手机

1

主题

13

回帖

95

积分

注册会员

积分
95
发表于 2024-12-8 20:16:16 | 显示全部楼层
学习了AI8051U课程第三节,学习了keil5工程的创建以及文件的创建添加,工程的设置。如果工程设置不对在编译烧录的时候就会出问题。
用AIapp-ISP生成AI8051U的头文件并在C文件中引用。写了第一个点亮一个led灯的程序,在AI8051U开发板上led灯是低电平驱动,所以在程序中引脚低电平灯亮,高电平灯灭。学会了配置IO口:P0M0=0x00;P0M1=0x00;这是配置P0的八个口全部为准双向口。在AIapp-ISP软件里有IO口配置工具,可以用工具来配置IO口,IO口配置工具极大地方便了代码的书写。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-03-14 23:43:31
已绑定手机

1

主题

13

回帖

95

积分

注册会员

积分
95
发表于 2024-12-9 09:18:12 | 显示全部楼层
学习了AI8051UUSB不停电下载,学会了用查询模式进行USB的自动下载,就不用每次下载都手动按P3.2按键,极大地方便了开发。首先要去官网下载USB的库文件,把库文件里面的关键代码复制到自己的main函数里,让main函数初始化USB,发送命令,打开P_SW2寄存器和IE2寄存器,在官方下载软件里进行相应的设置,最后把“当目标文件变化时自动装载并发送下载命令”勾勾上,就能实现编译之后自动下载,这样就能节省很多时间。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-03-14 23:43:31
已绑定手机

1

主题

13

回帖

95

积分

注册会员

积分
95
发表于 2024-12-10 13:31:03 | 显示全部楼层
学习了AI8051U课程第五节,学会了C语言的基础。用printf函数实现USB-CDC串口打印输出。
printf函数:printf("格式化字符串",输出表列)
格式化字符串:
1、字符串常量
2、格式控制字符串:
%[flags][width][.prec][length]type
具体:%[标志][最小宽度][.精度][类型长度]类型
type(类型)有:
d:十进制整型
ld;十进制长整型(long int)
f:单精度浮点型(float)
lf:双精度浮点型(double)
o:八进制
x或X:十六进制
u:十进制无符号整形
i:十进制整形输出,与%d一样
c:单个字符
s:字符串
e或E:指数形式输出
g或G:自适应数据输出
p:地址
标志(flags)有:
-:左对齐,右边多余的用空格填充
+:输出负号(+或-)
space:输出值为正时加上空格,为负时加上负号
#:type是o,x,X时,增加前缀0,0x,0X
输出最小宽度(width):
数值(十进制整数)
*(在输出参数列表中给出)
精度(.precision):
.数值(十进制整数)
3、转义字符:
\a:警报
\b:回退
\f:换页
\n:换行
\r:回车
\t:横向制表符
\v:纵向制表符
\\:反斜杠
\":双引号
还学习了ascii码表和进制转换。数据的基本类型有:
bit,signed char,unsigned char,enum,signed short int,unsigned short int,signed int,unsigned int,
unsigned int,signed long int,float,double,idata*,data*,pdata*,near*,xdata*,code*,far*,huge*,
sbit,sfr,sfr16
如果想要使用64位的变量,需要在程序文件里面添加:#pragma float64
常用运算符:
逻辑运算符:
&&:逻辑与
||:逻辑或
!:逻辑非
运算符:
=:赋值运算符,把右边的操作数赋给左边的操作数
+=:加且赋值运算符,把左边的操作数加上右边的操作数结果再赋给左边的操作数
-=:减且赋值运算符,把左边的操作数减去右边的操作数结果再赋给左边的操作数
*=:乘且赋值运算符,把左边的操作数乘右边的操作数结果再赋给左边的操作数
/=:除且赋值运算符,把左边的操作数除以右边的操作数结果再赋给左边的操作数
%=:求模且赋值运算符,把两个操作数的模运算结果赋给左边的操作数
<<=:左移且赋值运算符
>>=:右移且赋值运算符
&=:按位与且赋值运算符
^=:按位异或且赋值运算符
|=:按位或且赋值运算符
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-03-14 23:43:31
已绑定手机

1

主题

13

回帖

95

积分

注册会员

积分
95
发表于 2024-12-11 08:40:24 | 显示全部楼层
学习了AI8051U课程第六节,学会了IO口的输入输出。GPIO(General Purpose I/O Ports)通用输入输出端口,通过这些端口,就能输出高电平或低电平。I/O口有四种工作模式,分别是准双向口、推挽输出、高阻输入、开漏模式。
关键代码:
if(P32==0)
{
    P00=0;
}
else
{
    P00=1;
}
这样就能实现按下按钮灯亮,松开按钮灯灭。
按下灯亮,再按一下灯灭关键代码:
if(P32==0)
{
    stat=!stat;
    P00=stat;
    while(P32==0);
}
while是判断按键是否松开的,但是这个程序没有消抖,实际会存在一些问题。应该用延时函数,当按键按下时延时20ms,之后再检测按键是否按下,如果按键还按下,就执行后面按键按下的程序。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-03-14 23:43:31
已绑定手机

1

主题

13

回帖

95

积分

注册会员

积分
95
发表于 2024-12-12 11:13:07 | 显示全部楼层
学习了AI8051U课程第七节,学会了用定时器中断实现定时。定时有两种方式:软件定时和定时器定时。软件定时在延时的时候不能执行其它的代码,因为AI8051U为单核CPU,所以在定时的时候就不能执行其它的代码。而用定时器定时,中断能打断正在执行的操作转到中断函数执行中断函数里面的一些代码,执行完之后又回到原来的地方继续执行,这就解决了上面的在定时的时候不能执行其它代码的问题。就可以把要定时执行的操作放在中断函数里,这样就能定时执行一些操作。要注意初始化定时器时定时器的模式,如果是自动重装定时器在溢出后会自动重装初值,但是如果不是自动重装,那么就需要在中断函数里手动重装初值,否则定时器不能正常工作。定时器模式在TMOD寄存器里设置(跟51单片机一样)。和STC89C52RC相比多了个TM0PS寄存器,它是设置定时器时钟预分频的。TR0是定时器的开关(1为开定时器,0为关定时器)。
函数:
写在main函数前面时:类型 函数名(参数列表){}
写在main函数后面时,要在main函数前先声明:类型 函数名(参数列表);
然后再在main函数后面写:类型 函数名(参数列表){}
函数名的命名规则与C语言标识符命名规则一样。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-03-14 23:43:31
已绑定手机

1

主题

13

回帖

95

积分

注册会员

积分
95
发表于 2024-12-12 15:16:32 | 显示全部楼层
对第一节课的补充:
这款芯片采用了高性能的处理器核心,具备高速的数据处理能力,能够满足更高算力的要求。同时,它还集成了丰富的外设接口,如I/O端口、定时器、串行通信接口等,这些接口为芯片与模块的交互提供了便利。
课程还提到了AI8051U的PWM_DMA功能。PWM(脉冲宽度调制)是一种常用的信号控制技术,广泛应用于电机控制、LED调光等领域。而DMA(直接内存访问)则是一种高速数据传输技术,可以显著提高数据传输效率。AI8051U集成了这两种功能,使得它在处理高速数据和控制信号时更加高效。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-03-14 23:43:31
已绑定手机

1

主题

13

回帖

95

积分

注册会员

积分
95
发表于 2024-12-12 15:19:30 | 显示全部楼层
久*** 发表于 2024-12-7 17:39
看了AI8051U课程第二节,对AI8051U硬件有了一定的了解,并学习了AI8051U烧录程序的步骤以及设置。AI8051U实 ...

对第二节课的补充:
通过实验箱上这些硬件设备,学习者可以进行各种实验,比如编写控制流水灯的程序来学习基本的I/O操作,或者开发一个基于数码管的简易计算器来理解数字的输入输出。对于更高级的应用,TFT彩屏可以用来开发图形界面,进行图像处理或者实现视频播放功能。通过实验箱的介绍,让我看到了AI8051U在实际项目开发中的应用潜力。这些知识和技能的学习,将极大地促进我在嵌入式系统领域的学习和开发工作。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 03:22 , Processed in 0.183000 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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