DSP课程设计Word文档格式.doc

上传人:b****1 文档编号:13105467 上传时间:2022-10-05 格式:DOC 页数:8 大小:355KB
下载 相关 举报
DSP课程设计Word文档格式.doc_第1页
第1页 / 共8页
DSP课程设计Word文档格式.doc_第2页
第2页 / 共8页
DSP课程设计Word文档格式.doc_第3页
第3页 / 共8页
DSP课程设计Word文档格式.doc_第4页
第4页 / 共8页
DSP课程设计Word文档格式.doc_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

DSP课程设计Word文档格式.doc

《DSP课程设计Word文档格式.doc》由会员分享,可在线阅读,更多相关《DSP课程设计Word文档格式.doc(8页珍藏版)》请在冰豆网上搜索。

DSP课程设计Word文档格式.doc

打开SetupCCStudiov3.3如图1所示。

图1

选择C5402芯片并加载,如图2、图3所示。

图2.加载芯片

图3.确定完成加载

在C:

/CCStudiov3.3/MyProjects目录下新建文件夹,命名为sinewave,将附录中的三个文件保存到该文件夹中。

新建工程名为“shiyan”,保存路径为C:

/CCStudiov3.3/MyProjects/sinewave。

如图4所示。

图4

将文件夹“sinewave”下的三个文件(sin.asm,sin_v.asm,sin.cmd)以及库文件rts500.lib添加到新建工程“shiyan”中,对文件进行编译链接,若有错误进行改正,直至无误,如图5所示。

图5

现在已经产生了可执行文件shiyan.out,打开File→Loadprogram,选择shiyan.out打开,便将程序加载到了CCS中,可以进行运行调试了。

选择View→Graph→Time/Frequency,打开如图6所示的对话框(此对话框的各参数已经设置完毕),点击确定后便得到如图7所示的正弦波。

图6

图7.正弦波信号

通过以上步骤设计,得到了一个正弦信号波形,而正弦信号发生器可以应用到通信、仪器仪表和工业控制等领域中,这样便有利于对其进行更深入的研究与探讨,具有一定的理论意义和实际意义。

五、课程设计的心得体会

本课程设计主要是使用汇编语言编程并在CCS中实现正玄波。

设计过难度适中,但进一步了解了如何使用汇编语言编写程序以及如何在CCS中进行程序调试和使用各种CCS工具。

我明白了一个道理,就算要完成一件小事,也需要用心,那样才能真正完成好任务。

六、附录

1.汇编源文件sin.asm如下所示。

(功能:

产生正弦波)

.mmregs;

定义存储器映像寄存器

.def_c_int00

.refsinx,d_xs,d_sinx,cosx,d_xc,d_cosx;

定义标号

sin_x:

.usect"

sin_x"

360;

为"

保留360个存储空间

STACK:

STACK"

10;

为堆栈保留10个存储空间

k_theta.set286;

theta=pi/360(0.5deg)

PA0.set0

_c_int00

.text;

定义文本程序代码段

STM#STACK+10,SP;

设置堆栈指针

STMk_theta,AR0;

AR0-->

K_theta(increment)

STM0,AR1;

(AR1)=X(rad)

STM#sin_x,AR6;

AR6-->

sin(x)

STM#90,BRC;

formsin0(deg.)—sin90(deg)

RPTBloop1-1

LDMAR1,A

LD#d_xs,DP

STLA,@d_xs;

(A)低16位→d_xs

STLA,@d_xc;

(A)低16位→d_xc

CALLsinx;

调用sinx程序

CALLcosx;

调用cosx程序

LD#d_sinx,DP;

DPß

d_sinx

LD@d_sinx,16,A;

A=sin(x)

MPYA@d_cosx;

B=sin(x)*cos(x)

STHB,1,*AR6+;

2*sin(x)*cos(x)

MAR*AR1+0;

修改辅助寄存器AR1

loop1:

STM#sin_x+89,AR7;

sin91(deg.)--sin179(deg.)

STM#88,BRC;

重复执行下条指令至loop2-1

RPTBloop2-1;

处90次

LD*AR7-,A;

((AR7))→A,然后AR7减去1

STLA,*AR6+;

(A)低16位→AR6

loop2:

STM#179,BRC;

sin180(deg.)--sin359(deg.)

STM#sin_x,AR7;

AR7指向sin_x首地址

RPTBloop3-1

LD*AR7+,A;

((AR7))→A,然后AR7加1

NEGA;

累加器变负

A低16位→AR6

loop3:

STM#sin_x,AR6;

generatesinwaveAR6指向sin_x

STM#1,AR0;

ARß

01

STM#360,BK;

BKß

360

loop4:

PORTW*AR6+0%,PA0;

PA0=*AR6+0%,向PA0输出数据

Bloop4

sinx:

.defd_xs,d_sinx;

定义标号d_xs,d_sinx

.data;

定义数据代码段

table_s.word01c7h;

c1=1/(8*9)

.word030bh;

c1=1/(6*7)

.word0666h;

c1=1/(4*5)

.word1556h;

c1=1/(2*3)

d_coef_s.usect"

coef_s"

4;

保留4个存储空间

d_xs.usect"

sin_vars"

1;

为d_xs中sin_vars保留1个存储空间

d_squr_xs.usect"

为d_squr_xs中sin_vars保留1个存储空间

d_temp_s.usect"

为d_temp_s中sin_vars保留1个存储空间

d_sinx.usect"

为d_sinx中sin_vars保留1个存储空间

c_l_s.usect"

定义代码开始段

SSBXFRCT;

设置FRCT=1以解决冗余符号位

STM#d_coef_s,AR5;

AR5指向d_coef_s首地址

RPT#3;

重复下条指令4次

MVPD#table_s,*AR5+;

table_s中的数复制到AR5指向的单元

STM#d_coef_s,AR3;

AR3指向d_coef_s首地址

STM#d_xs,AR2;

AR2指向d_xs首地址

STM#c_l_s,AR4;

AR4指向c_l_s首地址

ST#7FFFh,c_l_s;

7FFFh→c_l_s

SQUR*AR2+,A;

AR2指向累加器A中的数值求其平方

STA,*AR2;

(A)左移16位→AR2

||LD*AR4,B;

(AR4)左移16位→B

MASR*AR2+,*AR3+,B,A;

从累加器A中减去(AR2)*(AR3)

MPYAA;

操作数与累加器A中高位相乘

STHA,*AR2;

(A)高16位→AR2

MASR*AR2-,*AR3+,B,A;

MPYA*AR2+;

AR2指向的数与累加器A的高16位相乘

STB,*AR2;

(B)左移16位→AR2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1