初次用stc12c5a60s2写的pwm程序,用万用表测1.3,1.4但没结果
时间:10-02
整理:3721RD
点击:
下面是我写的程序,有哪位高手用过stc12c5a60s2写PWM波的,帮看一下,小弟十分感谢!
#include "STC12C5A.h"
void PWM_Init()
{
CMOD=0X04; //初始化工作模式寄存器
CCON=0X00; //所有标志位清零
CL=0;CH=0; //给PCA的16位计数器赋初值
CCAP0H=CCAP0L=0x80; //给占空比100%
CCAPM0=0X42; //工作在PWM波模式,且无PCA中断
PCA_PWM0=0X00; //最高位给00
CCAP1H=CCAP1L=0x80; //给PWM1占空比50%
CCAPM1=0X42; //工作模式设定
PCA_PWM1=0x00;
CR=1; //启动
}
void main()
{
PWM_Init();
while(1);
}
#include "STC12C5A.h"
void PWM_Init()
{
CMOD=0X04; //初始化工作模式寄存器
CCON=0X00; //所有标志位清零
CL=0;CH=0; //给PCA的16位计数器赋初值
CCAP0H=CCAP0L=0x80; //给占空比100%
CCAPM0=0X42; //工作在PWM波模式,且无PCA中断
PCA_PWM0=0X00; //最高位给00
CCAP1H=CCAP1L=0x80; //给PWM1占空比50%
CCAPM1=0X42; //工作模式设定
PCA_PWM1=0x00;
CR=1; //启动
}
void main()
{
PWM_Init();
while(1);
}
刚刚看文献和实验后把问题解决;原来 CMOD=0X04; 是设置为定时器T0溢出的模式,我没有设置定时器,所以用万用表测不出来; CMOD=0X08 才是系统时钟不分频模式, 另外 CCAP0H=CCAP0L=0x80; //给占空比应是50%的 CCAP0H=CCAP0L=0x00; 才是100%
呵呵,问题和答案俱全,不错
不过在占空比为100%时,输出的电压很低啊,大概有0.01v。怎么解释呢?小编。先谢谢了
不错。
能把STC12C5A.h的文件发我邮箱里吗 谢谢
574800449@qq.com