【STC15】CCP PCA PWM区别
CCP/PCA/PWM是几个功能组合在一起的名称,相当于一个模块的名称。 这个模块包括捕获(Capture)、比较(Compare)和脉宽调制(PWM)三个功能,它们通过同一个引脚输出或输入。CCP/PCA/PWM相当于一个模块的名称,是STC15比STC89单片机多出来的外设功能,被集成到单片机内部12。
具体来说,CCP/PCA/PWM模块包括以下功能:
- 捕获(Capture, C):用于外部事件的捕获,可以通过设置特定的引脚来检测外部信号的变化。
- 比较(Compare, C):用于定时或计数比较,通过设置比较值与计数器的值进行比较,触发相应的动作。
- 脉宽调制(Pulse Width Modulation, PWM):用于生成不同占空比的脉冲信号,常用于控制电机的速度或灯的亮度12。
这个模块通过不同的寄存器来控制其功能。例如:
- CMOD寄存器:用于设置PCA的工作模式,包括是否在空闲模式下继续工作、计数器溢出中断使能等。
- CCON寄存器:用于控制PCA计数器的使能、溢出标志位等。
- CCAPM寄存器:用于设置比较器的功能,如允许比较、设置匹配或捕获的条件等3。
此外,STC15单片机内部的可编程计数器阵列(PCA)包含一个16位的计数器,三个PCA模块共享这个计数器,每个模块可以工作在四种模式之一,包括定时器模式、高速脉冲输出模式、PWM输出模式和外部事件捕获模式14。
学习经验
第一次去看STC15数据手册的CCP/PCA/PWM这一章时人都懵了,这到底是个啥玩意?首先是不懂为什么要叫这个名字,CCP/PCA/PWM是一个名字还是三个名字?后来不断百度,查了很多文章,知道了CCP是英文单词Capture(捕获),Compare(比较),PWM(脉宽调制)的缩写,三个分别是不同的功能,只不过都是通过同一个引脚输出或输入;而PCA是指可编程计数器阵列(Programmable counter array),也是英文缩写,内部有一个16位的计数器;PWM就是脉冲宽度调制了,就设置不同占空比控制LED亮度的那个PWM;
所以CCP/PCA/PWM就是几个功能组合在一起的名称,相当于一个模块的名称,是STC15比STC89单片机多出来的外设功能,只不过被集成到单片机内部里去了;
就比如说之前实现PWM调节直流电机的转速,是通过定时器计时,让一个变量a不断加1,然后在中断函数中与另一个变量b进行比较,如果变量b比变量a大,就输出高电平,如果变量b比变量a小,就输出低电平,这样就输出了一定频率的波形,就是PWM,而这次使用的STC15单片机,已经把PWM用电路实现了,不用再软件编程,只需要给里面的寄存器赋初值,单片机就会自动做比较并输出高低电平,而这个实现PWM输出的电路(或者说外设)就叫CCP/PCA/PWM;CCP/PCA和PCA意思是相同的,所以有时候直接简称这个外设为PCA。
然后这个外设又分为了3个模块,每个模块对应的引脚如下图所示,每个模块都能工作在4种模式,而每个模块都有自己的配置寄存器
后面就是想让哪一个模块工作,就配置该模块的寄存器,4种工作模式也是通过配置寄存器不同的参数进行选择的,多看几遍数据手册,慢慢就懂了
原文链接:https://blog.csdn.net/weixin_46251230/article/details/126680309