找回密码
 立即注册
查看: 1118|回复: 12

冲哥-8051U深度入门到32位51大型实战--学习记录帖

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:150
  • 最近打卡:2025-05-06 00:28:51
已绑定手机

3

主题

69

回帖

779

积分

高级会员

积分
779
发表于 2025-1-18 10:26:31 | 显示全部楼层 |阅读模式
如题,记录STC最新AI8051U亲密接触过程。
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:150
  • 最近打卡:2025-05-06 00:28:51
已绑定手机

3

主题

69

回帖

779

积分

高级会员

积分
779
发表于 2025-1-19 09:17:54 | 显示全部楼层
第一集 序言      冲哥
AI8051U优势:
一、屏幕显示孼视频播放(FLASH编程器)。
二、IIS录放音。
三、PWM_DMA。
四、频谱分析仪(上位机)
五、手写计算器。
六、QSPI\PWM移相,硬件乘除,单精度浮点。

1、演示屏幕显示和视频播放功能。首先矫正定位刷新。主频40M。选择串行FLASH编程器。
2、演示IIS录放音,STOP 50 VOL音量.集成了录放音的功能。
3、演示PWM_DMA功能,WS2812点阵屏显示数字时钟。覆盖涂色的亚克力板看的更清晰,其实下面可以加一层碳酸纸或散光膜。用的PWM_DMA实现的功能。实现一千多颗2812灯的显示不会干扰。
4、演示频谱仪。需要用到FFT绘图。中心频点在2.5K左右。采用IIS录音+FFT快速刷新。
5、演示手写计算器。手写自动输入和自动计算。
6、演示FLASH播放器。用的屏9341.擦除芯片,选择串行FLASH编程器。加载图片,

简介:
Ai8051U,USB 型 1T 8051,支持32位和8位指令集, RMB2.3
管脚兼容天王级别的:89C52RC,12C5A60S2
要兼容8位8051指令集,可以用 Keil C51/IAR/SDCC 编译器
===就相当于更强大的8H8K64U
要兼容32位8051指令集,可以用 Keil C251 编译器,双核兼容设计
===就相当于更强大的?32G12K128, 32G8K64
34KSRAM(2K edata, 32K xdata),64K Flash
TFPU@120MHz, 硬件浮点/硬件三角函数 运算器
DMA支持PWM,DMA支持外设直接到外设, P2P
120MHz-PWM支持硬件移相,16位PWM;真12位ADC
USB, 4组串口,12位ADC, 轨到轨比较器
QSPI,SPI,I2S,?I2C, TFT-i8080/M6800 接口
PDIP40,LQFP44,LQFP48


第一课时完结。
回复 支持 反对

使用道具 举报 送花

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

1

主题

65

回帖

595

积分

高级会员

积分
595
发表于 2025-1-19 10:06:31 | 显示全部楼层
必须点赞
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:150
  • 最近打卡:2025-05-06 00:28:51
已绑定手机

3

主题

69

回帖

779

积分

高级会员

积分
779
发表于 2025-1-19 11:01:57 | 显示全部楼层
第二集 硬件及工具介绍 冲哥

实验箱正面讲解:
1、演示AI8051U实验箱,PCBA-成品线路板。一条数据线+一个短路帽。
2、USB-TypeA接口,双USB数据线配套。
3、USB Link 1D接口,下载器使用。
4、USB TypeC接口,转接口。
5、USB转双串口,用于通讯集成(STC自研芯片),可以替换CH430,最高波特率在10M左右,基本市面上常用通讯协议支持在内。
6、TF卡插座、测试文件系统使用。在实际应用中可以扩展自动化系统资料存储与保存。
7、示波器BNC输入,需要配备示波器采集表笔头。后面红色元件为示波器调整波形。修正失真。
8、立体声耳机输出,接耳机放音。
9、立体声线路输出,接音响线路。
10、话筒录音,实现录音功能。
11、OLED显示屏  SPI/I2C 8/7线接口,可以接显示屏。
12、8位流水灯-入门基操。
13、TFT彩屏,两排线接入。
14、掉电检测电压调节--测试存储使用,掉电以前要保存--比如自动化设备异常停电的数据保存---检测到断电行为。
15、红外接收。
16、红外发射。
17、矩阵键盘,两列+四行,和ADC键盘区别,矩阵键盘采用横向四个脚纵向两个脚实现控制。ADC键盘16个都是用一个引脚控制。
18、AI8051U主芯片,48脚。
19、T0、T1按键,定时器控制按键。
20、INT0\INT1按键,中断控制按键。
21、复位按键。
22、电源按键,单片机强制断电,进入下载模式。
23、QSPI/SPI FLASH    FLASH编程器通过上位机软件通过USB传输到单片机存储至此。
24、LCD对比度插口调节 ,最下面接口可以接LCD的屏。  显示不清晰可以用左下角电位器调节。
25、RTC时钟,芯片内置RTC功能,保持主板上点时钟最新计时。
26、相关短路帽调试插针,后续功能演示。
27、外部并行总线扩展32KSRAM.---------

