新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機輸出PWM脈沖的兩種方法

        單片機輸出PWM脈沖的兩種方法

        作者: 時間:2016-09-07 來源:網絡 收藏

          51沒有輸出功能,可以采用定時器配合軟件的方法實現,對精度要求不高的場合是非常實用的。采用高速光隔6N137輸出,并將的信號倒相。

        本文引用地址:http://www.104case.com/article/201609/296668.htm

          一、 工作原理

          二、輸出

          1. 固定脈寬PWM輸出

          用T0定時器完成PWM輸出,脈寬固定為65536μs。T0定時器設置成16位定時器,PWM波形如圖2所示。

          程序清單:(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的值。

          2. 可變脈寬PWM輸出

          用T0定時器控制PWM的占空比,T1定時器控制脈寬(最大65536μs。)

          T0、T1定時器設置成16位定時器。

          程序清單:(12MHz)

          PwmData0 ;T0定時t1的初值(字)

          PwmData1 ;T1定時T的初值(字)

          ;***************************

          setb tro ;啟動T0

          setb tr1

          ……

          T0Int:Clr tr0   ;T0中斷服務程序

          setb p1.0 ;PWM輸出腳

          reti

          T1Int:Clr p1.0 ;T1中斷服務程序

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

          



        關鍵詞: 單片機 PWM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 视频| 台湾省| 南宁市| 高雄县| 武威市| 樟树市| 桐梓县| 隆化县| 宁阳县| 沐川县| 大港区| 南通市| 西乌珠穆沁旗| 南皮县| 黔南| 靖州| 尚义县| 扎囊县| 称多县| 通海县| 曲靖市| 纳雍县| 贵溪市| 辽宁省| 唐海县| 普洱| 阳东县| 海兴县| 雷山县| 安国市| 江陵县| 新竹县| 武义县| 白朗县| 博野县| 贵溪市| 东安县| 南涧| 灵丘县| 磴口县| 青田县|