东北大学DSP实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.title "io" ;title伪指令。双引号括起来的源程序名。伪指令小写。
.global _c_int00 ;global伪指令,将变量_c_int00说明为外部符号。
;外部符号:在一个模块中定义而在另一模块中引用的符号称为外部符号。
.mmregs ;将TMS320各寄存器名定义为全局符号,这样就可以直接引用寄存器(符号)。
;mmregs 定义存储器映射寄存器的符号名称。
FG_ADDR .set 1002H ;set伪指令。将一个值分配给一个符号。1002HI/O口地址定义。
DA TA .set 60h ;double ram data
.sect ".vectors" ;sect定义初始化命名段。段名必须用双引号括起,建立包含代码和数据的自定义断。
;".vectors"定义向量表,紧跟其后的是复位向量和中断向量。
reset: B _c_int00 ; B 无条件跳转指令。将变量_c_int00说明为外部变量,程序入口地址1000。
NOP ;空指令。等待一个机器周期。
NOP
.space 31*4*16 ;space 伪指令。在当前段内保留一个指定数目的位数,并用0填充, 保留31*4个字单元。
DELAY .macro sec_tenth ;macro 宏指令开始。DELAY宏名。sec_tenth形式参数。延时sec_tenth/10 秒
STM sec_tenth-1,AR5 ;STM存储指令。AR0~AR7 寄存器辅助。
loop1? STM #09h,AR6
loop0? STM #19999,AR7 ;STM存储指令。AR0~AR7 辅助寄存器。
BANZ $,*AR7-
BANZ loop0?,*AR6- ;AR6-不为0时转移。
BANZ loop1?,*AR5-
.endm ;Endm 宏指令结束。
.text ;text 段是源程序正文。经汇编后,紧跟.text 后的是可执行程序代码。
_c_int00: ;
LD #0h,DP ;LD装入指令。设置数据页指针,DP=0H,则数据存储器地址为0000H~007FH。
STM #3000h,SP ;STM存储指令。把累加器的低端存放到存储器映射寄存器中。SP设置堆栈指针
RSBX INTM ;RSBX清除指令。INTM中断方式位=0,允许可屏蔽中断。INTM中断方式位=1,禁止可屏蔽中断。
STM #07FFFh,SWWSR ;SWWSR可编程软件等待状态寄存器。作用:高速内存与
慢速外设的协调连接,提供一个方便的接口。
SSBX XF ;SSBX置位指令。XF外部标志输出引脚=1,XF=0,呈高阻状态。
ST #1007h,CLKMD ;ST存储指令。16bit长立即数。工作在20MHz
RPT #0FFh ;RPT循环指令。把循环次数0FFH装入循环计数器(RC)。
NOP
STM #0ffffh,IFR ;IFR中断标志寄存器。把IFR每位写1的用途,就是清除所有被挂起的中断。
ORM #000h,IMR ;IMR中断屏蔽寄存器。把IMR每位置0屏蔽该中断。
RSBX SXM ;RSBX清零指令。SXMS是状态寄存器ST1中第8位,当SXM=0,不扩展符号;当SXM=1,扩展符号。
ST #8100H,DA TA ;ST存储指令。16bit长立即数。8100H=1000 0001 0000 0000b WRDENG: ST #100H,DATA ;0100H=0000 0001 0000 0000b.
PORTW DATA,FG_ADDR
DELAY #10
ST #200H,DATA ; 0200H=0000 0010 0000 0000b
PORTW DATA,FG_ADDR
DELAY #10
ST #400H,DATA ;0400H=0000 0100 0000 0000b.
PORTW DATA,FG_ADDR
DELAY #10
ST #800H,DATA ;0800H=0000 1000 0000 0000b.
PORTW DATA,FG_ADDR
DELAY #10
RPT #10
NOP
ST #1000H,DA TA ;1000H=0001 0000 0000 0000b.
PORTW DATA,FG_ADDR
DELAY #10
RPT #10
NOP
ST #2000H,DA TA ;2000h=0010 0000 0000 0000b.
PORTW DATA,FG_ADDR
DELAY #10
RPT #10
NOP
ST #4000H,DA TA ;4000H=0100 0000 0000 0000b.
PORTW DATA,FG_ADDR
DELAY #10
RPT #10
NOP
STM #8000H,DATA ;8000H=1000 0000 0000 0000b. PORTW DATA,FG_ADDR
DELAY #10
RPT #10
NOP
;;;
ST #8000H,DA TA
PORTW DATA,FG_ADDR
DELAY #10
ST #4000H,DA TA
PORTW DATA,FG_ADDR
DELAY #10
ST #2000H,DA TA
PORTW DATA,FG_ADDR
DELAY #10
ST #1000H,DA TA
PORTW DATA,FG_ADDR
DELAY #10
RPT #10
NOP
ST #800H,DATA
PORTW DATA,FG_ADDR
DELAY #10
RPT #10
NOP
ST #400H,DATA
PORTW DATA,FG_ADDR
DELAY #10
RPT #10
NOP
ST #200H,DATA
PORTW DATA,FG_ADDR
DELAY #10
RPT #10
NOP
STM #100H,DA TA
PORTW DATA,FG_ADDR
DELAY #10