?? pwmdac.s
字號(hào):
;******************************************************************************
; 文件名:PWMDAC.S
; 功能:使用PWM6輸出PWM信號(hào),通過(guò)濾波電路實(shí)現(xiàn)DAC轉(zhuǎn)換。
; 說(shuō)明:將跳線器JP2短接,JP3_RXD1斷開(kāi)。使用示波器觀察測(cè)試點(diǎn)PWM和PWMDAC。
;******************************************************************************
INCLUDE LPC2294.INC
EXPORT MAIN
PWM_BASE EQU 0xE0014000
; PWM周期及占空比設(shè)置值
CYCLE_DATA EQU 2000
DUTY_CYCLE_DATA EQU 1000
AREA PWMDACC,CODE,READONLY
ENTRY
MAIN MOV R7,#0xFF0 ; 系統(tǒng)上電延時(shí)
DELAY_L1 SUBS R7,R7,#1
BNE DELAY_L1
LDR R0,=PINSEL0
MOV R1,#0x00080000
STR R1,[R0] ; 設(shè)置PWM6連接到P0.9管腳
BL SYSCLK_INI ; 設(shè)置系統(tǒng)時(shí)鐘
; 設(shè)置PWM輸出
LDR R0,=PWM_BASE
MOV R1,#0x00
STR R1,[R0,#0x0C] ; PWMPR=0x00,不分頻,計(jì)數(shù)頻率為Fpclk
MOV R1,#0x02
STR R1,[R0,#0x14] ; PWMMCR=0x02,設(shè)置PWMMR0匹配時(shí)復(fù)位PWMTC
LDR R1,=CYCLE_DATA
STR R1,[R0,#0x18] ; PWMMR0=CYCLE_DATA,設(shè)置PWM周期
LDR R1,=DUTY_CYCLE_DATA
STR R1,[R0,#0x48] ; PWMMR6=DUTY_CYCLE_DATA,設(shè)置PWM占空比
MOV R1,#0x41
STR R1,[R0,#0x50] ; PWMLER=0x41,PWMMR0、PWMMR6鎖存
MOV R1,#0x4000
STR R1,[R0,#0x4C] ; PWMPCR=0x4000,允許PWM6輸出,單邊PWM
MOV R1,#0x09
STR R1,[R0,#0x04] ; PWMTCR=0x09,啟動(dòng)定時(shí)器,PWM使能
HALT B HALT
;******************************************************************************
; 名稱:SYSCLK_INI
; 功能:設(shè)置系統(tǒng)時(shí)鐘。(M值為4,P值為2)
; 入口參數(shù):無(wú)
; 出口參數(shù):無(wú)
; 占用資源:R0、R1
;******************************************************************************
SYSCLK_INI
LDR R0,=VPBDIV
MOV R1,#0x00
STR R1,[R0] ; VPBDIV=0x00
LDR R0,=PLLCFG
MOV R1,#0x23
STR R1,[R0] ; PLLCFG=0x23,設(shè)置M值為4,P值為2
LDR R0,=PLLCON
MOV R1,#0x01
STR R1,[R0] ; PLLCON=0x01
LDR R0,=PLLFEED
MOV R1,#0xAA
STR R1,[R0] ; PLLFEED=0xAA
MOV R1,#0x55
STR R1,[R0] ; PLLFEED=0x55
WAIT_OK LDR R0,=PLLSTAT
LDR R1,[R0]
ANDS R1,R1,#0x0400
BEQ WAIT_OK ; 等待PLL鎖定
LDR R0,=PLLCON
MOV R1,#0x03
STR R1,[R0]
LDR R0,=PLLFEED
MOV R1,#0xAA
STR R1,[R0]
MOV R1,#0x55
STR R1,[R0]
MOV PC,LR
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -