📄 tdm.asm
字号:
;PCM编解码器驱动程序,可观察到电话直通。
.mmregs
.def _c_int00
.data
TEMP .usect "TEMP", 20H
TMP .set 6AH
K_SPCR11 .set 0000000010100001b ;串口0的初始化数据
K_SPCR21 .set 0000000000100001b
K_RCR11 .set 0001111100000000b
K_RCR21 .set 0001111100000000b
K_XCR11 .set 0001111100000000b
K_XCR21 .set 0001111100000000b
; ;
K_PCR1 .set 0000000000000001b
;
K_MCR11 .set 0000000000000001b ;PCM编解码器的初始化数据,0-15
K_MCR21 .set 0000000000000010b ;0-15
K_RCERA1 .set 0000000000000000b ;16
K_RCERB1 .set 0000000000000001b
K_XCERA1 .set 0000000000000000B
K_XCERB1 .set 0000010000000000B ;24
SPSA1 .set 48h
McBSP1 .set 49h
DXR11 .set 43h
DXR21 .set 42h
DRR11 .set 41h
DRR21 .set 40h
SPCR11 .set 00h
SPCR21 .set 01h
RCR11 .set 02h
RCR21 .set 03h
XCR11 .set 04h
XCR21 .set 05h
PCR1 .set 0Eh
SRGR11 .set 06h
SRGR21 .set 07h
MCR11 .set 08h
MCR21 .set 09h
RCERA1 .set 0ah
RCERB1 .set 0bh
XCERA1 .set 0ch
XCERB1 .set 0dh
PCR1 .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: rete
nop
nop
nop
XINT0: rete
nop
nop
nop
SINT6 .space 4*16
SINT7 .space 4*16
INT3: rete
nop
nop
nop
HPINT: rete
nop
nop
nop
RINT1: B RECIV ;RINT1接收中断向量
nop
nop
nop
XINT1: B XT ;XINT1发送中断向量
nop
nop
nop
;*************************
start: LD #0,DP
STM #200h,SP
STM #07FFFh,SWWSR
STM #1060h,PMST
STM #3FFFH,IFR
STM #4000H,AR0
STM #1000H,AR2
CALL INBSP ;串口0和PCM编解码器初始化
STM #3FFFH,IFR
STM #0400H,IMR ;ENABLE RINT1 INTERRUPT
RSBX INTM ;开中断
;*************************
WAIT: B WAIT
;*************************
INBSP STM #SPCR11,SPSA1
STM #0000h,McBSP1 ;RESET R
NOP
NOP
STM #SPCR21,SPSA1
STM #0000h,McBSP1 ;RESET X
NOP
NOP
STM #RCR11,SPSA1
STM #K_RCR11,McBSP1
NOP
NOP
STM #XCR11,SPSA1
STM #K_XCR11,McBSP1
NOP
NOP
STM #PCR1,SPSA1
STM #K_PCR1,McBSP1
NOP
NOP
STM #RCR21,SPSA1
STM #K_RCR21,McBSP1
NOP
NOP
STM #XCR21,SPSA1
STM #K_XCR21,McBSP1
NOP
NOP
STM #MCR11,SPSA1
STM #K_MCR11,McBSP1
NOP
NOP
STM #MCR21,SPSA1
STM #K_MCR21,McBSP1
NOP
NOP
STM #RCERA1,SPSA1
STM #K_RCERA1,McBSP1
NOP
NOP
STM #RCERB1,SPSA1
STM #K_RCERB1,McBSP1
NOP
NOP
STM #XCERA1,SPSA1
STM #K_XCERA1,McBSP1
NOP
NOP
STM #XCERB1,SPSA1
STM #K_XCERB1,McBSP1
NOP
NOP
STM #SPCR11,SPSA1
STM #K_SPCR11,McBSP1 ;ENBLE R
NOP
NOP
STM #SPCR21,SPSA1
STM #K_SPCR21,McBSP1 ;ENBLE X
NOP
NOP
RET
;*********************************
RECIV: STM #3FFFH,IFR ;串口0的接收中断服务程序
LDM DRR11,A
STLM A,DXR11
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 + -