新聞中心

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

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

        作者: 時間:2016-11-13 來源:網絡 收藏
        51單片機沒有PWM輸出功能,可以采用定時器配合軟件的方法實現,對精度要求不高的場合是非常實用的。采用高速光隔6N137輸出,并將PWM的信號倒相。

          一、 工作原理

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

          二、PWM輸出
          1. 固定脈寬PWM輸出
          用T0定時器完成PWM輸出,脈寬固定為65536μs。T0定時器設置成16位定時器,PWM波形如圖2所示。
          程序清單:(12MHz)
          PwmData0;T0定時t1的初值(字)
          PwmData1;T0定時t2的初值(字)
          PwmF    ;PWM輸出標志
        ;***************************
              setb tro;啟動T0
        ……
          T0Int:;T0中斷服務程序
          JBPwmF ,PwmOutH
        ;PWM輸出未完成返回
        Mov TH0,High(PwmData0)
        Mov TL0,Low(PwmData0)
         Setb tr0
          Setb PwmF
        Clrp1.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:Clrtr0  ;T0中斷服務程序
            setbp1.0;PWM輸出腳
             reti
        T1Int:Clrp1.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脈

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 两当县| 兴山县| 钟祥市| 铁岭县| 崇文区| 河源市| 格尔木市| 茂名市| 宽甸| 当涂县| 汝城县| 云龙县| 格尔木市| 辉南县| 清徐县| 铅山县| 万州区| 南华县| 大关县| 江油市| 泰和县| 包头市| 基隆市| 伊金霍洛旗| 个旧市| 汕尾市| 新巴尔虎左旗| 长岭县| 德昌县| 黄石市| 鄂伦春自治旗| 伊通| 增城市| 新晃| 桐乡市| 积石山| 兴和县| 塔河县| 孟州市| 泾川县| 永济市|