本帖最后由 chenczyaa 于 2024-7-3 08:49 编辑
代码如下,我的P3.5脚 没PWM输出的,好奇怪。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;
}
}
|