#include <reg52.h>
#include <intrin.h>
#define uint unsigned int
#define uchar unsigned char
sfr CCON = 0XD8;
sbit CCFO = CCON^0;
sbit CCF1 = CCON^1;
sbit CR = CCON^6;
sbit CF = CCON^7;
sfr CMOD = 0XD9;
sfr CL = 0XE9;
sfr CH = 0XF9;
sfr CCAPM0 = 0XDA;
sfr CCAP0L = 0XEA;
sfr CCAP0H = 0XFA;
sfr CCAMP1 = 0XDB;
sfr CCAP1L = 0XEB;
sfr CCAP1H = 0XFB;
sfr PCAPWM0 = 0XF2;
sfr PACPWM1 = 0XF3; //PWM相关的寄存器
void PWM_Init() //PWM初始化函数
{
CMOD = 0X02; //设置工作模式寄存器
CL = 0X00; //低8位计数器清零
CH = 0X00; //高8位计数器清零
/*********模式0*************/
CCAPM0 = 0X42; //模式0脚工作在8位PWM 无中断 CCON寄存器可以用来设置中断
PCAPWM0 = 0X00; //设置高9位为0
CCAP0L = 0X00; //设置初始值为0
CCAP0H = 0X00; //设置初始值为0
/*********模式1**************/
CCAMP1 = 0X42;
PACPWM1 = 0X00;
CCAP1H = 0X00;
CCAP1L = 0X00; //同上
CR = 1; //开启PCA计数器
}
void PWM_Set(uchar Mod0,uchar Mod1) //设置占空比
{
CCAP0L = Mod0;
CCAP0H = Mod0;
CCAP1L = Mod1;
CCAP1H = Mod1;
}
void main()
{
PWM_Init();
PWM_Set(0XF0,0XFF);
while(1);
}
#include <intrin.h>
#define uint unsigned int
#define uchar unsigned char
sfr CCON = 0XD8;
sbit CCFO = CCON^0;
sbit CCF1 = CCON^1;
sbit CR = CCON^6;
sbit CF = CCON^7;
sfr CMOD = 0XD9;
sfr CL = 0XE9;
sfr CH = 0XF9;
sfr CCAPM0 = 0XDA;
sfr CCAP0L = 0XEA;
sfr CCAP0H = 0XFA;
sfr CCAMP1 = 0XDB;
sfr CCAP1L = 0XEB;
sfr CCAP1H = 0XFB;
sfr PCAPWM0 = 0XF2;
sfr PACPWM1 = 0XF3; //PWM相关的寄存器
void PWM_Init() //PWM初始化函数
{
CMOD = 0X02; //设置工作模式寄存器
CL = 0X00; //低8位计数器清零
CH = 0X00; //高8位计数器清零
/*********模式0*************/
CCAPM0 = 0X42; //模式0脚工作在8位PWM 无中断 CCON寄存器可以用来设置中断
PCAPWM0 = 0X00; //设置高9位为0
CCAP0L = 0X00; //设置初始值为0
CCAP0H = 0X00; //设置初始值为0
/*********模式1**************/
CCAMP1 = 0X42;
PACPWM1 = 0X00;
CCAP1H = 0X00;
CCAP1L = 0X00; //同上
CR = 1; //开启PCA计数器
}
void PWM_Set(uchar Mod0,uchar Mod1) //设置占空比
{
CCAP0L = Mod0;
CCAP0H = Mod0;
CCAP1L = Mod1;
CCAP1H = Mod1;
}
void main()
{
PWM_Init();
PWM_Set(0XF0,0XFF);
while(1);
}