DSP课程设计Word文档格式.doc
- 文档编号:13105467
- 上传时间:2022-10-05
- 格式:DOC
- 页数:8
- 大小:355KB
DSP课程设计Word文档格式.doc
《DSP课程设计Word文档格式.doc》由会员分享,可在线阅读,更多相关《DSP课程设计Word文档格式.doc(8页珍藏版)》请在冰豆网上搜索。
打开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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课程设计