STC15W401AS系列单片机CCP/PWM/DCA寄存器介绍笔记(持续更新)
开门见山
CCP:compare/ capture/ PWM,即比较,捕获,PWM
PWM:Pulse Width Modulation,脉冲宽度调制
PCA:Programmable Counter Array,可编程计数器阵列
三者的关系:PCA包括多个计数器和比较器,可以通过编程实现CCP的功能,而CCP的功能包含了输出PWM的功能。
以下是寄存器表及手册搬运。

CPS2、CPS1、CPS0:PCA计数脉冲源选择控制位。PCA计数脉冲选择如下表所示。
如:当CPS2,CPS1,CPS0配置为1,0,0时,即100模式,直接使用系统时钟作为时钟源,PWM频率为:$$Freq_{pwm} = \frac{SYSclk}{256} $$
使用定时器0,即010模式,可以通过改变溢出脉冲值来对SYSclk实现1~65536任意分频
ECF:PCA计数溢出中断使能 。 当ECF = 0时,禁止寄存器CCON中CF位的中断; 当ECF = 1时,允许寄存器CCON中CF位的中断。
CF:PCA计数器阵列溢出标志位。当PCA计数器溢出时,CF由硬件置位。如果CMOD寄存器的ECF位置位,CF标志可用来产生中断。CF位可通过硬件或软件置位,但只可通过软件清零。所以在调用相应中断函数后,手动清除置位。
CR:PCA计数器阵列运行控制位。软件控制, 置位,启动PCA计数器阵列计数。清零,关闭PCA计数器阵列计数。
CCF2:PCA模块2中断标志。当出现匹配或捕获时该位由硬件置位。该位必须通过软件清零。
CCF1:PCA模块1中断标志。当出现匹配或捕获时该位由硬件置位。该位必须通过软件清零。
CCF0:PCA模块0中断标志。当出现匹配或捕获时该位由硬件置位。该位必须通过软件清零。
ECOM0:允许比较器功能控制位,当ECOM0=1时,使能比较器功能。
CAPP0:正捕获控制位,当CAPP0=1时,允许上升沿捕获。
CAPN0:负捕获控制位,当CAPN0=1时,允许下降沿捕获。
MAT0: 匹配控制位,当MAT0=1时,PCA计数值与模块的比较/捕获寄存器的值的匹配将置位CCON寄存器的中断标志位CCF0。
TOG0: 翻转控制位 当TOG0=1时,工作在PCA高速脉冲输出 PCA计数器的值与模块的比较/捕获 寄存器的值的匹配将使CCP0脚翻转。
PWM0: 脉宽调节模式。 当PWM0=1时, CCP0脚用作脉宽调节输出。
ECCF0: 使能CCF0中断。使能寄存器CCON的比较/捕获标志CCF0,用来产生中断。
CCP1,CCP2不再介绍
注:输出多路PWM波时,只可以用以下几种组合:
CCP_S1 | CCP_S0 | CCP0 | CCP1 | CCP2 |
0 | 0 | P11 | P10 | P37 |
0 | 1 | P35 | P36 | P37 |
1 | 0 | P25 | P26 | P27 |
1 | 1 | 无效 |
每个CCP模块可编程工作在4种模式下:上升/下降沿捕获、软件定时器、高速脉冲输出、可调制脉冲宽度输出