1、通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。 总体思想是:正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。四、设计内容1、设置在Family下选择C55xx,将看到所有C55xx的仿真驱动,包括软件仿真和硬件仿真;在Platform下选择Simulator,在Available Factory Boards中只显示软件仿真驱动,选中相应的驱动;双击C55xx Rev4.0 CPU
2、Functional Simulator,可以在My System下看到所加入的驱动;点击Save & Quit,将保存设置退出Setup CCStudio v3.1并启动运行CCStudio。2、编写汇编源程序sin。3.、建立汇编源程序在CCS环境下,点击file/new/source file菜单命令,打开一个空白文档,将汇编程序输入。单击file/save菜单命令,在D:program filestimyprojects下保存文件名为sin,并选择保存类型为*.asm。4、建立链接命令文件。5、创建新的工程文件启动CCS,在Project菜单中选择New项,在Project中输入den
3、glin,CCS将创建一个名为denglin.pjt的工程。6、将文件添加到工程中在工程中添加源文件,执行菜单project/add files to project,把sin文件添加到工程中。7、生成和运行程序(1)选择菜单命令ProjectRebuild All,对工程重新编译、汇编和链接,主窗口下方的信息窗口将显示build进行汇编、编译和链接的相关信息。(2)选择菜单命令FileLoad Program,在当前目录的Debug目录下选择sin并打开,将Build生成的程序加载到DSP中。(3)选择菜单命令DebugRun或在Debug工具栏上单击Run按钮,运行该程序。8、观察运行结果
4、点击view/gragh菜单命令观看图像五、主要参数六、源程序汇编源程序sin .mmregs .def start .def d_xs,d_sinx,d_xc,d_cosx,sinx,cosxsin_x: .usect sin_x,360STACK:STACK,10Hk_theta .set 286 ;theta=pi/360(0.5deg)start: .text STM #STACK+10H,SP STM k_theta,AR0 STM 0,AR1 STM #sin_x,AR6 STM #90,BRC RPTB loop1-1 LDM AR1,A LD #d_xs,DP STL A,d_
5、xs STL A,d_xc CALL sinx ;d_sinx=sin(x) CALL cosx ;d_cosx=cos(x) LD #d_sinx,DP LD d_sinx,16,A ;A=sin(x) MPYA d_cosx ;B=sin(x)*cos(x) STH B,1,*AR6+ ;AR6-2*sin(x) MAR *AR1+0loop1: STM #sin_x+89, AR7 ;sin91(deg.)-sin179(deg.) STM #88,BRC RPTB loop2-1 LD *AR7-,A STL A,*AR6+loop2: STM #179,BRC ;sin180(deg
6、.)-sin359(deg.) STM #sin_x,AR7 RPTB loop3-1 LD *AR7+,A NEG Aloop3: STM #sin_x,AR6 ;generate sin wave STM #1,AR0 STM #360,BK B loop3sinx: .def d_xs,d_sinx .datatable_s .word 01C7H ;C1=1/(8*9) .word 030BH ;C2=1/(6*7) .word 0666H ;C3=1/(4*5) .word 1556H ;C4=1/(2*3)d_coef_s .usect coef_s,4d_xs .usect si
7、n_vars,1d_squr_xs .usect d_temp_s .usect d_sinx .usect d_l_s .usect SSBX FRCT STM #d_coef_s,AR5 ;move coeffs table_s RPT #3 MVPD #table_s,*AR5+ STM #d_coef_s,AR3 STM #d_xs,AR2 STM #d_l_s,AR4 ST #7FFFH,d_l_s SQUR *AR2+,A ;A=x2 ST A,*AR2 ;(AR2)=x2 |LD *AR4,B ;B=1 MASR *AR2+,*AR3+,B,A ;A=1-x2/72,T=x2 M
8、PYA A ;A=T*A=x2(1-x2/72) STH A,*AR2 ;(d_temp)=x2(1-x2/72) MASR *AR2-,*AR3+,B,A ;A=1-x2/42(1-x2/72);T=x2(1-x2/72) MPYA *AR2+ ;B=x2(1-x2/42(1-x2/72) ST B,*AR2 ;(d_temp)=x2(1-x2/42(1-x2/72)A=1-x2/20(1-x2/42(1-x2/72)B=x2(1-x2/20(1-x2/42(1-x2/72)(d_temp)=BA=1-x2/6(1-x2/20(1-x2/42(1-x2/72) MPYA d_xs ;B=x(
9、1-x2/6(1-x2/20(1-x2/42(1-x2/72) STH B,d_sinx ;sin(theta) RETcosx: .def d_xc,d_cosxd_coef_c .usect coef_ctable_c .word 0249H ;C1=1/(7*8) .word 0444H ;C2=1/(5*6) .word 0AABH ;C3=1/(3*4) .word 4000H ;C4=1/2d_xc .usect cos_varsd_squr_xc .usect d_temp_c .usect d_cosx .usect c_l_c .usect STM #d_coef_c,AR5
10、 ;move coeffs table_c MVPD #table_c,*AR5+ STM #d_coef_c,AR3 STM #d_xc,AR2 STM #c_l_c,AR4 ST #7FFFH,c_l_cA=1-x2/56,T=x2A=T*A=x2(1-x2/56)(d_temp)=x2(1-x2/56)A=1-x2/30(1-x2/56); T=x2(1-x2/56)B=x2(1-x2/30(1-x2/56)(d_temp)=x2(1-x2/30(1-x2/56)A=1-x2/12(1-x2/30(1-x2/56) SFTA A,-1,A ;-1/2B=-x2/2(1-x2/12(1-x
11、2/30(1-x2/56) MAR *AR2+ RETD ADD *AR4,16,B ; STH B,*AR2 ;cos(theta) .end .mmregsB=-x2/2(1-x2/12(1 .data : EPROM PAGE 0 STACK : SPRAM PAGE 1 sin_vars : DARAM1 PAGE 1 coef_s : cos_vars : DARAM2 PAGE 1 coef_c : sin_x : align(512) DARAM3 PAGE 1 .vectors :VECS PAGE 0七、实验结果及分析结果成功生成了正弦波图像,表明改程序能通过TMS320C54x产生正弦信号八、设计总结这次实验通过与小组的探讨研究使我对这门学科的基本知识、理论解起来更加方便直观和深刻。我同时明白了,做实验不是一味的砖牛角,而是需要相互探讨研究充分发挥团队力量才可在最短时间做出结果。通过实验我基本了解了DSP应用系统开发方法和设计过程,掌握了汇编源程序的编辑、汇编和链接过程,熟悉了CCS集成开发环境,CCS的安装及设置,CCS集成开发环境,CCS的基本使用,调试应用程序。我成功通过CCS软件应用C54X汇编语言实现了正弦信号发生装置,这次实验使我能够更真实地体会到DSP的功能和用途。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1