当前位置:首页 >> 电力/水利 >>

实验五 用泰勒级数开展开式计算一个角度的正弦值


实验五

泰勒级数展开法设计正弦 信号发生器

一、实验目的 掌握用泰勒级数展开法求解 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)改为 0x1000. (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=x^2 ST A,*AR2 ;(AR2)=x^2 ||LD *AR4,B ;B=1 MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2 MPYA A ;A=T*A=x^2(1-x^2/72) STH A,*AR2 ;(d_temp)=x^2(1-x^2/72) MASR *AR2-,*AR3+,B,A ;A=1-x^2/42(1-x^2/72),T=x^2(1-x^2/72) MPYA *AR2+ ;B=x^2(1-x^2/42(1-x^2/72)) ST B,*AR2 ;(d_temp)=x^2(1-x^2/42(1-x^2/72)) ||LD *AR4,B ;B=1 MASR *AR2-,*AR3+,B,A ;A=1-x^2/20(1-x^2/42(1-x^2/72)) MPYA *AR2+ ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72))) ST B,*AR2 ;(d_temp)=B ||LD *AR4,B ;B=1 MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))) MPYA d_x ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/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 }


相关文章:
DSP2407简单的正弦信号产生_泰勒展开
计算一个角度 x 的正弦值,可利用泰勒级数的展开式,采用子程序的调 用方式来...实验五 用泰勒级数开展开... 5页 免费 DSP2407 光耦隔离输入信... 1页 免费...
泰勒展开式的应用
2 1 泰勒展开式......求极值和判断级数和广义积分的敛散性.在其他数学分支方面的应用包括:用 于某些...在 y ( x) xn 处 用 泰 勒 公 式 展 开 ...
DSP课程设计__正弦信号11发生器的设计
学习正弦信号发生器的 DSP 实现原理; 5. 学习使用...发生器的程序的编写,并在集成开 发环境下进行模拟...利用泰勒级数展开式,可计算一个角度 x 的正弦值...
郭鹏-正弦信号
(扩充一 定容量的外部存储器) 5) 仿真器接口电路...利用泰勒级数展开式,可计算一个角度 x 的正弦值...总体方案设计 CCS 本实验是基于 CCS 开发环境的。 ...
正弦信号发生器实验
(2)泰勒级数展开法:根据泰勒展开式进行计算来实现...它能精 确地计算一个角度的正弦和余弦值,且只...可以展开成泰 勒级数,取其前5项近似: 实验 内容 ...
基于DSP的正弦波信号发生器源程序(汇编语言)
*用泰勒级数开展开式计算角度的正弦值 *sin(x)=x(1-x*x/2*3(1-x*x/4*5(1-x*x/6*7(1-x*x/8*9)))* *** sinx: .def d_xs,d_sinx .dat...
DSP正弦函数计算程序的编写
正余弦信号发生器实现原理 1.1、正弦波信号发生器泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号, 它能精确地计算一个角度的正弦和余弦值,且只需要较...
基于DSP的正弦波信号发生器(汇编语言)
计算角度正弦值和余弦值及产生正弦波的方法; 二、实验原理泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号, 它能精确地计算一个角 度的正弦和余弦值,...
常见函数的泰勒级数展开
以上函数展开式称为泰勒级数。 泰勒级 泰勒级数的定义: 若函数 f(x)在点 阶泰勒公式为: 某一临域内具有直到(n+1)阶导数,则在该邻域内 f(x) n ...
正弦函数计算程序的编写
正弦函数 程序 1 正余弦的泰勒级数展开式高等数学中...(2) 若要计算一个角度 x 的正弦和余弦值,可取...1/(8*9) C2=1/(6*7) C3=1/(4*5) C1=1...
更多相关标签:
正弦函数泰勒级数 | 泰勒级数展开公式 | 泰勒级数展开 | 泰勒级数展开式 | matlab 泰勒级数展开 | 常见泰勒级数展开公式 | 二维泰勒级数展开 | 常用泰勒级数展开公式 |