基于51單片機(jī)雙極型PWM 的軟件實(shí)現(xiàn)
下面計(jì)算產(chǎn)生雙極型PWM 所需的定時(shí)初值。實(shí)際上穩(wěn)定工作時(shí),只有一個(gè)引腳有輸出,即一般兩個(gè)引腳不會同時(shí)輸出,所以可看作是兩個(gè)相對獨(dú)立的過程,可假設(shè)脈寬和誤差信號的線性對應(yīng)關(guān)系:
據(jù)此可求出定時(shí)初值與誤差信號的關(guān)系:
由(1)式有
把式(5)代入式(6)得:
當(dāng)晶振頻率取12 MHz時(shí),f=12。采用定時(shí)方式1,則可以得到即時(shí)的控制信號V(t)和定時(shí)初值在PWM 信號的一個(gè)周期內(nèi)的關(guān)系:
因?yàn)閂和V(t)通過對誤差計(jì)算都可以得到,所以根據(jù)式(8)可以求出t時(shí)刻對應(yīng)的PWM 一個(gè)周期高低脈寬的定時(shí)初值(注意這里的T的單位是us,頻率f的單位為MHz)。
3 Keil C下的程序?qū)崿F(xiàn)
Keil C是基于標(biāo)準(zhǔn)C的C51專用高級編程語言,它具備標(biāo)準(zhǔn)C的強(qiáng)大靈活的編程能力,同時(shí)又相對增加了對C51單片機(jī)硬件資源的直接操作,故在Keil C下對C51的程序設(shè)計(jì)幾乎使人們可擺脫對C51底層寄存器等硬件的煩瑣操作,編程效率顯著提高,并且程序運(yùn)行速度和所占空間和匯編差別不大。這里利用定時(shí)器T0的方式1,采用其時(shí)間溢出中斷,中斷號為1,具體程序流程如圖2所示。
圖2 PWM信號實(shí)現(xiàn)的軟件流程
E -誤差控制器;TH0-T0定時(shí)器高位;TL0-T0定時(shí)器低位;Twh、Twl-定時(shí)器初值
4 結(jié)語
單片機(jī)硬件發(fā)展很快,出現(xiàn)了16位、32位等多位機(jī),但今后一段時(shí)期C51系列的8位機(jī)將仍占主流。通過適當(dāng)?shù)能浖_發(fā),可以挖掘其內(nèi)在價(jià)值,這樣既降低了生產(chǎn)成本,又鍛煉了個(gè)人的軟件開發(fā)能力。
參考文獻(xiàn):
[1] 李朝青.原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1999.
[2] 孫傳友.測控系統(tǒng)原理與設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2002.
[32 張運(yùn)波.PWM 信號的軟件實(shí)現(xiàn)方法[J].微型計(jì)算機(jī)信息,2002,8(10)
pwm相關(guān)文章:pwm是什么
51單片機(jī)相關(guān)文章:51單片機(jī)教程
pwm相關(guān)文章:pwm原理
評論