手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

C8051F310中PCA0计数器实现脉冲信号计数的步骤

时间:2025-01-04 22:57:35

1、本文为了使读者的思路更清晰,直接从程序分析的角度切入对PCA0功能的理解和应用。1,在,Keil3新建工程的.c文件中声明PCA0的初始化函数和PCA0中断服务函数。

C8051F310中PCA0计数器实现脉冲信号计数的步骤

2、2,在main函数中调用刚才声明的PCA0初始化函数,PCA0的中断服务函数不用在main函数中调用,因为它有单独的中断号可以在中断触发时CPU分配指令直接进入。

C8051F310中PCA0计数器实现脉冲信号计数的步骤

3、3,PCA0初始化函数中定义你所用到的PCA0的基本功能,包括定义PCA0计数器高低字节的值,PCA0捕捉模块高低字节的值等,其中最重要的三点:使能PCA0中断,使能PCA0的正边沿捕捉功能,启动PCA0定时器。

C8051F310中PCA0计数器实现脉冲信号计数的步骤

4、4,当定义好PCA0的初始化函数,并且在main函数中调用执行后,当PCA0对应捕捉模块的I/O线上检测到由低到高正边沿电平变化时,会立即进入PCA0中断(因为在初始化函数中使能了PCA0中断和正边沿捕捉功能)。

5、5,PCA0中断函数的触发是在C8051F310对应 I 口检测到正边沿信号到来时,其中断号为11。在中断函数中读取PCA0捕捉模块高低字节PCA0CPH0和PCA0CPL0的值并保存在自己定义的变量中。该高低字节中保存的即是:在脉冲信号持续期间,PCA0对自身设定的时钟下(此处设置PCA0运行时钟为系统时钟的12分频)对振荡次数的计数。目的是:最终计算出脉冲信号在 I 口到底持续了多长时间。这个时间是标准和精确的。

C8051F310中PCA0计数器实现脉冲信号计数的步骤

6、6,当测出脉冲信号在 I 口到底持续了多长时间(单位时间),又测出到底是多少个正边沿的脉冲信号触发导致其持续了这么长时间(脉冲个数)。最终可以得到单位时间内的脉冲个数,即脉冲频率值。

C8051F310中PCA0计数器实现脉冲信号计数的步骤
© 手抄报圈