学习官方Ai8051U实验箱 | 最强记录贴,Ai8051U-8Bit,Keil-C51, SDCC-51, IAR/C++
荣誉版主,学习官方Ai8051U实验箱超强演示程序包,最强记录贴===Ai8051U-8Bit@40MHz,Keil-C51, SDCC-51, IAR/C++
用 8位模式将 Ai8051U实验箱配的32位8051程序简单移植跑了一遍
楼主威武,造福 51世界
楼主会按:
Ai8051U-8Bit@Keil-C51 版本发布 Ai8051U实验箱演示程序
Ai8051U-8Bit@SDCC-51 版本发布 Ai8051U实验箱演示程序
Ai8051U-8Bit@IAR/EW8051/C++ 版本发布 Ai8051U实验箱演示程序
由于荣誉版主即将做出的杰出贡献,本坛加了上面的注解
==========================================
感谢STC官方 免费+包邮 的 Ai8051U 实验箱。
借此实验箱学习一下 Ai8051U 的进阶操作,
在本贴记录一下学习过程。
先来个跑马灯开工仪式:
298
本帖最后由 ercircle 于 2024-11-30 14:09 编辑
2楼用来记录站里一些非常有用的帖子链接(太多了,学不完,根本学不完{:5_270:}):
教程:
《8051U深度入门到32位51大型实战视频》, 上线 !!!
视频教学:《32位8051单片机原理及应用》
深入剖析 AI-单片机 uC/OS-II RTOS 系列 | 实战派教授 权威 O/S 学习指南
PID 算法来了,视频讲解; PID温控;串口绘图;USB-CDC虚拟串口/就是串口
视频教学:【USB 原理及实战,16课时】,大学标准课程,有配套书籍
实践项目:
Ai8051U 运行 LeNet 卷积神经网络,实现手写计算器功能 ! 8051U, AI 开山之作
全双工声卡
Ai8051U驱动1.44寸黑白点阵LCD12864实验程序-SPI-DMA刷整屏523us,超高帧频
Ai8051U驱动0.96寸单色OLED12864实验程序,SPI-DMA 刷整屏523us,超高帧频
FFT频谱分析@Ai8051U, 256点FFT分析,快速傅里叶变换,USB-CDC虚拟串口送电脑显示
FFT频谱分析@Ai8051U, 256点FFT分析,快速傅里叶变换,通过SPI DMA送OLED12864显示
U盘 + FatFS文件系统 + uC/OS-II,RTOS 综合实战
手机也能对AI8051U, ISP/OTA升级用户程序了,使用用户系统区实现
其它:
Boot loader跳转到用户程序,中断重映射
实验箱改造适配5V TFT屏
V1.2.2实验箱 立创EDA Layout
声卡先体验下{:5_351:}
引用下autopccopy大佬的图:
本帖最后由 ercircle 于 2024-11-26 09:48 编辑
实验箱上需要自己焊接的芯片找了下应该是这两款:
锁存器-SN74HC573NSR (量了下尺寸,应该是SOP-20-208mil,还有一种是SOP-20一看就偏大)
https://item.szlcsc.com/73071.html
SRAM-IS62C256AL-45ULI-TR
https://item.szlcsc.com/14983.html
屏幕:
AI8051实验箱专用显示屏2.4寸(ILI9341+XPT2046驱动)3.3V供电
其它一些物料按需自行选购,楼主有一部分就不贴链接了:
CR1220电池
LCD1602 (3.3V)
LCD12864(ST7920-M6800接口)
LCD12864(ST7565R)
2.4寸TFT 320*240(ILI9325)
3.5寸TFT (ILI9486)
1.3寸TFT 240*240 (ST7789)
OLED12864 (SSD1306)
TFT触摸屏,冲哥淘宝店:
https://shop204481741.m.taobao.com/
神农鼎 发表于 2024-11-16 20:16
TFT触摸屏,冲哥淘宝店:
https://shop204481741.m.taobao.com/
{:4_183:}收到,这个2.4寸的,我先试下3.5寸大的,不行了换这个. ercircle 发表于 2024-11-16 20:29
收到,这个2.4寸的,我先试下3.5寸大的,不行了换这个.
这个:1,3.3V;2, 已有触摸芯片
51U 全面进入 TFT触摸屏 时代
神农鼎 发表于 2024-11-16 20:31
这个:1,3.3V;2, 已有触摸芯片
51U 全面进入 TFT触摸屏 时代
{:4_237:}{:4_237:}已下单,用官方屏,听人劝吃饱饭{:4_245:} 搞了个IAR环境体验下C++上来就踩坑啊,
类的成员函数内位移操作不能用成员变量
{:4_260:},
用函数变量操作位移却是好的,
但是用成员变量赋值给函数变量就不行了。
还是先用C折腾吧~
#include "AI8051U.h"
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;
#define MAIN_Fosc 24000000UL
#define LED_PORT P0
class LED {
public:
int_pinNum;
// 构造函数,关联PIN脚
LED( int pinNum) {
//_pinNum = pinNum;
_pinNum = 1;
}
// 点亮LED
void on() {
int tempPin = _pinNum;
//LED_PORT &= ~(1 << _pinNum);
LED_PORT &= ~(1 << tempPin);
}
// 熄灭LED
void off() {
int tempPin = _pinNum;
//LED_PORT |= (1 << _pinNum);
LED_PORT |= (1 << tempPin);
}
};
voiddelay_ms(u16 ms)
{
u16 i;
do{
i = MAIN_Fosc / 10000;
while(--i);
}while(--ms);
}
int main( void )
{
int_pinNum = 2;
P_SW2 |= 0x80; //扩展寄存器(XFR)访问使能
P0M1 = 0x00; P0M0 = 0xff; //设置为推挽输出
P4M1 = 0x00; P4M0 = 0x00; //设置为准双向口
P4_bit.P40 = 0; //LED Power On
P0 = 0xFF;
LED led(1);
while(1)
{
led.on();
//LED_PORT &= ~(1 << _pinNum);
//P0_bit.P00 = 0; //LED On
delay_ms(500);
led.off();
//LED_PORT |= (1 << _pinNum);
//P0_bit.P00 = 1; //LED Off
delay_ms(500);
//_pinNum++;
}
}