直接分析程序吧 要仔细阅读此单片机的数据手册!!!
#include<stc12c5a60s2.h>
unsigned char dy[15] = {16,32,48,64,80,96,112,128,
144,160,176,192,208,224,240};
void modify_duty();
void Init_PWM();
void delay();
void main()
{
Init_PWM();
while(1)
{
modify_duty();
}
}
void Init_PWM()
{
CMOD = 0x02;//设置脉冲源
CCAPM0 = 0x42;//开启比较器,允许输出脉宽调制信号
PCA_PWM0 = 0x00;//组成9位比较器
CCAP0L = 0x80;//比较器中的初值
CCAP0H = 0x80;//比较器初值重装
CL = 0;//装载值为0
CR = 1;// 启动计数模式
}
void modify_duty()
{
int i;
for(i=0;i<15;i++)
{
CCAP0H = dy[i];
delay();
}
for(i=13;i>=1;i--)
{
CCAP0H = dy[i];
delay();
}
}
void delay()
{
int i,j;
for(i=0;i<200;i++)
{
for(j=0;j<200;j++);
}
}
|