找回密码
 立即注册
查看: 1421|回复: 20

已收到AI8051U实验箱,《8051U深度入门到32位51大型实战视频》学习记录贴

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-04-10 16:59:05

45

主题

69

回帖

1235

积分

金牌会员

积分
1235
发表于 2024-12-14 14:55:00 | 显示全部楼层 |阅读模式
编程环境,软件准备

软件准备

软件准备

1.keil v5;
2.官方新版Aiapp-isp 软件;
3.Ai8051u规格书;
4.Ai8051u实验箱列程包;
5.列程包中有:Keil中断向量号拓展插件

官方资料下载处

官方资料下载处

操作步骤:
1.安装完keil,没有stc相关头文件等资料。
2.打开Aiapp-isp软件,点击(keil仿真设置)标签页,点击(添加型号和头文件到keil中)按钮,弹出对话框中选中正确选择keil安装目录(keil安装路径顶层),点确定。

keil仿真设置标签页

keil仿真设置标签页

添加stc型号和头文件到keil

添加stc型号和头文件到keil

3.解压Ai8051u实验箱列程包,打开Keil中断向量号拓展插件,正确选择keil安装目录。
4.PDIP40封装的是pintopin兼容经典89c51,可以直接用于以前的经典51开发板。
5.推荐32bit模式,打开跑马灯程序,根据自己手头的硬件适当修改程序。重新编译。
6.下载hex软件到单片机运行。正确选择芯片型号,正确选择串口号,选择选择8bit 或 32bit(根据自己第5步选择的模式),设置好单片机频率,点击打开程序文件按钮,选择刚才编译好的hex文件。

下载hex软件到单片机

下载hex软件到单片机

7.点击下载/编程按钮,板子重新上电,提示下载成功,观察实验现象(有跑马灯现象,说明基本软件环境已经搭建完毕)。







1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-04-10 16:59:05

45

主题

69

回帖

1235

积分

金牌会员

积分
1235
发表于 2024-12-17 12:12:41 | 显示全部楼层

感谢江苏国芯吴芳芳销售美眉,效率杠杠的qiang ,接下来就是愉快的耍

1.jpg

2.jpg

3.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-04-10 16:59:05

45

主题

69

回帖

1235

积分

金牌会员

积分
1235
发表于 2024-12-14 15:08:58 | 显示全部楼层
老板子非常推荐:80芯愿兑换 擎天柱-AI8051U转89C52-DIP40核心功能板
USB 下载方法 一,P3.2 按键,再结合停电上电 进自带USB直接下载
1、按下板子上的 P3.2/INT0 按键,就是 P3.2 接地
2、给目标芯片重新上电,不管之前是否已通电。
---电子开关是按下停电后, 再松开就是上电
    等待电脑端 ISP 下载软件中自动识别出“(HID1) USB Writer”后,
   就与 P3.2 状态无关了,这时可以松开 P3.2 按键
   (P3.2 在用户程序区可做其它任意用途)
---传统的机械自锁紧开关是按上来停电,按下去是上电
3,点击电脑端下载软件中的【下载/编程】按钮
     (注意:USB 下载与串口下载的操作顺序不同)
下载进行中,几秒钟后,提示下载成功!

USB 下载方法 二,复位管脚低电平复位, 进自带USB直接下载
USB 连接好并已上电的情况下,外部按键复位也可进入 USB 下载模式,
注意:P4.7-nRST 出厂时默认是 P4.7-I/0 功能,
要改为复位功能,需 ISP 烧录时取消 设置复位脚用作 I/0口,停电一次再上电才生效,
程序区中用户程序也可改为复位脚或 I/0,这个立即生效。
1,按下 P4.7-nRST 外接的低电平复位按键复位 MCU,松开复位键,
MCU从系统程序区启动,判断是否要下载用户程序,
等待电脑端 ISP 下载软件中自动识别出“(HID1)USB writer”后
2,点击电脑端下载软件中的【下载/编程】按钮下载进行中,
几秒钟后,提示下载成功!

USB 下载方法 三,从用户程序区软复位到系统区下载】
USB 连接好并已上电的情况下,
从用户程序区软复位到系统区也可进入 USB 下载模式
1,在用户程序区运行软复位到系统区的程序,
   就是IAP CONTR 寄存器送 60H。
   等待电脑端 ISP 下载软件中自动识别出“(HID1) USB Writer”后
2,点击电脑端下载软件中的【下载/编程】按钮
   下载进行中,几秒钟后,提示下载成功!

1.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:156
  • 最近打卡:2025-05-07 08:55:25
已绑定手机

15

主题

630

回帖

738

积分

高级会员

