陜西科技大學(xué) 陜西機(jī)電職業(yè)技術(shù)學(xué)院 景鵬斌陜西科技大學(xué) 李明輝
基于單片機(jī)產(chǎn)生PWM信號的分析與實(shí)現(xiàn)
陜西科技大學(xué) 陜西機(jī)電職業(yè)技術(shù)學(xué)院 景鵬斌陜西科技大學(xué) 李明輝
脈沖寬度調(diào)制(Pulse Width Modulation,PWM)是現(xiàn)代控制技術(shù)常用的一種控制信息輸出方式,廣泛應(yīng)用于檢測、通信、逆變及電力電子等諸多技術(shù)領(lǐng)域.本文主要研究用單片機(jī)產(chǎn)生PWM信號,對單片機(jī)產(chǎn)生PWM信號的方法進(jìn)行了分析和研究,實(shí)現(xiàn)了PWM信號的產(chǎn)生.
PWM;單片機(jī);占空比
隨著電子技術(shù)的飛速發(fā)展,PWM控制技術(shù)漸趨成熟,主要應(yīng)用于在電力電子技術(shù)行業(yè).采用模擬控制方式生成的脈沖寬度調(diào)制(PWM)信號,是根據(jù)相應(yīng)載荷的變化來調(diào)制晶體管基極或MOS管柵極的偏置,實(shí)現(xiàn)晶體管或MOS管導(dǎo)通時(shí)間的改變,最終實(shí)現(xiàn)開關(guān)穩(wěn)壓電源輸出的改變產(chǎn)生PWM信號,這種方式較復(fù)雜,成本也高.而采用單片機(jī)產(chǎn)生PWM信號,既簡單又方便,成本低,因此,本文就單片機(jī)產(chǎn)生PWM信號進(jìn)行分析.
脈沖寬度調(diào)制作為控制技術(shù)常采用的控制方式,以其控制簡單,靈活和動態(tài)響應(yīng)好的優(yōu)點(diǎn)而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式.隨著微機(jī)技術(shù)在控制領(lǐng)域的廣泛應(yīng)用,單片機(jī)控制的PWM技術(shù)迅速發(fā)展,其突出特點(diǎn)是可以比較容易地選擇最佳的脈沖調(diào)制頻段.但在智能化產(chǎn)品開發(fā)中, 許多常用的單片機(jī)沒有提供脈寬調(diào)制(PWM ) 電壓信號輸出功能, 而在某些特定的場合需要得到PWM信號.因此,基于單片機(jī)產(chǎn)生PWM信號的分析就顯得非常必要.
脈沖寬度調(diào)制(PWM)是一種對模擬信號電平進(jìn)行數(shù)字編碼的方法.通過高分辨率計(jì)數(shù)器的使用,方波的占空比被調(diào)制用來對一個具體模擬信號的電平進(jìn)行編碼.可見,PWM信號仍然是數(shù)字的,因?yàn)樵诮o定的任何時(shí)刻,滿幅值的直流供電要么完全有,要么完全無.電壓或電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負(fù)載上去的.通的時(shí)候即是直流供電被加到負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開的時(shí)候.只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行編碼.
脈沖寬度調(diào)制信號本質(zhì)上是由占空比不同的矩形脈沖周期變化來構(gòu)成的,其占空比與信號的瞬時(shí)采樣值成一定的比例.根據(jù)這種方式可以采用單片機(jī)定時(shí)中斷的方法,使單片機(jī)的I/O口輸出一定頻率的高、低電平信號,通過調(diào)節(jié)高、低電平的持續(xù)時(shí)間,即占空比的改變,這樣就可以實(shí)現(xiàn)一定周期一定占空比的PWM信號,采用這種方式更加有效.比如采用AT89S52單片機(jī)來產(chǎn)生的PWM信號控制直流電動機(jī)的轉(zhuǎn)速,可以很方便的在電動自行車及相關(guān)諸多領(lǐng)域的調(diào)速系統(tǒng)中進(jìn)行使用.
中斷是指當(dāng)CPU執(zhí)行主程序時(shí),系統(tǒng)中若出現(xiàn)某些急需處理的異常情況和特殊請求時(shí),CPU會暫時(shí)中止程序的運(yùn)行,去執(zhí)行中斷服務(wù)函數(shù),處理完畢后,CPU將自動返回到原來主程序的端點(diǎn)處繼續(xù)執(zhí)行.而單片機(jī)定時(shí)器中斷是在定時(shí)器工作方式下,根據(jù)設(shè)定的定時(shí)時(shí)間進(jìn)行單片機(jī)內(nèi)部時(shí)鐘脈沖進(jìn)行計(jì)數(shù),當(dāng)計(jì)滿溢出時(shí)產(chǎn)生中斷請求,即定時(shí)器中斷.定時(shí)中斷是單片機(jī)技術(shù)中經(jīng)常采用的中斷方式,應(yīng)用非常廣泛.
采用單片機(jī)產(chǎn)生PWM信號是一種非常可靠、有效的控制方式,本文以AT89S52單片機(jī)為例來產(chǎn)生PWM信號,通過定時(shí)中斷程序來確定脈沖周期以及高低電平各自占用時(shí)間,從而形成不同的占空比,產(chǎn)生PWM脈沖信號.
如圖所示,取AT89S52的I/O口的P3.0和P1.0兩個引腳,使用P1.0接一按鍵開關(guān),作為PWM信號產(chǎn)生的開關(guān)使用,按鍵閉合表示開始產(chǎn)生PWM信號,按鍵斷開表示不產(chǎn)生PWM信號.使用P3.0用來輸出PWM信號,通過P3.0輸出一定的高電平信號作為脈寬,達(dá)到脈寬的設(shè)定值時(shí),輸出低電平,到達(dá)周期的設(shè)定值時(shí)又重復(fù)輸出高電平,進(jìn)行周期循環(huán),從而實(shí)現(xiàn)PWM信號的產(chǎn)生.通過單片機(jī)產(chǎn)生的PWM信號,可以靈活的改變周期和脈沖寬度參數(shù),從而產(chǎn)生不同周期和占空比的PWM信號.以產(chǎn)生周期為10ms、占空比為60%的PWM信號為例進(jìn)行分析,采用Proteus對電路進(jìn)行仿真來產(chǎn)生PWM信號.
圖1 AT89S52產(chǎn)生PWM信號Proteus仿真電路圖
本例中時(shí)鐘頻率為12MHz,采用定時(shí)器T0,工作方式設(shè)置為方式2,定時(shí)器T0的初值設(shè)定為0.1ms,即100us,因此,TH0=-100,TL0=-100.PWM的周期參數(shù)PWM_T(周期定義為10ms)參數(shù)設(shè)定為100,脈沖寬度參數(shù)PWM_mk設(shè)定為60.源程序如下:
采用keil軟件編譯程序,程序編譯成功,采用仿真軟件Proteus進(jìn)行仿真產(chǎn)生需要的PWM信號,如圖2所示.
通過單片機(jī)來產(chǎn)生PWM信號靈活方便,如果需要改變占空比,只需要改變程序中的脈沖寬度參數(shù)即可,程序中脈沖寬度參數(shù)為PWM_mk,如將PWM_mk設(shè)為30,則PWM信號的占空比為30%;若要改變PWM的周期,應(yīng)該改變程序中PWM_T的值即可,此時(shí)應(yīng)注意定時(shí)器工作方式2的最大計(jì)數(shù),以免溢出無法計(jì)數(shù),若超出計(jì)數(shù)最大值,可以選擇工作方式1進(jìn)行程序編寫.
圖2 占空比為60.%的PWM信號波形
綜合以上分析可以看出,采用單片機(jī)產(chǎn)生的PWM信號電路簡單,成本低,無需通過對模擬電路個元器件參數(shù)進(jìn)行計(jì)算及電路設(shè)計(jì).另外,通過單片機(jī)的定時(shí)器實(shí)現(xiàn)PWM信號頻率和占空比的靈活調(diào)節(jié),信號準(zhǔn)確,更加可靠、有效.利用該方法產(chǎn)生的信號可作為各種需要PWM控制的信號源發(fā)生器,根據(jù)需要還可進(jìn)行顯示及按鍵控制等處理.
[1]李朝青.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社(第三版).
[2]葛金印.單片機(jī)技術(shù)應(yīng)用[M].北京:高等教育出版社,P86-118.
[3]張靖武.單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真[M].北京:電子工業(yè)出版社,2007.