单片机的PCA模块

单片机的PCA模块
PCA(可编程计数器阵列Programmable Counter Array)可编程计数器阵列(PCA)提供增强的定时器功能,
与标准8051计数器/定时器相比,它需要较少的CPU干预。由高字节(PCAH)和低字节(PCAL)组成。
使用单片机的pca模块可以实现pwm功能,比如要输出一个固定的频率,那么单片机只要开机时,把pca的相关寄存器配置一下,频率就出来了,单片机也不用再去管理,换个说法就是后台运行了。单片机就可以去做其他的事情
,即你说的连续发脉冲时,不中断其他运行中的程序。多路发出也可以,频率也可以不同,关键看单片机的功能。
pca指的试可编程计数器阵列,就是我说的pwm模块了,有这个的,就一定有pwm功能,不只是pwm,还有好多其他功能,比如捕捉(测脉宽)、高速输出、频率输出等。

是一个具有捕获功能的16定时器,高八位TH0,低八位TL0,CCON寄存器控制着定时器的计数与中断请求。

CR=1表示开始计数,CCON最低位加上CMOD的最低位可以控制产生中断。中断的向量是7,进和中断时,必须首先将 sbit CCF0 = CCON^0; //PCA 模块0 中断标志, 由硬件置位, 必须由软件清0。软件清0,再进行其它他操作

对于PCA计数阵列的计数频率则由CMOD的低三位控制,可以用此来控制计数频率,如以FOSC或分频计数均可。

每个PCA阵列均有两个模式控制寄存器,CCAPM0或1,它控制着PCA进行何种操作,如捕获,上升沿捕获,高速输出 ,输出,可以直接通过设置来设置PCA的需要完成的功能。

它有两个捕获模块,CCAP0H和CCAP0L:

当为PWM输出时,一般为8位PWM模式,PWM实现方法,因为是8位,CL基础计数器从0xFF递减到0x00,溢出后将CCAP0H的值加载到CCAP0L,若CL递减过程中,若大于CCAP0L,则输出高电平,否则为低电平。

当作为16位软件定时器时,那么就存放定时值,当计数器的值与CCAP0H和CCAP0L中的值相等时,产生表示计数时间到,可以产生中断去执行其它操作。

当作为捕获功能时,外部引脚,为STC60S2时,外部引脚为P1.3和P1.4,当外部引脚输入上升沿或下降沿触发时,将CL和CH的值捕获到CCAP0H和CCAP0L,完成捕获功能。

猜你喜欢

转载自blog.csdn.net/weixin_43352501/article/details/103416992