新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于51單片機雙極型PWM 的軟件實現(xiàn)

基于51單片機雙極型PWM 的軟件實現(xiàn)

作者: 時間:2012-11-27 來源:網(wǎng)絡(luò) 收藏

Keil C是基于標(biāo)準C內(nèi)核的第三方語言,利用它可以很方便高效地實現(xiàn)對單片機的高級編程。C51是目前使用最普遍的8位單片機,價格低廉。它與軟件編程結(jié)合,可以比較方便地滿足眾多功能要求,甚至取代一些復(fù)雜的硬件電路,簡化硬件設(shè)計,并提高系統(tǒng)的可靠性和降低成本。基于這個思想,本文提出了一種在C上軟件實現(xiàn)相對復(fù)雜的 的新方法。

1 PWM 控制原理
PWM(Pulse Width Modulation)即脈沖寬度調(diào)制,它通過控制信號去調(diào)制方波脈沖的寬度,從而獲得控制的實現(xiàn)。
產(chǎn)生PWM 信號可以由硬件方法和軟件方法實現(xiàn)。傳統(tǒng)的硬件模擬方法是把調(diào)制信號和載波(一般是三角波)同時接入運算放大器的兩個輸入端作比較而得到。而軟件的實現(xiàn),特別是基于單片機的軟件實現(xiàn)方法,主要是利用其內(nèi)部提供的定時器,通過改變定時器的定時初值獲得不同的脈沖持續(xù)時間,如果把系統(tǒng)的控制信號和定時器的定時初值線性對應(yīng)起來,就可獲得控制信號對脈寬調(diào)制的PWM 信號。所以這樣線性的對應(yīng)過程就成為這個實現(xiàn)過程的關(guān)鍵??刂菩盘柕姆N類不同,采用不同的計算方法,又可以獲得不同的PWM,見文獻[3]。

2 在AT89C51中實現(xiàn)的方法
51系列單片機提供了非常豐富的資源,它除了擁有4個通用并口和1個串口外,還有外部中斷和內(nèi)部定時器等。而且,不同的型號還集成有不同的功能,比如AT89C51就在片內(nèi)集成了4 K 的ROM,這樣存儲空間可以滿足一般的編程需要,而不必去構(gòu)建程序存儲器,既提高了工作效率和系統(tǒng)的穩(wěn)定性,又降低了生產(chǎn)成本。
基于AT89C的PWM 軟件實現(xiàn)的重要硬件支撐是該單片機內(nèi)部的定時器。在AT89C51內(nèi)實現(xiàn)PWM 的基本過程:首先選定脈沖的頻率T,然后根據(jù)控制信號的變化范圍,這里假設(shè)是(0~V),則可以求出t時刻通過控制信號V(t)的對應(yīng)脈沖的正、負脈沖持續(xù)時間。這兩個時間長度在單片機里是通過給定時器賦相應(yīng)的初值而得,即定時器獲得這樣的定時初值后就在機器周期的同步下,從這個初值加1計數(shù),定時器滿時則產(chǎn)生相應(yīng)時間長度的溢出中斷,再利用這個中斷所響應(yīng)的服務(wù)程序去控制單片機某一引腳相應(yīng)的正、負電平極性的持續(xù)時間。如果上述過程連續(xù)進行,就可在這個引腳獲得寬度隨控制信號V(t)大小變化的PWM方波信號。
AT89C每個機器周期由6個狀態(tài)組成,每個狀態(tài)又有兩個時鐘周期,這樣一個機器周期就等于12個時鐘周期,即機器頻率為時鐘頻率的12分頻。通過對工作模式寄存器TMOD的賦值操作,把定時器設(shè)為內(nèi)部定時狀態(tài)并選擇不同的定時方式。然后假設(shè)PWM 的周期T小于定時器一次溢出時間,即T2Nus,這里的N為定時器的位數(shù)。這樣就可以得到脈寬(脈沖持續(xù)時間)twx定時初值Twx的關(guān)系:
twx=(2N-Twx)×12/f us (1)
如果所用晶振為12 MHz,定時器為方式1,即為16位定時(這時定時有比較大的計數(shù)范圍,用途更為廣泛),這樣上式變?yōu)椋?BR>twx=(216 - Twx )us (2)
之后再根據(jù)功率器件的時間特性和工作的平均功率值,確定一個合適的PWM 信號周期T,很顯然這個周期T就是由高電平脈寬twh和低電平脈寬twl組成,即:
T=twh+ twl (3)
當(dāng)調(diào)制PWM 脈寬的誤差信號V(f)(這個信號一般是由傳感器采集后經(jīng)過相關(guān)處理后得到的誤差信號)的變化范圍是(0~V)或(-V~V)時,PWM脈寬與誤差信號為線性關(guān)系(實際可能不是線性的,但一般可以忽略或者可以通過前級進行軟件補償),可以從單片機的1個引腳得到PWM 信號,具體的過程在相關(guān)文獻已有敘述,見文獻[4]。
然而,單片機一般是單極型的,它的邏輯0對應(yīng)的實際電平是0 V,邏輯1對應(yīng)的實際電平是+5 V。嚴格地說,在這種單片機上只能夠輸出單極型的PWM 信號。采用AT89C51結(jié)合軟件編程實現(xiàn) 控制的設(shè)計思想是這樣的:從AT89C51的一個引腳得到正的單極型PWM 信號輸出,對另一個引腳做相應(yīng)的設(shè)計和定義,讓它承擔(dān)對應(yīng)的“負”極型PWM 信號的輸出。即當(dāng)調(diào)制PWM 脈寬的誤差信號為正時,對應(yīng)的PWM 就從AT89C51單片機的一個引腳輸出;當(dāng)誤差信號為負時,對應(yīng)的PWM 就從另外一個引腳輸出,盡管這個輸出信號的模擬電平也是正的,但它對應(yīng)的是負值的誤差信號所產(chǎn)生的PWM 輸出,又是驅(qū)動負極型功率器件,和負極型PWM 功能一樣,于是可以把它等效為負極型PWM;當(dāng)誤差信號為零時,相應(yīng)的兩個引腳都沒有輸出,然后再把這兩個引腳接入PWM 功率驅(qū)動電路的輸入端。通過對誤差信號正負的判別,再利用AT89C51的兩個引腳就實現(xiàn)了雙極型的PWM。具體電路如圖1所示。

pwm相關(guān)文章:pwm是什么


51單片機相關(guān)文章:51單片機教程


pwm相關(guān)文章:pwm原理



上一頁 1 2 下一頁

關(guān)鍵詞: 51單片機 雙極型PWM C51系列

評論


相關(guān)推薦

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

關(guān)閉