DSP课程设计__正弦信号发生器的设计
基于DSP的正弦信号发生器的设计
软件设计
正弦波子程序流程图 :
软件设计
调幅和调相流程图: 调幅和调相流程图:
汇报内容
• • • • • • 背景 正弦波信号发生器的几种实现方法比较 正弦波信号发生器的数字实现 硬件设计 软件设计 结论
结论
文中分析了正弦波的产生原理,并给出了硬 件电路和软件编写流程;设计了一个更好的 实现人机对话的正弦波信号发生器,给出了 显示和键盘的接口电路。该设计改进了传统 的需要用软件界面来输入幅值和频率值的方 法,更方便的实现调节输出波形的幅值和频 率值。
正弦波信号发生的数字实现 产生正弦波的方法有两种:
查表法。 优点:处理速度快;调频调相容易。 不足:要得到较高的精度,存储空间足够大以存放 查找表。 适用:对精度要求不高的场合。 泰勒级数展开法。 优点:需要的存储单元很少;精度高;展开的级数 越多,失真度就越小;调频调相易。 不足:处理速度慢。
正弦波信号发生的数字实现
硬件设计
DSP与LCD显示和键盘连接电路: DSP与LCD显示和键盘连接电路: 显示和键盘连接电路
硬件设计
键盘电路:
汇报内容
• • • • • • 背景 正弦波信号发生器的几种实现方法比较 正弦波信号发生器的数字实现 硬件设计 软件设计 结论
软件设计
主程序流程图: 主程序流程图:
设计采用采用模块化思路来编写,包括主程序、 设计采用采用模块化思路来编写,包括主程序、正 采用模块化思路来编写 弦波产生程序、调幅和调相子程序等功能子程序。 弦波产生程序、调幅和调相子程序等功能子程序。
性差,波形精度不够高且用较多硬件等。
正弦波信号发生器的几种实现方法比较
基于DSP的正弦波信号发生器:
组成:DSP处理芯片、 D/A转换器等。 优点:可程控调幅、调频,调节精度高,实
基于DSP设计正弦信号发生器
基于DSP设计正弦信号发生器一.设计目的设计一个基于DSP的正弦信号发生器二.设计内容利用基于CCS开发环境中的C54X汇编语言来实现正弦信号发生装置。
三.设计原理一般情况,产生正弦波的方法有两种:查表法和泰勒级数展开法。
查表法是使用比较普遍的方法,优点是处理速度快,调频调相容易,精度高,但需要的存储器容量很大。
泰勒级数展开法需要的存储单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。
本文采用了泰勒级数展开法。
一个角度为θ的正弦和余弦函数,可以展开成泰勒级数,取其前5项进行近似得:式中:x为θ的弧度值,x=2πf/fs(fs是采样频率;f是所要发生的信号频率。
正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。
整个系统软件由主程序和基于泰勒展开法的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°~359°的正弦值重复从PA口输出,便可得到正弦波四.软件操作DSP 集成开发环境 CCS是 Code Composer Studio 的缩写,即代码设计工作室。
它是 TI 公司推出的集成可视化 DSP 软件开发工具。
DSP CCS 内部集成了以下软件工具:◆ DSP 代码产生工具(包括 DSP 的 C 编译器、汇编优化器、汇编器和链接器)◆ CCS 集成开发环境(包括编辑、建立和调试 DSP 目标程序)◆ 实时基础软件 DSP/BIOS (必须具有硬件开发板)◆ RTDX、主机接口和 API(必须具有硬件开发板)在 CCS 下,用户可以对软件进行编辑、编译、调试、代码性能测试(profile)和项目管理等工作。
DSP课程设计报告正弦波的实现
太原理工大学DSP原理及应用课程设计报告专业班级:通信0802姓名:邢剑卿学号:20080013162010年12月30日一、设计目的学会用ccs 集成开发软件,在开发环境下完成工程项目创建,程序编辑,编译,链接,调试和数据分析。
二、设计内容编写程序,利用ccs 软件产生正弦波三、设计原理正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。
通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。
查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。
泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。
本次主要用泰勒级数展开法来实现正弦波信号。
产生正弦波的算法正弦函数和余弦函数可以展开成泰勒级数,其表达式:取泰勒级数的前5项,得近似计算式:递推公式:sin(nx ) = 2cos(x )sin[(n -1)x ]-sin[(n -2)x ]cos(nx ) = 2cos(x )sin[(n -1)x ]-cos[(n -2)x ]由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x )、sin(n -1)x 、sin(n -2)x 和cos(n -2)x 。
-+-+-=!9!7!5!3)sin(9753x x x x x x -+-+-=!8!6!4!21)cos(8642x x x x x ))))((((981761541321 !9!7!5!3)sin(22229753⨯-⨯-⨯-⨯-=+-+-=x x x x x x x x x x x )))(((87165143121 !8!6!4!21)cos(22228642⨯-⨯-⨯--=+-+-=x x x x x x x x x四、总体方案设计(1)建立工程:点击菜单project-new,在弹出的窗口中输入工程名,后缀是.pjt;(2)建立文件:点击菜单file-new-source file,建立汇编语言文件和链接命令文件;(3)将文件加入工程:点击菜单project-add files to project,选择要加入的文件添加到工程;(4)工程的汇编链接:点击菜单project-rebuild all,若汇编链接成功会生成.out文件;(5)装载可执行程序:点击菜单file-load program,装载.out文件;(6)执行程序:点击菜单debug-run;(7)观察结果。
正弦波信号发生器的DSP设计
正弦波信号发生器的DSP设计摘要:数字信号处理器(DSP)是在模拟信号变成数字信号以后进行高速实时处理的专用处理器。
DSP芯片以其独特的结构和快速实现各种数字信号处理算法的突出优点,发展十分迅速。
本文介绍了正弦信号产生的典型算法,并结合数字振荡器原理,应用迭代法编程完成了TMS320VC5402 DSP 正弦波信号发生器的设计。
关键词:DSP;正弦振荡;信号发生器正弦信号发生器能输出一个幅度可调、频率可调的正弦信号,特别是低频正弦信号发生器在科学研究及生产实践中均有着广泛应用。
目前,常用的信号发生器绝大部分是由模拟电路构成的。
当这种模拟信号发生器用于低频信号输出时,往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大。
而由数字电路构成的低频信号发生器,虽然其低频性能好,但体积较大,价格较贵。
而借助DSP芯片的运算速度高,系统集成度强的优势设计的这种信号发生器,比以前的任意一种信号发生器速度更快,且实现更加简便。
1正弦波信号的产生方式1.1采样回放法通过对已有的标准正弦信号源进行采样得到数据后直接回放或进行变频变幅处理后回放。
该方法的关键在于合理设计高性能的硬件电路,尽量避免信号处理过程中的波形失真,来确保采样数据的精准性。
同时在数字域处理时,数据的回归点数必须满足Nyquist定理,以免频谱混迭情况的发生。
1.2查表法5402的片内ROM中存有256字的正弦及余弦数据表,可以通过程序直接调用该表中的数据,由D/A回放出正弦波。
通过MATLAB模拟仿真自己生成的正弦数据表,不但可以解决频率单一的问题,还可以增加精度,并改善系统的兼容性。
1.3泰勒级数展开法任一角度的正弦及余弦波都可以展开成泰勒级数,取前五项的近似公式为:其中:α为角度值,ω为其对应的弧度值。
通过变换的α值,且利用弧度与频率之间的关系很容易实现变频处理。
1.4数字正弦振荡器数字正弦波振荡器的系统函数可表示为:对应的是在单位圆上有复共轭极点的二阶振荡器,共扼极点为:P1,2=e±jω0,其离散时域脉冲单位冲击响应响应:h(n)=Asin[(n+1)ω0]·u(n)实际应用中对于给定的冲激信号所产生的正弦信号对应的差分方程为:如果系统无阻尼且稳定,我们不对系统加入冲击信号,改变y(-2)的起始值,从而使系统满足起始条件。
2kHz正弦信号发生器
2kHz 正弦信号发生器设计一、设计目的1、了解数字波形产生的原理2、学习用DSP 产生各种波形的基本方法和步骤,提高用C 语言进行DSP 编程的能力。
3、掌握DSP 与D/A 转换器接口的使用。
二、设计设备计算机、DSP 硬件仿真机、ZYE1801B 实验箱,60M 示波器,连接线若干。
三、设计原理数字波形信号发生器是利用DSP 芯片,通过软件编程和D/A 转换来产生所需要的信号波形的一种方法。
在通信、仪器和控制等领域的信号处理系统中,经常会用到各种数字波形发生器。
譬如,一般产生正弦波的方法有两种:1、查表法:此种方法用于对精度要求不是很高的场合。
如果要求精度高,所需要的表格就很大,相应的存储器容量也要很大。
2、泰勒级数展开法:这是一种更为有效的方法。
与查表法相比,需要的存储单元很少,而且精度比较高。
一个角度为θ的正弦函数和余弦函数,都可以展开成泰勒级数,取其前5项进行近似得:35792222sin (1(1(1(1))))3!5!7!9!2*34*56*78*9x x x x x x x x x x θ=-+-+=----24682222cos 11(1(1(1)))2!4!6!8!23*45*67*8x x x x x x x x θ=-+-+=---- 其中:x 为θ的弧度值。
也可以用递推公式求正弦和余弦值:θθθθ)2sin()1sin(cos 2sin ---∙=n n n θθθθ)2cos()1cos(cos 2cos ---∙=n n n利用递推公式计算正弦和余弦值需已知COS θ和正、余弦的前两个值。
用这种方法,求少数点可以,如产生连续正弦、余弦波,则累积误差太大,不可取。
通过3个拨码开关对DSP 进行输入,输入的0-7对应8种不同的波形,DSP 根据输入的数据进行不同的波形处理,把处理后的数字数据发送到D/A 转换器,经D/A 转换器转换后输出模拟量,用示波器进行测量,观察。
基于DSP的正弦信号发生器
基于DSP的正弦信号发生器1.正弦信号在各种科学和工程领域中广泛应用,如通信系统、音频处理、医学诊断等。
因此,制作一个能够生成正弦信号的设备是非常必要的。
传统的方法是使用模拟电路,但这种方法需要用到很多电子元器件,难以控制和调整。
同时,传统的模拟电路还容易受到电磁干扰、温度等环境因素的影响,导致输出的信号失真。
因此,数字信号处理(DSP)技术逐渐成为生成正弦波信号的常见方法,能够实现高精度、低失真的输出。
2. 设计概述本文介绍一种基于DSP的正弦信号发生器的设计。
该设计采用TMS320C5505数字信号处理芯片和信号解调电路,通过软件和硬件设计,实现了一个高精度、低失真的正弦信号发生器。
2.1 硬件设计本设计采用了TMS320C5505数字信号处理器集成电路作为主控芯片。
该芯片具有低功耗、高性能、灵活性和易于开发等优点。
除此之外,还需要电源模块、时钟模块、信号解调模块等。
2.2 软件设计本设计采用了C语言进行程序设计。
使用Code Composer Studio作为开发环境,将程序编译后烧录到芯片中。
代码的主要实现过程为:1.生成一个只包含一周期正弦波形的信号2.将该信号送入DA(Digital to Analog)转换器,使其变为模拟信号3.经过信号解调器后输出到外部接口信号的生成采用的是Taylor级数展开,可以实现高精度的波形生成。
信号解调电路主要是由低通滤波器、防干扰电路和放大电路等模块组成。
3. 实验结果经过实验测试,本设计输出的正弦波信号的频率可以在0~10kHz范围内任意设定。
信号的失真率小于0.1%。
同时,本设计还支持正弦波的相位调节和幅度调节等功能。
通过外部的控制,可以实现信号的精准控制和调节。
4.本文介绍了一种基于DSP的正弦信号发生器的设计,通过使用数字信号处理技术,实现了高精度、低失真的正弦波信号的生成。
该设计具有灵活性和可扩展性,可以为各种科学和工程领域提供高精度的正弦信号源。
基于DSP控制的正弦波和三角波发生器的设计毕业论文 精品
毕业设计题目名称基于DSP控制的正弦波和三角波发生器的设计学院电气信息工程学院专业/班级自动化09102学生学号指导教师(职称)葛延津(教授)严海领(助教)摘要信号发生器发展到今天,在电子测试、电子设计、模拟仿真、通信工程中,扮演着一个相当重要的角色,有着相当广泛的应用,极大加快了电子测试与设计工作中的效率,在电子技术和信号仿真应用中已发挥了巨大的作用。
本文主要介绍了以TMS320VC5402 DSP为主的信号发生器的设计情况。
这是一个以DSP为核心来实现信号发生器的系统,该系统具有结构简单灵活,抗干扰能力强、产生频率较高、应用广泛等特点。
该系统的组成核心TMS320VC5402 DSP芯片是TI公司生产的16位定点处理芯片,它有运算速度快、具有可编程特性、接口灵活和外围电路丰富等特点。
选择该芯片作为设计信号发生器的核心芯片,能够提高信号发生器所产生信号的频率,使信号发生器有更加广泛的应用。
本设计的硬件部分是有该DSP芯片和D/A转换芯片TLC7528组成,DSP芯片用于产生各种波形,D/A转换芯片用于把数字信号转换为模拟信号。
在以上硬件的基础上,通过软件编程来实现三角波、正弦波等波形。
关键词:DSP;D/A转换器;信号发生器;波形AbstractSignal generator to today, in the electronic testing, electronic design, simulation, communications engineering, plays a very important role, has a very wide range of applications, greatly accelerate the efficiency of the electronic test and design work in the electronics technology and signal simulation applications has played a huge role. This paper describes the design to TMS320VC5402 DSP-based signal generator. This is a core DSP signal generator system, the system structure is simple and flexible, anti-interference ability, resulting in a higher frequency, widely used features.The System is comprised core TMS320VC5402 DSP chip is produced by TI 16-bit fixed-point processing chip, computing speed, programmable features, flexible interface and peripheral circuits rich features. Select the chip to chip as the core of the design of the signal generator, it is possible to improve the signal generator to produce the signal frequency, the signal generator has a broader application. The design of the hardware part is composed of the DSP chip and the D / A converter chip TLC7528 DSP chip for generating various waveforms, D / A converter chip used to convert digital signals to analog signals. On the basis of the above hardware, by software programming to achieve the waveform of the triangular wave, sine wave, etc..Keywords: DSP; D / A converter; signal generator; waveform目录第一章绪论.................................................... - 1 -1.1选题的背景............................................. - 1 -1.2选题的目的及意义....................................... - 1 - 第二章整体方案................................................ - 2 - 第三章硬件系统设计............................................ - 3 -3.1 系统的组成及实现功能................................... - 3 -3.2 硬件系统设计思想....................................... - 3 -3.3 硬件电路方案及电路原理设计 ............................ - 3 -3.4 相关电路介绍........................................... - 4 -3.4.1 核心电路芯片TMS320VC5402...................... - 4 -3.4.2 D/A 转换器TLC7528............................. - 10 -3.4.3 电源电路和晶振电路 ............................. - 14 - 第四章软件系统设计........................................... - 17 -4.1 ICETEK—B2.0说明............................. - 17 -4.2 三角波的设计方案..................................... - 18 - 4.3 正弦波的设计方案...................................... - 21 - 4.4 软件系统.............................................. - 25 - 第五章总结展望............................................... - 28 - 结束语........................................................ - 29 -致谢......................................................... - 30 - 参考文献...................................................... - 31 - 附录......................................................... - 32 -第一章绪论1.1选题的背景信号发生器,主要作为激励信号或仿真信号,广泛应用于电子设计、生物医疗、环保、机械运动、新型材料等各个领域。
DSP课程设计正弦信号发生器的设计
太原理工大学DSP课程设计:正弦信号发生器的设计学号:班级:姓 名:指导教师:一、设计目的1、通过实验掌握DSP 的软件开发过程2、学会运用汇编语言进行程序设计3、学会用CCS 仿真模拟DSP 芯片,通过CCS 软件平台上应用C54X 汇编语言来实现正弦信号发生装置。
二、设计原理 本实验产生正弦波的方法是泰勒级数展开法。
泰勒级数展开法需要的存储单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。
求一个角度的正弦值取泰勒级数的前5项,得近似计算式:三、总体方案设计))))((((981761541321 !9!7!5!3)sin(22229753⨯-⨯-⨯-⨯-=+-+-=x x x x x x x x x x x本实验是基于CCS开发环境的。
CCS是TI公司推出的为开发TMS320系列DSP软件的集成开发环境,是目前使用最为广泛的DSP开发软件之一。
它提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。
通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。
总体思想是:正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。
整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。
四、设计内容1、设置在Family下选择C55xx,将看到所有C55xx的仿真驱动,包括软件仿真和硬件仿真;在Platform下选择Simulator,在Available Factory Boards中只显示软件仿真驱动,选中相应的驱动;双击C55xx Rev4.0 CPU Functional Simulator,可以在My System下看到所加入的驱动;点击Save & Quit,将保存设置退出Setup CCStudio v3.1并启动运行CCStudio。
正弦波信号发生器的DSP设计
科技经济市场正弦信号发生器能输出一个幅度可调、频率可调的正弦信号,特别是低频正弦信号发生器在科学研究及生产实践中均有着广泛应用。
目前,常用的信号发生器绝大部分是由模拟电路构成的。
当这种模拟信号发生器用于低频信号输出时,往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大。
而由数字电路构成的低频信号发生器,虽然其低频性能好,但体积较大,价格较贵。
而借助DSP芯片的运算速度高,系统集成度强的优势设计的这种信号发生器,比以前的任意一种信号发生器速度更快,且实现更加简便。
1正弦波信号的产生方式1.1采样回放法通过对已有的标准正弦信号源进行采样得到数据后直接回放或进行变频变幅处理后回放。
该方法的关键在于合理设计高性能的硬件电路,尽量避免信号处理过程中的波形失真,来确保采样数据的精准性。
同时在数字域处理时,数据的回归点数必须满足Nyquist定理,以免频谱混迭情况的发生。
1.2查表法5402的片内ROM中存有256字的正弦及余弦数据表,可以通过程序直接调用该表中的数据,由D/A回放出正弦波。
通过M ATLAB模拟仿真自己生成的正弦数据表,不但可以解决频率单一的问题,还可以增加精度,并改善系统的兼容性。
1.3泰勒级数展开法任一角度的正弦及余弦波都可以展开成泰勒级数,取前五项的近似公式为:其中:α为角度值,ω为其对应的弧度值。
通过变换的α值,且利用弧度与频率之间的关系很容易实现变频处理。
1.4数字正弦振荡器数字正弦波振荡器的系统函数可表示为:对应的是在单位圆上有复共轭极点的二阶振荡器,共扼极点为:P1,2=e±jω0,其离散时域脉冲单位冲击响应响应:h(n)=A sin[(n+1)ω0]·u(n)实际应用中对于给定的冲激信号所产生的正弦信号对应的差分方程为:如果系统无阻尼且稳定,我们不对系统加入冲击信号,改变y(-2)的起始值,从而使系统满足起始条件。
这样系统差分方程变为:f s为采样频率,f0和A分别为正弦波的频率和幅度。
dsp-正弦波信号发生器课程设计.
※※※※※※※※※※2009级学生DSP原理※※※※及应用课程设计※※※※※※※※※※太原理工大学DSP原理及应用课程设计报告书课题名称正弦波信号发生器姓名学号院、系、部专业正弦波信号发生器课程设计一、课程设计基础数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
数字信号处理是利用计算机或专用处理设备,以数字的形式对信号进行分析、采集、合成、变换、滤波、估算、压缩、识别等加工处理,以便提取有用的信息并进行有效的传输与应用。
数字信号处理是以众多学科为理论基础,它所涉及的范围极其广泛。
如数学领域中的微积分、概率统计、随机过程、数字分析等都是数字信号处理的基础工具。
它与网络理论、信号与系统、控制理论、通信理论、故障诊断等密切相关。
一个典型的DSP系统应包括抗混叠滤波器、数据采集A/D转换器、数字信号处理器DSP、D/A转换器和低通滤波器等组成。
DSP信号处理过程:①将输入信号x(t)进行抗混叠滤波,滤掉高于折叠频率的分量,以防止信号频谱的混叠;②经采样和A/D转换器,将滤波后的信号转换为数字信号x(n);③数字信号处理器对x(n)进行处理,得数字信号y(n);④经D/A转换器,将y(n)转换成模拟信号;⑤经低通滤波器,滤除高频分量,得到平滑的模拟信号y(t)。
二、课程设计目的1、了解DSP对数据的处理能力2、利用DSP实现正弦信号发生器三、课程设计总体方案1. 总体方案设计①基于DSP的特点,本设计采用TMS320C54X系列的DSP作为正弦信号发生器的核心控制芯片。
②用泰勒级数展开法实现正弦波信号。
③设置波形时域观察窗口,得到其滤波前后波形变化图;④设置频域观察窗口,得到其滤波前后频谱变化图。
2. 正弦波信号发生器正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。
通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。
基于dsp技术的正弦信号发生课程设计
第一章:绪论数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用。
图一是数字信号处理系统的简化框图。
此系统先将模拟信号转换为数字信号,经数字信号处理后,再转换成模拟信号输出。
其中抗混叠滤波器的作用是将输入信号x(t)中高于折叠频率的分量滤除,以防止信号频谱的混叠。
随后,信号经采样和A/D转换后,变成数字信号x(n)。
数字信号处理器对x(n)进行处理,得到输出数字信号y(n),经D/A转换器变成模拟信号。
此信号经低通滤波器,滤除不需要的高频分量,最后输出平滑的模拟信号y(t)。
图一数字信号处理系统简化框图数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。
例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。
近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。
可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
第二章:TMS320C54x芯片介绍1.总线结构C54x 包括8 条16 比特宽度的总线,其中:一条程序总线(PB):传送取自程序存储器的指令代码和立即操作数三条数据总线(CB、DB、EB):将内部个单元连接在一起,CB和DB传送读自数据存储器的数据,EB传送写入存储器的数据四条地址总线(PAB CAB DAB EAB):传送执行指令所需的地址2.C P UC54x 的CPU 结构包括:40 比特的ALU ,其输入来自16 比特立即数、16 比特来自数据存储器的数据、暂时存储器、T 中的16 比特数、数据存储器中两个16 比特字、数据存储器中32 比特字、累加器中40 比特字。
基于DSP正弦信号发生器设计
基于DSP正弦信号发生器设计摘要:提出了一种基于TMS320C5402实现正弦信号发生器的设计原理与方法,介绍了所设计的正弦信号发生器硬件电路结构和软件程序流程图。
结合DSP硬件特性,通过使用泰勒级数展开法得到设定参数的正弦波形输出,达到设计目的。
该信号发生器弥补了通常信号发生器模式固定,波形不可编程的缺点,其具有实时性强,波形精度高,可方便调节频率和幅度、稳定性好等优点。
关键词:数字信号处理器;信号发生器;多通道缓冲串行口;独立键盘随着计算机技术的飞速发展,对信号发生器波形的要求越来越高。
目前,常用信号发生器大部分是由模拟电路构成,当这种模拟信号发生器用于低频输出时,由于需要较大的RC值,导致参数准确度难以保证,且造成体积和功耗偏大,而数字式波形发生器,因其输出幅值稳定、输出频率连续可调的优点,已逐渐取代了模拟电路信号发生器。
由于其运算速度高,系统集成度强的优势,可以设计基于DSP的正弦信号发生器,该发生器实时性强、可扩展性好、波形精度高、可调节频率和幅度、稳定性好、用途广泛,各方面均优于模拟信号发生器和数字信号发生器。
因此,本文提出了一种基于TMS320C5402的正弦信号发生器的设计方法。
1 系统硬件设计1.1 系统硬件框图该正弦信号发生器的硬件结构框图如图1所示,主要由TMS320C5402芯片,D/A转换器,独立键盘等几部分组成。
1.2 TMS320C5402简介TMS320C5402芯片采用先进的修正哈佛结构,片内有8条总线、在片存储器和在片外围电路等硬件,同时还有高度专业化的指令系统,具有功耗小、高度并行等优点。
此外,其支持C语言和汇编语言混合编程,高效的流水线操作和灵活的寻址方式使其适合高速实时信号处理。
1.3 数模转换部分设计McBSP(M ulti-channel Buffered Serial)即多通道缓冲串口,包括一个数据通道和一个控制通道。
数据通道通过D X引脚发送数据、DR引脚接收数据。
正弦信号发生器(幅值频率可调)
学号:2011013732西北农林科技大学电子技术课程设计报告题目:正弦信号发生器(幅值频率可调)学院(系):机械与电子工程学院专业年级:学生姓名:指导教师:完成日期: 2013年7月3日目录1. 设计的任务与要求............................................................. - 2 -1.1 课题要求................................................................ - 2 -1.2具体要求................................................................. - 2 -1.3课题摘要:............................................................... - 2 -1.4设计步骤:............................................................... - 2 -2. 设计方案确定................................................................. - 3 -3. 硬件电路设计................................................................. - 4 -3.1整体电路框图............................................................. - 4 -3.2 主要元器件介绍.......................................................... - 4 -3.2.1 NE555芯片......................................................... - 4 -3.2.2 555定时器接成多谐振荡器.......................................... - 6 -3.2.3 NE5532P芯片....................................................... - 6 -3.3 整体电路设计............................................................ - 7 -3.4分立电路的设计及元件参数的选取及计算..................................... - 8 -3.4.1 555多谐振荡电路.................................................. - 8 -3.4.2带通滤波电路....................................................... - 8 -3.4.3反向比例运算放大器................................................. - 9 -4.调试与仿真................................................................... - 10 -4.1使用的主要仪器和仪表.................................................... - 10 -4.2分立电路的仿真(仿真图、操作的步骤、方法和结果)........................ - 10 -4.2.1 仿真图........................................................... - 10 -4.2.2仿真结果.......................................................... - 10 -4.3调试电路的方法和技巧:.................................................. - 12 -5. 总结........................................................................ - 13 -6. 参考文献.................................................................... - 15 - 附录一......................................................................... - 16 -1.元器件清单............................................................... - 16 -2.电路原理图............................................................... - 17 -3.PCB封装图................................................................ - 18 -4.3D效果图................................................................. - 21 -1. 设计的任务与要求1.1 课题要求:设计一个频率幅值可调的正弦信号发生器1.2具体要求:1.利用振荡电路产生正弦信号,要求有可调参数用以修改频率2.利用放大电路控制输出信号振幅。
DSP课设——正弦波发生器
摘要数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
数字信号处理器(DSP)是在模拟信号变成数字信号以后进行高速实时处理的专用处理器。
DSP 芯片以其独特的结构和快速实现各种数字信号处理算法的突出优点,发展十分迅速。
本文中提出的基于DSP技术设计的正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。
在本文中简要的概括了一种基于TMS320C5402实现正弦信号发生器的设计原理与方法,介绍了所设计的正弦信号发生器硬件电路结构和软件程序流程图。
结合DSP硬件特性,通过使用泰勒级数展开法得到设定参数的正弦波形输出,达到设计目的。
该信号发生器弥补了通常信号发生器模式固定,波形不可编程的缺点,其具有实时性强,波形精度高,可方便调节频率和幅度、稳定性好等优点。
关键字:DSP;TMS320C5402;信号发生器;正弦信号;目录1 设计目的及要求 (1)1.1 设计目的 (1)1.2 设计内容及要求 (1)2设计方案及原理 (2)2.1总体方案 (2)2.2设计原理 (2)3系统硬件设计 (3)3.1系统硬件框图 (3)3.2 TMS320C5402简介 (4)3.3 D/A转换部分设计 (5)4系统软件设计及调试 (6)4.1变频调幅的方法 (6)4.2程序设计 (6)4.3程序编写 (8)4.4 CCS简介 (14)4.5运行步骤及结果 (15)5 设计心得 (19)参考文献 (20)附录设计程序 (21)1 设计目的及要求1.1 设计目的DSP课程设计是对《数字信号处理》、《DSP原理及应用》等课程的较全面练习和训练,是实践教学中的一个重要环节。
基于DSP的正弦信号发生器
武汉理工大学华夏学院设计报告课程名称《DSP技术》结业论文题目基于DSP的正弦信号发生器班级自动化1122学号____姓名_2015__年__10__ 月__24___日一、摘要数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。
数字信号处理在理论上的发展推动了数字信号处理应用的发展。
反过来,数字信号处理的应用又促进了数字信号处理理论的提高。
而数字信号处理的实现则是理论和应用之间的桥梁。
数字信号处理是以众多的学科为理论基础的,它所涉及的范围及其广泛。
例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。
一些新兴的学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。
可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
长期以来,信号处理技术—直用于转换或产生模拟或数字信号。
其中应用得最频繁的领域就是信号的滤波。
此外,从数字通信、语音、音频和生物医学信号处理到检测仪器仪表和机器人技术等许多领域中,都广泛地应用了DSP。
数字信号处理己经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统。
世界上三大DSP芯片生产商:1.德克萨斯仪器公司(TI) 2.模拟器件公司(ADI) 3.摩托罗拉公司(Motorola).这三家公司几乎垄断了通用DSP芯片市场。
数字信号处理的书籍很多,其中以麻省理工学院奥本海姆编著的《Discrete Time Signal Processing》最为经典,有中译本《离散时间信号处理》由西安交通大学出版。
现在是第二版。
关键字:数字信号处理正弦信号发生器DSP 信号处理技术二、设计目的分析一般情况,产生正弦波的方法有两种:查表法和泰勒级数展开法。
dsp正弦信号
实验五 正弦信号发生器一、实验目的1. 掌握利用DSP 产生正弦信号的原理2. 熟悉子程序调用的程序结构以及堆栈的使用3. 掌握CCS 的图形输出操作二、实验设备1. 集成开发环境Code Composer Studio (简称CCS )2. 实验代码Sin.s54、Lab.cmd 和Lab.gel三、实验内容1.阅读理解多项式逼近正弦的文档 2.阅读和理解Sin.s54 3.调试正弦波发生器 4.加入断点,并选取图形观测,利用动画及时更新 5.试利用迭代的方法来实现正弦信号发生器四、实验结果和提示1. 2345sin()= 3.140625 + 0.02026367 - 5.325196 + 0.5446778 + 1.800293x x x x x x x 为第一象限内的弧度值。
因为sin()sin(),sin()sin()x x x x π-=-=-,所以只需将第二,三,四象限内的弧度值转换到第一象限即可计算出相应的正弦函数值。
由于有限精度,规定弧度值从~ππ-,其中π=0x7FFF ,π/2=0x4000,π-=0x8000。
利用级数展开产生正弦波,必须在调用计算子程序之前备份好累加器A 中的当前弧度值,以便计算结束后实现x 增量。
正弦波的频率可以通过增幅的大小来进行控制,如果假定程序循环一次为一个时间单位,则正弦波的周期为65536/步长,频率为周期倒数。
x 自动增长时要注意当x 超过π后必须调整到~ππ-的范围内才能调用计算子程序,即若,2x x x ππ>=-则。
2. 需要使用临时数据时,必须用frame 语句留出所需的空间,使用结束后要将堆栈指针还原以防止堆栈内存泄漏。
要注意的是frame 的下一条指令不能使用直接寻址。
3. 注意事项:利用累加器写乘法寄存器T (stlm )之后的下一条指令不能使用T ;条件转移指令xc 在指令访问阶段判断条件,该条件必须在先于xc 指令的2个指令之前产生;条件转移指令bc 是在指令执行阶段判断条件,不存在这方面的问题。
DSP课程设计--正弦信号发生器的设计
DSP课程设计–正弦信号发生器的设计简介正弦信号发生器是一种常见的电子信号发生器。
在数字信号处理中,正弦信号是非常重要的一种基础信号。
在本次课程设计中,我们将使用MATLAB软件设计一个正弦信号发生器。
设计步骤步骤一:信号采样我们的信号采样频率为fs,即每秒采样多少个点。
首先我们需要设置采样频率。
信号采样频率的选取需要满足采样定理,保证采样信号能够完全还原原信号。
我们使用MATLAB的“fs”命令设置采样频率。
假设我们的采样频率为10KHz,代码为:fs = 10000; % 设置采样频率为10KHz步骤二:生成时域正弦信号根据正弦波方程,我们可以生成时域上的正弦信号:f0 = 1000; % 正弦信号的频率为1kHzA = 1; % 正弦信号的幅度为1Vt = 0:1/fs:1; % 假设信号长度为1秒y = A * sin(2 * pi * f0 * t);代码中,我们生成了一个正弦信号,频率为1kHz,幅度为1V,信号长度为1秒,并将其存放在y变量中。
步骤三:对信号进行FFT变换为了验证我们生成的信号是否正确,我们需要对信号进行FFT变换。
FFT变换可以将一个时域信号转化为频域信号。
我们使用MATLAB的“fft”命令对信号进行FFT变换。
代码如下:Y = fft(y); % 对信号y进行FFT变换,得到频域信号YL = length(y); % 计算信号的长度P2 = abs(Y/L); % 取FFT变换结果的绝对值,然后除以长度LP1 = P2(1:L/2+1);P1(2:end-1) = 2*P1(2:end-1);f = fs*(0:(L/2))/L; % 生成频率坐标轴代码中,我们使用FFT变换对信号y进行变换,并将结果存放在Y变量中。
然后我们根据FFT变换结果,得到频率分量以及对应的幅度分量。
步骤四:绘制频域正弦信号最后,我们使用MATLAB的plot函数绘制频域信号采样结果图。
正弦信号发生器的设计
正弦信号发生器的设计正弦信号是电子工程中非常常见的一种波形信号。
在很多应用场合中,为了满足一些特殊的输出要求,设计一个合适的正弦信号发生器是非常必要的。
本文将介绍如何设计一个简单的正弦信号发生器。
一、介绍正弦信号正弦信号是一种基本的周期信号,在数学和工程领域都有广泛的应用。
正弦信号的数学表达式为:y(t) = A*sin(ωt+φ),其中A为振幅,ω为角频率,φ为相位差。
正弦信号具有周期性和连续性,可以描述很多物理和电子现象,如机械振动、电磁波等。
在电子工程领域中,正弦信号可以用于通讯系统、音频系统、数码系统等各个方面。
如果需要设计一个正弦波信号发生器,一些基本要素必须要考虑。
这些要素包括输出幅度、输出频率、工作电源和电路稳定性。
以下是正弦信号发生器的设计方案:1.输出幅度要设计一个正弦信号发生器,首先要确定所需要的输出幅度范围。
对于数字信号处理器(DSP)的输出,其输出幅度通常在±1.0之间。
如果需要更大的输出幅度,可以通过放大引脚信号或者使用外部放大器实现。
2.输出频率输出频率可以由外部时钟或者基准晶振决定。
如果想要实现可调节的输出频率,可以在电路中使用像50-100MHz这样的精准低噪声晶振。
可以根据应用需求选择不同的晶振和滤波器电路。
3.工作电源正弦波信号发生器的工作电源应该保证稳定性和可靠性。
在低频和中频应用中,标准稳压器可以提供足够的电源稳定性;在高频应用中,需要使用低噪声电源或者瞬态响应较好的电源来保证信号质量。
4.电路稳定性正弦波信号发生器的电路必须要保证稳定性。
这可以通过使用负反馈电路、保持简单电路结构和使用稳定的输出功率等方法来实现。
此外,振荡器的端部是一个有驱动能力的阻抗,因此需要使用与振荡器相匹配的驱动设计。
下面是一个简单的正弦波信号发生器电路图:在图中,U1是一个晶体管振荡器,C4和L2是功率扩大电路,R1和R2是反馈电路,C1和C2是用于稳定电路的滤波电容,C3则被用来过滤高频噪声。
基于DSP的正弦信号发生器的设计
图1 程序流程图
4、 程序设计
4.1 产生正弦波程序清单sin.asm
.title "sin.asm" //为汇编文件取名为“sin.asm”
.mmregs
/定/ 义存储器映像寄存器
.def
_c_int00
.ref
sinx,d_xs,d_sinx,cosx,d_xc,d_cosx //定义标
号
sin_x: .usect "sin_x",360 //为"sin_x"保留360个存储空间
MPYA
*AR2+ /B/=x^2(1-x^2/30(1-x^2/56))
2(1-x^2/30(1-x^2/56))
||LD *AR4,B //B=1
MASR
*AR2-,*AR3+,B,A //A= 1-x^2/12(1-x^2/30(1-x^2/56))
SFTA
A,-1,A
NEG
A
MPYA
*AR2+ //B=1-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))
STM
#d_xc,AR2
/A/R2 指向d_xc首地址
STM
#c_l_c,AR4 /A/R4指向c_l_c首地址
ST
#7FFFh,c_l_c /7/FFFh→c_l_c
SQUR
*AR2+,A
/求/ x的平方存放在累加器A中
ST
A,*AR2
/(/ A)左移16位→AR2
||LD *AR4,B
/(/ AR4)左移16位→B
d_temp_c .usect "cos_vars",1 //为d_temp_c中cos_vars保存1个存储
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
太原理工大学DSP课程设计:正弦信号发生器的设计学号:班级:姓名:指导教师:一、设计目的1、通过实验掌握DSP的软件开发过程2、学会运用汇编语言进行程序设计3、学会用CCS仿真模拟DSP芯片,通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。
二、设计原理本实验产生正弦波的方法是泰勒级数展开法。
泰勒级数展开法需要的存储单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。
求一个角度的正弦值取泰勒级数的前5项,得近似计算式:三、总体方案设计本实验是基于CCS开发环境的。
CCS是TI公司推出的为开发TMS320系列DSP 软件的集成开发环境,是目前使用最为广泛的DSP开发软件之一。
它提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。
通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。
总体思想是:正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。
整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。
四、设计内容1、设置在Family下选择C55xx,将看到所有C55xx的仿真驱动,包括软件仿真和硬件仿真;在Platform下选择Simulator,在Available Factory Boards中只显示软件仿真驱动,选中相应的驱动;双击C55xx Rev4.0 CPU Functional Simulator,可以在My System下看到所加入的驱动;点击Save & Quit,将保存设置退出Setup CCStudio v3.1并启动运行CCStudio。
2、编写汇编源程序sin。
3.、建立汇编源程序在CCS环境下,点击file/new/source file菜单命令,打开一个空白文档,将汇编程序输入。
单击file/save菜单命令,在D:\program files\ti\myprojects下保存文件名为sin,并选择保存类型为*.asm。
4、建立链接命令文件。
5、创建新的工程文件启动CCS,在Project菜单中选择New项,在Project中输入denglin,CCS将创建一个名为denglin.pjt的工程。
6、将文件添加到工程中在工程中添加源文件,执行菜单project/add files to project,把sin文件添加到工程中。
7、生成和运行程序(1)选择菜单命令Project→Rebuild All,对工程重新编译、汇编和链接,主窗口下方的信息窗口将显示build进行汇编、编译和链接的相关信息。
(2)选择菜单命令File→Load Program,在当前目录的Debug目录下选择sin并打开,将Build生成的程序加载到DSP中。
(3)选择菜单命令Debug→Run或在Debug工具栏上单击Run按钮,运行该程序。
8、观察运行结果点击view/gragh菜单命令观看图像五、主要参数六、源程序汇编源程序sin.mmregs.def start.def d_xs,d_sinx,d_xc,d_cosx,sinx,cosxsin_x: .usect "sin_x",360STACK: .usect "STACK",10Hk_theta .set 286 ;theta=pi/360(0.5deg)start:.textSTM #STACK+10H,SPSTM k_theta,AR0STM 0,AR1STM #sin_x,AR6STM #90,BRCRPTB loop1-1LDM AR1,ALD #d_xs,DPSTL A,@d_xsSTL A,@d_xcCALL sinx ;d_sinx=sin(x)CALL cosx ;d_cosx=cos(x)LD #d_sinx,DPLD @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,BRCRPTB loop2-1LD *AR7-,ASTL A,*AR6+loop2: STM #179,BRC ;sin180(deg.)-sin359(deg.)STM #sin_x,AR7RPTB loop3-1LD *AR7+,ANEG ASTL A,*AR6+loop3: STM #sin_x,AR6 ;generate sin waveSTM #1,AR0STM #360,BKB 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 "sin_vars",1d_squr_xs .usect "sin_vars",1d_temp_s .usect "sin_vars",1d_sinx .usect "sin_vars",1d_l_s .usect "sin_vars",1.textSSBX FRCTSTM #d_coef_s,AR5 ;move coeffs table_sRPT #3MVPD #table_s,*AR5+STM #d_coef_s,AR3STM #d_xs,AR2STM #d_l_s,AR4ST #7FFFH,d_l_sSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2MPYA 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=1MASR *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=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))MPYA d_xs ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))STH B,d_sinx ;sin(theta)RETcosx:.def d_xc,d_cosxd_coef_c .usect "coef_c",4.datatable_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_vars",1d_squr_xc .usect "cos_vars",1d_temp_c .usect "cos_vars",1d_cosx .usect "cos_vars",1c_l_c .usect "cos_vars",1.textSSBX FRCTSTM #d_coef_c,AR5 ;move coeffs table_cRPT #3MVPD #table_c,*AR5+STM #d_coef_c,AR3STM #d_xc,AR2STM #c_l_c,AR4ST #7FFFH,c_l_cSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2MPYA A ;A=T*A=x^2(1-x^2/56)STH A,*AR2 ;(d_temp)=x^2(1-x^2/56)MASR *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56); T=x^2(1-x^2/56)MPYA *AR2+ ;B=x^2(1-x^2/30(1-x^2/56))ST B,*AR2 ;(d_temp)=x^2(1-x^2/30(1-x^2/56))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/12(1-x^2/30(1-x^2/56))SFTA A,-1,A ;-1/2NEG AMPYA *AR2+ ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))MAR *AR2+RETDADD *AR4,16,B ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))STH B,*AR2 ;cos(theta)RET.end .mmregs.def start.def d_xs,d_sinx,d_xc,d_cosx,sinx,cosxsin_x: .usect "sin_x",360STACK: .usect "STACK",10Hk_theta .set 286 ;theta=pi/360(0.5deg)start:.textSTM #STACK+10H,SPSTM k_theta,AR0STM 0,AR1STM #sin_x,AR6STM #90,BRCRPTB loop1-1LDM AR1,ALD #d_xs,DPSTL A,@d_xsSTL A,@d_xcCALL sinx ;d_sinx=sin(x)CALL cosx ;d_cosx=cos(x)LD #d_sinx,DPLD @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,BRCRPTB loop2-1LD *AR7-,ASTL A,*AR6+loop2: STM #179,BRC ;sin180(deg.)-sin359(deg.)STM #sin_x,AR7RPTB loop3-1LD *AR7+,ANEG ASTL A,*AR6+loop3: STM #sin_x,AR6 ;generate sin waveSTM #1,AR0STM #360,BKB 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 "sin_vars",1d_squr_xs .usect "sin_vars",1d_temp_s .usect "sin_vars",1d_sinx .usect "sin_vars",1d_l_s .usect "sin_vars",1.textSSBX FRCTSTM #d_coef_s,AR5 ;move coeffs table_sRPT #3MVPD #table_s,*AR5+STM #d_coef_s,AR3STM #d_xs,AR2STM #d_l_s,AR4ST #7FFFH,d_l_sSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2MPYA 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=1MASR *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=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))MPYA d_xs ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))STH B,d_sinx ;sin(theta)RETcosx:.def d_xc,d_cosxd_coef_c .usect "coef_c",4.datatable_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_vars",1d_squr_xc .usect "cos_vars",1d_temp_c .usect "cos_vars",1d_cosx .usect "cos_vars",1c_l_c .usect "cos_vars",1.textSSBX FRCTSTM #d_coef_c,AR5 ;move coeffs table_cRPT #3MVPD #table_c,*AR5+STM #d_coef_c,AR3STM #d_xc,AR2STM #c_l_c,AR4ST #7FFFH,c_l_cSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2MPYA A ;A=T*A=x^2(1-x^2/56)STH A,*AR2 ;(d_temp)=x^2(1-x^2/56)MASR *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56); T=x^2(1-x^2/56)MPYA *AR2+ ;B=x^2(1-x^2/30(1-x^2/56))ST B,*AR2 ;(d_temp)=x^2(1-x^2/30(1-x^2/56))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/12(1-x^2/30(1-x^2/56))SFTA A,-1,A ;-1/2NEG AMPYA *AR2+ ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))MAR *AR2+RETDADD *AR4,16,B ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))STH B,*AR2 ;cos(theta)RET链接命令文件MEMORY{PAGE 0:EPROM: org=0E000H, len=1000HVECS: org=0FF80H, len=0080HPAGE 1:SPRAM: org=0060H, len=0020HDARAM1: org=0080H, len=0010HDARAM2: org=0090H, len=0010HDARAM3: org=0200H, len=0200H}SECTIONS{.text :> EPROM PAGE 0.data :> EPROM PAGE 0STACK :> SPRAM PAGE 1sin_vars :> DARAM1 PAGE 1coef_s :> DARAM1 PAGE 1cos_vars :> DARAM2 PAGE 1coef_c :> DARAM2 PAGE 1sin_x : align(512) {} > DARAM3 PAGE 1.vectors :>VECS PAGE 0}七、实验结果及分析结果成功生成了正弦波图像,表明改程序能通过TMS320C54x产生正弦信号八、设计总结这次实验通过与小组的探讨研究使我对这门学科的基本知识、理论解起来更加方便直观和深刻。