DSP作业

发布 2022-09-03 08:21:28 阅读 8072

1、以y

ax为例,编写完整的。asm汇编源程序以及。cmd命令文件,写出程序注释,iii1

并叙述在ccs2.0集成开发环境下,调试程序的基本步骤。其中a和x的值由自己确定。解:

title "mpy_"

mmregs;将存储映像寄存器导入列表。

stack",10h;给堆栈段分配空间。bssa,5;将11个字空间分配给各个变量。bss x, y,1

pa0 .set 0;将端口pa0全部置 start;定义标号定义数据**段table:

word 4,4,4,4,4(设置8个单元的16位整型常量,其初值为4).word 4,4,4,4,4

text;定义文本**段start:

stm #0,swwsr;将等待寄存器设为0,表示不等待stm #stack+10h,sp;设堆栈指针。

stm#a,ar1;将ar1指向变量a的地址。

rpt #9;从程序存储空间转移9+1个值到数据储存空间mvpd table,*ar1+

call sum;调用sum子程序end: bend;循环等待。

sum: stm #a,ar3;将ar3指向变量a的地址stm #x,ar4;将ar4指向变量x的地址。

rptz a,#4;将a清0,并重复执行下一条指令4+1次mac*ar3+,*ar4+,a

stl a,@y;将寄存器a中的低16位存入y地址空间portw @y,pa0;将y地址中的值输出到输出口ret;子程序返回。end;程序结束。

2、试举一例dsp实际应用的例子,具体要求如下:1)画出系统基本的硬件连接电路或硬件电路框图;2)对系统的工作原理及工作过程进行详细介绍;3)给出dsp软件程序和必要的注释;

解:基于tms320c54x dsp的函数发生器的设计。

1)硬件结构框图dsp芯片。

eda拨码开关。

aduc812

2)设计原理。

波形产生是dsp的重要应用之一。而正弦信号发生器的设计则是波形产生应用的一个重要方面,它在通信领域有着广泛的应用。利用dsp产生正弦信号有三种方法:

查表法(lookuptableapproach)、多项式逼近法(polynomialapproximation)和迭代法(recursivealgorithm)。这三种方式各有其应用范围。本设计题目以tms320c54xdsp为目标器件,设计并实现基于迭代法的“正弦序列生成”算法及其dsp程序。

x3x5x7x9x2x2x2x2

sin(x)xx(1(1(1(1)))

为了减少使用的存储器,可以采用正弦信号的对称性,复制90~180度的正弦值和180~360度的正弦值。

余弦信号的产生同样可以采用多种方法产生。一是采用公式计算得到,二是采用正弦信号变换得到。

方波信号产生可以通过轮流输出两个不同大小的数值通过a/d转换得到。

3)源**。

title ""

mmregs

def startstart:

textdisc:

ref d_xs,d_sinx,d_xc,d_cosx,sinx,cosxsin_x: .usect "sin_x",360cos_x:

.usect "cos_x",360stack: .

usect "stack",10hk_theta .set

stm #stack+10h,spstm k_theta,ar0stm 0,ar1

stm #sin_x,ar6stm #90,brcrptb loop1-1ldm ar1,ald #d_xs,dpstl a,@d_xsstl a,@d_xccall sinxcall cosxld #d_sinx,dpld @d_sinx,16,ampya @d_cosxsth b,1,*ar6+

mar *ar1+0

loop1:stm #sin_x+89,ar7stm #88,brcrptb loop2-1ld*ar7-,astl a,*ar6+loop2:stm #179,brcstm #sin_x,ar7rptb loop3-1ld *ar7+,aneg a

stl a,*ar6+loop3:stm #sin_x,ar6stm #360,brcrptb loop4-1ld *ar6,a

add #1000000000000000b,astl a,*ar6+

loop4:stm #cos_x,ar6stm #0259h,ar7stm #269,brcrptb loop5-1ld *ar7+,astl a,*ar6+loop5:stm #0200h,ar7stm #90,brcrptb loop6-1ld *ar7+,astl a,*ar6+loop6:

stm #cos_x,ar6stm #1,ar0stm #360,bkdisf:

fangbo_x: .usect "fangbo_x",stm #stack+10h,spstm #fangbo_x,ar6stm #90,brcrptb loop6-1ld#7fffh,a

stl a,*ar6+loop7:stm #90,brcrptb loop8-1ld #7fffh,aneg a

stl a,*ar6+

loop8:stm#fangbo_x,ar7stm #180,brcrptb loop9-1ld *ar7+,a

