新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC16F877A單片機(jī)的PWM功能

        PIC16F877A單片機(jī)的PWM功能

        作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
        說明:設(shè)置PWM 操作

        通過以下步驟將CCP 模塊配置為PWM 模式:
        1. 寫入PR2 寄存器以設(shè)定PWM 周期。
        2. 寫入DCxB9:DCxB0 位以設(shè)置PWM 占空比。
        3. 將相應(yīng)的TRIS 位清零以將CCPx 引腳設(shè)為輸出。
        4. 寫入T2CON 以設(shè)置TMR2 預(yù)分頻比并使能Timer2。
        5. 將CCP 模塊配置為PWM 模式。

        本文引用地址:http://www.104case.com/article/201611/316762.htm

        程序:

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

        void initPWM();
        void Delay1ms(uint time);

        /******************************************
        ***主函數(shù)功能:PWM初始化,PWM占空比周期性變化
        *******************************************/
        void main()
        {
        uchar i;
        initPWM();
        while(1)
        {
        for(i=0;i<256;i++)
        {
        CCPR1L = i;
        TMR2ON = 1;
        Delay1ms(100);
        TMR2ON = 0;
        }
        }

        }

        /******************************************************************
        ***函數(shù)功能:PWM初始化,設(shè)置PWM周期;
        PWM周期=[(PR2)+1]*4*TOSC*(TMR2預(yù)分頻比)
        =(255+1)*4*(1/4000000)*16 s = 4.096 ms

        PWM占空比=(DCxB9:DCxB0)*Tosc*(TMR2預(yù)分頻比)
        =1024*(1/4000000)*16 s = 4.096 ms

        注意:如果PWM占空比值大于PWM周期,CCPx 引腳將
        不會被清零,這時占空比將達(dá)到100%;

        *****************************************************************/
        void initPWM()
        {
        INTCON = 0x00;//關(guān)閉總中斷和外部中斷
        PR2 = 0xff;//寫入PR2寄存器設(shè)置PWM周期,PWM周期=[(PR2)+1]*4*TOSC*(TMR2預(yù)分頻比)
        CCP1CON = 0x3C; //設(shè)置PWM占空比低2位為11,設(shè)置為PWM模式
        CCPR1L = 0x00;//設(shè)置PWM占空比高8位
        TRISC = 0xfb;//設(shè)置CCP1口為輸出
        T2CON = 0x02;//設(shè)置TMR2預(yù)分頻為16;
        }

        void Delay1ms(uint time)
        {
        uint i,j;
        for(i=time;i>0;i--)
        for(j=110;j>0;j--);
        }



        關(guān)鍵詞: PIC16F877A單片機(jī)PWM功

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 绥滨县| 桂东县| 筠连县| 神农架林区| 扬中市| 民乐县| 赫章县| 固安县| 克拉玛依市| 衡东县| 通海县| 南宫市| 东阿县| 新干县| 安乡县| 恩平市| 德兴市| 太和县| 闽侯县| 沛县| 奎屯市| 屯留县| 台东县| 镇远县| 洞头县| 晋州市| 眉山市| 吉安县| 天柱县| 苏州市| 丘北县| 香河县| 嘉禾县| 襄樊市| 丘北县| 临泉县| 慈利县| 西林县| 西城区| 民县| 沂水县|