找回密码
 立即注册
楼主: 布丁橘长

Ai8051U 入门视频 合集-布丁橘长-更新至第14集

  [复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:75
  • 最近打卡:2025-02-16 21:47:59
已绑定手机

3

主题

59

回帖

433

积分

中级会员

积分
433
发表于 2024-11-11 23:42:15 | 显示全部楼层
谢谢,对入门确实比较实用。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-04-29 13:02:20
已绑定手机

0

主题

130

回帖

174

积分

注册会员

积分
174
发表于 2024-11-12 14:31:34 来自手机 | 显示全部楼层
学习
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-29 22:20:51
已绑定手机

0

主题

1

回帖

30

积分

新手上路

积分
30
发表于 2024-11-13 09:30:37 来自手机 | 显示全部楼层
学了stm32 后把51大部分都忘记了,看布丁的再快速过一遍
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-04-28 08:49:07
已绑定手机

90

主题

961

回帖

2318

积分

超级版主

积分
2318
QQ
发表于 2024-11-17 09:28:53 | 显示全部楼层
本帖最后由 国学芯用 于 2024-11-17 15:45 编辑

打卡第一课:
AI8051U  8bit&32bit 双核兼容,管脚兼容传统的51单片机,比如:89C52,12C5A60S2,可以直接使用之前的开发板,双核价管脚兼容,烧写程序时要选择对应的CPU指令模式。需要注意:Keil 8位模式编译生成的hex文件,如果ISP选CPU指令模式32位,程序是不能运行的。主频最高42M,ISP上最高可选45M,可以选择预设频率,也可以直接输入。
USB下载只能选择预设的16个频率,不可以手动输入

打卡第二课:
AI8051U作为32位机使用,开发时需要用KEIL80251
AI8051U作为8位机使用,开发时需要用KEIL8051
程序烧录时要选择对应的CPU指令模式。Keil8位和32位的设置不同。
先讲8位机模式,ISP升级到最新版本,
通过ISPAI8051U的单片机型号,头文件,仿真驱动一键添加到keil里,添加前要关闭keil
添加型号和头文件到keil里,然后选择keil的安装目录即可。
Keil图标右击-打开文件所在位置,可以看到按照目录。

建议选择Small: varables in DATA===变量存在DATA中,速度最快
比较大的数据,比如数组可以通过xdata”强制分配到XDATA区域

代码rom规模选择:Large-大模式,代码总大小64K以内
Output勾选Create HEX File,生成HEX文件===代码64K以内,HEX-80和HEX-386都可以选。代码超过64K,必须HEX-386
主程序区可以右击添加头文件


WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
    EAXFR = 1; //扩展寄存器(XFR)访问使能
    CKCON = 0; //提高访问XRAM速度

这三条语句默认都要添加,可以让单片机运行速度最快,并且使能拓展的特殊功能寄存器。
如果有外部护展RAM的地址冲突,有需要更改总线速度,或者需要更改程序等待时间的情况,再根据实际情况更改这三句的状态。
AI8051U上电后除了P3.0\P3.1是准双向口,其他IO均为高阻输入,在使用的时候必须先设置IO口模式
P0M1 = 0x00;   P0M0 = 0xff;   //设置为推挽输出
P0 =0x00;                //P0输出低电平
编译后选择8位模式下载,P0口外接8个共阳极LED后,LED全部点亮。
打开第三课:
Ai8051U-32bitKeil设置
通过ISP把将单片机型号、头文件、仿真驱动添加到Keilc251
Keil80251里选择STC MCU Database==8051U-32Bit series
CPU Mode只支持.Source (251 native)
由于STC8051U系列单片机在中断中的压栈和出栈都是4字节模式建议勾选4字节中断帧大小4 Byte Intemupt Frame Size
内存模块选择XSmall

设置代码ROM大小,建议选择Large或者Huge模式

Output勾选Create HEX File,生成HEX文件===代码64K以内,HEX-80HEX-386都可以选。代码超过64K,必须HEX-386
主程序区可以右击添加头文件

WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
    EAXFR = 1; //扩展寄存器(XFR)访问使能
    CKCON = 0; //提高访问XRAM速度

这三条语句默认都要添加,可以让单片机运行速度最快,并且使能拓展的特殊功能寄存器。
如果有外部护展RAM的地址冲突,有需要更改总线速度,或者需要更改程序等待时间的情况,再根据实际情况更改这三句的状态。
AI8051U上电后除了P3.0\P3.1是准双向口,其他IO均为高阻输入,在使用的时候必须先设置IO口模式
P0M1 = 0x00;   P0M0 = 0xff;   //设置为推挽输出
P0 =0x00;                //P0输出低电平
打卡第四课:Keil自动选择MDK C51 C251编译器
实现一个keil,可以任意打开C51 C251ARM的工程
跟着布丁老师操作,我已经实现了keil8051可以任意打开8位和32位的项目
   问题是: keil80251 打开8位机的项目,不可以编译

打卡第五课:Keil 的编译按钮:translate build rebuild 和 batch build..
Translate 编译当前活动的一个文件并检查语法错误且不会生成HEX 文件
Build 编译项目中有改动的文件并重新生成 hex 文件
rebuild 对项目中所有文件进行编译,并链接生成HEX文件

打卡第十四课: AI8051U实验箱 数字录音放音
       很丝滑很好用,录音放音成功,希望官方的小伙伴使用说明再详细一点
热线19952583534
www.STCAI.com
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-04-27 14:40:11
已绑定手机

16

主题

468

回帖

2165

积分

版主

积分
2165
QQ
发表于 2024-11-17 09:48:44 | 显示全部楼层
本帖最后由 8H8K64U 于 2024-11-17 16:35 编辑

打卡第一课:
2024年7月1日发布8051U这款芯片,最新产品,兼容8位跟32位,管脚跟老产品硬件兼容,这样可以直接使用以前老的51开发板进行再开发,产品命名中直接提现sram大小(2K的Edata+32K的Xdata),容量最大的芯片的eeprom需自行从64k中划分,烧录软件上面选择就可以。烧录程序时在烧录软件上面选择对应的CPU指令模式就可以对应使用8位模式还是32位模式,非常方便,最高工作频率是4-42mhz,软件上最高可以选择45mhz,除直接硬件usb下载只能用固定的16个频率之外,其他可以手动选择预设频率或者手动输入
第二课
C51开发对应8位模式,C251开发对应32位模式
先学习8位模式,keil中无8051U型号的解决方法,通过AIapp-ISP软件keil仿真设置中添加即可,
布丁橘长讲解P0如何输出低电平,P0.0-P0.7外接8个共阳极led后可以点亮的程序如何编写,
keil软件创建新项目需要注意sram选择SMALL模式,读写速度最快,这三种模式分别将变量存储在不同的ram区域,内存选最大64k。除了P3.0和P3.1是准双向口模式其他IO口均为高阻输入,在使用的时候须先设置IO口模式
编写程序时先添加8051U头文件,后面再对具体实现的功能编写程序,设置PO口IO为准双向口模式
P0M1 = 0x00;P0M0=0X00;
        P1M1 = 0x00;P1M0=0X00;
        P2M1 = 0x00;P2M0=0X00;
        P3M1 = 0x00;P3M0=0X00;
        P4M1 = 0x00;P4M0=0X00;
        P5M1=0x00;P5M0=0X00;
P0=0X00;P0输出低电平,

第三课
8051U作为32位机开发需要用KEILC251 ,
与8位机使用不同的地方在 :项目设置时,注意选择CPU 模式选: Source (251 native),因为目前8051U只支持Source 模式,
output设置里面,8051U系列单片机在中断中的压栈和出栈都是4字节模式,建议勾选4字节中断帧大小
内存模式有5种对应5种不同的默认变量类型,跟默认指针变量,建议默认选Xsmall模式,
代码64k以内,hex80跟HEX-386,2种都可以选择,64k以外只能选择hex-386,
相同点,都需要设置IO模式

第四课:
这集主要是教如何用一个keil任意打开C51,C251和ARM的工程,这样方便后期8051u在8位机跟32位机切换时候更方便使用,可以同步学习8位跟32位的8051U

第五课:
讲keil软件中几个按键的作用跟区别,方便后期编译程序时快速操作
translate只编译当前活动的文件,不会链接生成HEX文件
build的作用是编译项目中有改动的文件,并重新链接生成HEX文件
rebuild的作用是对项目中所有的文件重新编译,并重新链接生成HEX文件
Batch build 对工程中所有的项目进行build操作
Batch  rebuild 对工程中所有的项目进行rebuild操作
Batch clean 批量清理
Batch  setup 批量编译

第六课:
因8051U的特殊性,所以头文件也分2种,keil C51编译时选择8051u-8bit对应的是8位的头文件,keil C251编译时选择的是8051u-32bit对应的则是32位头文件,需要注意
头文件中,SFR部分不同会导致寄存器操作部分的代码写法会不同

第七课:
实际操作8051u,2种接法都可以点亮led(共阳极和共阴极led),共阳极,单片机io低电平可以点亮led,高电平熄灭,多个led阳极连在一起,vcc给多个led供电,每个led串联一个限流电阻后形成共阳极led电路,每个led可以由对应的io独立控制;共阴极是,单片机io高电平可以点亮led,低电平熄灭,led阴极和gnd相连,限流电阻和led串联。
老产品因为准双向口模式对外输出电流能力弱,高电平点亮led困难,低电平点亮led容易
后期增强型单片机,高电平驱动LED:推挽输出
低电平,3种模式驱动led:准双向口,推挽,开漏
AIapp-ISP软件右侧IO配置工具可以快速设置IO口模式整体或者单独设置都可以,直接生成代码非常方便

第八课:
8051U的库函数讲解,暂时没有专用的,除了8051U新增的外设相关寄存器外,作为8位机使用时可以选择STC8H库函数,作为32位使用时可以选择STC32G库函数,

第九课:
主要讲delay延时函数原理使用方法delay库函数的调用,LED闪烁
用delay延时函数控制灯亮灭的时间,原理是延时函数让cpu执行一些指令,比如变量的自增或者自减,达到延时的作用,一般常用for循还或while循环

第十课:
流水灯程序的编写,并讲解什么情况下使用哪种方法更便捷,开关法,移位法,数组法,数码管一般使用数组法


第十一课:
8051U芯片IO内部都有一个10(实际在8-12)k的上拉电阻跟下拉电阻,端口上拉电阻控制寄存器:PxPU和端口下拉电阻控制寄存器:PxPD分别控制上拉电阻跟下拉电阻的开启和关闭,用芯片内部io上拉电阻做限流电阻,高阻输入模式下,用PXPU控制上拉电阻的开关,实现流水灯效果

第十二课:
IO高低电平转换速度=最高主频除以2,8051U因为有144mhz的PLL时钟,可以作为最高外设的时钟,所以翻转速度可以达到36mhz,除了代码以外还受什么影响,电压,温度,负载等。时钟消耗降低io的翻转,使用PxSR和PxDR无法提高IO翻转速度,PxSR和PxDR是通过提高IO的驱动能力,当IO高速翻转时,仍然可以输出有效的波形

第十三课:
博主总结经验分享给我们,因为编译软件的不同,可能会因为大小写编译出现错误或者警告,为了编译软件时不出现问题,要避免同名的标识符出现,也是避免了我们在学习的路上多走弯路,非常的有用

第十四课:
博主体验AI8051U实验箱的USB声卡、播放Flash音频、数字录音放音几个功能,体验了一下还是比较顺畅的

www.STCAI.com
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:45
  • 最近打卡:2025-02-14 13:39:49
已绑定手机

19

主题

273

回帖

2152

积分

金牌会员

积分
2152
QQ
发表于 2024-11-17 09:56:23 | 显示全部楼层
本帖最后由 芯征程 于 2024-11-17 16:40 编辑

打卡
1集:双核兼容设计的单片机-Ai8051U 简介

1.Ai8051U---双核兼容设计
2.向下兼容传统8位51单片机(keil C51开发),可以向上兼容32位机(keil C251开发)
3.AI8051U名称及外设
截图202411170957348960.jpg
4.USB转串口下载或者USB-Link1D仿真器设为USB-HIDUSB-CDC不停电下载方式既可以选择预置的频率,也可以直接输入频率值
USB直接下载程序----IRC只能选择预置的16个频率
截图202411170958116294.jpg

2集:编写第一个程序-Ai8051U-8bitkeil设置
1.keil编译选择
  88051keil C51
  328051keil C251
2.下载软件-硬件选项需要选择CPU指令模式(8-bit   32-bit
3.先用最新的下载软件在keil C51里添加头文件
4.keil C51里设置
截图202411171547528155.jpg
4.keil5设置好以后,右击可以插入Ai8051U头文件
截图202411171548228836.jpg
主函数中这三条语句,一般情况都需要添加,这三条语句可以当做是默认设置,可以让单片机运行速度最快,并且使能扩展的特殊寄存器,如有外部扩展RAM的地址冲突,需要更改总线速度或者需要更改程序等待时间,可以根据实际情况更改这三句的状态
Ai8051U 除了P3.0P3.1是准双双向口模式,其余I.O口均是高阻输入,需要将其初始化

3集: 编写第一个程序-Ai8051-32bit keil设置
1.需要C251编译开发,用最新的软件添加头文件到keil C251
Target选项卡中-----CPU模式(binSourse,选择Sourse
Target选项卡中----建议勾选4字节中断帧大小
Target选项卡中----内存模式选择XSmall
Target选项卡中----代码ROM大小,建议选择LargeHuge模式
2.主程序前面跟8位模式一样,也需要将I.O口初始化

4集:让Keil自动选择MDK C51 C251编译器
1.keil自动选择编译器,实现一个keil可任意选择C51C251ARM的工程
C51项目设置为活动项目---可设置C51项目的目标选项,可选择任意的C51单片机,如89C51STC12/15STC8等型号
C251项目设置为活动项目--可设置C251项目的目标选项,可以选择32G32F
2.工作区,也可以分屏
安装文件tools一般只包含了本版本的编译器路径、工具、动态库等信息;
C51版本只有C51的路径、信息;C251版本只有C251的路径、信息
在每个版本keil的配置文件中,加入其他版本的路径、信息就可以(可以先复制备份,防止操作失误)

5keil的编译按钮:translatebuild rebuildbatch build...
1.介绍了三个常用按钮的名称及其作用
translate----编译当前活动的文件并检查语法错误,而且不会链接生成hex文件,只会编译当前活动的一个文件
build----编译项目中有改动的文件并重新链接生产hex文件,
如是新项目没有编译过,它就会调用 rebuild,对项目中所有文件进行编译,并链接、生成HEX文件
如是没有修改,再点击build,则是不编译任何文件,但还是重新链接、生成hex文件
Rebuild----是对项目中所有文件重新编译,并链接生成hex文件,不论文件是否修改,都会重新编译(所以使用此按钮,编译时间会比较长)
batch build----批量编译,点击旁边的小箭头,可以展开,里面有四个按键,一般用在多项目工程
   batch build----批量编译,对工程中所有项目文件进行build操作,重新编译工程中所有修改的文件,重新链接、生成hex文件;无文件修改的话,只会重新链接、生成hex文件
   batch rebuild----批量重编译,对工程中所有项目文件进行rebuild操作,无论文件有无修改,都会对所有文件重新编译,链接、生成hex文件
   batch clean---批量清理,清理工程中所有项目编译产生的部分中间文件
   batch setup---批量编译设置,可以选择批量编译的对象数量,(使用时需要先检查批量编译设置里是否勾选了所有的项目)


6集:STC8051U.h头文件、创建多项目工程
1.头文件分8STC8051U.h   32STC8051U.h
2.2个头文件的区别主要是SFR部分,88051U的部分SFR特殊寄存器用的是define去定义寄存器每一位的名称(注意是定义名称,不是位定义),使用的时候不能直接位操作
328051U头文件,是直接用sbit位定义,可以直接对位赋值
3.所有的SFR(80H-FFH)均支持位寻址----32位模式支持

7.AI8051U-点亮LEDIO模式设置
1.2种接法(低电平驱动LED、高电平驱动LED
2.89C51IO口):准双向口模式(弱上拉) 拉电流:150-250uA  灌电流:20mA----使用低电平可以轻松点亮LED
增强型51单片机:STC8 /32 /8051U...(最常用:低电平驱动LED
I0口模式:准双向口、推挽输出、高阻输入、开漏输出
高电平驱动LED:推挽输出
低电平驱动LED:推挽、准双向、开漏
3.使用STC-ISP软件中的I.O口配置工具可以快速的设置I.O口模式(可以整体设置也可以单独设置)

第8集:用库函数点亮LED-AI8051U
1.Ai8051U(8位模式)----用STC8H的库函数
Ai8051U(32位模式)----用STC32G的库函数
库函数下载路径(下载软件-资料下载-软件库函数中)
2.将库函数文件夹复制到代码工程的根目录,需要注意C51和C251有0xFD编译乱码的问题,
8位模式需要在项目中添加STC8G_H_GPIO.h头文件
32位模式需要在项目中添加STC32G_GPI0.h头文件
添加时需要更改库函数的路径,不然会报错(config.h  type_def.h的路径都需要更改)
3.库函数有两种方式设置IO口模式
第一种就是用结构体和GPIO_ Inilize函数;第二种用GPIO库函数头文件xxx_GPI0.h中定义的宏函数设置

第9集 delay延时函数&库函数, LED闪烁- AI8051U
delay延时函数来控制点亮和熄灭的时间,delay延时函数原理让CPU 一直去执行一些指令,比如变量的自增、自减,去消耗时间,达到延时的作用(一般常用for循环或while循环)
当修改MAIN_Fosc的值和单片机主频一致时,这个延时函数就可以在任意主频下都产生比较准确的毫秒级延时,

第10集LED流水灯&数码管流水灯-AI8051U
1.流水灯的原理:LED点亮一段时间,然后熄灭的同时点亮下一个,然后逐个重复这个过程
2.实现流水灯的方法:①开关法:按LED流水的顺序,写每个LED的亮灭情况;----简单明了
②移位法:当LED使用的引脚是同一组I.O口时,就可以用0x01移位的方式,让对应的IO口输出高电平;输出低电平可以取反操作;再配合变量自增,设置自增范围,就可以实现流水灯的效果;③数组法:知道了移位的结果,把这些数据按顺序放入一个数组,就可以取对应值赋值给端口,实现点亮LED的效果;(低电平需要取反操作)
3.实验的代码,分8051U-8位和32位,寄存器和库函数四个版本,
寄存器版本是直接对寄存器进行配置,库函数版本是用库函数配置寄存器,代码其他部分大致相同。寄存器版代码-8位和32位,除了头文件,以及涉及到不可位寻址的SFR寄存器的配置写法不同,其他部分完全相同
库函数代码8位和32位,除了使用的库函数及其包含的头文件不同,其他部分完全相同

第11集 端口内部上拉&下拉电阻_PxPU和PxPD
1.AI805IU 系列所有的IO口内部均可使能一个大约10K的上拉电阻(由于制造误差,上拉电阻的范围可能为 8K~12K)和一个大约10K的下拉电阻。由于制造误差,下拉电阻的范围可能为8K-12K)
2用端口上拉电阻控制寄存器PxPU,和端口下拉电阻控制寄存器-PxPD,可以分别控制上拉和下拉电阻的开启和关闭
PxPU和PxPD这个x----指的是P0-P7端口的序号
PxPU和PxPD不可以位寻址,操作的时候要对PxPU和PxPD的8位整体 赋值,


第12集 IO口电平翻转速度_PxSR和PxDR

理论上IO口最快的翻转速度:最高主频除以2  45M/2=22.5M
超过22.5M涉及到三个东西:①内部PLL时钟:最高144M,可以作为高速外设的时钟
②PxSR-端口电平转换速度控制寄存器(可以将IO口设置为快翻转和慢翻转,默认是慢翻转)以及PxDR-端口驱动电流控制寄存器(可以将IO口驱动能力设置为增强驱动和一般驱动模式)

2.影响IO口翻转的速度原因很多,比如工作电源、温度、负载情况,代码方面,因为每一条语句都需要消耗时钟去处理,不同的写法会消耗不同的时间


第13集 Keil C251不区分大小写
Keil C251不区分大小写----变量、函数名等标识符不能重名,重名的话,就会出现各种警告和错误
不同的keil版本有些出现不区分大小写,有的区分,所以为了稳妥起见,要避免同名的标识符出现


第14集 AI8051U实验箱:USB声卡、播放Flash音频、数字录音放音
Ai8051U有I2S  音频总线功能,
使用USB功能---实验箱成为一个USB声卡;
使用USB-TYPEC数据线连接电脑和实验箱,电脑端出现一个STC USB audio
接下来跟着操作起来

QQ:1638975601
手机:19952583876(微信同号)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-04-27 09:43:53

11

主题

154

回帖

1566

积分

版主

积分
1566
发表于 2024-11-17 10:06:26 | 显示全部楼层
本帖最后由 芯势力 于 2024-11-17 16:49 编辑

2024年11月17日打卡第一课:
双核兼容设计的单片机-Ai8051U 简介,向下兼容传统8位51单片机(keil5开发),向上兼容32位机(keil C251开发),可以直接使用以前老的51开发板进行再开发,烧写程序时要选择对应的CPU指令模式,容量最大的芯片的eeprom需自行从64k中划分,在烧录软件上选择,很方便,最高工作频率是4-42mhz,软件上最高可以选择45mhz,USB下载只能选择预设的16个频率,不可以手动输入


2024年11月17日打卡第二课:    编写第一个程序-Ai8051U-8bit,Keil设置

STC8051U是一款双核设计的单片机,是把STC8和STC32合二为一,并添加了很多外设,8位机用KeilC51开发,32位机用KeilC251开发,程序烧录时选择对应的CPU指令模式,通过STC-ISP下载软件将8051U的单片机型号,头文件,仿真驱动添加到Keil中,需要用到最新的下载软件,型号根据自己的单片机型号选择,先新建一个项目,点击Project-选择New uVision Proiect-选择需要保存的文件夹-输入项目名称-点击保存,下拉框中选择STCMCUDatabase,找到STC8051U-8bit,点击OK,然后新建一个主程序main,单击左侧SourceCroup,鼠标右击,选择添加新文件到SourceGroup,选择CFile,文件名输入main,点击添加,点击设置目标选项,Target选项中,内存模式,下拉框中,选择Small,变量存储在DATA中
3种区别:三种模式分别将变量存储在不同的RAM区均
Small-小模式:变量存在DATA中
Compact-紧凑模式:变量存在PDATA中
Large-大模式:变量存在XDATA中
DATA是内部RAM,而PDATA和XDATA是内部护展RAM,从读写速度看,DATA最快,pdata和xdata会慢一些,空间大小也不同

2024年11月17日打卡第三课: 编写第一个程序-Ai8051U-32bit,Keil设置
STC8051U作为32位机使用,通过STC-ISP下载软件将8051U的单片机型号,头文件,仿真驱动添加到Keil中,点击Ke礼仿真设置选项卡,选择单片机型号STC8051U,先新建一个项目,点击Project-择New uVision Proiect,选择需要保存的文件夹,输入项目名称,点击保存。下拉框中,选择STCMCUDatabase,单片机型号选择STC8051U-32bit,点击OK。点击左侧SourseGroup,鼠标右键添加新文件,选择C'File,文件名输入main,点击添加,点击设置,Target选项中,目标选项CPU模式有bin和Sourse两种
但目前STC8051U只支持Sourse模式-选择Sourse模式,由于8051U单片机在中断中的压栈和出栈都是4字节模式,建议勾选4字节中断帧大小,内存模式选择
XSmal,
由于STC8051U的程序逻辑地址为:FF:0000-FF:FFFF,需要使用24位地址总线才能正确访问,默认常量类型必须使用“far”类型,默认指针变量必须为4字节,而Tiny模式和XTiny模式,默认指针变量只有2字节,并且默认常量类型是near,small模式默认变量是存放在data区域,data区域只有128字节,当对RAM的需求超过128字节,编译器就会报错,STC8051U-32位模式时,有2k的edata,Xsmall是最佳选择,Lage模式虽然也满足条件,伯Xdata区域的读写速度需要2-3个时钟,相比edata区域的单时钟读取速度会更慢,所以内存模式建议选择Xsmall,然后设置代码ROM大小,5种大小模式,这里建议选择Large或Huge模式

2024年11月17日打卡第四课: 让Keil自动选择MDK C51 C251编译器
在每个版本的keil安装文件夹中,都有一个配置文件TOOLS.ini,这个文件包含了本版本的编译器路径、工具、动态库等信息,在每个版本keil的配置文件中加入其他两个版本的路径、信息就可以了。为避免操作失误带来的影响,操作前可以先备份。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:31
  • 最近打卡:2025-04-30 13:34:11

8

主题

144

回帖

1514

积分

版主

积分
1514
发表于 2024-11-17 10:07:20 | 显示全部楼层
本帖最后由 芯启程 于 2024-11-17 17:04 编辑

第一集  Ai8051U简介
AI8051U采用了双核兼容设计,并且管脚兼容传统的51单片机,如STC89C52RC、STC12C5A60S2等系列,可以直接使用之前的51开发板;STC32系列的代码也可以移植到STC8051U。8位模式使用Keil C51,32位模式使用Keil C251。烧写程序的时候,可以在STC下载软件内选择CPU指令模式,指令模式需要选择正确,否则程序无法运行。如果使用USB直接下载程序,那么IRC智能选择预设的16个频率,不支持在下载软件内直接输入。

第二集:Ai8051U-8bit,Keil设置
AI8051U型号可支持32位模式和8位模式。如果用户需要使用32位模式,则需要安装Keil的C251编译器;如果用户需要使用8位模式,则需要安装Keil的C51编译器;如果需要同时使用32位模式和8位模式,则C251和C51都需要安装。
使用最新的下载软件,在keil仿真设置内选择单片机型号,添加型号及头文件至keil中,添加前先关闭keil。
如果不知道keil的安装位置,可以单击keil图标,鼠标右击,打开文件所在位置,返回上级文件夹,查看安装位置,然后在重新操作一遍。
如果不确定keil的版本,可以在keil的帮助-关于版本中查看。
先创建一个工程,点击Project,选择New   Vision Project,选择需要保存的文件夹,输入项目名称,点击保存,下拉框中选择STC MCU Database,点击OK,找到STC8051U-8bit,点击OK,然后新建一个组程序main.c,单击左侧SourceGroup,鼠标右击,选择添加新文件到SourceGroup,选择C File,文件名输入main,点击添加,点击设置目标选项。Target选项卡中,内存模式下拉框中,选择Small:变量存储在DATA中,三种模式分别将变量存储在不同的RAM区域:Small-小模式:变量存储在DATA中;Compact-紧凑模式:变量存在PDATA中;Large-大模式:变量存储在XDATA中。DATA:内部RAM,PDATA和XDATA是内部扩展RAM。从读写速度看,DATA最快,PDATA和XDATA会慢一些。空间大小也不同:在8-bit内部结构图中,DATA+IDATA总共256字节,XDATA是32K字节,PDATA是XDATA的低256字节。8H数据手册中建议使用Small-小模式,读取速度最快。DATA区域比较小,只有128字节,当需要大字节存储,比如较大的数组,可以通过XDATA关键字强制分配到XDATA区域。代码ROM规模选择Large-大模式。不同模式会有不同的代码大小限制。Large-大模式:代码总大小64K以内,单个函数、模块、文件的大小不能超过64K;Compact-紧凑模式:代码总大小64K以内,单个函数、模块、文件的大小不能超过2K;Small-小模式:代码总大小2K以内,单个函数、模块、文件的大小不能超过2K。Code Rom Size选择Large:64K program。Output输出选项中勾选浏览信息,勾选创建hex文件等,点击OK。此时点击鼠标右键可以插入8051U头文件。主函数中 截图202411171549331253.jpg 这三句语句都需要添加,可以当做是默认设置,可以让单片机运行速度最快,并且使能扩展的特殊寄存器。如果有外部扩展RAM的地址冲突,有需要更改总线速度或者需要更改程序等待时间的情况,再更加实际情况更改这三句的状态。
8051U上电后,除了P3.0和P3.1是准双向口模式外,其余IO口均为高阻输入,在使用时,必须先设置IO口模式。将P0口设置为准双向口模式


第三集:Ai8051U-32bit,Keil设置
先创建一个工程,点击Project,选择New   Vision Project,选择需要保存的文件夹,输入项目名称,点击保存,下拉框中选择STC MCU Database,点击OK,找到STC8051U-32bit,点击OK,然后新建一个组程序main.c,单击左侧SourceGroup,鼠标右击,选择添加新文件到SourceGroup,选择C File,文件名输入main,点击添加,点击设置目标选项。Target选项卡中,内存模式下拉框中,在“Memory Model”的下拉选项中选择“XSmall”模式。80251的存储器模式,在Keil环境下有如下图所示的5种模式: 截图202411171551395568.jpg “Code Rom Size”的下拉选项中选择“Large:...”或者“Huge: ...”模式80251的代码大小模式,在Keil环境下有如下图所示的5种模式: 截图202411171552103250.jpg 如果代码大小在64K以内,选择“Large”模式即可。若代码大小超过64K,则需要选择“Huge"模式,并需要保证单个函数以及单个文件的代码大小必须在64K字节以内,并且单个表格的数据量也必须在64K字节以内。同时还需要作如下图所示的设置: 截图202411171552444976.jpg “Options for Target ' Target 1'”窗口中选择“Output”选项页,勾选其中的“Create HEX File”选项。若程序空间超过64K,则“HEX format”必须选择“HEX-386”模式,只有程序空间在64K以内,“HEXformat”才可选择“HEX-80”模式

第四集   Keil自动选择MDK C51 C251编译器
   通过设置,让keil自动选择编译器,实现一个keil可以任意打开C51C251ARM的工程。这样可以将C51C251的项目建立多项目工程,同步学习8位和32位的STC8051U,使用batch buid批编译功能,可以一键编译工程中所有的项目。
C51项目设置为活动项目,就可以设置C51项目的目标选项,可以选择任意的C51单片机,如STC89STC12STC15STC8.C251项目设置为活动项目,就可以设置C51项目的目标选项,如STC32系列的。工作区也可以分屏,对比8位和32位的程序。正常情况下,比如用KEILC51打开C251的工程或用C251打开C51的工程,很多操作都无法进行,如编译按钮、设置目标选项都是不可操作的,而且KEILC51也不能创建C251单片机的工程,反之亦然。用keilC51新建工程时,只能选择8位的8051U;用keilC251只能选择32位的8051U
在每个版本的keil安装文件夹中,都有一个配置文件TOOLS.ini,这个文件包含了本版本的编译器路径、工具、动态库等信息,在每个版本keil的配置文件中加入其他两个版本的路径、信息就可以了。为避免操作失误带来的影响,操作前可以先备份。

五集 Keil的编译按钮:translate build rebuild和batch build...
在编译程序的时候,经常使用 截图202411171624468195.jpg translate(编译当前活动的文件并检测语法错误,而且不会链接生成hex文件) 、build(编译项目中有改动的文件并重新链接生成hex)和rebuild(对项目中所有文件重新编译并链接生成hex),batch build(批量编译,一般用于多项目工程,对工程中多有项目进行build操作,重新编译工程中所有修改的文件,重新链接生成hex)

第六集 STC8051U.h头文件、创建多项目工程
ISP软件在Keil中添加的Ai8051U系列,32位8051的头文件,和8位8051的头文件的文件名相同,但放在不同的目录,是不同的文件,内容实际不相同(SFR部分),不可混用,不建议用户自行修改和复制。如果在Keil 创建项目时选择的器件是“Ai8051U-8B”,即8位模式,且在代码中包含“Ai8051U.h",Keil C51编译器会自动在“CS11INC\STC”目录中查找8位模式的“Ai8051U.h”头文件。
如果在Keil创建项目时选择的器件是“Ai8051U-32B",即32位模式,在代码中包含"Ai8051U.h”,KeilC251编译器会自动在”C251INC\STC”目录中查找32位模式的“Ai8051U.h头文件。
所以对于用户来说,只需要在创建项目时选择好正确的Ai8051U模式,就是在Keil 创建项目时选择不同的对应器件:【Ai8051U-8B】,【Ai8051U-32B】

第七集 AI8051U-点亮LED,IO模式设置
截图202411171625371359.jpg LED阳极接VCC,限流电阻和LED串联,电阻另一端接单片机IO口,当IO口输出低电平,LED点亮
截图202411171626164220.jpg LED阴极和GND相连,限流电阻和LED串联,电阻另一端接单片机IO口,IO口输出高电平,LED点亮
截图202411171627106174.jpg 早期的51单片机,IO口:准双向口模式(弱上拉)对外输出电流:150~250uA,当需要高电平点亮LED的时候LED亮度会很低,当限流电阻阻值较大时,会无法点亮LED
截图202411171627451986.jpg 单片机驱动LED最常用的方式是低电平驱动LED
使用STC-ISP软件的IO口配置工具可以快速设置IO口模式:点击右边的小箭头,找到IO口配置工具可以整体设置,也可以单独设置每个IO口的模式,下面可以自动生成代码

第十四集 AI8051U实验箱:USB声卡、播放Flash音频、数字录音放音
  AI8051U实验箱有I2S音频总线功能,实验箱使用了一片AIC23B,有耳机接口、立体声线路输出、麦克风采用单片机ADC实现数字录音,AI8051U具有USB功能,使用USB-TYPEC数据线连接电脑和实验箱。下载实验箱代码“AI8051U实验箱:USB声卡、播放Flash音频、数字录音放音”,完美的实现了录音、播放功能。
QQ:2571301708
电话:18106296589(微信同号)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-04-27 09:42:18

17

主题

135

回帖

1294

积分

超级版主

积分
1294
发表于 2024-11-17 10:09:57 | 显示全部楼层
本帖最后由 岁月如歌 于 2024-11-17 16:56 编辑

打卡第一课:
8051U这款芯片兼容8位跟32位,管脚跟89C52,12C5A60S2兼容,这样可以直接使用以前老的51开发板进行再开发,容量最大的芯片的eeprom需自行从64k中划分,烧录软件上面选择就可以。8位模式使用Keil C51,32位模式使用Keil C251。
打卡第2集:
AI8051U作为8位机使用,开发时需要用KEIL8051程序烧录时要选择对应的CPU指令模式。Keil8位和32位的设置不同。通过下载软件添加型号和头文件到keil里,然后选择keil的安装目录即可。
Target选项中,内存模式,下拉框中3种模式区别:三种模式分别将变量存储在不同的RAM区,Small-小模式:变量存在DATA中;Compact-紧凑模式:变量存在PDATA中;Large-大模式:变量存在XDATA中
DATA是内部RAM,而PDATA和XDATA是内部护展RAM,从读写速度看,DATA最快,pdata和xdata会慢一些,空间大小也不同。
打卡第三集
不建议使用“Small”“Tiny”和“XTiny”模式,推荐使用“XSmall”模式,这种模式默认将变量定义在内部RAM(edata),单时钟存取,访问速度快,且STC8051U系列芯片有2K的edata可以使用;不推荐使用“Large”模式,虽然该模式也满足4字节,但是速度较慢。Output-HEX Fomat:代码64K以内,HEX-80和HEX-386都可以选。代码超过64K,必须HEX-386。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-30 08:40:45
已绑定手机

12

主题

164

回帖

1629

积分

超级版主

积分
1629
发表于 2024-11-17 10:16:08 | 显示全部楼层
本帖最后由 浅夏星空 于 2024-11-17 17:03 编辑

打卡第一课:
AI8051U  8bit&32bit 双核兼容,向下兼容传统8位51单片机(keilC51开发),向上兼容32位机(keil C251开发),可以直接使用之前的开发板。容量最大的芯片的eeprom需自行从64k中划分,烧录软件上面选择就可以。烧录程序时在烧录软件上面选择对应的CPU指令模式就可以对应使用8位模式还是32位模式,最高工作频率是4-42mhz,软件上最高可以选择45mhz,USB直接下载IRC只能选择预置的16个频率,不支持在下载软件内直接输入

第二集:Ai8051U-8bit,Keil设置AI8051U型号可支持32位模式和8位模式。如果用户需要使用32位模式,则需要安装Keil的C251编译器;如果用户需要使用8位模式,则需要安装Keil的C51编译器
使用最新的下载软件,在keil仿真设置内选择单片机型号,添加型号及头文件至keil中,添加前先关闭keil
截图202411171558503811.jpg 这三条语句默认都要添加,可以让单片机运行速度最快,并且使能拓展的特殊功能寄存器。
8051U上电后,除了P3.0和P3.1是准双向口模式外,其余IO口均为高阻输入,在使用时,必须先设置IO口模式。将P0口设置为准双向口模式

第三课Ai8051U-32bit,Keil设置
8051U作为32位机开发需要用KEILC251
由于AI8051U系列单片机在中断中的压栈和出栈都是4字节模式,建议勾选4字节中断帧大小
内存模块选择XSmall设置代码ROM大小,建议选择Large或者Huge模式   
0utput勾选Create HEX File,生成HEX文件===代码64K以内,HEX-80和HEX-386都可以选。代码超过64K,必须HEX-386

第四集   让Keil自动选择MDK C51 C251编译器  
通过设置,让keil自动选择编译器,实现一个keil可以任意打开C51、C251和ARM的工程。这样可以将C51和C251的项目建立多项目工程,同步学习8位和32位的STC8051U,使用batch buid批编译功能,可以一键编译工程中所有的项目。

第五集 Keil的编译按钮:translate build rebuild和batch build...
编译程序的时候,经常使用translate(编译当前活动的文件并检测语法错误,而且不会链接生成hex文件) 、build(编译项目中有改动的文件并重新链接生成hex)和rebuild(对项目中所有文件重新编译并链接生成hex),batch build(批量编译,一般用于多项目工程,对工程中多有项目进行build操作,重新编译工程中所有修改的文件,重新链接生成hex)

第六课:AI8051U.h头文件、创建多项目工程
ISP软件在Keil中添加的Ai8051U系列,32位8051的头文件,和8位8051的头文件的文件名相同,但放在不同的目录,是不同的文件,内容实际不相同(SFR部分),不可混用,不建议用户自行修改和复制。keil C51编译时选择8051u-8bit对应的是8位的头文件,keil C251编译时选择的是8051u-32bit对应的则是32位头文件

第7集 AI8051U-点亮LED,IO模式设置
早期的51单片机,IO口:准双向口模式(弱上拉)对外输出电流:150~250uA,当需要高电平点亮LED的时候LED亮度会很低,当限流电阻阻值较大时,会无法点亮LED。增强型51单片机:最常用的方式是低电平驱动LED
AI app-ISP软件右侧IO配置工具可以快速设置IO口模式整体或者单独设置

第8集:用库函数点亮LED-AI8051U
作为8位机使用时可以选择STC8H库函数,作为32位使用时可以选择STC32G库函数
库函数有两种方式设置IO口模式:第一种就是用结构体和GPIO_ Inilize函数;第二种用GPIO库函数头文件xxx_GPI0.h中定义的宏函数设置


第9集 delay延时函数&库函数, LED闪烁- AI8051U
用delay延时函数控制灯亮灭的时间,原理是延时函数让cpu执行一些指令,比如变量的自增或者自减,达到延时的作用,一般常用for循还或while循环














QQ:2768446529  手机:19952605150(微信同号)
www.STCAI.com
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 20:16 , Processed in 0.252906 second(s), 126 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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