基于DSP的任意信号发生器设计汇总

基于DSP的任意信号发生器设计汇总
基于DSP的任意信号发生器设计汇总

数字信号处理(DSP)

综合设计性实验报告

学院:电子信息工程学院

班级:通信0708

指导教师:高海林

学生:原凌云07211253

张丽康07211256

北京交通大学电工电子教学基地

2004年12月28日

目录

一、设计任务 (3)

二、实验目的 (3)

三、设计内容 (3)

四、实验原理 (4)

五、程序设计 (6)

1、程序源代码

2、实验截图和结果

六、实验总结 (22)

七、参考资料 (23)

一、设计任务书

信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。信号发生器在现代工程中应用非常广泛。在实际中常需要产生一些特殊波形,用于仿真实际信号的波形,以检测和调试测量装置。

使用 DSP 和 D/A 转换器可以产生连续的正弦波信号,同样也能产生方波、锯齿波、三角波等其它各种信号波形。本设计要求采用DSP及其D/A 转换器产生上述各种信号波形。

二、实验目的

(1)了解产生信号的两种方法及各自的优缺点。

(2)掌握使用DSP产生正弦波的原理和算法,进而掌握一般信号产生的原理和方法。

(3)掌握5402DSK CODECC(A/D、D/A)的工作原理和初始化过程。

(4)掌握使用指针访问片上ROM中正弦查找表的方法。

三、设计内容

使用DSP产生300—4000HZ的正弦信号,要求使用查表法,测量产生的信号波形的频率和幅度,并且频率可变、幅度可变、直流分量可变。用软件CCS5000编程实现,并硬件(DSK板或示波器)连接进行功能演示。

使用计算法产生余弦波分量。

发挥部分:

(1)使用DSP 产生300—4000HZ 的方波、锯齿波和三角波。 (2)使用现有程序,实现不改变源程序,频率和幅度自动可调。

四、实验原理

产生连续信号的方法通常有两种:查表法和计算法,查表法不如计算法使用灵活。计算法可以使用泰勒级数展开法进行计算,也可以使用差分方程进行迭代计算或者直接使用三角函数进行计算。计算结果可以边计算边输出,也可以先计算后输出。

正弦函数和余弦函数的泰勒级数数学表达式为:

=x sin +--+-+-+---)!

12()1(!9!7!5!3121

9753n x x x x x x n n ,x ?),(∞-∞∈

=x cos +-+-+-+-

)!

