//在PICC编译器主,调试经过,PIC16F877A的PWM信号输出
#include
#define uint unsigned int
__CONFIG(0x1832);
void delay()
{
uint k;
for(k=0;k<5000;k++);
}
void main()
{
uchar k;
T2CON=0X04; //开定时器2
CCPR1L=0X0F; //PWM匹配初值
CCP1CON=0X3C; //设置CCP1 模块为PWM 作业方法,且其作业循环
PR2=0XFF; //设置PWM 的作业周期
TRISC=0XFB; //设置CCP1 引脚为输出方法
while(1)
{
k++;
CCPR1L=k;
delay();
if(k>253)k=1;
}
}
////////////////////////////////////////////////////////////////////////////////////////////
下面的是AVR单片机ATMEGA16的PWM信号输出程序GCC编译经过
#include <avr/io.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint ms)
{
uint i,j;
for(i=0;i
for(j=0;j<1000;j++);
}
}
void main()
{
uint i;
DDRD|=0Xf0;
PORTD=0x0f;
TCCR1A=0X63;
TCCR1B=0X13;
OCR1A=124;
OCR1B=31;
while(1)
{
i++;
OCR1B=i;
delay(20);
if(i>123)i=1;
}
}