精品国产成人一区二区三区-女子十八毛片-欧洲性猛交-无码不卡一区二区三区在线观看-www.四虎在线-伊人网国产-国精产品自偷自偷综合下载-不卡av网站-俄罗斯黄色大片-一本久久知道综合久久-国产精品日韩一区二区-日韩精品色-免费人成网ww555kkk在线-黄色在线观看免费-日韩在线免费-久久久久99人妻一区二区三区-十八禁真人啪啪免费网站

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
基于51單片機雙極型PWM 的軟件實現(xiàn),紫微單片機
基于51單片機雙極型PWM 的軟件實現(xiàn),紫微單片機
 更新時間:2009-7-23 15:58:48  點擊數(shù):0
【字體: 字體顏色

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

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)的控制信號和定時器的定時初值線性對應起來,就可獲得控制信號對脈寬調(diào)制的PWM 信號。所以這樣線性的對應過程就成為這個實現(xiàn)過程的關(guān)鍵?刂菩盘柕姆N類不同,采用不同的計算方法,又可以獲得不同的PWM,見文獻[3]。

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

    下面計算產(chǎn)生雙極型PWM 所需的定時初值。實際上穩(wěn)定工作時,只有一個引腳有輸出,即一般兩個引腳不會同時輸出,所以可看作是兩個相對獨立的過程,可假設(shè)脈寬和誤差信號的線性對應關(guān)系:

據(jù)此可求出定時初值與誤差信號的關(guān)系:

由(1)式有

把式(5)代入式(6)得:

    當晶振頻率取12 MHz時,f=12。采用定時方式1,則可以得到即時的控制信號V(t)和定時初值在PWM 信號的一個周期內(nèi)的關(guān)系:

    因為V和V(t)通過對誤差計算都可以得到,所以根據(jù)式(8)可以求出t時刻對應的PWM 一個周期高低脈寬的定時初值(注意這里的T的單位是us,頻率f的單位為MHz)。

3 Keil C下的程序?qū)崿F(xiàn)
    Keil C是基于標準C的C51專用高級編程語言,它具備標準C的強大靈活的編程能力,同時又相對增加了對C51單片機硬件資源的直接操作,故在Keil C下對C51的程序設(shè)計幾乎使人們可擺脫對C51底層寄存器等硬件的煩瑣操作,編程效率顯著提高,并且程序運行速度和所占空間和匯編差別不大。這里利用定時器T0的方式1,采用其時間溢出中斷,中斷號為1,具體程序流程如圖2所示。


圖2 PWM信號實現(xiàn)的軟件流程

E -誤差控制器;TH0-T0定時器高位;TL0-T0定時器低位;Twh、Twl-定時器初值

4 結(jié)語
    單片機硬件發(fā)展很快,出現(xiàn)了16位、32位等多位機,但今后一段時期C51系列的8位機將仍占主流。通過適當?shù)能浖_發(fā),可以挖掘其內(nèi)在價值,這樣既降低了生產(chǎn)成本,又鍛煉了個人的軟件開發(fā)能力。

  • 上一篇: 12864點陣液晶顯示模塊與51單片機的接口及程序設(shè)計,紫微單片機
  • 下一篇: 單片機測量頻率的設(shè)計與實現(xiàn),紫微單片機
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1
    乳山市| 八宿县| 滨海县| 华阴市| 五家渠市| 新巴尔虎左旗| 高青县| 双流县| 临沧市| 佛学| 吴忠市| 汝城县| 清苑县| 青神县| 循化| 周口市| 元氏县| 汨罗市| 郸城县| 桂平市| 滨州市| 深泽县| 龙胜| 简阳市| 平顶山市| 拉萨市| 岳池县| 康定县| 松潘县| 固始县| 广饶县| 上虞市| 朝阳区| 永善县| 澳门| 神池县| 新民市| 泽普县| 汉阴县| 涡阳县| 蓬莱市|