实验五用泰勒级数开展开式计算一个角度的正弦值.pdf
可编辑 精品文档,欢迎下载 实验五 泰勒级数展开法设计正弦信号发生器 一、实验目的 掌握用泰勒级数展开法求解 sin(x)、cos(x)的原理及设计方法 二、实验设备 计算机、ZY130DSP12BD 试验箱 三、实验原理 参加教材第六章第四节正弦波信号发生器 四、实验内容 1.用泰勒级数展开法计算 sin(x)的值 2.用泰勒级数展开法计算 cos(x)的值 3.用泰勒级数展开法产生正弦波 五、实验步骤 1 建立一个项目:点击 Project-New,将项目名称为 shiyan4,并将项目保存的 d:文件夹下.2 建立一个源文件:点击 File-New-Source File 可以打开一个文本编辑器窗口,点击保存按钮,保存在和项目相同的一个文件夹下面,保存类型*.asm,将文件命名为shiyan4.asm.3.在项目中添加源文件,在新建了一个源文件后,要想使用 CSS 编译器对该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中右键点击 shiyan4.pjt,在弹出菜单中选择 Add Files,然后将刚才建立的 shiyan4.asm 文件添加到该项目中去。4.编写源程序:在工程管理器中双击 shiyan4.asm,将出现的文本编辑窗口,在该文本编辑窗口中输入程序源代码。(自己完成)5.编写中断向量表文件 点击 File-New-Source File 可以打开一个文本编辑器窗口,点击保存按钮,保存在和项目相同的一个文件夹下面,保存类型*.asm,将文件命名为 vectors.asm,在工程管理器中右键点击 shiyan4.pjt,在弹出菜单中选择 Add Files,然后将刚才建立的vectors.asm 文件添加到该项目中去。然后,在工程管理器中双击 vectors.asm,将出现的文本编辑窗口,在该文本编辑窗口中输入下面源代码:.title vectors.asm .ref start .sect .vectors B start .end 6.编写链接配置文件 链接配置文件有很多功能,这里介绍最常见的也是必须的两条:1.存储器的分配 2.标明程序入口.由于每个程序都需要一个链接文件,每个程序的配置文件根据实际情况的需要都略有不同,下面为本实验的编写的一个配置文件。可编辑 精品文档,欢迎下载 点击 File-New-Source File 可以打开一个文本编辑器窗口,点击保存按钮,保存在和项目相同的一个文件夹下面,保存类型*.cmd,将文件命名为 shiyan4.cmd,在工程管理器中右键点击 shiyan4.pjt,在弹出菜单中选择 Add Files,然后将刚才建立的shiyan4.cmd 文件添加到该项目中去。然后,在工程管理器中双击 shiyan4.cmd,将出现的文本编辑窗口,在该文本编辑窗口中输入下面源代码:vectors.obj /*中断向量的目标文件*/shiyan4.obj /*产生目标文件*/-o shiyan4.out /*产生可执行的下载文件,文件名可以根据不同项目而定*/-m shiyan4.map /*产生存储器映射文件,文件名可以根据不同项目而定*/-estart /*程序入口*/MEMORY PAGE 0:EPROM:org=0090H len=0F70H VECS:org=0080H len=0010H PAGE 1:SPRAM:org=1000H len=1000H DARAM:org=2000H len=2000H SECTIONS .text :EPROM PAGE 0 .data :EPROM PAGE 0 .bss :SPRAM PAGE 1 STACK :DARAM PAGE 1 .vectors:VECS PAGE 0 7.对项目进行编译和链接 确 保 shiyan4.asm、vectors.asm、shiyan4.cmd 已 经 添 加 到 工 程 后,点 击Project-Compile File(或者),在项目编译成功之后点击 Project-Build(或者)选项对该项目进行链接,生成*.OUT 文件。8.转载可执行文件 要让程序代码在 DSP 内部运行必须需要将生产的*.out 文件装载到 DSP 内部,装载方法是点击:File-Load Program 再选择生产的 shiyan4.out 文件就可以将程序装载到 DSP 的内部存储器中。9运行程序并查看结果 (1)首先打开预查看的数据空间,点击 view-Memory,弹出”Memory Window Options”对话框,把预查看地址(address)改为 0 x1000.(2)点击 OK 按钮,然后点击 Debug-Run 让程序在 DSP 内部运行,最后点击 Debug-Halt,在观察“Memory”对话框,验证结果是否正确。10.建立其它项目工程文件 可编辑 精品文档,欢迎下载 注意:每个工程中,vectors.asm不需要修改,但*.cmd 文件内容需要修改:可编辑 精品文档,欢迎下载(1)*.cmd 的文件名需要与工程名对应的.比如工程名为shiyan4.pjt,则cmd文件名为shiyan4.cmd(2)在.cmd文件中 编写人:黄 忠 *用泰勒级数开展开式计算一个角度的正弦值 *sin(x)=x(1-x*x/2*3(1-x*x/4*5(1-x*x/6*7(1-x*x/8*9)*.title sinx.asm .mmregs .def start STACK:.usect STACK,10 start:STM#STACK+10,SP LD#d_x,DP ST#6487H,d_x ;x-d_x CALL sin_start可编辑 精品文档,欢迎下载 end:B end sin_start:.def sin_start d_coeff.usect coeff,4 .data table:.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_x.usect sin_vars,1 d_squr_x.usect sin_vars,1 d_temp.usect sin_vars,1 d_sinx.usect sin_vars,1 c_1.usect sin_vars,1 .text SSBX FRCT STM#d_coeff,AR5 RPT#3 MVPD#table,*AR5+STM#d_coeff,AR3 STM#d_x,AR2 STM#c_1,AR4 ST#7FFFH,c_1 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 MPYA 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)|LD*AR4,B ;B=1 MASR*AR2-,*AR3+,B,A;A=1-x2/20(1-x2/42(1-x2/72)MPYA*AR2+;B=x2(1-x2/20(1-x2/42(1-x2/72)ST B,*AR2 ;(d_temp)=B|LD*AR4,B ;B=1 MASR*AR2-,*AR3+,B,A;A=1-x2/6(1-x2/20(1-x2/42(1-x2/72)MPYA d_x ;B=x(1-x2/6(1-x2/20(1-x2/42(1-x2/72)STH B,d_sinx ;sin(theta)RET .end 可编辑 精品文档,欢迎下载 vectors.obj sinx.obj -O sinx.out -m sinx.map -estart MEMORY PAGE 0:EPROM:org=0090H,len=0F70H VECS:org=0080H,len=0010H PAGE 1:SPRAM:org=1000H,len=1000H DARAM:org=2000H,len=2000H SECTIONS .text :EPROM PAGE 0 .data :EPROM PAGE 0 STACK :SPRAM PAGE 1 sin_vars:DARAM PAGE 1 coeff :DARAM PAGE 1 .vectors:VECS PAGE 0 .