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

AI 8051U学习记录

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:450
  • 最近打卡:2025-05-06 04:24:11

17

主题

533

回帖

1330

积分

金牌会员

积分
1330
发表于 2024-12-27 06:56:23 | 显示全部楼层 |阅读模式
很荣幸,月前参加论坛的8051U推广活动获得了一个8051U的试验箱,非常感谢刘经理的快速安排。
于是也是经过了漫长的等待,拿到了这个强大的8051U试验箱。近期将持续更新8051U的学习记录。
首先让我们简单的做一个开箱。如果拿这个试验箱和其他的STC试验箱做对比的话,
你会发现这个试验箱的堆料超级厚实。比STC32G12K128厚实的多。

正面照

截图202412270634019018.jpg

背面照

截图202412270634302645.jpg

板载外设资源集成丰富具有非常大的学习价值!

美中不足的一点是可能在生产的时候导致了有一个贴片电容没有贴好,焊盘脱落 。我使用万用表测量了是一个100NF的电容。

截图202412270635223408.jpg

原理图上是控制耳机音量输出的, 这个电容掉了不知道会有什么影响。

截图202412270640053799.jpg


添加KELI支持

截图202412270655359179.jpg


工程编译通过

截图202412270656195078.jpg



1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
自信就会温和,温和就会坚定!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:450
  • 最近打卡:2025-05-06 04:24:11

17

主题

533

回帖

1330

积分

金牌会员

积分
1330
发表于 2024-12-27 06:59:14 | 显示全部楼层
按下P3.2 + POWER ON 直接进入HID模式进行烧录。设置RESET 按键作为reset, 不做作为普通IO

截图202412270658491833.jpg
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:450
  • 最近打卡:2025-05-06 04:24:11

17

主题

533

回帖

1330

积分

金牌会员

积分
1330
发表于 2024-12-27 07:22:29 | 显示全部楼层
先简单的点亮一个LED灯。测试一下复位按键是否正常工作。

  1. #include <AI8051U.H>
  2. #include <intrins.h>
  3. typedef unsigned char u8;
  4. void init_gpio();
  5. void Delay500ms(void);
  6. void main()
  7. {
  8.     u8 i = 0;
  9.     WTST = 0x00;
  10.     init_gpio();
  11.     P40 = 0;
  12.     while(1)
  13.     {
  14.         P0 = ~(1 << i);
  15.         i++;         
  16.         if (i >= 8)
  17.         {
  18.             i = 1;
  19.         }                                       
  20.         Delay500ms();
  21.     }
  22. }
  23. void Delay500ms(void)        //@33.1776MHz
  24. {
  25.     unsigned long edata i;
  26.     _nop_();
  27.     _nop_();
  28.     i = 4147198UL;
  29.     while (i) i--;
  30. }
  31. void init_gpio()
  32. {
  33.     P0M0 = 0xff;
  34.     P0M1 = 0x00;
  35.     P4M0 |= 0x01;
  36.     P4M1 &= ~0x01;
  37. }
复制代码


此时可以直接按下外部复位按键 P47-nRST 进入 USB-HID 模式 烧录代码。

现象如下:
截图202412270722268031.jpg
截图202412270701176911.jpg
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:450
  • 最近打卡:2025-05-06 04:24:11

17

主题

533

回帖

1330

积分

金牌会员

积分
1330
发表于 2024-12-27 08:00:55 | 显示全部楼层
使用库函数的方式来初始化IO
  1. #include <AI8051U.H>
  2. #include <intrins.h>
  3. #include "STC32G_GPIO.h"
  4. #include "STC32G_Delay.h"
  5. void main()
  6. {       
  7.        
  8.        
  9.                 unsigned char i = 0;
  10.                 GPIO_InitTypeDef gpio;
  11.           gpio.Mode = GPIO_PullUp;
  12.                 gpio.Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
  13.        
  14.                 GPIO_Inilize(GPIO_P0,&gpio);
  15.                 gpio.Mode = GPIO_PullUp;
  16.                 gpio.Pin = GPIO_Pin_0;
  17.                 GPIO_Inilize(GPIO_P4,&gpio);
  18.                
  19.                 WTST = 0x00;
  20.                 //开启三极管
  21.           P40 = 0;
  22.                
  23.     while(1)
  24.     {
  25.         P0 = ~(1 << i);
  26.         i++;            
  27.         if (i >= 8)   
  28.             i = 1;      
  29.         delay_ms(500);  
  30.     }
  31. }
复制代码


如果再加一个Deinit的方法就好了。 实际上初始化IO之后, 使用PXX操作IO非常方便, 根本不需要额外的什么库函数方法等。 对于初始化而言STC-ISP也非常方便。 所以其实可以根据自己的喜好来选择不同的方式了。
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:450
  • 最近打卡:2025-05-06 04:24:11

17

主题

533

回帖

1330

积分

金牌会员

积分
1330
发表于 2024-12-27 08:02:09 | 显示全部楼层
需要注意的一点是,如果使用库函数的话, 需要屏蔽掉一个寄存器。否则会出现编译不过的情况。

截图202412270802066685.jpg
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:450
  • 最近打卡:2025-05-06 04:24:11

17

主题

533

回帖

1330

积分

金牌会员

积分
1330
发表于 2024-12-27 08:03:07 | 显示全部楼层
嵌入*** 发表于 2024-12-27 08:00
使用库函数的方式来初始化IO

上述代码的实验现象和使用寄存器的方式一摸一样,实际上都是操作寄存器。
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:416
  • 最近打卡:2025-05-06 08:57:51
已绑定手机

39

主题

2010

回帖

6857

积分

论坛元老

积分
6857
发表于 2024-12-27 09:09:41 | 显示全部楼层
嵌入*** 发表于 2024-12-27 08:02
需要注意的一点是,如果使用库函数的话, 需要屏蔽掉一个寄存器。否则会出现编译不过的情况。

...

你用的头文件应该是比较早的,可使用新版ISP软件更新一下。
新的头文件里面这个寄存器名称已经改成“ENUSBRST”:

截图202412270906428111.jpg
跟后面的定义名称区分开:
截图202412270908399629.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:450
  • 最近打卡:2025-05-06 04:24:11

17

主题

533

回帖

1330

积分

金牌会员

积分
1330
发表于 2024-12-27 21:43:13 | 显示全部楼层
wnag*** 发表于 2024-12-27 19:48
怎么把PCB从箱子里拿出来了?还能放进去吗?

可以放回去
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:450
  • 最近打卡:2025-05-06 04:24:11

17

主题

533

回帖

1330

积分

金牌会员

积分
1330
发表于 2024-12-27 21:43:30 | 显示全部楼层

继续努力!
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:450
  • 最近打卡:2025-05-06 04:24:11

17

主题

533

回帖

1330

积分

金牌会员

积分
1330
发表于 2024-12-27 21:49:21 | 显示全部楼层
在继续进行串口测试的时候,遇见了一点麻烦的事情。 USB cable 接 A口或者C口(非USB-2TTL)的时候,尽管不是USB模式,不知道是不是我设置的问题,在重启之后。电脑总是弹出USB插入或者退出的选项。 没办法只能使用Link 1d 来避免这个情况。
这样就可以直接使用LINK1D上带的串口来直接和板子通信。 而不需要使用USB-2TTL。 因为这个USB-2TTL在上点的时候会自动复位。 不是很好的可以观察串口的输出状态。

截图202412272150195270.jpg
截图202412272149125433.jpg
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 03:18 , Processed in 0.125570 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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