新聞中心

        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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 喀喇沁旗| 南岸区| 综艺| 凤阳县| 太湖县| 锡林郭勒盟| 徐水县| 阳朔县| 丽水市| 林州市| 天柱县| 会宁县| 新巴尔虎右旗| 大足县| 自贡市| 无棣县| 上林县| 应城市| 灵川县| 固始县| 阿鲁科尔沁旗| 汤原县| 天台县| 沧源| 凤凰县| 新泰市| 石景山区| 奎屯市| 舞阳县| 三都| 云霄县| 德令哈市| 临沂市| 江达县| 翁牛特旗| 莒南县| 三台县| 津南区| 调兵山市| 潜山县| 福建省|