機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
51單片機輸出PWM的兩種方法
51單片機輸出PWM的兩種方法
 更新時間:2009-9-27 16:30:14  點擊數(shù):0
【字體: 字體顏色

51系列單片機無PWM輸出功能,可以采用定時器配合軟件的方法輸出。對精度要求不高的場合,非常實用。電路圖見圖一,采用了高速光隔(6N137)輸出,并將PWM的信號倒相。

一、原理圖
 
圖一

二、固定脈寬PWM輸出
用T0定時器完成PWM輸出,脈寬固定:65536微妙。T0定時器設置成:16位定時器
PWM:
 
程序清單:(12MHz)
                     PwmData0     ;T0定時t1所需的定時初值(字)
PwmData1     ;T0定時t2所需的定時初值(字)
                     PwmF            ;PWM輸出標志
;*********************************************************
                     setb tro  ;啟動T0
                     。。。。。。
T0Int:;T0中斷服務程序
                     JB  PwmF ,PwmOutH ;PWM輸出未完成返回
                     Mov TH0,High(PwmData0)
Mov TL0,Low(PwmData0)
                     Setb tr0
                     Setb PwmF
Clr  p1.0  ;PWM輸出腳
reti
    PwmOutH:
                            Setb p1.0
                            Clr tr0
                            Mov TH0,High(PwmData1)
Mov TL0,Low(PwmData1)
Setb tr0
Clr PwmF
reti
說明:在主程序中計算PwmData0、PwmData1的值。  

三、可變脈寬PWM輸出
用T0定時器控制PWM的占空比,T1定時器控制脈寬(最大:65536微妙)。
T0、T1定時器設置成:16位定時器。
 
程序清單:(12MHz)
                     PwmData0     ;T0定時t1所需的定時初值(字)
PwmData1     ;T1定時T所需的定時初值(字)
;*********************************************************
                     setb tro  ;啟動T0
                     setb tr1
                     。。。。。。
T0Int:;T0中斷服務程序
                     Clr  tr0
                     setb  p1.0  ;PWM輸出腳
reti
    T1Int:;T1中斷服務程序
                            Clr  p1.0
                            Clr tr0
                            Clr tr1
Mov TH0,High(PwmData0)
Mov TL0,Low(PwmData0)
Mov TH1,High(PwmData1)
Mov TL1,Low(PwmData1)
Setb tr1
Setb tr0
reti
說明:在主程序中計算PwmData0、PwmData1的值。

  • 上一篇: 51 單片機的串行口擴展方法
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

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

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

    網站經營許可證:浙B2-20080178-1