<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AVR單片機TC0快速PWM

AVR單片機TC0快速PWM

作者: 時(shí)間:2013-01-10 來(lái)源:網(wǎng)絡(luò ) 收藏

1.jpg

PWM:脈沖寬度調制,圖中T為脈沖周期,t為高電平時(shí)間,t與T的比值t/T稱(chēng)為占空比,脈寬調制指的是調整t的大小,即改變脈沖的占空比,占空比值越大,輸出的電壓越高。改變占空比就改變輸出的電壓,常用于實(shí)現D/A,調節電壓或電流,改變電動(dòng)機的轉速等。

模式:它的計數方式是TCNT0由0開(kāi)始計數到255式,計數加1返回到0,然后繼續加1計數,相對于相位PWM修正模式(由0計數到255,再從255計數到0),只有一個(gè)斜坡,因此PWM輸出頻率高。在模式下,計數器的最大值決定了PWM的頻率,而比較寄存器OCR0決定了占空比的大小。T/C0是8位計數器, 輸出PWM的頻率=系統時(shí)鐘頻率/(分頻系數*255) 。

PWM產(chǎn)生過(guò)程:定時(shí)器啟動(dòng)后,當TNCT0和OCR0的值相等時(shí),輸出引腳OC0(PB3)清0,當TNCT0到255時(shí)OC0置位,在程序運行過(guò)程中改變OCR0中的數值,就改變了OC0輸出的占空比。

//函數功能:控制PB3引腳上的發(fā)光二極管由亮到滅,再由滅到亮 (代碼來(lái)自輕松玩轉c語(yǔ)言cd)

#include

#define uchar unsigned char

#define uint unsigned int

unsigned int count;

/*********以下是延時(shí)函數*********/

void Delay_ms(uint xms)

{

int i,j;

for(i=0;i

{ for(j=0;j1140;j++) ; }

}

/********以下是端口初始化函數********/

void port_init()

{

DDRB|=(1

PORTB=(0

}

/********定時(shí)器0初始化********/

void timer0_init()

{

TCCR0=(1

// T/C0工作于模式,不分頻

//比較匹配時(shí),OC0置位,記數到0XFF時(shí),清零OC0

OCR0=0; //比較匹配寄存器初值,

SREG=0x80; //使能全局中斷

}

/*********以下是主函數*********/

void main(void)

{

port_init();

timer0_init();

while(1)

{

for(count=0;count256;count++) //OCR=0時(shí),LED最亮,然后逐漸變暗

{

OCR0=count; //比較匹配寄存器賦值

Delay_ms(20); //延時(shí)一段時(shí)間,以觀(guān)察效果

}

Delay_ms(3000); // LED最暗時(shí),延時(shí)一段時(shí)間

for(count=255;count>0;count--) //OCR=255時(shí),LED最暗,然后逐漸變亮

{

OCR0= count;

Delay_ms(20);

}

Delay_ms(3000); //LED最亮時(shí),延時(shí)一段時(shí)間

}

}



關(guān)鍵詞: AVR單片機 TC0 快速PWM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>