在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 軟件實現(xiàn)多路PWM的輸出

            軟件實現(xiàn)多路PWM的輸出

            作者: 時間:2012-10-27 來源:網(wǎng)絡(luò) 收藏
            單片機應(yīng)用于舞臺燈光、民用照明的調(diào)光、電機轉(zhuǎn)速、溫度控制等眾多領(lǐng)域時需要用到PWM占空比進行調(diào)節(jié)。市場上,集成了硬件PWM模塊的單片機型號如PIC16F628A、STC12C2052等。使用硬件PWM時僅需進行一些特殊功能寄存器的設(shè)置,使用方便。但硬件PWM輸出路數(shù)往往較少,如果要增PWM的輸出路數(shù)則會使產(chǎn)品成本上升,較難適應(yīng)于價格敏感的產(chǎn)品上。如:PIC16F628A、STC12C2052僅具有兩路PWM輸出。舞臺光通常要到用三路PWM信號調(diào)光(三路分別控制紅、綠、藍三基色進行組合搭配出不同色彩)。因此軟件實現(xiàn)PWM是較為合理的選擇。

            在舞臺燈光廠做了這么久,雖然明白軟件PWM的原理,但就是弄不清它們的關(guān)系,一直寫不出比較好的軟件PWM程序。近日,一偶然的機會得到啟發(fā),寫下這個程序和單片機愛好者分享。

            程序如下:

            AUXR EQU 8EH
            PWM1DATA EQU 60H
            PWM2DATA EQU 61H
            PWM3DATA EQU 62H
            PWM1DATA1 EQU 63H
            PWM2DATA1 EQU 64H
            PWM3DATA1 EQU 65H
            PWM1 EQU P0.5
            PWM2 EQU P0.6
            PWM3 EQU P0.7
            ORG 0000H
            AJMP MAIN
            ORG 000BH
            AJMP TIMER0
            ORG 0030H
            MAIN:
            CLR PWM1
            MOV P0,#11H
            MOV SP,#30H
            MOV AUXR,#01H
            CLR RS1
            CLR RS0
            MOV TMOD,#02H
            MOV TH0,#00H

            MOV TL0,#00H
            MOV R2,#0FFH;R2用作PWM周期寄存器
            MOV PWM1DATA,#0
            MOV PWM2DATA,#85
            MOV PWM3DATA,#170
            MOV PWM1DATA1,PWM1DATA
            MOV PWM2DATA1,PWM2DATA
            MOV PWM3DATA1,PWM3DATA
            SETB EA ;開中斷總控制
            SETB ET0;開TO中斷控制
            SETB TR0 ;開始 計數(shù)

            MAIN1:
            ACALL DEL
            INC PWM1DATA
            INC PWM2DATA
            INC PWM3DATA
            AJMP MAIN1
            DEL:
            MOV R4,#05H
            D1:
            MOV R5,#0FFH
            D2:
            MOV R6,#0FFH
            DJNZ R6,$
            DJNZ R5,D2
            DJNZ R4,D1
            RET

            TIMER0: ;定時器中斷
            PUSH ACC
            TIMER001:
            MOV A,PWM1DATA1
            JZ TIMER0011
            SETB PWM1
            DEC PWM1DATA1
            AJMP TIMER002
            TIMER0011:
            CLR PWM1
            TIMER002:
            MOV A,PWM2DATA1
            JZ TIMER0021
            SETB PWM2
            DEC PWM2DATA1
            AJMP TIMER003
            TIMER0021:
            CLR PWM2
            TIMER003:
            MOV A,PWM3DATA1
            JZ TIMER0031
            SETB PWM3
            DEC PWM3DATA1
            AJMP TIMER004
            TIMER0031:
            CLR PWM3
            TIMER004:
            DJNZ R2,TIMER005
            MOV R2,#0FFH
            MOV PWM1DATA1,PWM1DATA
            MOV PWM2DATA1,PWM2DATA
            MOV PWM3DATA1,PWM3DATA
            TIMER005:
            POP ACC
            RETI
            END

            這個程序是基于實現(xiàn)的。因為PWM的頻率較低,所以當的是LED時會有較大的閃動。如果要解決這個問題,則可以提高時鐘頻率?;蚴褂霉ぷ魉俣雀斓膯纹瑱C,如STC12C2052可以設(shè)置為1時鐘1,工作頻率最高可達420MHZ。盡量不要改變定時器T0的初值(初值越小越好,最好為00H),因為如果單片機此時還要執(zhí)行其它的任務(wù)(如串行通訊)時,T0的中斷頻率過高對軟件PWM是致命的。

            pwm相關(guān)文章:pwm原理




            關(guān)鍵詞: PWM控制 STC89C52 機器周期

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