?? pcm.asm
字號:
;PCM編解碼器驅動程序,可觀察到電話直通。
.mmregs
.def _c_int00
.data
TEMP .usect "TEMP", 20H
TMP .set 6AH
K_SPCR10 .set 0000000010100001b ;串口0的初始化數據
K_SPCR20 .set 0000001011100001b
K_RCR10 .set 0001111100000000b
K_RCR20 .set 0001111100000000b
K_XCR10 .set 0001111100000000b
K_XCR20 .set 0001111100000000b
K_SRGR10 .set 0000000000000111b
K_SRGR20 .set 0011000011111111b
; ;
K_PCR0 .set 0000101000000000b
K_MCR10 .set 0000000000000000b ;PCM編解碼器的初始化數據
K_MCR20 .set 0000000000000010b
K_RCERA0 .set 0000000000000001b
K_RCERB0 .set 0000000000000000b
K_XCERA0 .set 0000000000000001b
K_XCERB0 .set 0000000000000000b
SPSA0 .set 38h
McBSP0 .set 39h
DXR10 .set 23h
DXR20 .set 22h
DRR10 .set 21h
DRR20 .set 20h
SPCR10 .set 00h
SPCR20 .set 01h
RCR10 .set 02h
RCR20 .set 03h
XCR10 .set 04h
XCR20 .set 05h
SRGR10 .set 06h
SRGR20 .set 07h
MCR10 .set 08h
MCR20 .set 09h
RCERA0 .set 0ah
RCERB0 .set 0bh
XCERA0 .set 0ch
XCERB0 .set 0dh
PCR0 .set 0Eh
.text
_c_int00
b start
nop
nop
NMI rete
nop
nop
nop
SINT17 .space 4*16
SINT18 .space 4*16
SINT19 .space 4*16
SINT20 .space 4*16
SINT21 .space 4*16
SINT22 .space 4*16
SINT23 .space 4*16
SINT24 .space 4*16
SINT25 .space 4*16
SINT26 .space 4*16
SINT27 .space 4*16
SINT28 .space 4*16
SINT29 .space 4*16
SINT30 .space 4*16
INT0 rsbx intm
rete
nop
nop
INT1 rsbx intm
rete
nop
nop
INT2 rsbx intm
rete
nop
nop
TINT: RETE
nop
nop
nop
RINT0: BD RECIV ;RINT0接收中斷向量
nop
nop
nop
XINT0: BD XT ;XINT0發送中斷向量
nop
nop
nop
SINT6 .space 4*16
SINT7 .space 4*16
INT3: rete
nop
nop
nop
HPINT: rete
nop
nop
nop
RINT1: RETE
nop
nop
nop
XINT1: RETE
nop
nop
nop
;*************************
start: LD #0,DP
STM #200h,SP
STM #07FFFh,SWWSR
STM #1060h,PMST
STM #3FFFH,IFR
LD #0AH,A
STL A,TMP
PORTW TMP,7H ;選通串口0給PCM編解碼器用
STM #4000H,AR0
STM #1000H,AR2
CALL INBSP ;串口0和PCM編解碼器初始化
STM #3FFFH,IFR
STM #0010H,IMR ;ENABLE RINT0 INTERRUPT
RSBX INTM ;開中斷
;*************************
WAIT: B WAIT
;*************************
INBSP STM #SPCR10,SPSA0
STM #0000h,McBSP0 ;RESET R
NOP
NOP
STM #SPCR20,SPSA0
STM #0000h,McBSP0 ;RESET X
NOP
NOP
STM #RCR10,SPSA0
STM #K_RCR10,McBSP0
NOP
NOP
STM #XCR10,SPSA0
STM #K_XCR10,McBSP0
NOP
NOP
STM #PCR0,SPSA0
STM #K_PCR0,McBSP0
NOP
NOP
STM SRGR10,SPSA0
STM #K_SRGR10,McBSP0
NOP
NOP
STM SRGR20,SPSA0
STM #K_SRGR20,McBSP0
NOP
NOP
STM #RCR20,SPSA0
STM #K_RCR20,McBSP0
NOP
NOP
STM #XCR20,SPSA0
STM #K_XCR20,McBSP0
NOP
NOP
STM #MCR10,SPSA0
STM #K_MCR10,McBSP0
NOP
NOP
STM #MCR20,SPSA0
STM #K_MCR20,McBSP0
NOP
NOP
STM #RCERA0,SPSA0
STM #K_RCERA0,McBSP0
NOP
NOP
STM #RCERB0,SPSA0
STM #K_RCERB0,McBSP0
NOP
NOP
STM #XCERA0,SPSA0
STM #K_XCERA0,McBSP0
NOP
NOP
STM #XCERB0,SPSA0
STM #K_XCERB0,McBSP0
NOP
NOP
STM #SPCR10,SPSA0
STM #K_SPCR10,McBSP0 ;ENBLE R
NOP
NOP
STM #SPCR20,SPSA0
STM #K_SPCR20,McBSP0 ;ENBLE X
NOP
NOP
RET
;*********************************
RECIV: STM #3FFFH,IFR ;串口0的接收中斷服務程序
LDM DRR10,A
STLM A,DXR10
STL A,*AR0+
BANZ RECIV1,*AR2-
STM #4000H,AR0
STM #1000H,AR2
RECIV1: RETE
;***************
XT: RETE
;***************
.end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -