打印
[STC单片机]

请教一下STC12H1K输出PWM的问题

[复制链接]
2490|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenczyaa|  楼主 | 2024-7-3 14:33 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chenczyaa 于 2024-7-3 15:08 编辑

代码如下,我的P3.5脚 没PWM输出的,好奇怪。不知道是那里没设置对,来个大神指导下啊。
芯片用的是STC12H1K16,内部晶振11.0592MHz.
芯片电路没有外接任何元器件,只测芯片脚位的信号。
void pwm_init()
{
        
          CCON = 0x00;                         //
    CL = 0;                                   //PCA计数器 低8位
    CH = 0;                                  //PCA计数器 高8位
    CMOD = 0x00;                       //选择时钟源为系统时钟源的1/12

    CCAPM0 = 0x42;                   //0100 0010  允许比较器,允许PWM0引脚输出
          //PCA_PWM0=0x00;                   //8位PWM
          PCA_PWM0=0x40;                   //7位PWM
          CCAP0H = CCAP0L = 0x00;           //设置占空比为 0
          PWMA_PS = 0xff;
          PWMB_PS = 0xf3;//P3.5输出PWM
        
    CR = 1;                          //启动 PCA 计数器阵列
        
}

main()
{
         uchar key1up=0,key2up=0,gear1=0,gear2=0;
        
        /*
        TMOD =0x00; //0模式16位自动重装载
        TL0=0x66;   //1ms初值
        TH0=0xfc;
        TR0=1;// 启动定时器0
        ET0=1;// 开启定时器0中断
        EA=1;// 开启整个中断系统
        */
        
        P1M0=0x00;//设置P1为准双向口
        P1M1=0x00;
        
        P3M0=0x00;//设置P3为准双向口
        P3M1=0x00;
        
        //P1=0xff;
        //P35=0;
        
        pwm_init();
        

        //PCA_PWM0=0x02;CCAP0H= CCAP0L=0xFF;   //固定输出低
        //PCA_PWM0=0x00;CCAP0H= CCAP0L=0x00;   //固定输出高

        //CCAP0L=0x20;//PWM占空比(100H-20H)/100H(87.5%)//8位PWM
        //CCAP0H=0x20;
          CR = 0;  
          //CCAP0L=0xCC;//PWM占空比(100H-CCH)/100H(20%)//8位PWM
          //CCAP0H=0xCC;
                CCAP0L=0x20;//PWM占空比(80H-20H)/80H(75%)//7位PWM
          CCAP0H=0x20;
                CR = 1;

    P34=0;
        
        while(1)
  {
                delay(4000);
                P34 = ~P34;
        }


使用特权

评论回复

相关帖子

沙发
chenczyaa|  楼主 | 2024-7-4 10:00 | 显示全部楼层
没有大神帮看下吗?或者谁有用PCA中断输出PWM的代码能发出来参考下吗?

使用特权

评论回复
板凳
chenczyaa|  楼主 | 2024-7-4 15:37 | 显示全部楼层
coody 发表于 2024-7-4 15:25
测试了下,没有问题,4路PWM输出正常。

#define MAIN_Fosc                24000000UL        //定义主时钟

收到,谢谢。我试下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

58

帖子

0

粉丝