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

学习《32位8051单片机原理及应用》视频总结笔记--打卡

[复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-06-15 00:50:16
已绑定手机

15

主题

116

回帖

637

积分

高级会员

积分
637
发表于 2025-4-23 19:35:34 | 显示全部楼层 |阅读模式
情况介绍:

对电子技术有兴趣,单片机的知识也了解一些。
8位的51系列单片机应用很广,但是在深圳国芯人工智能公司这里看到支持32位/8位51指令集的MCU还是非常令人鼓舞的,性能很高。
这些日子跟着“《8051U深度入门到32位51大型实战视频》,【免费 + 包邮 送】实验箱@Ai8051U,100万套”中的视频学习了Ai8051U-32K64的MCU,对MCU有了更深的理解。
在官网和论坛中看相关信息,发现STC32G12K128是车规级的带两组CAN的芯片,教学视频关注度也很高,所以开始按照教学视频学习STC32G12K128这款MCU。
看到学习视频帖子中所说:“保姆级免费视频教程,只要你花时间学,就一定保证你会,专家免费答疑,单片机0基础开始,C语言0基础开始”,让我觉得这次学习过程应该是个轻松愉快的过程,既能学习新的知识技能,又能比较一下与Ai8051U-32K64的各自特点。

现在,

开始!

学习网址:视频教学:《32位8051单片机原理及应用》,一等奖2万, 送实验箱; 冲哥版

2025年4月23日。
学习MCU
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-06-15 00:50:16
已绑定手机

15

主题

116

回帖

637

积分

高级会员

积分
637
发表于 2025-5-10 03:47:22 | 显示全部楼层
《32位8051单片机原理及应用》教学视频--学习打卡18

第十八集:ADC采集电源电压和ADC按键

笔记:

1、ADC反推电源电压。

2、ADC扫描按键(长按循环触发)。

3、实战小练。

学习心得:

总结:

后记:

2025年5月9日。
学习MCU
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-06-15 00:50:16
已绑定手机

15

主题

116

回帖

637

积分

高级会员

积分
637
发表于 2025-5-10 01:30:16 | 显示全部楼层
《32位8051单片机原理及应用》教学视频--学习打卡17

第十七集:模数转换器ADC

笔记:

1、模数转换器(ADC)是什么。
1.1 模数转换器即A/D转换器,或简称ADC(Analog-to-digital converter),通常是指一个将模拟信号转变为数字信号的电子元件。
1.2 模拟信号的本质是连续变化的电压。数字信号的本质也是电压,是只有高低电平的跳变电压,高低电平对应0和1,并组成的二进制数。
1.3 将把模拟信号转化为数字信号的原理。
截图202505100146481645.jpg
截图202505100211162287.jpg

2、STC32G单片机ADC使用原理。
2.1 STC32G的ADC。
截图202505100157201741.jpg
最重要的一点:使用ADC功能时,有Vref引脚的单片机一定不能悬空,必须接外部参考电压源或者Vcc!!!
2.2 ADC的控制寄存器。
截图202505100223135993.jpg
截图202505100228317860.jpg
2.3 ADC的配置寄存器。
截图202505100234087094.jpg
截图202505100232302111.jpg
2.4 ADC的时序控制寄存器。
截图202505100242439676.jpg
截图202505100244283477.jpg
2.5 ADC的计算公式。
截图202505100324161896.jpg

3、编写最简单的ADC采集代码(查询&中断)。
3.1 查询方式的ADC采集。
3.2 中断方式的ADC采集。
3.3 程序代码。
代码压缩包:

学习心得:

1、ADC核心是输入与参考源电压进行比较,参考源电压按照位数(12位)进行对12次对半切分,形成对应12位比较基准,MCU将输入通道的输入电压逐次与12位比较基准进行比较,得到一个12位的二进制数。
2、参考源电压有多种取法,最精确的是采用外部高精度电压参考源。还可用MCU内部1.19V。最简单的是将外部参考电源管脚ADC_VRef+接到Vcc上。
3、ADC转换也会抖动。
4、使用ADC时要严格按照时序操作,什么时候启动,什么时候读取,该加延时加延时,该手工清除标志位手工清除。

总结:

1、学习了ADC的概念、位数、引脚、基准电压等关键名词。
2、学习了ADC的原理。
3、学习了ADC的相关寄存器的设置,以及ADC相关的计算公式。
4、学习了ADC查询方式和中断方式的用法。

后记:

2025年5月10日。
学习MCU
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-06-15 00:50:16
已绑定手机

15

主题

116

回帖

637

积分

高级会员

积分
637
发表于 2025-5-9 03:40:03 | 显示全部楼层
《32位8051单片机原理及应用》教学视频--学习打卡16

第十六集:IO中断

笔记:

1、什么是IO中断。
截图202505090349547639.jpg
截图202505090351487386.jpg
2、IO中断的用法。
截图202505090352283362.jpg
截图202505090353117002.jpg
截图202505090356026209.jpg
扩展中断的方法。(另一种利用保留中断13)

3、中断优先级的设置。
截图202505090406388521.jpg
截图202505090403422962.jpg
4、实战小练。
截图202505090405066243.jpg
学习心得:

总结:

后记:

2025年5月9日。
学习MCU
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-06-15 00:50:16
已绑定手机

15

主题

116

回帖

637

积分

高级会员

积分
637
发表于 2025-5-9 01:34:59 | 显示全部楼层
《32位8051单片机原理及应用》教学视频--学习打卡15

第十五集:外部中断

笔记:

1、中断和中断系统。
中断系统是为使 CPU 具有对外界紧急事件的实时处理能力而设置的。
1.1 什么是中断。
当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。
1.2 什么是中断系统。
实现这种功能的部件称为中断系统。
1.3 中断系统的优点。
a. CPU总是先响应优先级别最高的中断请求。
b. 中断可以嵌套,即高优先级中断可以中断低优先级中断的处理过程而先执行,执行完高优先级中断处理过程后再继续执行被中断的低优先级中断处理过程。
c. 每一个中断源可以用软件独立地控制为开中断或关中断状态。
d. 部分中断的优先级别均可用软件设置。
1.4 中断系统的中断源。
请求CPU中断的请求源称为中断源。
截图202505090206244043.jpg
截图202505090207416595.jpg
截图202505090208235994.jpg
1.5 中断优先级。
中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为它服务的时候,这就存在CPU优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别。总是先响应优先级别最高的中断请求。高优先级中断可以打断正在执行中的低优先级中断。
截图202505120316126920.jpg
1.6 列中断向量地址及同级中断优先级中断查询次序。
当两个相同优先级的中断同时产生时,将由查询次序来决定系统先响应哪个中断。
截图202505090210366579.jpg
截图202505090211227203.jpg
......
表的剩余部分查阅芯片手册。

2、 什么是外部中断。
外部中断就是在MCU的一个引脚上,由于外部因素导致一个电平的变化(由高变低或由低变高),MCU捕获这个变化,内部自主运行的程序被暂时打断,转而去执行相应的中断处理程序,执行完后又返回原来中断的地方继续执行原来的程序。
引脚带INTx标志的可作为外部中断口。
截图202505090245273989.jpg

3、外部中断的用法。
3.1 中断及中断优先级结构图。
截图202505090237566359.jpg
3.2 外部中断涉及的寄存器。
外部中断0:IT0,IE0,EX0,EA。
外部中断1:IT1,IE1,EX1,EA。
外部中断n,n=2-4:INTnIF,EXn,EA。
截图202505090309256680.jpg
截图202505090314041809.jpg
截图202505090312322281.jpg
截图202505090317537908.jpg
截图202505090320518798.jpg
截图202505090325153918.jpg
3.3 实验代码。

代码压缩包:

学习心得:

1、中断是处理外界紧急事件很好的机制。
2、中断优先级的设置能更好处理更紧急的事件。
3、中断系统是多任务的核心机制。
4、理解好中断机制,能更好利用MCU编写效率更高,体验更好的程序。

总结:

1、学习了中断及中断系统的概念及原理。
2、学习了外部中断的概念。
3、学习了如何初始化外部中断,如何使用中断。

后记:

2025年5月12日:
a. 修改中断优先级部分的错误内容。
b. 增加“1.6 列中断向量地址及同级中断优先级中断查询次序。”章节。

2025年5月12日。
学习MCU
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-06-15 00:50:16
已绑定手机

15

主题

116

回帖

637

积分

高级会员

积分
637
发表于 2025-5-9 00:59:02 | 显示全部楼层
《32位8051单片机原理及应用》教学视频--学习打卡14

第十四集:矩阵按键

笔记:

1、矩阵按键是什么。
最简单按键是一个GPIO口对应一个按键,特点简单,易于理解,按键多时占用GPIO口多。如下图所示。
截图202505090105462478.jpg
在按键数量较多时,为了减少GPIO口的占用,将按键排列成矩阵形式,称为矩阵按键。如下图所示。其GPIO口占用较少。
截图202505090112564113.jpg

2、矩阵按键的控制原理。
2.1 按键识别原理。
GPIO口默认为高电平,实时读取到引脚为低电平时表示按键按下。
2.2 按键识别步骤。
第一步:将P0.0-P0.3输出低电平,P0.6-P0.7输出高电平,此时如果有按键按下,按下的那一列的GPIO口就会变成低电平,就可以判断哪一列按键按下了。
第二步:将P0.0-P0.3输出高电平,P0.6-P0.7输出低电平,此时如果有按键按下,按下的那一行的GPIO口就会变成低电平,就可以判断哪一行按键按下了。
第三步:行列组合一下就可以判断出是哪个按键按下了。

3、矩阵按键程序的编写。
3.1 密码锁需求。
a. 通过LED0模拟门锁状态,LED点亮表示门锁打开,熄灭表示门锁锁上;
b. 增加8位数码管,可以动态显示8位的密码,无密码时显示 “- - - - - - - -”;
c. 通过矩阵按键可以输入1-8的数字表示密码,并依次显示在数码管上;
d. 每输入一个数字,蜂鸣器响20ms表示有数字按下;
e. 密码正确打开LED0,密码错误蜂鸣响2秒。
3.2 程序代码。
代码压缩包:

学习心得:

1、按键实现方法有多种,最简单的实现方法是一个GPIO口对应一个按键,这种方法GPIO口太浪费。
2、矩阵按键用扫描GPIO口对应的矩阵按键行和列的方法判断哪行哪列按键按下,从而确定哪个按键按下,节约了GPIO口。

总结:

1、学习了矩阵按键的工作原理。
2、学习了矩阵按键代码编写的过程。

后记:

2025年5月9日。
学习MCU
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-06-15 00:50:16
已绑定手机

15

主题

116

回帖

637

积分

高级会员

积分
637
发表于 2025-5-7 00:14:19 | 显示全部楼层
《32位8051单片机原理及应用》教学视频--学习打卡13

第十三集:简易多任务处理

笔记:

1、回顾。
之前课主要是熟悉写程序的方法,分析逻辑,实现功能。重点理清程序的逻辑思路。如何设置GPIO口,什么时候打开GPIO口,GPIO口打开多久,什么时候读取GPIO口。
截图202505082354524750.jpg
这一节课开始,要规范程序,熟悉工程师级别的代码规范。

2、应用模块化的编程(.c和.h)。
2.1 按照外设功能模块划分代码模块,一个代码模块一组.c和.h文件。
截图202505090000471106.jpg
2.2 函数添加注释头。可将函数注释头添加到开发环境中的模板功能里面方便选取使用。
截图202505090004354461.jpg
2.3 创建新的代码文件。
创建程序文件三步:新建文件并保存(.c和.h文件),添加.c文件到工程,添加.h文件的引用路径。
2.4 引脚定义都在.h文件中。
例如:
sbit 名称 = P10;        
#define 名称 P10
2.5 函数使用分三步。
分别为:在功能代码模块.c文件中定义,在功能代码模块.h文件中声明,在程序代码.c文件中调用。
2.6 修饰符extern的使用。
用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。
举例1:如果文件a.c需要引用b.c中变量int v,在a.c中声明extern int v,然后就可以使用变量v。
举例2:如果文件a.c需要引用b.c中变量int v,可以在b.h中声明extern int v,然后a.c中引用b.h后,就可以使用变量v。
注意:extern修饰的变量不能赋初值。
2.7 bdata位寻址变量的使用。
截图202505090030272979.jpg

3、工程文件编写。
实例讲解将之前工程分模块划分文件,并整理函数的实现方法等。
用到下面截图中的相关表格记录相关状态。
截图202505090045327979.jpg
截图202505090044261309.jpg

学习心得:

1、模块化编程使各模块各司其职,代码清晰,能快速被别的工程复用。
2、代码通过模块模块化编程实现了一定程度的解耦,能提高编码效率。
3、模块化编程能使代码易于别人读懂,易于理解。
4、编码规范和实用技巧能提高效率。

总结:

1、学习了模块化编程的一些规则和方法。
2、学习了创建文件的三个步骤。
3、学习了函数使用的三个步骤及注意事项。

后记:

2025年5月9日。
学习MCU
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-06-15 00:50:16
已绑定手机

15

主题

116

回帖

637

积分

高级会员

积分
637
发表于 2025-5-6 17:38:59 | 显示全部楼层
《32位8051单片机原理及应用》教学视频--学习打卡12

第十二集:计数器的使用

笔记:

1、计数器的用途。
只要输出信号带高低电平变化的设备,想要计算个数的就可以用MCU计数器的功能。

2、计数器的配置及简单应用。
截图202505062252265186.jpg
2.1 先设置功能为计数器(本质都加法计数器)。
截图202505062254599831.jpg
2.2 设置计数器工作模式。
截图202505062257086072.jpg
例如:
        TMOD = 0x40;;                        //设置做为计数器,工作模式为16位自动重载模式
2.3 设置计数器计数值。
截图202505062259597191.jpg
例如:
        TL1 = 0xFF;                                //设置计数初始值
        TH1 = 0xFF;                                //设置计数初始值
2.4 设置计数器控制寄存器。
截图202505062314202536.jpg
例如:
        TF1 = 0;                                //清除TF1标志
        TR1 = 1;                                //定时器1开始计时
2.5 设置中断使能。
截图202505062315242112.jpg
截图202505062316157535.jpg
例如:
        ET1 = 1;                                //使能计数器1中断
        EA = 1;                                //打开总中断
2.6 编写中断服务代码。
例如:
void Timer1_Isr(void) interrupt 3
{
        P60 = !P60;                        //led取反
}
2.7 其它设置。
截图202505062338504698.jpg
例如:
        P3PU = 0x20;                         //打开内部上拉4.1K

3、计数器的应用。
截图202505062340345651.jpg
思路:
截图202505062341447323.jpg
利用M法测速,又叫做频率测量法。这种方法是在一个固定的定时时间内(以秒为单位),统计这段时间的编码器脉冲数,计算速度值。
设单圈总脉冲数为C,时间T0内,统计到的编码器脉冲数为M0,则转速n的计算公式为:
截图202505062348386187.jpg
主要函数代码:
void Timer0_Init(void)                        //1毫秒@24.000MHz
{
        AUXR &= 0x7F;                        //定时器时钟12T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0x30;                        //设置定时初始值
        TH0 = 0xF8;                        //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
        ET0 = 1;                                //使能定时器0中断
}
void Timer1_Init(void)                        //计数器初始化
{
        TMOD = 0x50;                        //设置计数器模式   
        TL1 = 0x00;                        //设置计数初始值
        TH1 = 0x00;                        //设置计数初始值
        TF1 = 0;                                //清除TF1标志
        TR1 = 1;                                //定时器1开始计时
        ET1 = 1;                                //使能定时器1中断
}
void Timer0_Isr(void) interrupt 1
{
        TimCount++;                                        //每隔1ms+1                //计数到2000 = 2s
        if( TimCount>=2000 )                                //2秒定时时间到了
        {
                TimCount = 0;
                Count_T1 = (TH1 *256 )+ TL1;        //转/2s  转/min
                TH1 = 0;
                TL1 = 0;
                Show_Tab[4] = Count_T1/1000%10;
                Show_Tab[5] = Count_T1/100%10;        
                Show_Tab[6] = Count_T1/10%10;               
                Show_Tab[7] = Count_T1/1%10;        //取10位
        }
        SEG_Fre();                                        //数码管刷新的
}
void Timer1_Isr(void) interrupt 3
{
}
主程序中主要设置代码:
        P3PU = 0x20;                         //打开内部上拉4.1K
        EA = 1;                                //CPU开放中断,打开总中断。

学习心得:

1、计数器的使用与定时器非常象。设置很类似。从逻辑电路上看只是信号脉冲来源发生改变。
2、定时时和计数是最基本的度量量,通过不同电路将信号引入MCU,利用定时、计数功能结合MCU的中断机制,可完成很多测量工作。

总结:

1、学习了计数器的概念、特点、应用场景。
2、学习了计数器的设置步骤及对应寄存器值对应的特征。
3、学习了M法测速,又叫频率测量法。
4、还有T法测速,又叫做周期测量法。这种方法是建立一个已知频率的高频脉冲并对其计数,计数时间由捕获到的编码器相邻两个脉冲的间隔时间TE决定,计数值为M1。设单圈总脉冲数为C,高频脉冲的频率为F0,则转速n的计算公式为:
截图202505070011034943.jpg


后记:

2025年5月6日。
学习MCU
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:427
  • 最近打卡:2025-06-16 07:22:36
已绑定手机

10

主题

155

回帖

810

积分

高级会员

积分
810
发表于 2025-5-5 09:39:22 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-06-15 00:50:16
已绑定手机

15

主题

116

回帖

637

积分

高级会员

积分
637
发表于 2025-5-5 04:11:19 | 显示全部楼层
《32位8051单片机原理及应用》教学视频--学习打卡11

第十一集:定时器的使用

笔记:

1、定时器的作用和意义。
1.1 利用延时函数在程序主循环中实现定时的办法存在程序进入耗时循环影响定时准确度的问题,这个方法简单但是问题不少,尽量少用。
1.2 利用中断方式可以很好的解决精确定时问题。
截图202505060425506766.jpg
1.3 利用定时器从硬件上解决精确定时,并少占MCU的运行资源。替代长时间的delay()函数,提高MCU的运行效率和处理速度,能及时的响应中断并执行中断处理函数中的代码。
1.4 定时器是定时器和计数器的统称,可设置为2种模式进行工作。设置为定时器时,可实现硬件计时,使程序每隔一固定时间完成一项操作;设置为计数器时,能够对脉冲进行计数。

2、STC32G单片机定时器使用原理。
定时器/计数器的核心部件是一个加法计数器,其本质是对脉冲进行计数。
只是计数脉冲来源不同:如果计数脉冲来自系统时钟,则为定时方式,此时定时器/计数器每12个时钟或者每1个时钟得到一个计数脉冲,计数值加1;如果计数脉冲来自单片机外部引脚,则为计数方式,每来一个脉冲加1。
截图202505060449254815.jpg
STC32G系列单片机内部设置了5个24位定时器/计数器(8位预分频+16位计数)。5 个定时器T0、T1、T2、T3和T4都具有计数方式和定时方式两种工作方式。
定时器/计数器在MCU中用特定电路来实现其功能,在电路逻辑上这些功能与MCU的相关寄存器紧密相联。
要使用定时器,必须先设置定时器的相关参数,然后编写定时器中断函数并与对应中断号关联,最后打开中断使能寄存器使定时器中断功能开始执行。
具体详细步骤如下:
2.1 先设置功能为定时器/计数器(本质都是加法计数器)。
对定时器/计数器T0,用特殊功能寄存器TMOD中的控制位T0_C/T来选择T0为定时器还是计数器。
对定时器/计数器T1,用特殊功能寄存器TMOD中的控制位T1_C/T来选择T1为定时器还是计数器。
对定时器/计数器T2,用特殊功能寄存器AUXR中的控制位T2_C/T来选择T2为定时器还是计数器。
对定时器/计数器T3,用特殊功能寄存器T4T3M中的控制位T3_C/T来选择T3为定时器还是计数器。
对定时器/计数器T4,用特殊功能寄存器T4T3M中的控制位T4_C/T来选择T4为定时器还是计数器。
截图202505061552341580.jpg
例如:TMOD &= 0xF0;                        //设置做为定时器进行工作及设置定时器工作模式
2.2 在定时器模式下,设置不分频或者12分频。
截图202505061556141296.jpg
例如:AUXR &= 0x7F;                        //定时器时钟12T模式
2.3 设置定时器的工作模式。
截图202505061554097779.jpg
截图202505061604254766.jpg
例如:TMOD &= 0xF0;                        //设置做为定时器进行工作及设置定时器的工作模式
2.4 设置定时器计数值。
截图202505061611165206.jpg
定时器0有两个隐藏的寄存器RL_TH0和RL_TL0。RL_TH0与TH0共有同一个地址,RL_TL0与TL0共有同一个地址。
当TR0=0即定时器/计数器0被禁止工作时,对TL0写入的内容会同时写入RL_TL0,对TH0写入的内容也会同时写入RL_TH0。
当TR0=1即定时器/计数器0被允许工作时,对TL0写入内容,实际上不是写入当前寄存器TL0中,而是写入隐藏的寄存器RL_TL0中,对TH0写入内容,实际上也不是写入当前寄存器TH0中,而是写入隐藏的寄存器 RL_TH0,这样可以巧妙地实现16位重装载定时器。
当读TH0和TL0的内容时,所读的内容就是TH0和TL0的内容,而不是RL_TH0和RL_TL0的内容。
例如:
TL0 = 0xFB;                                //设置定时初始值
TH0 = 0xF2;                                //设置定时初始值
2.5 设置定时器控制寄存器。
截图202505061620357690.jpg
例如:
TF0 = 0;                                //清除TF0标志
TR0 = 1;                                //定时器0开始计时
2.6  设置中断使能。
截图202505061625552761.jpg
截图202505061627129233.jpg
例如:
ET0 = 1;                 //允许T0中断
EA = 1;                   //打开总中断
2.7 编写中断服务代码。
在程序代码中添加中断服务函数。
例如:
void timer0_int (void) interrupt 1
{
    P00 = ~P00;
}

3、定时器的简单应用。
截图202505061704428234.jpg
截图202505061706035770.jpg
截图202505061706258209.jpg
3.1 定时器设置及初始化函数。
例如:
void Timer0_Init(void)                //1毫秒@24.000MHz
{
        AUXR &= 0x7F;                        //定时器时钟12T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0x30;                                //设置定时初始值
        TH0 = 0xF8;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
        ET0 = 1;                                //使能定时器0中断
}
3.2 定时器中断服务函数。
例如:
void timer0_int (void) interrupt 1
{
    P00 = ~P00;
}
3.3 主程序中打开总中断。
例如:
EA = 1;                   //打开总中断

4、定时器的快速使用方法。
在AIapp-ISP下载软件中利用“定时器计算器”便捷生成定时器设置函数。
截图202505061710107094.jpg

学习心得:

1、定时器/计数器基于硬件加法器电路实现,都可以产生硬件中断。
2、定时器/计数器工作模式多样,在使用前必须设置相关参数使其工作在适当模式。
3、定时器/计数器与MCU中断功能结合,提高MCU的运行效率和处理速度。
4、仔细查看芯片手册,理出清晰的设置步骤以及相应的寄存器参数值与功能的对应关系。
5、利用官方工具能提高编码效率。

总结:

1、学习了定时器/计数器的概念、功能、设置步骤、使用方法。
2、初步学习了中断功能。
3、练习了查看芯片手册方法,将功能、逻辑电路、寄存器、寄存器值与功能对应关系、代码实现方法等串联起来。

后记:

2025年5月6日。
学习MCU
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 03:35 , Processed in 0.203639 second(s), 97 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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