第5章TMS320C54x的汇编语言程序设计报告
- 格式:ppt
- 大小:353.50 KB
- 文档页数:25
已知一低通滤波器的采样率为8KHz,通带为1500Hz,阻带为2000 Hz,带内波动3dB,带外衰减-50dB,滤波器的相位具有线性特性。
具体幅频特性见下图。
要求用等波纹方法设计出该FIR滤波器,然后用TMS320C54x汇编语言编程实现该FIR滤波器。
使用MATLAB设计语言设计滤波器:[n,fo,mo,w] = remezord( [500 600], [1 0], [0.01 0.1], 2000 );b = remez(n,fo,mo,w);其中,b为FIR滤波器系数,本题系数的具体设计结果为:-0.0119(FE7AH) 0.0406(0532H) -0.0178(FDB9H) -0.0315(FBF8H) 0.0087(011DH) 0.0498(0660H) 0.0066(00D8H) -0.0826(F56DH) -0.0488(F9C1H) 0.1779(16C5H) 0.4142(3504H) 0.4142(3504H) 0.1779(16C5H) -0.0488(F9C1H) -0.0826(F56DH) 0.0066(00D8H) 0.0498(0660H) 0.0087(011DH) -0.0315(FBF8H) -0.0178(FDB9H) 0.0406(0532H) -0.0119(FE7AH)频响如图1所示图1 滤波器频响图DSP设计代码:.title "FIR.asm".mmregs.global _c_int00PA0 .set 0PA1 .set 1size .set 22.bss count,2.bss x,22.bss y,64.dataCOEF: .word 0FE7Ah ; H0----H21 .word 0532h.word 0FDB9h.word 0FBF8h.word 011Dh.word 0660h.word 00D8h.word 0F56Dh.word 0F9C1h.word 16C5h.word 3504h.word 3504h.word 16C5h.word 0F9C1h.word 0F56Dh.word 00D8h.word 0660h.word 011Dh.word 0FBF8h.word 0FDB9h.word 0532h.word 0FE7Ah.text_c_int00: SSBX FRCTST #0, *(count)STM #x+22,AR1STM #y,AR2STM #21 ,AR0LD #x+1 ,DPPORTR PA1,@x+1fir: RPTZ A,#21MACD *AR1-,COEF,ASTH A,*AR1PORTW *AR1+,PA0STH A,*AR2+ADDM #1,*(count)CMPM *(count),1024BC done, TCBD firPORTR PA1,*AR1+0done: B done.end通过CCS观察滤波器频响如图2所示,图2 滤波器频响输入信号为正弦波,频率为1000Hz,输入文件sin_1000.dat,输出文件out_1000.dat,波形如图3所示图3 输入信号频率为1000Hz时的输出结果输入信号为正弦波,频率为2500Hz,输入文件sin_2500.dat,输出文件out_2500.dat,波形如图4所示图4 输入信号频率为2500Hz时的输出结果Matlab分析代码见Lowpass_FIR\annaly\FIR_annaly.m文件,分析结果如图所示:图5 输入信号频率为1000Hz 时的分析结果图6 输入信号频率为2500Hz 时的分析结果0.0020.0040.0060.0080.010.0120.014-4-22441000Hz 输入信号-4-22441000Hz 输出信号42500Hz 输入信号00.0020.0040.0060.0080.010.0120.01442500Hz 输出信号。
TMS320C54X 汇编语言目录第一章 寻址方式第二章 汇编语言指令系统第三章 汇编指令(伪指令)第四章 宏第五章 汇编源程序的语句格式第一章寻址方式C54X提供了七种基本寻址方式:1,立即寻址,一个固定立即值编入指令;2,绝对寻址,一个固定地址编入指令中;3,累加器寻址,用一累加器中的内容去寻址程序存储器。
4,直接寻址,相对DP或SP的偏移地址编入指令中的低七位。
偏移地址加DP或SP 决定数据存储器中的实际地址;5,间接寻址,用辅助寄存器访问存储器;6,存储器-映射寄存器寻址,修改存储器-映射寄存器不会影响到当前DP或SP的值;7,堆栈寻址,把数据压入或弹出系统堆栈。
一、立即寻址在立即寻址中,指令结构中包含操作数的特定值(立即数)。
两种类型的值可以编入指令:1,短立即数可以是3、5、8或9位长;2,16位的长立即数立即数可被编入1-字或2-字的指令中。
3、5、8或9位短立即数编入1-字指令;16位长立即数编入2-字指令中。
编入指令中的立即数的长度取决于所用指令的类型。
下表列出可编入立即数的C54指令。
表中也给出了可编入指令中的立即数位数。
3-和5-位立即数8-位立即数9-位立即数16-位立即数LD FRAMELDRPT LD ADD ORMADDM RPTAND RPTZANDM STBITF STMLD XORMAC XORMOR在立即数寻址中,要在立即数或符号前加“#”号来表示立即数。
如,把80H装入累加器A 中:LD #80h, A下图使用了RPT指令以表明短立即数如何在立即寻址方式时编入指令中。
指令中的操作码编入指令的高8位。
立即数编入指令的低8位。
例:RPT #99H15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 0 0 18位操作码8位立即数下图使用了RPT指令以表明长立即数如何在立即寻址方式时编入指令中。