芯Skye 发表于 2026-3-16 11:31:52

要 做到 USB不停电下载;
要 尝试 AiCube 图形化自动配置生成程序工具;
推荐优先看的:
printf_usb("Hello World !\r\n")及
USB不停电下载, 演示视频链接:
https://www.stcaimcu.com/thread-19077-1-1.html

下载 最新的 AiCube-ISP-V6.96T 或以上版本软件 !
深圳国芯人工智能有限公司-工具软件

下载 最新的 USB库函数,永远用最新的 USB库函数 !
深圳国芯人工智能有限公司-库函数
下载 最新的 用户手册 !
下载 最新的 上机实践指导书 !

下载 最新的 Ai8051U 用户手册
https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf

下载 最新的 Ai8051U 实验指导书,
有 AiCube 图形化自动配置生成程序工具使用说明
https://www.stcaimcu.com/data/do ... %AF%BC%E4%B9%A6.pdf


推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接
https://v.stcai.com/sv/1c5eec2-197fcd9b766/1c5eec2-197fcd9b766.mp4
https://v.stcai.com/sv/1fce8086-197cf2b9dd4/1fce8086-197cf2b9dd4.mp4

nethua 发表于 2026-3-16 18:17:22

今天来学习第七课:定时器中断

这节课对我来讲是最难的一课,记得上次学习冲哥的《STC32位8051单片机原理及应用》时就卡在这里了。这次好好来学习一下。

1、定时器的前言简介:这里用一个故事来侧面介绍为什么要加入定时器这个功能

2、定时器的摘要

A.定时器的介绍
B.定时器的应用
C.函数的定义、声明、调用

3、这里是先示例编辑一个无定时器代码


4、演示这个代码有多任务运行时会出现的问题,按键不准,卡顿等问题出现


5、关于定时器的介绍


6、关于定时器的应用,并实现任务1


7、首先用ISP工具生成一个定时器代码


8、定时器代码生成过程,需要按图中进行设置


9、复制定时器代码,粘贴到KEIL中


10、在KEIL中写入定时器初始化代码


11、粘贴定时器中断函数代码


12、按键代码部分编写


13、下面用实验来验证任务一代码,成功


14、关于KEIL软件中0XFD的问题的说明


15、关于KEIL软件中0XFD的问题解决办法,就是在“数”等文字后面加“XFD”即可


16、定时器的知识点介绍:8位预分频寄存器


17、定时器的知识点介绍:辅助寄存器


18、定时器的知识点介绍:模式寄存器1


19、定时器的知识点介绍:模式寄存器2


20、定时器的知识点介绍:16位重装载模式


21、定时器的知识点介绍:中断请求寄存器


22、定时器的知识点介绍:定时计算公式


23、函数的声明、定义和调用格式介绍1


24、函数的声明、定义和调用格式介绍2


25、任务2:按键后灯亮3秒后熄灭


25、任务2:按键后灯亮3秒后熄灭,代码部分


26、任务2:按键后灯亮3秒后熄灭,实验结果成功


27、任务3:救护车灯控制器,按下报警按钮,红蓝交替闪烁(LED1和LED2              表示红和蓝灯),再按一下报警按钮,红蓝灯停止


总结:这节课主要引入定时器中断函数,实际代码应用中由于多任务时系统出现问题,需要中断函数来解决。故这节课主要讲了中断函数的参数设置及用法。


nethua 发表于 2026-3-16 19:02:05

学完了定时器这一课,疑问骤然而生:
/*----任务3:救护车灯控制器,按下报警按钮,红蓝交替闪烁(LED1和LED2表示红和蓝灯),再按一下报警按钮,红蓝灯停止------*/
                #if 1
               
                if(P32==0)
                {
                        Delay20ms();
                        if(P32==0)
                        {
                                RUN_state=!RUN_state;
                                if(RUN_state==1)                //如果状态为1,运行状态
                                {
                                        Timer0_Init();                //定时器初始化,并开始计时
                                }
                                else
                                {
                               
                                        TR0=0;                        //定时器0停止计时。
                                        P00=1;
                                        P01=1;
                                }
                                while(P32==0);
                        }
                }
               
                #endif
                               
                               
        }
}

void Timer0_Isr(void) interrupt 1                //0.5秒执行一次       
{
       
        P00=state;
        P01=!state;
        state=!state;
       
       
}

在这段代码中,这里有个疑问,TR0=0定时器停止计时后,再按P32为什么定时器仍然能初始化并开始计时。而不需要先把TR0改成1。苦于手中没有实验箱,也无法进一步验证实验的准确性。

第七课已经学完,希望论坛能早点送一个AI8051实验箱,纸上谈兵终觉浅,验证还需实验箱!

再次感谢国芯论坛各位大佬管理员们,感谢AI8051U厂家,感谢冲哥!

nethua 发表于 2026-3-16 20:25:29

下面来学习一下“”USB不停电下载“的第二个实验:查询方式,查询到电脑命令后printf_usb("Hello World !\r\n")及其它


1、首先第一步,同实验一,依然是下载最新STC-ISP下载程序,然后选择”添加型号和头文件到KEIL“中


2、在ISP软件顶部,打开AICUBE功能


3、点击左上角,新建


4、在弹出窗口中进行文件名和路径等设置


5、设置完确定后弹出项目配置窗口


5、图形时钟设置,可以默认


6、USB串行总线配置


7、配置完成,点击顶部图标打开KEIL进行代码编写


8、再回到ISP工具中,选择范例程序


9、在范例程序中截取关键部分代码,并复制


10、代码粘贴到KEIL程序代码中


11、保存并编译完代码,准备下载


12、接收实验1,成功


13、接收实验2,成功


至此,任务二之查询方式打印实例,学习完毕!

nethua 发表于 2026-3-16 21:26:56

下面来学习一下“”USB不停电下载“的第三个实验:中断方式,单片机接收到中断函数命令后printf_usb("Hello World !\r\n")及其它


1、打开AICUBE


2、新建一个文件


3、按图进行文件名等设置


4、设置好文件名,确定弹出配置窗口,按下图进行参数配置


5、配置完后开始从ISP工具软件复制代码,选择代码出现位置


6、选择性代码复制


7、在KEIL中粘贴关键代码


8、编译好代码准备下载到单片机


9、中断模式,实验一:成功


9、中断模式,实验二:成功


至此,USB不停电的3个小节已经全部学习完毕!

nethua 发表于 2026-3-22 22:12:48

今天来学习第八课,感觉这节课的干货不少,知识点非常丰富。难怪总时长都快一个半小时了。学这节课也没有一次学完,断续花了2天的空闲时间。但是还是在最后一个知识点这里被难住了,周期性任务调度。多学几遍,才能顺利掌握。

1、周期性任务的摘要


2、通过任务一介绍周期性任务的一种解决办法


3、任务一的第一种办法实现代码


4、第一种方法测试视频


5、任务一引入数组概念


6、数组概念代码


7、周期性任务二,实现流水灯


8、任务二程序代码


9、任务二实验视频展示


10、周期性任务三,实验按键移动灯


11、周期性任务三代码实现


12、任务三程序实验视频展示


13、.C和.H文件的创建


13-1、创建步骤1


13-2、创建步骤2


13-3、创建步骤3


13-4、创建步骤4


13-5、创建步骤5


13-6、创建步骤6


14、结构体数组的周期性任务调度(重难点来了)


14-1、结构体数组代码方法


14-2、代码下载


14-3、实验验证:成功!


至此,第八课学完。


页: 1 [2]
查看完整版本: 打卡学习“史上最强AI8051U”教学课程