新聞中心

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

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

        作者: 時間:2012-11-03 來源:網絡 收藏

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

        一、原理圖
        51單片機輸出PWM的兩種方法
        圖一

        二、固定脈寬PWM輸出
        用T0完成PWM輸出,脈寬固定:65536微妙。T0設置成:16位定時器
        PWM:
        51單片機輸出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位定時器。
        51單片機輸出PWM的兩種方法
        程序清單:(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的值。

        pwm相關文章:pwm是什么


        51單片機相關文章:51單片機教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        pwm相關文章:pwm原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临湘市| 台东县| 康保县| 新巴尔虎左旗| 剑河县| 铁力市| 五指山市| 阿克| 罗山县| 雷山县| 澎湖县| 江源县| 平邑县| 孝感市| 东兰县| 遂宁市| 仁化县| 兴国县| 泌阳县| 襄汾县| 宽城| 呈贡县| 内黄县| 阿拉善左旗| 韶关市| 凤城市| 司法| 中西区| 洪泽县| 潼关县| 涡阳县| 普兰县| 永吉县| 普格县| 台南市| 大石桥市| 新郑市| 百色市| 浦县| 白朗县| 墨竹工卡县|