2()1(!8!6!4!2128642n x x x x x n n ,x ?),(∞-∞∈. 如果要计算一个角度ⅹ的正弦和余弦值,可以取其前五项进行近似计算。

或使用下面递归的差分方程进行计算。

y [n ]=A*y [n -1]-y [n -2] 其中:A=2cos(x ),x =2πF/F S 。F —信号频率,

F S —D/A 转换频率。

利用递推公式计算正弦和余弦值需要已知cos(x )和正弦、余弦的前两个值。计算时所需的计算量小,但如果用来产生连续的正弦和余弦信号,则累积误差太大。要得到精确的计算结果,可以使用泰勒级数展开法进行计算,当然计算时所需的计算量很大。在实际应用时可以根据需要选择相应的算法。

要产生一个正弦信号,首先要算出一个周期内各样点的值,因为sin(x)的值总是小于1的小数,而5402 DSP是16位的定点处理器,所以要将其乘以215,变为Q15的数据格式,才能够在DSP中送到D/A转换器进行处理。

优缺点的比较:

查表法,即事先将要输出的数据计算好,存储在DSP的内部RAM中,然后依次循环输出,从而才生波形。这种方法的优点在于其速度快,可以产生频率很高的波形,而且不占用DSP的计算时间,它的缺点是需要占用DSP 的内存空间,尤其是对采样频率比较大的输出波形,所需要的内部空间很大,所以这种方法用于对精度和频率要求不高的场合。第二个方法是计算法,即采用计算的方法依次计算数据然后输出。计算法的优缺点正好和查表法相反。其优点是不占用DSP的存储空间,可以根据信息随时间改变或调整输出波形的周期波形;其缺点是占用DSP的计算时间,使得执行程序的开销大

在实验中我们将采用查表法来实现正弦波,计算法产生余弦波。

余弦法的递推公式:cos(nx)=2cosxcos[(n-1)x]-cos[(n-2)x]

其中,cosx=cos(2*pi/N)=cos(2*pi*Fs/F),n=0时cos(nx)=1,n=1时cos(nx)=cosx,令N=256,Fs=16000,F=1000

调幅调频:我们将使用下面的一个界面

来实现频率和幅度的连续可调,但因为此界面和CCS运行界面不能同时存在,所以我们需要脱离CCS,而将程序烧至板子,然后在虚拟示波器上

面观察波形的变化。

频率、幅度及直流分量可调也可以通过改变源程序来实现。

五、程序设计

基本部分:

【1】查表法实现正弦波的程序:

/**********正弦信号产生程序[1]**********************/

#include

#include

#include

#include

#include

void delay(s16 period);

HANDLE hHandset;

s16 data;

/*****************************************************************************/

/* 片上ROM中的正弦函数查表法*/

/*****************************************************************************/

s16 SINE_TABLE[]=

{

0x00000,0x00324,0x00647,0x0096A,0x00C8B,0x00FAB,0x012C7,0x015E1,0x018F8,0x01C0B,0x01F19,0x022 23,0x02527,0x02826,0x02B1E,0x02E10,0x030FB,0x033DE,0x036B9,

0x0398C,0x03C56,0x03F16,0x041CD,0x0447A,0x0471C,0x049B3,0x04C3F,0x04EBF,0x05133,0x0539A,0x055 F4,0x05842,0x05A81,0x05CB3,0x05ED6,0x060EB,0x062F1,

0x064E7,0x066CE,0x068A5,0x06A6C,0x06C23,0x06DC9,0x06F5E,0x070E1,0x07254,0x073B5,0x07503,0x076 40,0x0776B,0x07883,0x07989,0x07A7C,0x07B5C,0x07C29,

0x07CE2,0x07D89,0x07E1C,0x07E9C,0x07F08,0x07F61,0x07FA6,0x07FD7,0x07FF5,0x07FFE,0x07FF5,0x07 FD7,0x07FA6,0x07F61,0x07F08,0x07E9C,0x07E1C,0x07D89,

0x07CE2,0x07C29,0x07B5C,0x07A7C,0x07989,0x07883,0x0776B,0x07640,0x07503,0x073B5,0x07254,0x070E

0x064E7,0x062F1,0x060EB,0x05ED6,0x05CB3,0x05A81,0x05842,0x055F5,0x0539A,0x05133,0x04EBF,0x04C 3F,0x049B3,0x0471C,0x0447A,0x041CD,0x03F16,0x03C56,

0x0398C,0x036B9,0x033DE,0x030FB,0x02E10,0x02B1E,0x02826,0x02527,0x02223,0x01F19,0x01C0B,0x018 F8,0x015E1,0x012C7,0x00FAB,0x00C8B,0x0096A,0x00647,

0x00324,0x00000,0x0FCDC,0x0F9B9,0x0F696,0x0F375,0x0F056,0x0ED39,0x0EA1F,0x0E708,0x0E3F5,0x0E0 E7,0x0DDDD,0x0DAD9,0x0D7DA,0x0D4E2,0x0D1F0,0x0CF05,

0x0CC22,0x0C947,0x0C647,0x0C3AA,0x0C0EA,0x0BE33,0x0BB86,0x0B8E4,0x0B64D,0x0B3C1,0x0B141,0x 0AECD,0x0AC66,0x0AA0C,0x0A7BE,0x0A57F,0x0A34D,0x0A12A,

0x09F15,0x09D0F,0x09B19,0x09932,0x0975B,0x09594,0x093DD,0x09237,0x090A2,0x08F1F,0x08DAC,0x08C 4C,0x08AFD,0x089C0,0x08895,0x0877D,0x08677,0x08584,

0x084A4,0x083D8,0x0831E,0x08277,0x081E4,0x08164,0x080F8,0x0809F,0x0805A,0x08029,0x0800B,0x08002 ,0x0800B,0x08029,0x0805A,0x0809F,0x080F8,0x08164,

0x081E4,0x08277,0x0831E,0x083D8,0x084A4,0x08584,0x08677,0x0877D,0x08895,0x089C0,0x08AFD,0x08C 4B,0x08DAC,0x08F1F,0x090A2,0x09237,0x093DD,0x09594,

0x0975B,0x09932,0x09B19,0x09D0F,0x09F15,0x0A12A,0x0A34D,0x0A57F,0x0A7BE,0x0AA0B,0x0AC66,0x 0AECD,0x0B141,0x0B3C1,0x0B64D,0x0B8E4,0x0BB86,0x0BE33,

0x0C0EA,0x0C3AA,0x0C674,0x0C947,0x0CC22,0x0CF05,0x0D1F0,0x0D4E1,0x0D7DA,0x0DAD9,0x0DDDD ,0x0E0E7,0x0E3F5,0x0E708,0x0EA1E,0x0ED38,0x0F055,0x0F375,

0x0F696,0x0F9B9,0x0FCDC,0x00000

};

/*****************************************************************************/

/* 主程序*/

/*****************************************************************************/

void main()

{

s16 amp=1; //输出的正弦信号的幅度系数,可变

s16 cnt=2;

u16 i=0;

if(brd_init(100)) //初始化5402DSK板

/*LED发光二极管闪烁两次,表示程序开始正常运行*/

while(cnt--)

{

brd_led_toggle(BRD_LED0);

delay(1000);

brd_led_toggle(BRD_LED1);

delay(1000);

brd_led_toggle(BRD_LED2);

delay(1000);

}

/*获得Codec(D/A转换器)的句柄*/

hHandset=codec_open(HANDSET_CODEC);

/*初始化D/A转换器*/

codec_dac_mode(hHandset,CODEC_DAC_15BIT); //DAC设置为15比特模式

codec_aout_gain(hHandset,CODEC_AOUT_MINUS_12dB); //设置模拟输出增益为-6dB

codec_sample_rate(hHandset,SR_16000); //D/A转换速率为16kHz

/*正弦信号发生程序*/

while(1)

{

/*D/A转换器是否准备好*/

while(!MCBSP_XRDY(HANDSET_CODEC)){};

/*将信号样点输出到D/A转换器*/

*(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=amp*SINE_TABLE[i];

i=i+100; //此时产生的正弦信号频率为6250Hz,每个周期的样点N=256/100=2.56

i+=0x00ff; //修正样点指针

}

}

/*将输出信号样点存入数据输出缓冲区,可使用图形观察窗口观察输出信号波形*/

void delay(s16 period)

{

int i,j;

for(i=0;i

{

for(j=0;j>1;j++);

}

}

实验成果截图:

/**********正弦信号产生程序[2]**********************/ #include

#include

#include

#include

#include

#define N 256

#define pi 3.1415927

#define pi2 2*pi

#define F0 1000

#define Fs 16000 //Sampling frequency

#pragma DATA_SECTION(_sinx,"data_buf1")

double _sinx[256];

#pragma DATA_SECTION(dacdata,"data_buf2")

int dacdata[256],outbuffer[256];

int amp=1;

void delay(int);

void main(void)

double t=0, dt;

unsigned int i=0;

HANDLE hHandset;

int cnt=2;

if(brd_init(100))

return; //初始化5402DSK板

while(cnt--)

{

brd_led_toggle(BRD_LED0); //切换LED指示灯0的显示状态

delay(1000);

brd_led_toggle(BRD_LED1); //切换LED指示灯1的显示状态

delay(1000);

brd_led_toggle(BRD_LED2); //切换LED指示灯2的显示状态

delay(1000);

}

dt=pi2*F0/Fs;

for(i=0;i

{

_sinx[i]=(sin(t));----------查表法实现正弦波

dacdata[i]=_sinx[i]*2047;

outbuffer[i]=amp*dacdata[i];

t=t+dt;

}

hHandset = codec_open(HANDSET_CODEC); // 获取设置codec的句柄

codec_dac_mode(hHandset, CODEC_DAC_15BIT); // 15bit工作模式

codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB); //模拟输出增益为-6dB

codec_sample_rate(hHandset,SR_16000); // 转换速率为16KHz

while(1)

{

while (!MCBSP_XRDY(HANDSET_CODEC) ) {}; //如果D/A未准备好,则等待

*(volatile u16*)DXR1_ADDR(HANDSET_CODEC) =outbuffer[i++];// 将数据写入D/A转换器}

}

void delay(s16 period)

{

int i,j;

for(i=0; i

{

for(j=0;j>1;j++);

}

}

实验成果截图:

【2】计算法实现余弦波的程序:

/**********余弦信号产生程序**********************/ #include

#include

#include

#include

void delay(s16 period);

HANDLE hHandset;

s16 data;

#define _COSX 0.999390827

#pragma DATA_SECTION(_cosx,"data_buf1")

float _cosx[200];

#pragma DATA_SECTION(dacdata,"data_buf2")

int dacdata[180];

{

s16 cnt=2;

u16 i=0;

/*计算余弦信号的样点值,计算得到的样点存储在dacdata[]数组中*/

_cosx[0]=1.000;

dacdata[0]=4095;

_cosx[1]=_COSX;

dacdata[1]=_COSX*2047+2048;

i=2;

while(1)

{

if(i++>179)

break;

_cosx[i]=2*_COSX*_cosx[i-1]-_cosx[i-2];

dacdata[i]=_cosx[i]*2047+2048;

}

if(brd_init(100)) //初始化5402DSK板

return;

/*LED发光二极管闪烁两次,表示程序开始正常运行*/

while(cnt--)

{

brd_led_toggle(BRD_LED0);

delay(1000);

brd_led_toggle(BRD_LED1);

delay(1000);

brd_led_toggle(BRD_LED2);

delay(1000);

}

/*获得Codec(D/A转换器)的句柄*/

hHandset=codec_open(HANDSET_CODEC);

/*初始化D/A转换器*/

codec_dac_mode(hHandset,CODEC_DAC_15BIT); //DAC设置为15比特模式

codec_aout_gain(hHandset,CODEC_AOUT_MINUS_6dB); //设置模拟输出增益为-6dB

codec_sample_rate(hHandset,SR_16000); //D/A转换速率为16kHz i=0;

while(1)

{

if(i>179) i=0;

/*D/A转换器是否准备好*/

while(!MCBSP_XRDY(HANDSET_CODEC)){};

/*将dacdata[i]输出到D/A*/

*(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=dacdata[i++];

}

}

void delay(s16 period)

{

int i,j;

for(i=0;i

{

for(j=0;j>1;j++);

}

}

实验成果截图:

发挥部分(1):

【1】锯齿波:

/**********锯齿波信号产生程序**********************/

#include

#include

#include

#include

#include

#define N 256

#define pi 3.1415927

#define pi2 2*pi

#define F0 1000 //Signal frequency

#define Fs 16000 //Sampling frequency

#pragma DATA_SECTION(saw,"data_buf1")

double saw[N];

#pragma DATA_SECTION(dacdata,"data_buf2")

int dacdata[N],outbuffer[N];

int amp=1;

unsigned int L=0;

void delay(int);

void main(void)

{

double t=0, dt;

unsigned int i=0;

HANDLE hHandset;

int cnt=2;

brd_init(100);

while(cnt--)

{

brd_led_toggle(BRD_LED0); //切换LED指示灯0的显示状态

delay(1000);

brd_led_toggle(BRD_LED1); //切换LED指示灯1的显示状态

delay(1000);

brd_led_toggle(BRD_LED2); //切换LED指示灯2的显示状态

delay(1000);

}

dt=8*pi*F0/Fs;

for(t=0,i=0;i<=N/4;i++,t+=dt)

{

saw[i]=t;

saw[i+N/4]=0;

}

for(t=0,i=N/2;i<3*N/4;i++,t+=dt)

{

saw[i]=t;

saw[N-i+N/2]=0;

}

for(i=0;i

{ dacdata[i]=saw[i]*10;

outbuffer[i]=amp*dacdata[i];

}

hHandset = codec_open(HANDSET_CODEC);// 获取设置codec的句柄

codec_dac_mode(hHandset, CODEC_DAC_15BIT); // 15+1bit工作模式

codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB);//模拟输出增益为-6dB

codec_sample_rate(hHandset,SR_16000); // 转换速率为16KHz

while(1)

{

while (!MCBSP_XRDY(HANDSET_CODEC) ) {}; //如果D/A未准备好,则等待

*(volatile u16*)DXR1_ADDR(HANDSET_CODEC) =outbuffer[i++]; // 将数据写入D/A转换器}

}

void delay(int period)

{

int i,j;

for(i=0; i

{

for(j=0;j

}

}

实验成果截图:

【2】方波:

/**********方波信号产生程序**********************/ #include

#include

#include

#include

#include

#define N 256

#define pi 3.1415927

#define pi2 2*pi

#define F0 1000 //Signal frequency

#define Fs 16000 //Sampling frequency

#pragma DATA_SECTION(squ,"data_buf1")

double squ[N];

#pragma DATA_SECTION(dacdata,"data_buf2")

int dacdata[N],outbuffer[N];

unsigned int L=0;

void delay(int);

void main(void)

{

unsigned int i=0;

HANDLE hHandset;

int cnt=2;

brd_init(100);

while(cnt--)

{

brd_led_toggle(BRD_LED0); //切换LED指示灯0的显示状态

delay(1000);

brd_led_toggle(BRD_LED1); //切换LED指示灯1的显示状态

delay(1000);

brd_led_toggle(BRD_LED2); //切换LED指示灯2的显示状态

delay(1000);

}

for(i=0;i<=N/4;i++)

{squ[i]=1;

squ[i+N/4]=-1;

squ[i+N/2]=1;

squ[N-i]=-1;

}

for(i=0;i

{ dacdata[i]=squ[i];

outbuffer[i]=amp*dacdata[i];

}

hHandset = codec_open(HANDSET_CODEC);// 获取设置codec的句柄

codec_dac_mode(hHandset, CODEC_DAC_15BIT); // 15+1bit工作模式

codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB);//模拟输出增益为-6dB

codec_sample_rate(hHandset,SR_16000); // 转换速率为16KHz

while(1)

{

while (!MCBSP_XRDY(HANDSET_CODEC) ) {}; //如果D/A未准备好,则等待

*(volatile u16*)DXR1_ADDR(HANDSET_CODEC) =outbuffer[i++]; // 将数据写入D/A转换器}

}

void delay(int period)

{

int i,j;

for(i=0; i

{

for(j=0;j

}

}

实验成果截图:

【3】三角波:

/**********三角波信号产生程序**********************/

#include

#include

#include

#include

#include

#define pi 3.1415927

#define pi2 2*pi

#define F0 1000 //Signal frequency

#define Fs 16000 //Sampling frequency

#pragma DATA_SECTION(tri,"data_buf1")

double tri[N];

#pragma DATA_SECTION(dacdata,"data_buf2")

int dacdata[N],outbuffer[N];

int amp=2;

unsigned int L=0;

void delay(int);

void main(void)

{

double t=0, dt;

unsigned int i=0;

HANDLE hHandset;

int cnt=2;

brd_init(100);

while(cnt--)

{

brd_led_toggle(BRD_LED0); //切换LED指示灯0的显示状态

delay(1000);

brd_led_toggle(BRD_LED1); //切换LED指示灯1的显示状态

delay(1000);

brd_led_toggle(BRD_LED2); //切换LED指示灯2的显示状态

delay(1000);

}

dt=8*pi*F0/Fs;

for(t=0,i=0;i<=N/4;i++,t+=dt)

{tri[N/2-i]=tri[i]=t;

}

for(t=0,i=N/2;i<=3*N/4;i++,t+=dt)

{

tri[i]=t;

tri[N-i+N/2]=tri[i];

}

for(i=0;i<=N;i++)

{ dacdata[i]=tri[i]*10;

outbuffer[i]=amp*dacdata[i];

hHandset = codec_open(HANDSET_CODEC);// 获取设置codec的句柄

codec_dac_mode(hHandset, CODEC_DAC_15BIT); // 15+1bit工作模式

codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB);//模拟输出增益为-6dB

codec_sample_rate(hHandset,SR_16000); // 转换速率为16KHz

while(1)

{

while (!MCBSP_XRDY(HANDSET_CODEC) ) {}; //如果D/A未准备好,则等待

*(volatile u16*)DXR1_ADDR(HANDSET_CODEC) =outbuffer[i++]; // 将数据写入D/A转换器

}

}

void delay(int period)

{

int i,j;

for(i=0; i

{

for(j=0;j

}

}

实验成果截图:

简易信号发生器设计制作

简易信号发生器设计制作 一、训练目的 (1)掌握正弦波、三角波、矩形波和方波发生电路的工作原理; (2)学会正弦波、三角波、矩形波和方波发生电路的设计方法; (3)进一步熟悉电子线路的安装、调试、测试方法。 二、工作原理 正弦波、三角板、矩形波是电子电路中常用的测试信号,如测试放大器的增益、通频带等均要用到正弦信号作为测试信号。下面分别介绍产生这三种信号电路结构和工作原理。 1.正弦信号发生器 正弦信号的产生电路形式比较多,频率较低时常用文氏电桥振荡器,图7-1为实用文氏电桥振荡电路。图中R 1、R 2、R 3、RW 2构成负反馈支路,二极管D 1、D 2构成稳幅电路,C 2、R 11(或R 12或R 13)、C 1、R 21(或R 22或R 23)串并联电路构成正反馈支路,并兼作选频网络。调节电位器RW 2可以改变负反馈的深度,以满足振荡的振幅条件和改善波形。二极管D 1、D 2要求温度稳定性好,特性匹配以确保输出信号正负半周对称,R 4接入用以消除二极管的非线性影响,改善波形失真。如K1接电阻R 11、K2接R 21,并且R 11= R 21=R ,C 1= C 2=C ,则电路的振荡频率为: 1 2f RC π= (7-1) 起振的幅值条件: 1 1f v R A R =+ (7-2) 图7-1 正弦信号发生器 通过调整RW 2可以改变电路放大倍数,能使电路起振并且失真最小。该电路可通过开关K1、K2选择不同的电阻以得到不同频率的信号输出。 2.方波和矩形波发生器

方波发生电路如图7-2,其基本原理是在滞回比较器的基础上增加了由R 4和C 1构成的积分电路,输出电压通过该积分电路送人到比较器的反相输入端。其中R 3 、D Z1和D Z2构成双向限幅电路,这样就构成了方波发生器电路,其工作原理如下: 假设在接通电源瞬间,输出电压o v 为Z V +(稳压二极管D Z1、D Z2额定工作时的稳压值),这时比较器同相端的输入电压为 2 12 Z R v V R R +≈ + (7-3) 同时输出电压o v 会通过电阻R 4给C 1充电,反相端的输入电压v -就会逐步升高,当反向输入端的电压v -略大于同相端输入电压v +时,比较器输出电压立即从Z V +翻转为Z V -,这时输出端电压o v 为Z V -,比较器同相端输入电压v +'为 2 12 Z R v V R R +'≈- + (7-4) 这时输出的电压o v 会通过R 4对C 1进行反向充电,当反相输入端的电压略低于v +'时,输出状态再翻转回来,如此反复形成方波信号。所产生方波信号的频率为 41 1 2f R C = 方波 (7-5) R 4 o 图7-2 方波发生电路

DSP任意波形信号发生器毕业设计

目录 摘 要 (2) Abstract (3) 1 绪论 (4) 1.1概述 (4) 1.2选题的目的、意义 (4) 1.3 选题的背景 (5) 1.4 本文所研究的内容 (6) 2 波形信号发生器的原理及方案选择 (7) 2.1任意波形信号发生器的原理 (7) 2.1.1 直接模拟法 (7) 2.1.2 直接数字法 (7) 2.2 任意波形发生器的设计方案 (9) 2.2.1 查表法 (9) 2.2.2计算法 (9) 2.2.3传统方法 (10) 3 基于DSP 5416的任意波形信号发生器的软件设计 (12) 3.1 TMS320C5416的开发流程 (12) 3.2软件开发环境 (13) 3.3任意波形信号发生器的软件编程 (14) 3.3.1 计算法实现波形输出 (14) 3.3.2 D/A转换 (15) 3.3.3波形控制及软件设计流程图 (16) 3.4参数的设定 (18) 4 基于DSP 5416的任意波形信号发生器的硬件设计 (20) 4.1 TMS320VC5416开发板 (20) 4.2 TMS320VC5416实验箱的连接 (23) 4.3 波形信号发生器的硬件测试过程 (23) 5 任意波形信号发生器展望 (28) 结束语 (29) 致谢 (30) 参考文献 (31)

摘 要 任意波形发生器是信号源的一种,它是具有信号源所具有的特点,更因它高的性能优势而倍受人们青睐。信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在各种实验应用和试验测试处理中,它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。 随着无线电应用领域的扩展,针对广播、电视、雷达、通信的专用信号发生器获得了长足的发展,表现在载波调制方式的多样化,从调幅、调频、调相到脉冲调制。如果采用多台信号发生器获得测量信号显然是很不方便的。因此需要任意波形发生器(Arbitrary Waveform Generator,AWG),使其能够产生任意频率的载频信号和多种载波调制信号。 目前我国已经开始研制任意波形发生器,并取得了可喜的成果。但总的来说,我国任意波形发生器还没有形成真正的产业。并且我国目前在任意波形发生器的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫。 本文主要工作分为以下几个方面:首先,介绍研制任意波形信号发生器的目的、意义、背景,以及利用CCS仿真工具用软件实现任意波形信号发生器的的过程 ;之后,对硬件的连接及测试结果作介绍;最后,简要的对任意波形信号发生器的未来作一下展望。 关键词:DSP,任意波形信号发生器,DDS

多功能信号发生器的设计与实现

题目多功能信号发生器的设计与实现学生姓名王振华学号 1213014069所在学院物理与电信工程学院 专业班级电子信息工程 指导教师梁芳 完成地点物理与电信工程学院实验室 2016 年 6 月 2 日

多功能信号发生器的设计与实现 王振华 (陕西理工学院物理与电信工程学院电子信息工程专业,2012级3班,陕西汉中 723000) 指导教师:梁芳 [摘要]本文介绍的是利用STC12C5A60S2单片机和数模转换器件DAC0832产生所需不同信号的低频信号源,其信号幅度和频率都是可以按要求控制的。文中简要介绍了DAC0832数模转换器的结构原理和使用方法,STC12C5A60S2的基础理论,以及与设计电路有关的各种芯片。着重介绍了如何利用单片机控制D/A转换器产生上述信号的硬件电路和软件编程。信号频率幅度也按要求可调。本设计核心任务是:以STC12C5A60S2为核心,结合D/A转换器和DAC0832等器件,用仿真软件设计硬件电路,用C语言编写驱动程序,以实现程序控制产生正弦波、三角波、方波、三种常用低频信号。可以通过键盘选择波形和输入任意频率值。 [关键词]单片机; LCD1602;信号发生器;DAC0832

Design and implementation of multi function signal generator Author:Zhenhua Wang (Grade 12,Class 03,Major in Electronics & Information engineering ,Physics & Telecommunications engineering Dept., Shaanxi University of Technology,Hanzhong 723000,Shaanxi) Tutor: Fang Liang Abstract:This article describes the STC12C5A60S2 microcontroller and digital to analog converter DAC0832 to produce the desired signal of the low frequency signal source, the signal amplitude and frequency can be controlled as required. The article briefly describes the structure of principles and use of the DAC0832 digital-to-analog converter, the STC12C5A60S2 basic theory and design of circuits a variety of chips. The paper focuses on how to use microcontroller to control the D / A converter to produce the hardware and software programming of the above signals. The signal frequency range is also adjustable as required.The core of the design tasks are: STC12C5A60S2 as the D / A converter and DAC0832 devices, circuit simulation software, design hardware drivers written in C, in order to achieve process control to produce sine wave, triangle wave, square wave, three commonly used low-frequency signals. Waveforms and enter any frequency value can be selected via the keyboard. Key Words:on STC12C5A60S2 function waveform generator DAC0832 square wave, triangle wave, sine wave,sawtooth wave

(完整版)数字信号发生器的电路设计_(毕业课程设计)

1 引言 信号发生器又称信号源或者振荡器,它是根据用户对其波形的命令来产生信号的电子仪器,在生产实践和科技领域有着广泛的应用。信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出自定义波形,如正弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的频率和幅度在一定范围内可任意改变。信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其他仪表测量感兴趣的参数。信号发生器在通信、广播、电视系统,在工业、农业、生物医学领域内,在实验室和设备检测中具有十分广泛的用途。 信号发生器是一种悠久的测量仪器,早在20年代电子设备刚出现时它就产生了。随着通信和雷达技术的发展,40年代出现了主要用于测试各种接收机的标准信号发生器,使信号发生器从定性分析的测试仪器发展成定量分析的测量仪器。自60年代以来信号发生器有了迅速的发展,出现了函数发生器,这个时期的信号发生器多采用模拟电子技术,由分立元件或模拟集成电路构成,其电路结构复杂,且仅能产生正弦波、方波、锯齿波和三角波等几种简单波形。到70年代处理器出现以后,利用微处理器、模数转换器和数模转换器,硬件和软件使信号发生器的功能扩大,产生比较复杂的波形。这时期的信号发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。随着现代电子、计算机和信号处理等技术的发展,极大地促进了数字化技术在电子测量仪器中的应用,使原有的模拟信号处理逐步被数字信号处理所代替,从而扩充了仪器信号的处理能力,提高了信号测量的准确度、精度和变换速度,克服了模拟信号处理的诸多缺点,数字信号发生器随之发展起来。

信号发生器作为电子领域不可缺少的测量工具,它必然将向更高性能,更高精确度,更高智能化方向发展,就象现在在数字化信号发生器的崛起一样。但作为一种仪器,我们必然要考虑其所用领域,也就是说要因地制宜,综合考虑性价比,用低成本制作的集成芯片信号发生器短期内还不会被完全取代,还会比较广泛的用于理论实验以及精确度要求不是太高的实验。因此完整的函数信号发生器的设计具有非常重要的实践意义和广阔的应用前景。 2 数字信号发生器的系统总述 2.1 系统简介 信号发生器广泛应用于电子工程、通信工程、自动控制、遥测控制、测量仪器、仪表和计算机等技术领域。 本设计以AT89C52[1]单片机为核心设计了一个低频函数信号发生器。信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出自定义波形,如正弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的频率和幅度在一定范围内可任意改变。波形和频率的改变通过软件控制,幅度的改变通过硬件实现。介绍了波形的生成原理、硬件电路和软件部分的设计原理。本系统主要包括CPU模块、显示模块、键盘输入模块、数模转换模块、波形输出模块。系统电路原理图见附录A,PCB (印制电路板)图见附录B。其中CPU模块负责控制信号的产生、变化及频率的改变;模数转换模块采用DAC0832实现不同波形的输出;显示模块采用1602液晶显示,实现波型和频率显示;键盘输入模块实

任意信号发生器毕业设计开题报告书

苏州科技学院 毕业设计开题报告 设计题目任意信号发生器的硬件设计(基于89C51实现)院系电子与信息工程学院 专业电子信息工程 班级电子0911 学生姓名XXXXXXX 学号 设计地点 指导教师 2013 年3月31 日

设计题目:任意信号发生器的硬件设计(基于89C51实现)课题目的、意义及相关研究动态: 一、课题目的: 信号发生器是一种能产生模拟电压波形的设备,这些波形能够校验电子电路的设计。信号发生器广泛用于电子电路、自动控制系统和教学实验等领域,它是一种可以产生正弦波,方波,三角波等函数波形的一起,其频率范围约为几毫赫到几十兆赫,在工业生产和科研中利用信号发生器输出的信号,可以对元器件的性能鉴定,在多数电路传递网络中,电容与电感组合电路,电容与电阻组合电路及信号调制器的频率,相位的检测中都可以得到广泛的应用。因此,研究信号发生器也是一个很重要的发展方向。 常用的信号发生器绝大部分是由模拟电路构成的,但这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大,而本课题设计的函数信号发生器,由单片机构成具有结构简单,价格便宜等特点将成为数字量信号发生器的发展趋势。 本课题采用的是以89c51为核心,结合 DAC0832实现程控一般波形的低频信号输出,他的一些主要技术特性基本瞒住一般使用的需要,并且它具有功能丰富,性能稳定,价格便宜,操作方便等特点,具有一定的推广作用。 二、课题意义: (1)任意信号发生器主要在实验中用于信号源,是电子电路等各种实验必不可少的实验设备之一,掌握任意信号发生器的工作原理至关重要。 (2)任意信号发生器能产生某些特定的周期性时间任意波形(正波、方波、三角波)信号,频率范围可从几个微赫到几十兆赫任意信号发生器在电路实验和设备检测中具有十分广泛的用途。 (3)本课题主要研究开发一个基于51单片机的实验用任意信号发生器,不但成本较低而精度较高,最重要的是开发简单易于调试,具有一定社会价值和经济价值。 (4)任意信号发生器作为一种常见的电子仪器设备,既能够构成独立的信号源,也可以是高新能的网络分析仪,频谱仪以及自动测试装备的组成部分,任意信号发生器的关键技术是多种高性能仪器的支撑技术,因为它是能够提高质量的精密信号源及扫描源,可使相应系统的检测过程大大简化,降低检测费用并且提高检测精度。

多路信号发生器的设计

毕业论文(设计)材料题目:多路信号发生器的设计 学生姓名:施乾东 学生学号:0908030228 系别:电气信息工程学院 专业:电子信息工程 届别:2013 指导教师:张大雷

一、毕业论文(设计)任务书 要求完成的主要任务及达到的目标 信号发生器是一种能提供各种频率、波形和输出电平电信号,常用作测试的信号源或激励源的设备。其又称信号源或振荡器,是可以测试产生所需参数的电测试信号的仪器。按信号波形可分为正弦信号、函数(波形)信号、脉冲信号和随机信号发生器等四大类,在生产实践和科技领域中有着广泛的应用。多路信号发生器是信号发生器的一种,其利用单片机控制和DAC0832进行数模转换,通过硬件电路和软件程序相结合,可正弦波、方波、三角波、梯形波及其他任意波形,波形的频率通过软件控制、幅度通过硬件在一定范围内可改变。该信号发生器相较于其他信号发生器,具有体积小、价格低、性能稳定的优点。 要求设计完成一个多路信号发生器: ?了解多种时钟信号的产生方法 ?了解虚拟仪器的具体实际应用 ?通过单片机控制74LS138译码器,对DAC0832进行片选控制基于共阴/阳数码管的方式研究 ?将所学的知识通过设计信号发生器实验可产生各种波形如正弦波、方波、三角波、锯齿波等;来加深对虚拟仪器技术的深层理解 要求所设计的多路信号发生器具有以下功能: 1、能够产生正弦波、矩形波、锯齿波等基本波形信号,并通过修改程序能够产 生任意波形的信号; 2、通过两个按键控制波形类型和频率,一个按键控制信号类型,按下键一依次 改变信号类型和停止产生波形;另一个按键改变信号频率; 3、信号频率、幅值、占空比可调 工作进度要求 2011.12.1——2011.12.28 撰写开题报告 2011.12.29——2011.12.31 拟定论文提纲 2012.1.1——2012.2.28 撰写论文初稿 2012.3.1——2012.4.31 论文修改 2012.5.1——2012.5.14 论文定稿

信号发生器设计---实验报告

信号发生器设计 一、设计任务 设计一信号发生器,能产生方波、三角波和正弦波并进行仿真。 二、设计要求 基本性能指标:(1)频率范围100Hz~1kHz;(2)输出电压:方波U p-p≤24V,三角波U =6V,正弦波U p-p>1V。 p-p 扩展性能指标:频率范围分段设置10Hz~100Hz, 100Hz~1kHz,1kHz~10kHz;波形特性方波t r<30u s(1kHz,最大输出时)用仪器测量上升时间,三角波r△<2%,正弦波r <5%。(计算参数) ~ 三、设计方案 信号发生器设计方案有多种,图1是先产生方波、三角波,再将三角波转换为正弦波的组成框图。 图1 信号发生器组成框图 主要原理是:由迟滞比较器和积分器构成方波——三角波产生电路,三角波在经过差分放大器变换为正弦波。方波——三角波产生基本电路和差分放大器电路分别如图2和图4所示。 图2所示,是由滞回比较器和积分器首尾相接形成的正反馈闭环系统,则比较器A1输出的方波经积分器A2积分可得到三角波,三角波又触发比较器自动翻转形成方波,这样即可构成三角波、方波发生器。其工作原理如图3所示。

图2 方波和三角波产生电路 图3 比较器传输特性和波形 利用差分放大器的特点和传输特性,可以将频率较低的三角波变换为正弦波。(差模传输特性)其基本工作原理如图5所示。为了使输出波形更接近正弦波,设计时需注 应接近晶体意:差分放大器的传输特性曲线越对称、线性区越窄越好;三角波的幅值V m 管的截止电压值。 图4 三角波→正弦波变换电路

图5 三角波→正弦波变换关系 在图4中,RP 1调节三角波的幅度,RP 2调整电路的对称性,并联电阻R E2用来减小差分放大器的线性区。C 1、C 2、C 3为隔直电容,C 4为滤波电容,以滤除谐波分量,改善输出波形。取Ic2上面的电流(看输出) 波形发生器的性能指标: ①输出波形种类:基本波形为正弦波、方波和三角波。 ②频率范围:输出信号的频率范围一般分为若干波段,根据需要,可设置n 个波段范围。(n>3) ③输出电压:一般指输出波形的峰-峰值U p-p 。 ④波形特性:表征正弦波和三角波特性的参数是非线性失真系数r ~和r △;表征方波特性的参数是上升时间t r 。 四、电路仿真与分析 实验仿真电路图如图

基于某DSP的任意信号发生器设计汇总情况

数字信号处理(DSP) 综合设计性实验报告 学院:电子信息工程学院 班级:通信0708 指导教师:高海林 学生:原凌云07211253 张丽康07211256

北京交通大学电工电子教学基地 2004年12月28日 目录 一、设计任务 (3) 二、实验目的 (3) 三、设计内容 (3) 四、实验原理 (4) 五、程序设计 (6) 1、程序源代码 2、实验截图和结果 六、实验总结 (22) 七、参考资料 (23)

一、设计任务书 信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。信号发生器在现代工程中应用非常广泛。在实际中常需要产生一些特殊波形,用于仿真实际信号的波形,以检测和调试测量装置。 使用DSP 和D/A 转换器可以产生连续的正弦波信号,同样也能产生方波、锯齿波、三角波等其它各种信号波形。本设计要求采用DSP及其D/A转换器产生上述各种信号波形。 二、实验目的 (1)了解产生信号的两种方法及各自的优缺点。 (2)掌握使用DSP产生正弦波的原理和算法,进而掌握一般信号产生的原理和方法。 (3)掌握5402DSK CODECC(A/D、D/A)的工作原理和初始化过程。(4)掌握使用指针访问片上ROM中正弦查找表的方法。

三、设计内容 使用DSP 产生300—4000HZ 的正弦信号,要求使用查表法,测量产生的信号波形的频率和幅度,并且频率可变、幅度可变、直流分量可变。用软件CCS5000编程实现,并硬件(DSK 板或示波器)连接进行功能演示。 使用计算法产生余弦波分量。 发挥部分: (1)使用DSP 产生300—4000HZ 的方波、锯齿波和三角波。 (2)使用现有程序,实现不改变源程序,频率和幅度自动可调。 四、实验原理 产生连续信号的方法通常有两种:查表法和计算法,查表法不如计算法使用灵活。计算法可以使用泰勒级数展开法进行计算,也可以使用差分方程进行迭代计算或者直接使用三角函数进行计算。计算结果可以边计算边输出,也可以先计算后输出。 正弦函数和余弦函数的泰勒级数数学表达式为: =x sin ΛΛ+--+-+-+---)! 12()1(!9!7!5!31 219753n x x x x x x n n ,x ?),(∞-∞∈ =x cos ΛΛ+-+-+-+-)! 2()1(!8!6!4!2128 642n x x x x x n n ,x ?),(∞-∞∈. 如果要计算一个角度ⅹ的正弦和余弦值,可以取其前五项进行近似计算。 或使用下面递归的差分方程进行计算。 y [n ]=A*y [n -1]-y [n -2] 其中:A=2cos(x ),x =2πF/F S 。F —信号频率,

基于单片机的多功能信号发生器的系统设计与应用

基于单片机的多功能信号发生器的系统设计与应用 信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。 随着集成芯片制造工艺的进一步发展,一些高性能的波形产生专用芯片逐渐被应用到该领域并获得成功。波形发生装置的电路设计得到进一步简化,而与此同时,所产生的波形的质量却得到了显著提高。例如应用比较广泛的DDS芯片AD9833系列,能制作出各种频带宽,质量高的波形信号,例如应用高性能的AD9833芯片,可以做出频率1GHZ以上,频率分辨率0.1HZ以下的优质波形[2]。 科技不断发展,在各个领域对信号产生电路提出了越来越高的要求。以往那些只具有单一优势的波形发生装置的应用越来越受到限制。例如用模拟器件构成的波形发生器电路简单可靠、信号频率较高,但可调节性差;采用数字电路为核心的波形发生装置所产生的信号可调节性好,但电路复杂,而频率又不易做的很高。较为理想的波形发生装置应该同时具备多方面的优良品质,信号的频带应该较宽,而且步进精确。另外,微型化也是信号产生装置的发展趋势之一,这样,才能将信号发生装置方便的嵌入到各种仪器设备中。随着芯片制造工艺的不断提高,性能更高、体积更小的专用信号处理芯片必将会越来越多地应用到信号产生电路中,使更高质量的信号的产生成为可能。 DDS技术的实现,一般有如下几种可选的方案。首先是使用专用的DDS芯片,例如应用比较广泛的DDS芯片AD9833系列。专用DDS芯片性能可靠,特别是在高频领域,有着无可替代的地位。但在中低频领域,专用DDS芯片却不一定是唯一的选择。

基于运放的信号发生器设计

北京工业大学课程设计报告 模电课设题目基于运放的信号发生器设计 班级:1302421 学号:13024219 姓名:吕迪 组号:7 2015年 6月

一、设计题目 基于运放的信号发生器设计 二、设计任务及设计要求 (一)设计任务 本课题要求使用集成运算放大器制作正弦波发生器,在没有外加输入信号的情况下,依靠电路自激震荡而产生正弦波输出的电路。经过波形变换可以产生同频三角波、方波信号。(二)设计要求 基本要求:使用LM324,采用经典振荡电路,产生正弦信号,频率范围,360Hz~100kHz。输出信号幅度可调,使用单电源供电以及增加功率。 (三)扩展要求 (1)扩大信号频率的范围; (2)增加输出功率 (3)具有输出频率的显示功能。 三、设计方案 (一)设计框图 (二)设计方案选择思路 我们在模电课上学过几种正弦波振荡器的基本电路,包括RC串并联正弦波振荡器、电容三点式正弦波振荡器以及电感三点式正弦波振荡器。因为题目要求设计基于运放的正弦波发生器,我们就确定将RC串并联网络正弦波振荡器作为我们设计的基础电路,因为此振荡器适用于频率在1MHz一下的低频正弦波振荡器而且频率调节方便,我们打算先通过计算搭建RC 正弦波振荡电路,测试基本电路达到的频率及幅值范围,再在这一基础上进行放大,使频率及幅值与设计要求相符合,因此设计出了二级反向放大这一模块。最后,为了提高电路的输出功率,减小电路的输出阻抗,再设计电压跟随器这一模块来完善整个电路。由此,我们确定出三个模块:RC正弦波振荡电路,二级反向放大电路,电压跟随器,并准备从基础模块入手,分模块实现,并根据实际情况不断调整改进原先的设计方案。 (三)元器件清单 芯片:LM324*2 40106*1 二极管:1N4148*2 电容:10μF*1、10nf *4 电阻:2k*1 、10k*4、51k*1 、82k*1 、91k*1 、100k滑动变阻器*1、220k*1 电位器:50k双联*1、10k*2、50k*1 (四)芯片资料

多波形信号发生器设计 电子技术课程设计

湖南文理学院课程设计报告 课程名称:电子技术课程设计 教学院部:电气与信息工程学院 专业班级:通信工程08101班 学生姓名:林洪湖(200816020143) 指导教师:邱德润 完成时间:2010 年6月25日 报告成绩:

目录 1.绪论 (3) 信号发生器现状 (3) 2.系统设计 (3) 控制芯片的选择 (4) 3.硬件电路的设计 (4) 3.1基本原理: (4) 3.2各部分电路原理 (8) 4.软件设计 (14) 4.1主程序流程图 (14) 4.2子程序流程图 (15) 5.测试结论 (18) 5.1软件仿真结果 (19) 5.2硬件测试结果 (21) 参考文献 (21)

多波形信号发生器设计 1.绪论 1.1信号发生器现状 波形发生器亦称函数发生器,作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿、正弦、方波、三角等波形。 信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。 本次用要用到的有函数发生器5G8038、集成振荡器E1648、集成定时器555/556. 2.系统设计 2.1系统方案 方案:采用函数信号发生器5G8038集成模拟芯片,它是一种可以同时产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。

实验10任意信号发生器

实验十任意信号发生器 座位号: 第一组B5 姓名:陈翔宇1104210311 小组成员: 董泽人1104210202 于杏 1104210101 指导老师: 李彧晟 2014年

一、实验目的 1、熟悉DSP的软硬件开发平台 2、熟悉TI DSP软件集成开发环境 3、学习DSP程序的编程开发 4、熟悉工程代码产生方法 5、掌握TMS320F2812的ADC外设的使用 6、熟悉TMS320F2812的中断的设置 7、掌握代码调试的基本方法 二、实验仪器 计算机、C2000 DSP 教学实验箱、XDS510USB仿真器、示波器和信号源等。 三、注意事项 进入CCS顺序: 1、打开C2000实验箱电源(确认实验箱电源正常加载) 2、点击CCS2(C2000) 进入开发界面 退出CCS顺序: 1、关闭CCS2(C2000)应用程序 2、关闭C2000实验箱电源 四、实验内容 建立工程,编写DSP的主程序,并对工程进行编译、链接,利用现有DSP 平台实现数据的采集、存储以及模拟还原,通过图表以及示波器观察结果。五、实验要求 实验指导书上的要求: 1、独立完成项目编译、链接、调试的全过程; 2、利用数码显示管,在DSP初始化子模块后添加语句或者编写程序,使之能够显示实验日期; 3、记录实验中各子程序包括主程序的入口实际地址,与memory比较,指出分别位于什么类型的存储器中; 4、指出波形数据保存的空间地址,并以图形方式显示线性调频信号的波

形,并保存,附在实验报告中。 课件上的要求: 5、数码管显示实验日期或学号(同要求2); 6、指出线性调频信号波形的存储地址,作图显示,并在示波器上输出该波形; 7、改变正弦信号频率编程实现,在示波器上验证,要求记录改变参数以及实测频率。 六、实验步骤及结果 1、检查DSP平台(仿真器、实验箱、计算机)之间的连接,打开计算机及实验板电源,检查电源加载是否异常; 2、打开CCS,执行命令Project→New,弹出“Project Creation”对话框,在第一项Project Name中输入工程名“A2”,在第二项Location中选择D 盘名为a文件夹下的A2文件夹中,其余默认,单击“完成”。 3、单击Project→Add Files to Project,找到实验十的范例程序所在位置,拉下文件类型选择框改为“显示所有类型文件”,选中第一个需要加入工程 的文件,按住shift键,选中最后一个需要加入的文件,点击确认,这样,所有需要添加进去的.c文件、.cmd文件和.lib文件都添加进了工程。 4、打开source下的RamGen.c文件,进入c程序编辑界面;将初始化LED 的程序段改为下面程序: /* 初始化LED */ *LED8 = 0x66; // LED8显示4 *(LED8+0x100) = 0x06; // LED7显示1 *(LED8+0x200) = 0x86; // LED6显示1. *(LED8+0x300) = 0x06; // LED5显示1 *(LED8+0x400) = 0xE6; // LED4显示4. *(LED8+0x500) = 0x06; // LED3显示1 *(LED8+0x600) = 0x3F; // LED2显示0 *(LED8+0x700) = 0x5B; // LED1显示2 *(LEDWR) = 0XFF; // WIRTE DATA TO LED

多功能信号发生器课程设计

《电子技术课程设计》 题目:多功能信号发生器 院系:电子信息工程 专业:xxxxxxxx 班级:xxxxxx 学号:xxxxxxxx 姓名:xxx 指导教师:xxx 时间:xxxx-xx-xx

电子电路设计 ——多功能信号发生器目录 一..课程设计的目的 二课程设计任务书(包括技术指标要求) 三时间进度安排(10周~15周) a.方案选择及电路工作原理; b.单元电路设计计算、电路图及软件仿真; c.安装、调试并解决遇到的问题; d.电路性能指标测试; e.写出课程设计报告书; 四、总体方案 五、电路设计 (1)8038原理, LM318原理, (2)性能\特点及引脚 (3)电路设计,要说明原理 (4)振动频率及参数计算 六电路调试 要详细说明(电源连接情况, 怎样通电\ 先调试后调试,频率调试幅度调试波行不稳调试 七收获和体会

一、课程设计的目的 通过对多功能信号发生器的电路设计,掌握信号发生器的设计方法和测试技术,了解了8038的工作原理和应用,其内部组成原理,设计并制作信号发生器能够提高自己的动手能力,积累一定的操作经验。在对电路焊接的途中,对一些问题的解决能够提高自己操作能力随着集成制造技术的不断发展,多功能信号发射器已经被制作成专用的集成电路。这种集成电路适用方便,调试简单,性能稳定,不仅能产生正弦波,还可以同时产生三角波和方波。它只需要外接很少的几个元件就能实现一个多种波、波形输出的信号发生器。不仅如此,它在工作时产生频率的温度漂移小于50×10-6/℃;正弦波输出失真度小于1%,输出频率范围为0.01Hz~300kHz;方波的输出电压幅度为零到外接电源电压。因此,多功能信号发生器制作的集成电路收到了广泛的应用。 二、课程设计任务书(包括技术指标要求) 任务:设计一个能产生正弦波、方波、三角波以及单脉冲信号发生器。 要求: 1.输出频率为f=20Hz~5kHz的连续可调正弦波、方波和三角波。 2.输出幅度为5V的单脉冲信号。 3.输出正弦波幅度V o= 0~5V可调,波形的非线性失真系数γ≤

简易函数信号发生器

课程设计任务书 (一)设计目的 1、掌握信号发生器的设计方法和测试技术。 2、了解单片函数发生器IC8038的工作原理和应用。 3、学会安装和调试分立元件与集成电路组成的多级电子电路小系统。 (二)设计技术指标与要求 1、设计要求 (1)电路能输出正弦波、方波和三角波等三种波形; (2)输出信号的频率要求可调; (3)拟定测试方案和设计步骤; (4)根据性能指标,计算元件参数,选好元件,设计电路并画出电路图; (5)在面包板上或万能板或PCB板上安装电路; (6)测量输出信号的幅度和频率; (7)撰写设计报告。 2、技术指标 频率范围:100Hz~1KHz 1KHz~10KHz; 输出电压:方波V P-P≤24V,三角波V P-P=6V,正弦波V P-P=1V;方波t r小于1uS。 (三)设计提示 1、方案提示: (1)设计方案可先产生正弦波,然后通过整形电路将正弦波变成方波,再由积分电路将方波变成三角波;也可先产生三角波-方波,再将三角波变成正弦波。 (2)也可用单片集成芯片IC8038实现,采用这种方案时要求幅度可调。 2、设计用仪器设备: 示波器,交流毫伏表,数字万用表,低频信号发生器,实验面包板或万能板,智能电工实验台。 3、设计用主要器件: (1)双运放NE5532(或747)1只(或741 2只)、差分管3DG100 4个、电阻电容若干; (2)IC8038、数字电位器、电阻电容若干。 4、参考书: 《电子线路设计·实验·测试》谢自美主编华中科技大学出版社 《模拟电子技术基础》康华光主编高等教育出版社 《模拟电子技术》胡宴如主编高等教育出版社 (四)设计报告要求 1、选定设计方案; 2、拟出设计步骤,画出设计电路,分析并计算主要元件参数值; 3、列出测试数据表格; 4、调试总结,并写出设计报告。 (五)设计总结与思考 1、总结信号发生器的设计和测试方法;

多功能信号发生器课程设计

课题:多功能信号发生器专业:电子信息工程 班级:1班 学号: 姓名: 指导教师:汪鑫 设计日期: 成绩: 重庆大学城市科技学院电气学院

多功能信号发生器设计报告 一、设计目的作用 1.掌握简易信号发生器的设计、组装与调试方法。 2.能熟练使用multisim10电路仿真软件对电路进行设计仿真调试。 3.加深对模拟电子技术相关知识的理解及应用。 二、设计要求 1.设计任务 设计一个能够输出正弦波、方波、三角波三种波形的信号发生器,性能要求如下: (1)输出频率,f=20Hz-5kHz 连续可调的正弦波、方波、三角波; (2)输出正弦波幅度V=0-5V可调,波形的非线性失真系数<=5%; (3)输出三角波幅度V=0-5V可调。 (4)输出方波幅度可在V=0-12V之间可调。 2.设计要求 (1)设计电路,计算电路元件参数,拟定测试方案和步骤; (2)测量技术指标参数; (3)写出设计报告。 三、设计的具体实现 1、系统概述 1.1正弦波发生电路的工作原理: 产生正弦振荡的条件: 正弦波产生电路的目的就是使电路产生一定频率和幅度的正弦波,我们一般在放大电路中引入正反馈,并创造条件,使其产生稳定可靠的振荡。正弦波产生电路的基本结构是:引入正反馈的反馈网络和放大电路。其中:接入正反馈是产生振荡的首要条件,它又被称为相位条件;产生振荡必须满足幅度条件;要保证输出波形为单一频率的正弦波,必须具有选频特性;同时它还应具有稳幅特性。因此,正弦波产生电路一般包括:放大电路;反馈网络;选频网络;稳幅电路个部分。 正弦波振荡电路的组成判断及分类: (1)放大电路:保证电路能够有从起振到动态平衡的过程,电路获得一定幅值的输出值,实现自由控制。 (2)选频网络:确定电路的振荡频率,是电路产生单一频率的振荡,即保证电路产生正弦波振荡。 (3)正反馈网络:引入正反馈,使放大电路的输入信号等于其反馈信号。(4)稳幅环节:也就是非线性环节,作用是输出信号幅值稳定。 判断电路是否振荡。方法是: (1)是否满足相位条件,即电路是否是正反馈,只有满足相位条件才可能产

基于单片机的信号发生器的设计

唐山师范学院 题目基于单片机的信号发生器的设计 院系名称:电子信息科学与技术 学号: 摘要 波形发生器即简易函数信号发生器,是一个能够产生多种波形,如三角波、锯

齿波、方波、正弦波等波形电路。函数信号发生器在电路实验和设备仪器中具有十分广泛的用途。通过对函数发生器的原理以及构成分析,可设计一个能变换出三角波、锯齿波、方波、正弦波的函数波形发生器。在工业生产和科研中利用函数信号发生器发出的信号,可以对元器件的性能及参数进行测量,还可以对电工和电子产品进行指数验证、参数调整及性能鉴定。常用的信号发生器绝大部分是由模拟电路构成的,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不仅参数准确度难以保证,而且体积和功耗都很大,而由数字电路构成的低频信号发生器,虽然其性能好但体积较大,价格较贵,因此,高精度,宽调幅将成为数字量信号发生器的趋势。 本文介绍的是利用89C52单片机和数模转换器件DAC0832产生所需不同信号的低频信号源,其信号幅度和频率都是可以按要求控制的。文中简要介绍了 DAC0832数模转换器的结构原理和使用方法,89C52的基础理论,以及与设计电路有关的各种芯片。文中着重介绍了如何利用单片机控制D/A转换器产生上述信号的硬件电路和软件编程。信号频率幅度也按要求可调。 本设计核心任务是:以AT89C52为核心,结合D/A转换器和DAC0832等器件,用仿真软件设计硬件电路,用C语言编写驱动程序,以实现程序控制产生正弦波、三角波、方波、三种常用低频信号。可以通过键盘选择波形和输入任意频率值。

关键词: AT89C52单片机函数波形发生器 DAC0832 方波三角波正弦波 目次 1 引言 (4) 2 系统设计 (6) 方案 (6) 器件选择 (6) 总体系统设计 (6) 硬件实现及单元电路设计 (7) 单片机最小系统设计 (7) D/A转换器 (8) 运算放大器电路 (10) LED显示器接口电路 (11) 波形产生原理及模块设计 (11) 显示模块设计 (13) 键盘显示模块设计 (14) 软件设计流程 (14) 软件中的重点模块设计 (14) 3 输出波形种类与频率的测试 (18) 测量仪器及调试说明 (18) 调试过程 (18) 调试结果 (22) 结论 (23) 致谢 (25) 参考文献 (26) 附录A 源程序 (27)

简易函数信号发生器的设计

单片机课程设计报告书 课题名称 简易函数信号发生器的设计 姓 名 ** 学 号 ** 院、系、部 ** 专 业 电子信息科学与技术 指导教师 ** 2011年12月12日 ※※※※※※※※※ ※ ※ ※※ ※ ※ ※※※※※※※※※ **级学生单片机 课程设计

目录 一、绪言 (1) 二、系统方案论证 (1) 2.1设计要求 (1) 2.2 简易函数信号发生器方案论证 (1) 2.3 单片机的控制方案论证 (1) 2.4 键盘选择方案论证 (2) 三、系统设计 (2) 3.1 硬件电路设计 (2) 3.2 程序流程图 (4) 3.3 C语言程序设计 (5) 四、简易函数信号发生器的仿真 (8) 4.1 系统仿真 (8) 4.2工作原理分析 (10) 结束语 (11) 参考文献 (11) 修改通篇页面设置里面的左右边距

一绪言 函数发生器是一种多波形的信号源。它可以产生正弦波、方波、三角波、锯齿波,甚至任意波形。函数发生器有很宽的频率范围,使用范围很广,它是一种不可缺少的通用信号源。因此设计使用的AT89S52单片机构成的发生器,可以产生正弦波和方波。 二系统方案论证 2.1设计要求 1、设计一个基于AT89S52单片机的信号发生器; 2、能够输出方波和正弦波(正弦波是双极性的),要求可用按键选择; 3、可选电压值为1V、2V、3V、4V、5V五个档位; 4、可选频率值为:10Hz、20Hz、50Hz、100Hz、200Hz、500Hz、1KHz七个档位; 5、能够通过显示模块显示输出波形的主要参数。 2.2 简易函数信号发生器方案论证 方案一:用分立元件组成函数发生器,通常是单函数发生器且频率不高,其工作不很稳定,不易调试。 方案二:可以由晶体管,运放 IC等通用器件制作,更多的则是用专用的函数信号发生器IC产生。早期的函数信号发生器IC,如L8083、BA205等,他们的功能少,精度不高,频率上限只有300KHz,频率和占空比不能独立调节,二者相互影响。 方案三:利用专用直接数字合成DDS芯片的函数发生器:能产生任意波形并且达到很高的频率。但成本很高。 方案四:采用 AT89S52单片机和DAC0832芯片,直接连接按键和显示。该种方案主要对AT89S52单片机的各个I/0口充分利用,不再多用其他的芯片,从而减小了系统的成本,也对按照系统便携式低频信号发生器的要求所完成,占用空间小,使用空间小,使用芯片少,低功耗。 综合考虑,方案四各项性能和指标都优于其他各种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片和器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,所以本设计采用方案四。 2.3 单片机的控制方案论证 方案一:采用可编程逻辑期间CPLD 作为控制器。CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。

相关文档
最新文档