📄 adda.asm
字号:
;A/D转换器和D/A转换器的直通程序,由A/D采样实验电路产生的
;模拟信号(可选择方波、正弦波、三角波),再由D/A直接输出,
;采样一个点输出一个点。
.mmregs
.def _c_int00
.data
TEMP .usect "TEMP", 20h
t0_flag .usect "vars",1
t0_cout .usect "vars",1
flag .usect "vars",1
AK_SPCR11 .set 0000000000000001b
AK_SPCR21 .set 0000000011100001b
AK_RCR11 .set 0000000001000000b;1 fax 1 word,1 word 16 bit
AK_RCR21 .set 0000000001000000b;
AK_XCR11 .set 0000000001000000b
AK_XCR21 .set 0000000001000000b
AK_SRGR11 .set 0000000000010011b ;clock 4.096mhz/s
AK_SRGR21 .set 0011000000011111b ;sample rate 128k/s
; ;
AK_PCR1 .set 0000111100000000b
GPIOCR .set 3ch
GPIOSR .set 3dh
SPSA1 .set 48h
McBSP1 .set 49h
DXR11 .set 43h
DXR21 .set 42h
DRR11 .set 41h
DRR21 .set 40h
TMP .set 6Ah
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
DK_SPCR10 .set 0000000000000000b
DK_SPCR20 .set 0000000011100001b ;FREE=1
DK_RCR10 .set 0000000001000000b;1 fax 1 word,1 word 16 bit
DK_RCR20 .set 0000000001000000b;
DK_XCR10 .set 0000000001000000b
DK_XCR20 .set 0000000001000000b
DK_SRGR10 .set 0000111000010011b;0000000000010100b
DK_SRGR20 .set 0011000000011111b;0011000000010000b
; ;
DK_PCR0 .set 0000101000001100b
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
PCR0 .set 0Eh
SRGR10 .set 06h
SRGR20 .set 07h
.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: BD XT
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: BD RECIV
nop
nop
nop
;*************************
start: LD #0,DP
STM #200h,SP
STM #07FFFh,SWWSR
STM #1020h,PMST
STM #3FFFH,IFR
STM #00FFH,GPIOCR
STM #00FFH,GPIOSR
CALL ADCBSP
CALL DACBSP
ST #0,*(flag)
STM #500H,AR0
STM #600H,AR4
STM #255,AR2
LD #0FE00H,A
STM #0820H,IMR ;ENABLE TINT1 INTERRUPT
RSBX INTM
WAIT: IDLE 1
B WAIT
;*************************
ADCBSP STM #SPCR11,SPSA1
STM #0000h,McBSP1 ;RESET R
NOP
NOP
STM #SPCR21,SPSA1
STM #0000h,McBSP1 ;RESET X
NOP
NOP
STM #SPCR11,SPSA1
STM #AK_SPCR11,McBSP1 ;ENBLE R
NOP
NOP
STM #0000000111111011b,GPIOSR
STM #SPCR21,SPSA1
STM #AK_SPCR21,McBSP1 ;ENBLE X
NOP
NOP
STM #RCR11,SPSA1
STM #AK_RCR11,McBSP1
NOP
NOP
STM #XCR11,SPSA1
STM #AK_XCR11,McBSP1
NOP
NOP
STM #PCR1,SPSA1
STM #AK_PCR1,McBSP1
NOP
NOP
STM SRGR11,SPSA1
STM #AK_SRGR11,McBSP1
NOP
NOP
STM SRGR21,SPSA1
STM #AK_SRGR21,McBSP1
NOP
NOP
STM #RCR21,SPSA1
STM #AK_RCR21,McBSP1
NOP
NOP
STM #XCR21,SPSA1
STM #AK_XCR21,McBSP1
NOP
NOP
RET
;*********************************
RECIV: PSHM AL
LDM DRR11,A
STL A,2,*AR4+
POPM AL
RETE
;***************
XT: RPT #20
NOP
READA AR0
ADD #1,A
LDM AR0,B
NOP
NOP
NOP
NOP
NOP
NOP
AND #0FFCH,B
STLM B,DXR10
BANZ XT8,*AR2-
LD #0FE00H,A
XT8:
RETE
;**********************
DACBSP: STM #SPCR10,SPSA0
STM #0000h,McBSP0 ;RESET R
NOP
NOP
STM #SPCR20,SPSA0
STM #0000h,McBSP0 ;RESET X
NOP
NOP
STM #SPCR10,SPSA0
STM #DK_SPCR10,McBSP0 ;ENBLE R
NOP
NOP
STM #SPCR20,SPSA0
STM #DK_SPCR20,McBSP0 ;ENBLE X
NOP
NOP
STM #RCR10,SPSA0
STM #DK_RCR10,McBSP0
NOP
NOP
STM #XCR10,SPSA0
STM #DK_XCR10,McBSP0
NOP
NOP
STM #PCR0,SPSA0
STM #DK_PCR0,McBSP0
NOP
NOP
STM SRGR10,SPSA0
STM #DK_SRGR10,McBSP0
NOP
NOP
STM SRGR20,SPSA0
STM #DK_SRGR20,McBSP0
NOP
NOP
STM #RCR20,SPSA0
STM #DK_RCR20,McBSP0
NOP
NOP
STM #XCR20,SPSA0
STM #DK_XCR20,McBSP0
NOP
NOP
RET
;**********************
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -