• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

    AVR單片機TC0快速PWM

    作者: 時間:2013-01-10 來源:網(wǎng)絡 收藏

    1.jpg

    PWM:脈沖寬度調(diào)制,圖中T為脈沖周期,t為高電平時間,t與T的比值t/T稱為占空比,脈寬調(diào)制指的是調(diào)整t的大小,即改變脈沖的占空比,占空比值越大,輸出的電壓越高。改變占空比就改變輸出的電壓,常用于實現(xiàn)D/A,調(diào)節(jié)電壓或電流,改變電動機的轉(zhuǎn)速等。

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

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

    //函數(shù)功能:控制PB3引腳上的發(fā)光二極管由亮到滅,再由滅到亮 (代碼來自輕松玩轉(zhuǎn)c語言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++) ; }

    }

    /********以下是端口初始化函數(shù)********/

    void port_init()

    {

    DDRB|=(1

    PORTB=(0

    }

    /********定時器0初始化********/

    void timer0_init()

    {

    TCCR0=(1

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

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

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

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

    }

    /*********以下是主函數(shù)*********/

    void main(void)

    {

    port_init();

    timer0_init();

    while(1)

    {

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

    {

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

    Delay_ms(20); //延時一段時間,以觀察效果

    }

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

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

    {

    OCR0= count;

    Delay_ms(20);

    }

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

    }

    }



    關鍵詞: AVR單片機 TC0 快速PWM

    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 信丰县| 思茅市| 象州县| 张家界市| 丹江口市| 潜江市| 宁安市| 凌云县| 自治县| 马鞍山市| 赞皇县| 青田县| 香港| 新津县| 江孜县| 金沙县| 公主岭市| 银川市| 思茅市| 青冈县| 无锡市| 平潭县| 鹤峰县| 枝江市| 辽中县| 息烽县| 洪湖市| 双鸭山市| 故城县| 江都市| 黔西县| 建瓯市| 娱乐| 东城区| 高要市| 叶城县| 饶河县| 监利县| 桐城市| 扶余县| 吉林市|