專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

合泰單片機(jī)PWM輸出程序

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2014年02月10日   【字體:

;內(nèi)容:PWM輸出控制LED從亮逐漸變暗直到熄滅
;完整源碼下載:http://www.torrancerestoration.com/f/htpwm.rar
#INCLUDE HT66F50.INC

ORG 00H
MOV A,08H
MOV CP0C,A ;設(shè)置管腳不為比較器腳
MOV CP1C,A ;設(shè)置管腳不為比較器腳
CLR ACERL ;設(shè)置管家部位AD腳
MOV A,00010000B
MOV TMPC0,A ;T1BCP1置1使能TP1B_0
CLR TM1C0 ;fINT=fSYS/4
MOV A,10101001B ;設(shè)置為PWM模式PWM輸出高有效同相T1CCLR=1
MOV TM1C1,A ;CCRA控制TP1B PWM 周期,CCRB 控制TP1B PWM 占空比
MOV A,10101000B ;置為PWM模式PWM輸出高有效同相邊沿對齊
MOV TM1C2,A ;
MOV A,LOW  1024-1
MOV TM1AL,A ;設(shè)置TP1B PWM 周期 CCRA=1024uS
MOV A,HIGH 1024-1
MOV TM1AH,A ;設(shè)置PC.0為輸出
CLR PCC.0 
CLR PC.0 ;pc.0輸出低電平
MOV A,5
SET T1ON ;PWM開始工作 
MOV A,0FFH ;設(shè)置占空比初始值
MOV [80H],A
MOV A,3 ;
MOV [81H],A

a2: 
CALL M001 ;延時
SZ [80H] ;判斷占空比低位是否為0
JMP $+2 
JMP A3
DEC [80H] ;否低位減1
JMP A5
A3: 
SZ [81H] ;是則判斷高位是否為0
JMP A4
MOV A,0FFH ;是低位存0FFH
MOV [80H],A ;
MOV A,3 ;高位存3 
MOV [81H],A ;不能大于周期
JMP A2
A4: 
DEC [81H] ;否則高位減1
MOV A,0FFH ;
MOV [80H],A ;低位存0FFH
A5: 
mov a,[80H] ;將占空比的數(shù)存到CCRB中
mov TM1BL,A ;
MOV A,[81H] ;
MOV TM1BH,A ;
jmp A2

M001: MOV A,2
MOV [85H],A
M002: MOV A,20
MOV [86H],A
M003: MOV A,250
MOV [87H],A
M004: SDZ [87H]
JMP M004
SDZ [86H]
JMP M003
SDZ [85H]
JMP M002 
        RET
end
 

關(guān)閉窗口

相關(guān)文章