新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC16F877A和AVR的單片機(jī)的PWM輸出程序

PIC16F877A和AVR的單片機(jī)的PWM輸出程序

作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
//在PICC編譯器主,調(diào)試通過(guò),PIC16F877APWM信號(hào)輸出

#include
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x1832);

本文引用地址:http://butianyuan.cn/article/201612/324667.htm

void delay()
{
uint k;
for(k=0;k<5000;k++);
}

void main()
{
uchar k;
T2CON=0X04; //開(kāi)定時(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編譯通過(guò)

#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;

}

}



關(guān)鍵詞: PIC16F877AAVR單片機(jī)PW

評(píng)論


技術(shù)專區(qū)

關(guān)閉