实验箱背面讲解:
28、32768Hz无源晶振,RTC实验必须用到这个这个晶振。
29、24C02 EEPROM,存储芯片,外置存储器掉电存储。
30、DS18B20温度传感器,低成本温度检测。
31、无源蜂鸣器,声音预警。
32、SP3485,485通信。
33、AI8H12K12U USB转双串口,一个USB连接电脑转双串口。
34、TP2604S、74HC4051、LMV358、TLV320AIC23B I2S DAC等芯片后面测试时讲解。


软件和工具:
35、安装KEIL5编程软件。
36、下载ISP软件----写入单片机必须工具。
37、添加单片机型号的头文件。
38、Keil中断扩展插件。
39、下载代码包和手册。

40、安装KEIL5讲解--略。
41、下载AI8051U规格书,最新手册。
42、下载实验箱1.2代码包
43、下载拓展Keil的C代码中断号并找到KEIL5安装路径对应安装。
44、下载第一个程序。
        1)单片机选择AI8051U-34K64
        2)实验箱使用USB下载,进入USB下载模式需要先按住实验箱P3.2/INT0按键,P32接地,然后按一下电源开关0N/0FF断电,松开上电。正常情况下就可以识别出HID1 USB Writer设备,
        3)然后选择下载的程序文件,下载的时候一定要注意选对IRC时钟频率,开发文件中查看#define MAIN_Fosc 时钟主频定义

第二课时完结。


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:150
  • 最近打卡:2025-05-06 00:28:51
已绑定手机

3

主题

69

回帖

779

积分

高级会员

积分
779
发表于 2025-1-19 11:02:22 | 显示全部楼层

谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:150
  • 最近打卡:2025-05-06 00:28:51
已绑定手机

3

主题

69

回帖

779

积分

高级会员

积分
779
发表于 2025-1-19 12:47:07 | 显示全部楼层
第三集 点亮第一颗LED 冲哥

一.创建空工程(参考手册6.5章节)
二.添加头文件 (利用ISP软件,结合手册6.4章节)
三.输入如下代码,并编译


1、新建设置超过64K程序的代码项目,选择保存路径,输入项目名称,添加目标芯片型号Ai8051u-32bit.。
2、添加第一个文件main.c.左侧树状路径选择Source Group 1---右键---Add Existing Files to Group添加新建的文件到本新工程中。--或者直接双击就可选择添加。
3Options  for Target中设置,选择Tatget选项卡,CPU选择 Source (251 native),4Byte...复选款一定要勾选因为Ai8051u系列只支持source模式,由于Ai8051u系列单片机在终端中的压栈和出栈都是四字节(牵扯到内存分配管理),Memory model(内存模式)选择Xsmall:ptr-4.

3、在output(输出选项卡)选择创建文件格式HEX File中选择HEX-386,程序空间超过64K,则HEX Format必须选择HEX-386模式,只有程序空间在64K以内才可以选择HEX-80,

4、添加头文件.include头文件两种方式,<>和“”,第一种在系统安装文件,第二种开发项目本地文件夹路径文件,推荐用第二种"",避免移植项目遗漏。ISP可以自动生成相关头文件请选择项目保存位置。

5、main.c文件中#include 引用上面的头文件。

6、设置自动缩进四格,点击keil5上面工具栏左右侧那个扳手,不正确就需要修理,选择C/C++,缩进选4这样键盘TAB按键按一次会自动前进4格,shift+TAB自动后退4格。Edit0r语言选项卡选择GB2312,这样中文注释不会乱码

