微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 用stc12c5a60s2单片机PCA模块捕获模式测占空比,请大神指点

用stc12c5a60s2单片机PCA模块捕获模式测占空比,请大神指点

时间:10-02 整理:3721RD 点击:
用串口调试的结果一直是00,
#include<stc12c5a60s2.h>
#define uchar unsigned char
uchar xxx,yyy;
void InitUART(void)
{
    ES = 0;                                                               //禁止串口中断
    TMOD = 0x20;                                                   //设置T1为波特率发生器
    SCON = 0x50;                                                   //0101,0000 8位数据位,无奇偶校验
    TH1 = 256-(11059200/12/32/9600);                //11.0592MHz晶振,波特率 = 9600   TH1=0xff-11059200/12/32/9600
    TL1 = TH1;
    PCON = 0x00;
    EA = 1;
    ES = 1;
    TR1 = 1;
}
void SendOneByte(uchar c)
{
        TI = 0;
    SBUF = c;
    while(!TI);
    TI = 0;
}
void PCA_Init(void)
{
        CCON = 0x00;//初始化PCA控制寄存器      
        CL = 0;//清零                        
        CH = 0;
        CCAP0L = 0x00;
        CCAP0H = 0x00;
        CMOD = 0x09;//设置PCA时钟源为系统时钟,且使能PCA计时溢出中断
        CCAPM0 = 0x31;//PCA模块0双向捕获,且产生捕获中断   
        CR = 1;             //PCA计时器开始运行
//        EA = 1;             //开总中断         
}
void pca_buhuo() interrupt 7
{
      if (CCF0)
      {  
           CCF0 = 0; //ccf0软件清0
           xxx = CCAP0H;    //保存捕获的高位数值      
           yyy = CCAP0L;    //保存低位低位     
           CL = 0;                              
           CH = 0;  
       }
}
main()
{
        InitUART();
        PCA_Init();
        while(1)
        {
                SendOneByte(yyy);
        }
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top