积分
738
发表于 2024-12-14 16:04:08 | 显示全部楼层
xujib*** 发表于 2024-12-14 15:08
老板子非常推荐:80芯愿兑换 擎天柱-AI8051U转89C52-DIP40核心功能板
USB 下载方法 一,P3.2 按键,再结合 ...

我本想这样干  结果你都实现了
STC 666 888
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-04-10 16:59:05

45

主题

69

回帖

1235

积分

金牌会员

积分
1235
发表于 2024-12-14 17:02:27 | 显示全部楼层

新建工程
1.在自己指定的位置新建工程文件夹,重命名文件夹。
2.打开keil软件,project->new uVision project,弹出对话框,选择刚才新建的文件夹路径,输入工程名称

新建工程1

新建工程1

3.选择stc muc,选择ai8051u-32bit,然后点击ok。

选择stc

选择stc

选择芯片

选择芯片

4.打开文件夹,keil自动生成的项目文件。在此目录右键新建文本文档,重命名为main.c(文件夹选项,查看便签页,勾选文件扩展名)

自动生成的文件

自动生成的文件

勾选文件扩展名

勾选文件扩展名

5.keil软件中,选择Source Group,右键单击选择Add Existing....,添加main.c文件

添加main文件

添加main文件

6.设置工程,Output选项卡勾选Create hex。

设置工程

设置工程

勾选Createhex

勾选Createhex

7.添加头文件,可以在Aiapp-isp头文件选项卡中选择。也可以在keil安装目录Keil_v5\C251\INC\STC(已通过上一课添加头文件操作)复制相应头文件。

Aiapp-isp头文件

Aiapp-isp头文件

keil头文件

keil头文件

8.点亮一颗led程序,根据自己硬件电路,适当修改程序,编译下载验证。

点亮一颗led

点亮一颗led

  1. #include "ai8051u.h"  //头文件
  2. void main(void)                //主函数
  3. {
  4.         P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
  5.         P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  6.         P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  7.         P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  8.         P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  9.         P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口        
  10.         P0 = 0;     //全部熄灭
  11.         while(1)
  12.         {
  13.             P00 = 1;                //LED1 On
  14.         }
  15. }
复制代码

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-04-10 16:59:05

45

主题

69

回帖

1235

积分

金牌会员

积分
1235
发表于 2024-12-14 21:10:31 | 显示全部楼层
GPIO:通用输入输出端口。手册第13章 IO口
Ai8051U 系列单片机所有的 I/O 口均有 4 种工作模式:准双向口/弱上拉(标准 8051 输出口模式)、推挽输出/强上拉、高阻输入(电流既不能流入也不能流出)、开漏模式。
端口默认复位高电平。
按键输入 控制点灯

  1. #include "ai8051u.h"  //头文件
  2. #include <intrins.h>  //_nop_() 函数
  3. unsigned char state = 0; //初始值为0
  4. void Delay20ms(void);
  5. void main(void)                //主函数
  6. {
  7.         WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  8.         EAXFR = 1; //扩展寄存器(XFR)访问使能
  9.         CKCON = 0; //提高访问XRAM速度  
  10.       
  11.         P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
  12.         P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  13.         P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  14.         P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  15.         P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  16.         P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口      
  17.       
  18.         P0 = 0;        //LED 全熄灭
  19.         while(1)
  20.         {
  21. //                //任务1:按下P32按钮灯亮,松开P32灯灭
  22. //                if(P32 == 0) //判断P32按钮是否按下
  23. //                {
  24. //                        P00 = 1; //led1亮
  25. //                }
  26. //                else
  27. //                {
  28. //                        P00 = 0; //led1灭
  29. //                }
  30.                
  31. //                //任务2:按下P32按钮灯灭,松开P32灯亮
  32. //                if(P32 == 0) //判断P32按钮是否按下
  33. //                {
  34. //                        P00 = 0; //led1灭
  35. //                }
  36. //                else
  37. //                {
  38. //                        P00 = 1; //led1亮
  39. //                }
  40.                
  41.                 //任务3:按一下灯亮,按一下灯灭
  42.                 if(P32 == 0) //判断P32按钮是否按下
  43.                 {
  44.                         Delay20ms(); //消抖
  45.                         if(P32 == 0) //P32按钮按下
  46.                         {
  47.                                 state = !state;                                                        //变量取反
  48.                                 P00 = state;
  49.                                 while(P32 == 0);  //等待松手
  50.                         }
  51.                 }      
  52.         }
  53. }
  54. void Delay20ms(void)        //@24.000MHz
  55. {
  56.         unsigned long edata i;
  57.         _nop_();
  58.         _nop_();
  59.         i = 119998UL;
  60.         while (i) i--;
  61. }
复制代码

端口组合模式

端口组合模式

高度电平有效极限值

高度电平有效极限值

延时函数生成

延时函数生成
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-04-10 16:59:05

45

主题

69

回帖

1235

积分

金牌会员

积分
1235
发表于 2024-12-15 09:58:50 | 显示全部楼层
定时器中断  手册第16章 定时器/计数器
实验1现象:LED0 3秒亮一次 3秒灭一次   LED1 按键按一下灯亮,按一下灯灭
实验2现象:按下按钮 LED0 点亮,3秒后LED0熄灭
实验3:按下P32,LED0 LED1交替闪烁,再按下P32,LED0 LED1都熄灭



定时器中断的作用

定时器中断的作用

ISP配置定时器

ISP配置定时器

定时器计算

定时器计算

定时器中断.7z

10.1 KB, 下载次数: 50

任务1

定时器中断2.7z

10.05 KB, 下载次数: 48

任务2

定时器中断3.7z

10.26 KB, 下载次数: 51

任务3

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-04-10 16:59:05

45

主题

69

回帖

1235

积分

金牌会员

积分
1235
发表于 2024-12-15 16:54:36 | 显示全部楼层
定时器周期调度任务 上

任务1:定时器中断不同频率闪烁 led1 300ms闪烁  led2 600ms闪烁  led3 900ms闪烁
任务2:按下按键,led通过数组移动一下 阻塞
任务3:按下按键,led通过数组移动一下 非阻塞

定时器中断不同频率闪烁.7z

5.27 KB, 下载次数: 49

数值变量定时器中断按键移位.7z

10.4 KB, 下载次数: 49

数值变量定时器中断按键移位非阻塞.7z

10.56 KB, 下载次数: 50

数值变量阻塞按键移位指示灯.7z

5.73 KB, 下载次数: 47

数值变量非阻塞按键移位指示灯.7z

5.71 KB, 下载次数: 46

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-04-10 16:59:05

45

主题

69

回帖

1235

积分

金牌会员

积分
1235
发表于 2024-12-15 20:49:55 | 显示全部楼层
定时器周期调度任务 下

模块分离:
1.在工程文件夹中新建3个文件夹,命名(可自取)最好有意义,lst obj usr

新建3文件夹

新建3文件夹

2.点击keil 魔术棒(设置)按钮,output标签页,select forder for object 按钮,选择obj文件夹

output标签页

output标签页

3.listing标签页,select forder for listing 按钮,选择lst文件夹

listing标签页

listing标签页

4.c251标签页,Include Paths(头文件搜索路径)按钮,添加usr文件夹

c251标签页

c251标签页

5.进入usr文件夹,新建两个重名.c .h文件,点击keil 品字按钮,添加新增的c文件

添加新增的c文件

添加新增的c文件



模块分离及任务调度.7z

6.39 KB, 下载次数: 45

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-04-10 16:59:05

45

主题

69

回帖

1235

积分

金牌会员

积分
1235
发表于 2024-12-16 10:49:02 | 显示全部楼层
数码管   上
这一集视频不太适合没硬件的人观看,完全一脸懵。
幸好本人开发板可以搭建使用



点击ISP软件工具->字库生成工具->(绿色8)LED数码管生成工具
2.jpg
  1. u8 SEG_NUM[]=
  2. {
  3.     0x3F,       /*'0', 0*/
  4.     0x06,       /*'1', 1*/
  5.     0x5B,       /*'2', 2*/
  6.     0x4F,       /*'3', 3*/
  7.     0x66,       /*'4', 4*/
  8.     0x6D,       /*'5', 5*/
  9.     0x7D,       /*'6', 6*/
  10.     0x07,       /*'7', 7*/
  11.     0x7F,       /*'8', 8*/
  12.     0x6F,       /*'9', 9*/
  13.     0x77,       /*'A', 10*/
  14.     0x7C,       /*'B', 11*/
  15.     0x39,       /*'C', 12*/
  16.     0x5E,       /*'D', 13*/
  17.     0x79,       /*'E', 14*/
  18.     0x71,       /*'F', 15*/
  19.     0x40,       /*'-', 16*/
  20.     0x00,       /*' ', 17*/
  21.     0x80,       /*'.', 18*/
  22. };
复制代码
1.jpg

74hc595引脚.png

74HC595芯片中文资料.pdf

97.7 KB, 下载次数: 38

shu码管.7z

6.83 KB, 下载次数: 50

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-03-27 14:27:24
已绑定手机

7

主题

29

回帖

283

积分

中级会员

积分
283
发表于 2024-12-16 11:15:27 来自手机 | 显示全部楼层
太棒了
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 22:47 , Processed in 0.161890 second(s), 118 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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