7、左键双击头文件选中,右键--选择open file,就可以跳到头文件内容,方便快捷查看和对照。
8、main函数执行一次与多次循环的讲解,内嵌while函数。
9、点亮第一个LED灯的最小程序。编译完成。ISP选择选择新编译的文件,不需要时钟就不管他。
10、视频中下载后点亮结果点不亮,缺少P40=0;的声明,就和写代码不规范想打人一样-。-
11、改了后还是不亮,原来P40M0,P40M1写成P0M0,P0M1,想打人-。-
12、讲解P0等效电路图,SYS_VCC=3.3V,每个管脚串3,3K电阻,电源出口接PNPss8550三极管,P40端口接ss8550偏置电压0伏导通.(备注:SS8050NPN结构偏置电压必须高电平导通

13、配置I/O口。
     1、每个I/O孔的配置都需要两个寄存器进行设置。
     2)P0M0即P0M0第0位和P0M1的第0位组合起P0.0的模式。
     3)配置组合模式:
                   00  准双向口,传统8051端口模式,弱上拉,灌电流可达20mA,拉电流为270-150uA
                   01  推挽输出(强上拉输出,可达20mA,要加限流电阻)
                   10   高阻输入(电流既不能流入也不不能流出--此路不通@@)
                   11  开漏模式,内部上拉电阻断开。即可读取外部也可对外输出(高低电平)。如果正确读取外部状态需要对外输出高电平,需外加上拉电阻,否则对不到外部状态,也无法对外输出高电平
                               ---开漏工作模式,对外设置输出1,等同于高阻输入。
                               ---开漏工作模式,打开内部上拉电阻或外部加上上拉电阻,简单等同于【准双向口】

14、每个语句结束要:分号结束,大括号要缩进。
15、二进制4个0位对应16进制1个位0,所以八位十六进制写法就是0X00.
16、芯片管脚可以在ISP右侧快捷选项卡里面的《封装脚位》选项卡查看 P0M0=0可以理解为P00-P07为准双向口
17、ISP的IO口配置工具,在ISP软件右侧的IO配置工具中快速设置。

第三课时完结。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:150
  • 最近打卡:2025-05-06 00:28:51
已绑定手机

3

主题

69

回帖

779

积分

高级会员

积分
779
发表于 2025-1-19 21:28:32 | 显示全部楼层
第四集 USB不停电下载 冲哥

一、.实验对比演示
二、.下载所需文件(STC官网-软件工具-库函数-USB库文件)
三.移植关键部分到工程:
     添加头文件
     USB初始化函数(lib+.h库实现)
     命令参数
     打开P_SW2寄存器和IE2寄存器(只打开一个位!)



1、实验对比演示。
2、下载所需文件
3、移植stc_usb_cdc_32.LIB文件到当前测试文件夹,Add文件到工程项目。
4、在main.c中引用USB头文件#include  "stc32_stc8_usb.h"。
5、移植所有端口为双向。调用usb_init() 函数。
6、移植不停电下载命令行三行到main.c,注意此处的不停电下载命令要与ISP里面的命令要相同
7、功能脚切换控制P_SW2中EAXFR设置(B7位)--扩展RAM区特殊功能寄存器(XFR)访问寄存机。0禁止,1允许访问。赋值用或等于(|=0x80   1000 0000)避免覆盖其他七位原值.
8、一直USB等待连接命令,while循环里移植发送缓冲区固定命令用于测试。
9、生成文件提示警告57,是因为头文件定义了很多函数实际还没有使用,可以点击顶部魔术棒快捷键,选择L251 MIsc,输入57屏蔽
10、下载时检查CPU指令模式32-bit,勾选当目标文件变化时自动装在并发送下载命令---这样一生成完就可以自动下载。

第四课时完结。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:150
  • 最近打卡:2025-05-06 00:28:51
已绑定手机

3

主题

69

回帖

779

积分

高级会员

积分
779
发表于 2025-1-19 22:23:56 | 显示全部楼层
第五集 C语言基础 冲哥

一.C语言 USB-CDC串口之printf函数的实现
二.数的进制:2进制、10进制、16进制
三.数据的基本类型
四.C语言常用运算符

1、C语言USB-CDC串口之printf函数的实现。
2、#define printf  printf_hid 替换名和被替换名。参数fmt 格式控制字符串,包含拉ing中对象:普通字符和转换说明。打印时英文输入双引号里面打印字符串。演示CDC测试。
3、转换说明:
        1)类型,替换fmt参数中指定每个%标签,附加参数可以是敞亮,可以是变量。
       2)位置:普通字符和转换说明放在双引号内,参数以英文逗号隔开。
       3)数量:附加参数和转换说明是一一对应关系,有N个转换,printf参数是N+1,Print本体占1;如果参数少于对应转换,可能会输出内存中任意值。

4、ASCII字符代码表(ISP调试HEX模式 16进制输出的代码)

