新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC16F877的Timer2與CCP模塊的PWM

        PIC16F877的Timer2與CCP模塊的PWM

        作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
        Timer2是一個8位定時器,帶有一個預(yù)分頻器、一個后分頻器和一個周期寄存器。當(dāng)將預(yù)分頻器和后分頻器設(shè)置為最大值時,其溢出時間與 16位定時器的相同。在PWM模式下使用 CCP模塊時, Timer2 為PWM時基。

        下圖顯示了Timer2的結(jié)構(gòu)框圖。后分頻器對TMR2寄存器和PR2寄存器的匹配次數(shù)進(jìn)行計(jì)數(shù)。這樣有助于減少中斷服務(wù)程序的調(diào)用頻率,優(yōu)化CPU性能。

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

        與Timer2有關(guān)的寄存器


        PWM模式
        在脈沖寬度調(diào)制(PWM) 模式下,CCPx引腳可輸出分辨率高達(dá)10位的 PWM 輸出。因?yàn)镃CPx引腳與端口數(shù)據(jù)鎖存器是復(fù)用的,所以相應(yīng)的TRIS位必須清零以使CCPx引腳為輸出狀態(tài),下圖為PWM結(jié)構(gòu)簡圖。

        一個PWM輸出包含一個時基(周期)和一段輸出高電平的時間(占空比)。PWM的頻率是周期的倒數(shù)(1/周期)。


        PWM周期可通過寫入PR2 寄存器來規(guī)定,可用以下公式計(jì)算:
        PWM 周期 = [(PR2) + 1] • 4 • TOSC • (TMR2 預(yù)分頻比),用時間單位表示
        PWM 頻率 (FPWM)定義為1/[PWM周期]。
        當(dāng)TMR2 等于PR2 時,在下一遞增計(jì)數(shù)周期中將產(chǎn)生下面三個事件:
        • TMR2 被清零
        • CCPx 引腳被置1( 例外情況:如果PWM占空比 =0%, CCPx 不被置1)
        • PWM 占空比從CCPRxL 被鎖定為 CCPRxH

        PWM占空比可通過寫入CCPRxL寄存器和DCxB1:DCxB0(CCPxCON<5:4>)位來規(guī)定。最高分辨率可達(dá)10位:由CCPRxL 中的高8位和CCPxCON<5:4>中的低2位組成。這一10位值由DCxB9:DCxB0來表征。計(jì)算 PWM 占空比的公式如下:
        PWM 占空比 = (DCxB9:DCxB0 ) • Tosc • (TMR2 預(yù)分頻比),用時間單位表示
        DCxB9:DCxB0的值可以在任何時候?qū)懭耄钡絇R2與TMR2中的值相符(當(dāng)前周期結(jié)束)時,占空比的值才被鎖存到CCPRxH。在PWM模式下,CCPRxH是只讀寄存器。CCPRxH 寄存器和一個2位的內(nèi)部鎖存器用于為PWM占空比提供雙重緩沖。雙重緩沖對PWM的無毛刺操作是極其重要的。當(dāng)CCPRxH和2位鎖存器的值與TMR2和內(nèi)部2位Q時鐘(或TMR2分頻器的2位)串接值相符時,CCPx引腳被清零。此時占空比結(jié)束。對于給定的PWM頻率,其最大分辨率(位)為:

        計(jì)算舉例:


        通過以下步驟將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模式。



        關(guān)鍵詞: PIC16F877Timer2CCP模塊PW

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 濮阳县| 景洪市| 铜鼓县| 白河县| 革吉县| 绍兴市| 东乡族自治县| 青龙| 昌图县| 杭州市| 泌阳县| 项城市| 瑞金市| 通山县| 密山市| 昆明市| 南川市| 象州县| 陆丰市| 明溪县| 固阳县| 昌宁县| 永定县| 高碑店市| 塔城市| 弋阳县| 根河市| 四会市| 榆社县| 中方县| 高清| 远安县| 石棉县| 阿拉善右旗| 开江县| 嘉义县| 永年县| 呼玛县| 邵东县| 合阳县| 海原县|