⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testad.asm

📁 精心收藏的数字信号处理滤波程序源码
💻 ASM
字号:
********高速数字信号处理实验-TESTAD TMS320C32汇编代码*******

************************************************************
****标题
		.title "AD汇编代码"	

************************************************************

              .global init
****中断表
		.sect "vectors" 			;C32中断跳转表
		BR INIT
		BR ISR0				;INT0- 中断0地址给PC 
		BR ISR1				;INT1- 中断1地址给PC
		BR ISR2				;INT2- 中断2地址给PC
		BR ISR3				;INT3- 中断3地址给PC
		BR XISR0				;XINT0- 串口0发送中断地址给PC
		BR RISR0				;RINT0- 串口0接收中断地址给PC
		.space	2				;保留两个地址
		BR TISR0				;TINT0- 定时器0中断地址给PC
		BR TISR1				;TINT1- 定时器1中断地址给PC
		BR DISR0				;DINT0- DMA0中断地址给PC
		.space	52				;保留52个地址空间

***************************************************
****数据段
		.data
DATP		                        	;用于DP指针赋值
D0A		.word	0808000H			;DMA0控制寄存器地址
D1A		.word	0808010H			;DMA1控制寄存器地址
T0A		.word	0808020H			;TIMER0控制寄存器地址
T1A		.word	0808030H			;TIMER1控制寄存器地址
SPA		.word	0808040H			;串口控制寄存器地址
IOSTRA	.word	0808060H			;IOSTRB控制寄存器地址
STR0A	.word	0808064H			;STRB0总线控制寄存器地址
STR1A	.word	0808068H			;STRB1总线控制寄存器地址

T0CLT	.word	00002C1H			;TIMER1控制寄存器初始化值
SCLTA	.word	02170300H			;串口控制寄存器初始化值
SCLTB	.word	0E970300H			;串口控制寄存器初始化值
SXCLT	.word	0000111H			;串口发送控制寄存器初始化值
SRCLT	.word	0000111H			;串口接收控制寄存器初始化值
STCLT	.word	0000000H			;串口定时控制寄存器初始化值
STDA 	.word 	0001800H			;状态寄存器初始化值
IEDA 	.word 	0000020H			;中断允许寄存器初始化值
AIC1            .word   0000A28H 
AIC2		.word  	0000001H 
AIC3           .word   0003E7EH 
AIC4		.word  	0000067H 
IOSTRD  .word 	0000F8H
STR0D	.word	0F10F8H
STR1D	.word	0F10F8H
MASK		.word	00FFFCH
INTA	.word	88000000H

AD_SIG	.word SIG
AD_STK 	.word STACK						;AD_STK保存STACK起始地址

 .bss ADDATA,1
 .bss RINT,1
 .bss STACK,100                          ;堆栈空间

SIG		.usect "oldspc",1024				;原信号空间

***************************************************
****程序段
		.text

*		处理器初始化部分
INIT		LDP DATP			;设置DP
		LDI @STDA,ST		;设置ST寄存器
		XOR IE,IE		;设置IE寄存器
		XOR IF,IF		;初始化IF寄存器
		LDI @AD_STK,SP	;设置堆栈指针
		LDI 22H,IOF		;设置XF0\1为通用输入引脚

*		设置总线寄存器
		LDI @IOSTRA,AR0
		LDI @IOSTRD,R0
		STI R0,*AR0
		LDI @STR0A,AR0
		LDI @STR0D,R0
		STI R0,*AR0
		LDI @STR1A,AR0
		LDI @STR1D,R0
		STI R0,*AR0
		
		OR 2000H,ST
		
*		进行TLC32044与TMS320C32通信初始化
		LDI @SPA,AR0				;初始化串口0
		LDI @SCLTA,R1
		STI R1,*AR0
		LDI @SXCLT,R1
		STI R1,*+AR0(2)
		STI R1,*+AR0(3)
		LDI @SCLTB,R1
		STI R1,*AR0

		LDI 66H,IOF				;TLC32044复位结束
		RPTS 99
		NOP

*		发送初始化AIC序列
                LDI 3,R1
		STI R1,*+AR0(8)
		CALL WAIT_TRANSMIT
		LDI @AIC1,R1
		STI R1,*+AR0(8)
		LDI *+AR0(12),R0
		CALL WAIT_TRANSMIT
		LDI 3,R1
		STI R1,*+AR0(8)
		CALL WAIT_TRANSMIT
		LDI @AIC2,R1
		STI R1,*+AR0(8)
		LDI *+AR0(12),R0
		CALL WAIT_TRANSMIT
		LDI 3,R1
		STI R1,*+AR0(8)
		CALL WAIT_TRANSMIT
		LDI @AIC3,R1
		STI R1,*+AR0(8)
		LDI *+AR0(12),R0
		CALL WAIT_TRANSMIT
		LDI 3,R1
		STI R1,*+AR0(8)
		CALL WAIT_TRANSMIT
		LDI @AIC4,R1
		STI R1,*+AR0(8)
		LDI *+AR0(12),R0
		CALL WAIT_TRANSMIT

ADLOOP
                LDI 0,R0
                STI R0,@RINT

		LDI @AD_SIG,AR7
		LDI 1024,R7
WAIT
		CALL WAIT_RECEIVE
		LDI @ADDATA,R0
		AND @MASK,R0
                LSH 16,R0
                ASH -18,R0
                STI R0,*AR7++
		SUBI 1,R7
		CMPI 0,R7
		BZ END
		B WAIT

END
		B ADLOOP

WAIT_TRANSMIT
		LDI *AR0,R1
		TSTB 2H,R1
		BZ WAIT_TRANSMIT
		RETS

WAIT_RECEIVE
		LDI *AR0,R1
		TSTB 1H,R1
		BZ WAIT_RECEIVE
		LDI *+AR0(12),R0
		STI R0,@ADDATA
		AND 0FFFCH,R0
		STI R0,*+AR0(8)
		RETS

******************************************************
*		INT0服务子程序
ISR0

		RETI

******************************************************
*		INT1服务子程序
ISR1

		RETI

******************************************************
*		INT2服务子程序
ISR2
		RETI

******************************************************
*		INT3服务子程序
ISR3
		RETI

******************************************************
*		串口0发送中断服务子程序
XISR0
		RETI

******************************************************
*		串口0接收中断服务子程序
RISR0
	
		RETI

******************************************************
*		定时器0中断服务子程序
TISR0

		RETI

******************************************************
*		定时器1中断服务子程序
TISR1
		RETI

******************************************************
*		DMA0中断服务子程序
DISR0
		RETI
               

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -