已收到AI8051U实验箱,《8051U深度入门到32位51大型实战视频》学习记录贴
编程环境,软件准备1.keil v5;
2.官方新版Aiapp-isp 软件;
3.Ai8051u规格书;
4.Ai8051u实验箱列程包;
5.列程包中有:Keil中断向量号拓展插件
操作步骤:
1.安装完keil,没有stc相关头文件等资料。
2.打开Aiapp-isp软件,点击(keil仿真设置)标签页,点击(添加型号和头文件到keil中)按钮,弹出对话框中选中正确选择keil安装目录(keil安装路径顶层),点确定。
3.解压Ai8051u实验箱列程包,打开Keil中断向量号拓展插件,正确选择keil安装目录。
4.PDIP40封装的是pintopin兼容经典89c51,可以直接用于以前的经典51开发板。
5.推荐32bit模式,打开跑马灯程序,根据自己手头的硬件适当修改程序。重新编译。
6.下载hex软件到单片机运行。正确选择芯片型号,正确选择串口号,选择选择8bit 或 32bit(根据自己第5步选择的模式),设置好单片机频率,点击打开程序文件按钮,选择刚才编译好的hex文件。
7.点击下载/编程按钮,板子重新上电,提示下载成功,观察实验现象(有跑马灯现象,说明基本软件环境已经搭建完毕)。
<p>感谢江苏国芯吴芳芳销售美眉,效率杠杠的<img alt="qiang" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/qiang.gif" title="qiang" /> ,接下来就是愉快的耍</p>
<p><img src="data/attachment/forum/202412/17/121143zpd960pauqk5rps0.jpg" alt="1.jpg" title="1.jpg" /></p>
<p><img src="data/attachment/forum/202412/17/121149jg9g9apar6lrrazr.jpg" alt="2.jpg" title="2.jpg" /></p>
<p><img src="data/attachment/forum/202412/17/121155qcyw3gl2l9hg7xzy.jpg" alt="3.jpg" title="3.jpg" /></p>
老板子非常推荐: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,点击电脑端下载软件中的【下载/编程】按钮
下载进行中,几秒钟后,提示下载成功!
xujibicool 发表于 2024-12-14 15:08
老板子非常推荐:80芯愿兑换 擎天柱-AI8051U转89C52-DIP40核心功能板
USB 下载方法 一,P3.2 按键,再结合 ...
我本想这样干结果你都实现了
新建工程
1.在自己指定的位置新建工程文件夹,重命名文件夹。
2.打开keil软件,project->new uVision project,弹出对话框,选择刚才新建的文件夹路径,输入工程名称
3.选择stc muc,选择ai8051u-32bit,然后点击ok。
4.打开文件夹,keil自动生成的项目文件。在此目录右键新建文本文档,重命名为main.c(文件夹选项,查看便签页,勾选文件扩展名)
5.keil软件中,选择Source Group,右键单击选择Add Existing....,添加main.c文件
6.设置工程,Output选项卡勾选Create hex。
7.添加头文件,可以在Aiapp-isp头文件选项卡中选择。也可以在keil安装目录Keil_v5\C251\INC\STC(已通过上一课添加头文件操作)复制相应头文件。
8.点亮一颗led程序,根据自己硬件电路,适当修改程序,编译下载验证。
#include "ai8051u.h"//头文件
void main(void) //主函数
{
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 = 0; //全部熄灭
while(1)
{
P00 = 1; //LED1 On
}
}
GPIO:通用输入输出端口。手册第13章 IO口
Ai8051U 系列单片机所有的 I/O 口均有 4 种工作模式:准双向口/弱上拉(标准 8051 输出口模式)、推挽输出/强上拉、高阻输入(电流既不能流入也不能流出)、开漏模式。
端口默认复位高电平。
按键输入 控制点灯
#include "ai8051u.h"//头文件
#include <intrins.h>//_nop_() 函数
unsigned char state = 0; //初始值为0
void Delay20ms(void);
void main(void) //主函数
{
WTST = 0;//设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR = 1; //扩展寄存器(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
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 = 0; //LED 全熄灭
while(1)
{
// //任务1:按下P32按钮灯亮,松开P32灯灭
// if(P32 == 0) //判断P32按钮是否按下
// {
// P00 = 1; //led1亮
// }
// else
// {
// P00 = 0; //led1灭
// }
// //任务2:按下P32按钮灯灭,松开P32灯亮
// if(P32 == 0) //判断P32按钮是否按下
// {
// P00 = 0; //led1灭
// }
// else
// {
// P00 = 1; //led1亮
// }
//任务3:按一下灯亮,按一下灯灭
if(P32 == 0) //判断P32按钮是否按下
{
Delay20ms(); //消抖
if(P32 == 0) //P32按钮按下
{
state = !state; //变量取反
P00 = state;
while(P32 == 0);//等待松手
}
}
}
}
void Delay20ms(void) //@24.000MHz
{
unsigned long edata i;
_nop_();
_nop_();
i = 119998UL;
while (i) i--;
}
定时器中断手册第16章 定时器/计数器
实验1现象:LED0 3秒亮一次 3秒灭一次 LED1 按键按一下灯亮,按一下灯灭
实验2现象:按下按钮 LED0 点亮,3秒后LED0熄灭
实验3:按下P32,LED0 LED1交替闪烁,再按下P32,LED0 LED1都熄灭
定时器周期调度任务 上
任务1:定时器中断不同频率闪烁 led1 300ms闪烁led2 600ms闪烁led3 900ms闪烁
任务2:按下按键,led通过数组移动一下 阻塞
任务3:按下按键,led通过数组移动一下 非阻塞
定时器周期调度任务 下
模块分离:
1.在工程文件夹中新建3个文件夹,命名(可自取)最好有意义,lst obj usr
2.点击keil 魔术棒(设置)按钮,output标签页,select forder for object 按钮,选择obj文件夹
3.listing标签页,select forder for listing 按钮,选择lst文件夹
4.c251标签页,Include Paths(头文件搜索路径)按钮,添加usr文件夹
5.进入usr文件夹,新建两个重名.c .h文件,点击keil 品字按钮,添加新增的c文件
数码管 上
这一集视频不太适合没硬件的人观看,完全一脸懵。
幸好本人开发板可以搭建使用{:touxiao:}
点击ISP软件工具->字库生成工具->(绿色8)LED数码管生成工具
u8 SEG_NUM[]=
{
0x3F, /*'0', 0*/
0x06, /*'1', 1*/
0x5B, /*'2', 2*/
0x4F, /*'3', 3*/
0x66, /*'4', 4*/
0x6D, /*'5', 5*/
0x7D, /*'6', 6*/
0x07, /*'7', 7*/
0x7F, /*'8', 8*/
0x6F, /*'9', 9*/
0x77, /*'A', 10*/
0x7C, /*'B', 11*/
0x39, /*'C', 12*/
0x5E, /*'D', 13*/
0x79, /*'E', 14*/
0x71, /*'F', 15*/
0x40, /*'-', 16*/
0x00, /*' ', 17*/
0x80, /*'.', 18*/
};
太棒了