18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 單片機 >> 正文

51單片機輸出PWM的兩種方法

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2008-10-31

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的值。 

Tags:單片機編程,輸出PWM,方法  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章:
  • 相關文章列表
    沒有相關文章
    請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁麵
    下到頁底
    晶體管查詢