PIC16F877A和AVR的單片機(jī)的PWM輸出程序
#include
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x1832);
void delay()
{
uint k;
for(k=0;k<5000;k++);
}
void main()
{
uchar k;
T2CON=0X04; //開定時(shí)器2
CCPR1L=0X0F; //PWM匹配初值
CCP1CON=0X3C; //設(shè)置CCP1 模塊為PWM 工作方式,且其工作循環(huán)
PR2=0XFF; //設(shè)置PWM 的工作周期
TRISC=0XFB; //設(shè)置CCP1 引腳為輸出方式
while(1)
{
k++;
CCPR1L=k;
delay();
if(k>253)k=1;
}
}
////////////////////////////////////////////////////////////////////////////////////////////
下面的是AVR單片機(jī)ATMEGA16的PWM信號(hào)輸出程序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;
}
}
評(píng)論