stl a,*ar6+loop9:stm#fangbo_x,ar6stm #1,ar0stm #360,bkstm #400h,ar6stm #468h,ar0dingshi:

main:stm #stack+10h,spstm #3fa0h,pmststm #00,prd0stm #0269h,tcr0stm #0008h,ifrstm #0008h,imrrsbx intmstm #10,ar1end:b endtint0:

pshmtbanz end1,*ar1-stm#10,ar1

portw*ar6+%,01h

cmpr00h,ar6bcover,tcbend1over:

portr 00h,*ar2;读拨码开关。

cmpm *ar2,#00h;为0时输出余弦波,为1时输出方波bc loop8,tc

stm#600h,ar6stm#602h,ar0b eeloop8:

stm #400h,ar6stm #568h,ar0ee:ssbxtc

end1: popmtretesinx:

def d_xs,d_

table_s: .word 1556hd_coef_s .usect "coef_s",4d_ "sin_vars",1

d_squr_xs .usect "sin_vars",1d_temp_s .usect "sin_vars",1d_sinx .

usect "sin_vars",1d_1_ "sin_vars",ssbx frct

stm #d_coef_s,ar5rpt #

mvpd #table_s,*ar5+stm #d_coef_s,ar3stm #d_xs,ar2stm #d_1_s,ar4st #7fffh,d_1_ssqur *ar2+,ast a,*ar2||ld *ar4,b

masr *ar2+,*ar3+,b,ampya asth a,*ar2

masr *ar2-,*ar3+,b,ampya *ar2+st b,*ar2||ld *ar4,b

masr *ar2-,*ar3+,b,ampya *ar2+st b,*ar2||ld *ar4,b

masr *ar2-,*ar3+,b,ampya d_xssth b,d_sinxretcosx:

def d_xc,d_cosxd_coef_c: .usect "coef_c",table_ 4000hd_ "cos_vars",1d_squr_xc .

usect "cos_vars",1d_temp_ "cos_vars",1d_ "cos_vars",1c_1_ "cos_vars",ssbx frct

stm #d_coef_c,ar5rpt #

mvpd #table_c,*ar5+stm #d_coef_c,ar3stm #d_xc,ar2stm #c_1_c,ar4st #7fffh,c_1_csqur *ar2+,ast a,*ar2||ld *ar4,b

masr *ar2+,*ar3+,b,ampya asth a,*ar2

masr *ar2-,*ar3+,b,ampya *ar2+st b,*ar2||ld *ar4,b

masr *ar2-,*ar3+,b,asfta a,-1,aneg a

mpya *ar2+mar *ar2+retd

add *ar4,16,bsth b,*ar2ret

sect ".vectors"

refmain

align0x80reset:

bd mainstm #200,spnmi:retenopnop

nopsint17 .space 4*16sint18 .space 4*16sint19 .

space 4*16sint20 .space 4*16sint21 .space 4*16sint22 .

space 4*16sint23 .space 4*16

sint24 .space 4*16sint25 .space 4*16sint26 .

space 4*16sint27 .space 4*16sint28 .space 4*16sint29 .

space 4*16sint30 .space 4*16int0:rete

nopnopint1:rete

int2:rete

tint:b tint0rint0:rete

xint0:rete

rint1:rete

xint1:rete

int3:rete

endcmd文件: startmemorysections > daram3 page 1cos_x: align(512){}daram3 page 1fangbo_x:

align(512){}daram3 page >vecs page 0}

DSP作业

51 以ya i1ixi为例,编写完整的。asm汇编源程序以及。cmd命令文件,写出程序注释,并叙述在ccs2.0集成开发环境下,调试程序的基本步骤。其中a和x的值由自己确定。解 title mpy mmregs 将存储映像寄存器导入列表。stack 10h 给堆栈段分配空间。bssa,5 将11个...

DSP作业

第一章。1 什么是dsp?2.dsp芯片的特点有哪些?3.dsp采用改进的哈佛总线结构,画出改进的哈佛总线结构示意图。4.dsp中由哪些地址和数据总线组成多总线结构?5.dsp芯片的选型一般是从哪几个方面进行考虑?6.简述ti公司的dsp三大平台和它们各自的应用场合。7.dsp芯片发展趋势应该朝着哪...

DSP作业

一 填空。1.dsp有 dsp和浮点dsp。2.dsp采用的是 的结构并广泛应用流水线技术。片内有1组程序总线,组数据总线和4组地址总线。4.累加器a,b是 位的。5.数据寻址的方式有立即寻址直接寻址,等。6.程序的的基本结构有顺序结构,循环结构,四种。7.程序必须经过 和 才能运行。二。选择。1....