嵌入式 > 技术百科 > 详情

stc可调PWM程序

发布时间:2020-10-10 发布时间:
|
下面这个程序是应用在stc12c2052ad上的pwm程序,测试成功
#include


sfr CCON =0xD8;    //PCA  control register
sfr CMOD =0xD9;
sfr CL   =0xe9;
sfr CH   =0xF9;
sfr CCAP0L=0xea;
sfr CCAP1L=0xeb;
sfr CCAP0H=0xfa;
sfr CCAP1H=0xfb;
sfr CCAPM0=0xda;
sfr CCAPM1=0xdb;

sbit CR=0xde; //位寻址

void main(void)
{
  CMOD=0x02;  //使用系统时钟,时钟输入源频率fosc/2。PWM频率=fosc/2/256
            /************************************
    7      6       5       4       3       2        1      0 
   CIDL    -       -       -      cps2    CPS1     CPS0   ECF
                        
            CIDL: =0时,空闲模式下PCA计数器继续工作;=1时,空闲模式下PCA计数器停止工作。
            CPS2,CPS1,CPS0:PCA计数脉冲选择。010,定时器0的溢出,可以实现可调频率的PWM输出。
             ECF: =1时,使能寄存器CCON  CF位的中断;=0时,禁止该功能。
   ***************************************/
  CL=0x00;
  CH=0x00;
  CCAP0L=0xc0; //当CL小于CCAP0L时,输出为低;大于时,输出为高。
  CCAP0H=0x7f; //当CL由ff变为00溢出时,CCAP0H装载到CCAP0L中,实现无干扰的更新PWM。
  CCAP1L=0xc0; //当CL小于CCAP1L时,输出为低;大于时,输出为高。
  CCAP1H=0xc0; //当CL由ff变为00溢出时,CCAP1H装载到CCAP1L中,实现无干扰的更新PWM。
  CCAPM0=0X42; //使能PWM模式,PWM0=1,ECOM0=1
  CCAPM1=0X42; //使能PWM模式,PWM1=1,ECOM1=1
  CR=1;      //启动PCA计数器
  while(1) 
  {
    CCAP0H=RF4432_TxRxBuf[4];   //此处改变占空比
 CCAP1H=RF4432_TxRxBuf[5];
 CCAP2H=RF4432_TxRxBuf[6]/2.5;
  };
}
 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
用于MAX7456随屏显示器SPI