把 PCA 计数器的值读取出来,转换成对应的数值( 主要实现过程如图), 这个程序能够达到要求吗?

2019-07-15 08:33发布

这个程序主要作用是配置单片机内部的 PCA 模块相关寄存器,使其工作在捕获模式,当检测到波形的跳变时,就把 PCA 计数器的值读取出来,转换成对应的数值。( 主要实现过程如图)
这个程序能够达到要求吗?
#include<stc12c5a60s2.h> #define uchar unsigned char uchar xxx,yyy;  void PCA_Init(void) {                 CCON = 0x00;// 初始化 PCA 控制寄存器                                                                                                                                                                                                                                                   CL = 0;// 清零                                                                  CH = 0;                 CCAP0L = 0x00;                 CCAP0H = 0x00;                 CMOD = 0x08;// 设置 PCA 时钟源为系统时钟 , 且使能 PCA 计时溢出中断                  CCAPM0 = 0x21;//PCA 模块 0 双向捕获 , 且产生捕获中断                          CR = 1;                          //PCA 计时器开始运行                  EA = 1;                          // 开总中断                    } void pca_buhuo() interrupt 7 {             if (CCF0==1)               {                           CCF0 = 0; //ccf0 软件清 0                       xxx = CCAP0H;        // 保存捕获的高位数值                                      yyy = CCAP0L;        // 保存低位低位                                  CL = 0;                                                                                     CH = 0;                                           }                                          } void main() {   PCA_Init(); while(1)   {   P1=yyy ;  } }
2~)8SXT~Y%@C0}4@]AK`P8N.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。