lyg407 发表于 2012-9-19 17:40:33

STC12C5608AD 硬件PWM 四路输出 。

/*------------------------------------------------------------------*/
/* --- STC MCU Limited ---------------------------------------------*/
/* --- STC12C56xx Series MCU PCA module output PWM wave Demo -------*/
/* --- Mobile: (86)13922805190 -------------------------------------*/
/* --- Fax: 86-755-82905966 ----------------------------------------*/
/* --- Tel: 86-755-82948412 ----------------------------------------*/
/* --- Web: www.STCMCU.com -----------------------------------------*/
/* If you want to use the program or the program referenced in the*/
/* article, please specify in which data and procedures from STC    */
/*------------------------------------------------------------------*/


/*------------------------------------------------------------------
1:PWM 调试注意范围0-2550x00-0xff输出相反 00 是最高   ff 是最低
2:当要输出低0xff但是输出还有PWM 波形,几百NS 的高电平时间 所以要设定
PCAPWM1 = 0x03;   可以看手册的320页

发现问题:
当输出为低电平的时候一定要设置PCAPWMx 寄存器

当输出为高电平的时候不需要设置PCAPWMx 寄存器

------------------------------------------------------------------*/


#include "reg51.h"
#include "intrins.h"

typedef unsigned char BYTE;
typedef unsigned int WORD;

/*Declare SFR associated with the PCA */
sfr CCON      =   0xD8;         //PCA control register
sbit CCF0       =   CCON^0;         //PCA module-0 interrupt flag
sbit CCF1       =   CCON^1;         //PCA module-1 interrupt flag
sbit CR         =   CCON^6;         //PCA timer run control bit
sbit CF         =   CCON^7;         //PCA timer overflow flag
sfr CMOD      =   0xD9;         //PCA mode register
sfr CL          =   0xE9;         //PCA base timer LOW
sfr CH          =   0xF9;         //PCA base timer HIGH
sfr CCAPM0      =   0xDA;         //PCA module-0 mode register
sfr CCAP0L      =   0xEA;         //PCA module-0 capture register LOW
sfr CCAP0H      =   0xFA;         //PCA module-0 capture register HIGH
sfr CCAPM1      =   0xDB;         //PCA module-1 mode register
sfr CCAP1L      =   0xEB;         //PCA module-1 capture register LOW
sfr CCAP1H      =   0xFB;         //PCA module-1 capture register HIGH
sfr CCAPM2      =   0xDC;         //PCA module-2 mode register
sfr CCAP2L      =   0xEC;         //PCA module-2 capture register LOW
sfr CCAP2H      =   0xFC;         //PCA module-2 capture register HIGH
sfr CCAPM3      =   0xDD;         //PCA module-3 mode register
sfr CCAP3L      =   0xED;         //PCA module-3 capture register LOW
sfr CCAP3H      =   0xFD;         //PCA module-3 capture register HIGH
sfr PCAPWM0   =   0xF2;
sfr PCAPWM1   =   0xF3;
sfr PCAPWM2   =   0xF4;
sfr PCAPWM3   =   0xF5;

void main()
{
    CCON = 0;                     //Initial PCA control register
                                    //PCA timer stop running
                                    //Clear CF flag
                                    //Clear all module interrupt flag
    CL = 0;                         //Reset PCA base timer
    CH = 0;
    CMOD = 0x00;                  //Set PCA timer clock source as Fosc/2
                                    //Disable PCA timer overflow interrupt
    CCAP0H = CCAP0L = 0;         //PWM0 port output
    CCAPM0 = 0x42;                  //PCA module-0 work in 8-bit PWM mode and no PCA interrupt

    CCAP1H = CCAP1L = 85;         //PWM1 port output
    CCAPM1 = 0x42;                  //PCA module-1 work in 8-bit PWM mode and no PCA interrupt

        CCAP2H=CCAP2L= 128;         //PWM0 port output 50% duty cycle square wave
    CCAPM2 = 0x42;                  //PCA module-0 work in 8-bit PWM mode and no PCA interrupt

    CCAP3H = CCAP1L = 255;         //PWM1 port output 0% duty cycle square wave
    PCAPWM3 = 0x00;
    CCAPM3 = 0x42;                  //PCA module-1 work in 8-bit PWM mode and no PCA interrupt


    CR = 1;                         //PCA timer start run

    while (1);
}

lihebb 发表于 2012-9-23 10:55:45

顶一个~~

mydepc3721 发表于 2012-12-17 10:59:32

这个是不是官方的例子?

1501697860 发表于 2013-7-26 16:21:33

学习了,多谢

yangbing2020 发表于 2013-7-28 11:53:55

LZ舞台灯光行业的啊?

lyg407 发表于 2013-7-28 18:08:18

yangbing2020 发表于 2013-7-28 11:53 static/image/common/back.gif
LZ舞台灯光行业的啊?

不是喔,一家小公司, 什么都做。
页: [1]
查看完整版本: STC12C5608AD 硬件PWM 四路输出 。