永发信息网

STC12 PWM波

答案:4  悬赏:50  手机版
解决时间 2021-02-18 14:38
  • 提问者网友:抽煙菂渘情少年
  • 2021-02-18 06:48
知道输出PWM CL CH CCAP0L 和CCAP0H 怎样设置站空比 的么
最佳答案
  • 五星知识达人网友:英雄的欲望
  • 2021-02-18 08:06
举个例子看一下
#include<reg52.h>
sfr CCON = 0xD8;
sfr CMOD = 0xD9;
sfr CL = 0xE9;
sfr CH = 0xF9;
sfr CCAP0L = 0xEA;
sfr CCAP0H = 0xFA;
sfr CCAPM0 = 0xDA;
sfr CCAPM1 = 0xDB;
sbit CR = 0xDE;
void main(void)
{
CMOD = 0x02; // Setup PCA timer
CL = 0x00;
CH = 0x00;
CCAP0L = 0xc0; //Set the initial value same as CCAP0H
CCAP0H = 0xc0; //25% Duty Cycle
CCAPM0 = 0x42; //0100,0010 Setup PCA module 0 in PWM mode
CR = 1; //Start PCA Timer.
while(1){};
}
全部回答
  • 1楼网友:上分大魔王
  • 2021-02-18 09:39
PWM定义:   脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。   脉冲宽度调制是一种模拟控制方脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的   许多领域中脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。   脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。
  • 2楼网友:白昼之月
  • 2021-02-18 09:23
数据手册上说用pwm输出脉宽可变的方波就要用timer0做pca时钟源。我想输出400hz的脉冲,按照所给的公式,如果timer0用在方式1(16位)时,经过计算timer0初值为0xff94,可是我把初值装进去,实际输出的脉冲是330hz左右。程序如下,我到底错哪了?void main(){ ccon=0; cl=0; ch=0; cmod=0x04; ccap0h=ccap0l=0x80; ccapm0=0x42; ccap1h=ccap1l=0xff; pcapwm1=0x03; ccapm1=0x42; tmod=0x21; auxr=0x80; th0=0x94;//400hz tl0=0x94; ea=1; et0=1; cr=1; tr0=1; while(1) { }}void tinmer0() interrupt 1{ th0=0xff;//400hz tl0=0x94;}
  • 3楼网友:怙棘
  • 2021-02-18 08:41
给你个例子看一下,我前两天也做得这个 #include<reg52.h> sfr CCON = 0xD8; sfr CMOD = 0xD9; sfr CL = 0xE9; sfr CH = 0xF9; sfr CCAP0L = 0xEA; sfr CCAP0H = 0xFA; sfr CCAPM0 = 0xDA; sfr CCAPM1 = 0xDB; sbit CR = 0xDE; void main(void) { CMOD = 0x02; // Setup PCA timer CL = 0x00; CH = 0x00; CCAP0L = 0xc0; //Set the initial value same as CCAP0H CCAP0H = 0xc0; //25% Duty Cycle CCAPM0 = 0x42; //0100,0010 Setup PCA module 0 in PWM mode CR = 1; //Start PCA Timer. while(1){}; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