5、数据类型:想要使用64位变量,需要在程序文件里面添加申明:#pragma float64。
6、进制的转换,二进制,8进制,16进制-、
7、变量的定义方法和声明替换#define...
8’、C语言运算符,注意除号(/)只返回整倍数,求余用%号。强制转换运算结果前面添加(U16)。
9、定义变量分为全局变量和局部变量,注意作用域有效区。
10、算数运算符,+—*/%,++,--、
11、关系运算符:==,!=,>.<,>=,<=,单片机里面0为假,非零为真
12、逻辑运算符: 逻辑与&&,逻辑或||,逻辑非!。
13、赋值运算符:=、+=、-=、*=、/=、%=、<<=、>>=、&=、|=、^=。
14、位运算符:&、|、^、~、<<、>>。
15、其他运算符:点运算符,选择运算符。。。

第五课时完结。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:150
  • 最近打卡:2025-05-06 00:28:51
已绑定手机

3

主题

69

回帖

779

积分

高级会员

积分
779
发表于 2025-1-20 08:58:22 | 显示全部楼层
第六集 I/O输入输出  冲哥

一、什么是GPIO
二、按键输入检测
三、课后小练

1、什么是GPIO?
     GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。
     高电平就是指接近于电源正极电压的电平;也叫逻辑“1”; VDD最大电压不能超过5.5V。上限溢出允许0.3v内.
     单片机输出高电平就是输出VCC电压,输出低电平就是输出GND的电压。
     四种模式:准双向口、推挽输出、高阻输出、开漏模式。 灌电流(电源到管脚串电阻尽量大于1K,不小于470欧)拉电流(管脚到Gnd,推挽/强上拉)的讲解
     单片机电压3.3V,施密特触发器,低电平不能高于0.99V,高电平不能低于1.18V

2、按键输入检测:实验箱上P32串300R电阻,按下接地低电平,不按高电平。
3、代码编写:按下亮,松开灭 。
4、按键参数状态取反(!),交互状态,while循环锁定只输入一次。
5、按键消抖。延时20毫米(ISP右侧延时计算器),引用头文件#include "intrins.h"   。延时后内部嵌套一个if循环里面包含while确认判断指令是否为消抖后结果.
6、 main函数里面添加以下三条指令。
      WTST = 0; //设置程序指令延时参数,
        EAXFR = 1; //扩展寄存器(XFR)访问使能
        CKCON = 0; //提高访问XRAM速度


第六课时完结。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:150
  • 最近打卡:2025-05-06 00:28:51
已绑定手机

3

主题

69

回帖

779

积分

高级会员

积分
779
发表于 2025-1-20 10:12:08 | 显示全部楼层
第七集 定时器中断 冲哥

一、定时器的介绍
二、定时器的应用
三、函数的定义、声明、调用

1、单核只能执行循环单条命令执行完毕才执行下一个命令,没有特殊情况不能被打断,引入特殊情况定时器中断。
2、定时器作用:
            1) 用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作。
            2) 替代长时间的Delay,提高程序的运行效率和处理速度(可以打断主循环)。

3、ISP软件右侧定时器计算器自动生成定时函数。选择时钟24M,定时3秒,模式位24位自动重载。
4、边界定时器中断执行测试。
5、关于Keil软件8051和80251编译器所有版本中的BUG,0xfd、0xFE、0xFF问题主要表现为字符串中不能含有0xFD编码的汉字,否则在编译时会跳过而出现乱码解决办法在0XFD编码的汉字后增加一个0xfd.
       官方解决方案printf("数\xfd学") 显示正常。

keil0xFD汉字乱码表

keil0xFD汉字乱码表


6、定时器应用:定时器0模式0(16位自动重装载模式)图解。
7、定时器模式寄存器(TMOD)当GATE=0,TR0=1,定时器开始。
8、中断请求寄存器TCON讲解,TF0定时器0溢出中断标志,中断服务中,硬件自动清零。
9、IE0:外部中断0中断请求标志,中断服务程序中,硬件自动清零。
10、计算定时器的原理讲解。

11、函数的定义、声明、调用。
12、函数名不能与C语言关键字重名。定义函数名、返回值、参数。
13、声明:在头文件中声明结尾以英文分号结束。
14、调用:在需要的地方调用函数名,结尾加上小括号和分号,如果有参数就写入括号内,以英文逗号分开。
15、代码功能演示:关闭自动重载定时器TR0=0,
16、代码调试,状态参数取反(!)与停止。演示交互式控制。

第七课时完结。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-6 11:24 , Processed in 0.173760 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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