?? aic231215.asm
字號:
.title "AIC23.asm"
.mmregs
stack .usect "stack",100h
.bss audio_data,20h
;定義MCBSP0的各個寄存器
bsp2 .set 35h
drr22 .set 30h
drr12 .set 31h
dxr22 .set 32h
dxr12 .set 33h
spsa2 .set 34h
bsp0 .set 39h
drr20 .set 20h
drr10 .set 21h
dxr20 .set 22h
dxr10 .set 23h
spsa0 .set 38h
spcr10 .set 00h
spcr20 .set 01h
rcr10 .set 02h
rcr20 .set 03h
xcr10 .set 04h
xcr20 .set 05h
srgr10 .set 06h
srgr20 .set 07h
pcr0 .set 0eh
;clkmd .set 58h
cpldport1 .set 2000h
temp .set 060h
;延時時間
time_derive .set 01h
.def _c_int00
.data
audio_table: .word 0000h,2000h,4000h,6000h,7000h,6000h,4000h,2000h,0000h
.word 0e000h,0c000h,0a000h,9000h,0a000h,0c000h,0e000h
.text
_c_int00: stm #7000h,swwsr ;等待0個時鐘
stm #stack+100h,sp ;設置堆棧指針
ld #00h,dp
STM #0b, CLKMD ;switch to DIV mode
TstStatu:
LDM CLKMD, A
AND #01b, A ;poll STATUS bit
BC TstStatu, ANEQ
STM #0100001111101111b, CLKMD ;時鐘為10倍頻,127X16個等待時鐘,PLL開,分頻關
RPT #10000
NOP
stm #0000h,imr ;屏蔽所有中斷
rsbx cpl ;清CPL位=0
;初始化cpu完畢,開始初始化MCBSP0
write_cpld0
loop7
stm #0001h,ar1
stm #0000h,ar2
portw ar1,cpldport1 ;切換字寫到CPLD控制寄存器,轉為控制字輸出
rpt #400 ;等400個周期
nop
portr cpldport1,ar2
rpt #400
nop ;等400個周期
bitf ar2,#0001h
bc write_cpld0,ntc
rpt #400
nop
ld #00h,dp
stm #spcr10,spsa0 ;接收復位
stm #0000h,bsp0
stm #spcr20,spsa0 ;發送、采樣、幀復位
stm #0000h,bsp0
stm #spcr10,spsa0 ;12、11位為10,進入SPI模式,7位(DXENA)為0,不起動DX延時
stm #1000h,bsp0
stm #pcr0,spsa0 ;1位置1,數據下沿發送上沿接收,3位置1,幀同步為低電平有效,9位置1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -