基于DSP的正弦信号发生器Word格式文档下载.docx
- 文档编号:18650476
- 上传时间:2022-12-30
- 格式:DOCX
- 页数:10
- 大小:113.70KB
基于DSP的正弦信号发生器Word格式文档下载.docx
《基于DSP的正弦信号发生器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于DSP的正弦信号发生器Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。
四.设计方案
本设计采用TMS320C54X系列的DSP作为正弦信号发生器的核心控制芯片。
通过计算一个角度的正弦值和余弦值程序可实现正弦波,其步骤如下:
1.利用sinx和cosx子程序,计算0°
~45°
(间隔为0.5°
)的正弦和余弦值
2.利用sin(2x)=2sin(x)cos(x)公式,计算0°
~90°
的正弦值(间隔为1°
)
3.通过复制,获得0°
~359°
的正弦值
4.将0°
的正弦值重复从PA口输出,便可得到正弦波
3.软件操作
利用CCS集成开发环境,用户可以在一个开发环境下完成工程定义、程序编辑、编译链接、调试和数据分析等工作环节。
1.创建工程(project)文件
选择Project→New,在“Project”文本框中键入将要创建的工程项目名,本例工程项目名为“sin”
2.向工程中添加文件
选择Project→AddFilestoProject,将sine.asm文件自动添加到Project→Source中。
用同样的方法将sine.cmd文件添加到对应的目录中。
3.构建工程,工程所需文件编辑完成后,可以对该工程进行编译链接,产生可执行文件,为调试做准备。
选择Project→Build,系统提示没有出错信息后,系统自动生成一个可执行文件,sine.out文件。
4.载入可执行文件
选择File→LoadProgram载入编译链接好的可执行文件sine.out
5.运行程序
选择Debug→Run运行,可以通过查看内存表等方法,看到程序运行的结果。
6.观察数据和图形
选择View→Graph→Time/Frequence
调整输出图形参数
五.源程序
正弦波源程序sin.asm
.title"
sin.asm"
.mmregs
.defstart
.defd_xs,d_sinx,d_xc,d_cosx,sinx,cosx
sin_x:
.usect"
sin_x"
360
STACK:
STACK"
10
k_theta.set286
PA0.set0
start:
.text
STM#STACK+10,SP
STMk_theta,AR0
STM0,AR1
STM#sin_x,AR6
STM#90,BRC
RPTBloop1-1
LDMAR1,A
LD#d_xs,DP
STLA,@d_xs
STLA,@d_xc
CALLsinx
CALLcosx
LD#d_sinx,DP
LD@d_sinx,16,A
MPYA@d_cosx
STHB,1,*AR6+
MAR*AR1+0
loop1:
STM#sin_x+89,AR7
STM#88,BRC
RPTBloop2-1
LD*AR7-,A
STLA,*AR6+
loop2:
STM#179,BRC
STM#sin_x,AR7
RPTBloop3-1
LD*AR7+,A
NEGA
STLA,*AR6+
loop3:
STM#1,AR0
STM#360,BK
loop4:
PORTW*AR6+0%,PA0
Bloop4
sinx:
.defd_xs,d_sinx
.data
table_s.word01C7H
.word030BH
.word0666H
.word1556H
d_coef_s.usect"
coef_s"
4
d_xs.usect"
sin_vars"
1
d_squr_xs.usect"
d_temp_s.usect"
d_sinx.usect"
d_1_s.usect"
SSBXFRCT
STM#d_coef_s,AR5
RPT#3
MVPD#table_s,*AR5+
STM#d_coef_s,AR3
STM#d_xs,AR2
STM#d_1_s,AR4
ST#7FFFH,d_1_s
SQUR*AR2+,A
STA,*AR2
||LD*AR4,B
MASR*AR2+,*AR3+,B,A
MPYAA
STHA,*AR2
MASR*AR2-,*AR3+,B,A
MPYA*AR2+
StB,*AR2
STB,*AR2
MPYAd_xs
STHB,d_sinx
RET
cosx:
.defd_xc,d_cosx
d_coef_c.usect"
coef_c"
4
table_c.word0249H
.word0444H
.word0AABH
.word4000H
d_xc.usect"
cos_vars"
d_squr_xc.usect"
d_temp_c.usect"
d_cosx.usect"
c_1_c.usect"
STM#d_coef_c,AR5
MVPD#table_c,*AR5+
STM#d_coef_c,AR3
STM#d_xc,AR2
STM#c_1_c,AR4
ST#7FFFH,c_1_c
SFTAA,-1,A
NEGA
MPYA*AR2+
MAR*AR2+
RETD
ADD*AR4,16,B
STHB,*AR2
.end
正弦波程序链接命令文件sin.cmd
-x.\Debug\vectors.obj
-x.\Debug\sin.obj
-osin.out
-msin.map
-estart
MEMORY
{
PAGE0:
EPROM:
org=0E00H,len=1000H
VECS:
org=0FF80H,len=0080H
PAGE1:
SPRAM:
org=0060H,len=0020H
DARAM1:
org=0080H,len=0010H
DARAM2:
org=0090H,len=0010H
DARAM3:
org=0200H,len=0200H
}
SECTIONS
.text:
>
EPROMPAGE0
.data:
STACK:
SPRAMPAGE1
sin_vars:
DARAM1PAGE1
coef_s:
cos_vars:
DARAM2PAGE1
coef_c:
sin_x:
align(512){}>
DARAM3PAGE1
.vectors:
VECSPAGE0
六.实验结果及分析
将程序装载到DSP目标芯片中,波形实现结果可以在CCS图形显示界面直观地表示出来
输出结果显示,在CCS图形观察窗口得到了频率稳定,信号干扰小,波形失真度较小的正弦信号。
七.设计总结心得
通过这次的课程设计使我进一步加深了对于DSP这门课程的学习以及对于平时所学内容的实际应用。
在设计中发现问题和同学互相讨论研究增加了团队合作的能力。
在输入程序时发现编程确实是要求很认真细心的,如果稍有差错就会导致整个程序的错误,也由此体现了DSP这门课程的严谨性。
相信在以后的学习中一定会更好的应用所学内容的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DSP 正弦 信号发生器