单片机设计简易正弦波发生器

作者&投稿:颜待 (若有异议请与网页底部的电邮联系)
单片机8051设计简易波形发生器,要求能产生正弦波,方波,三角波,通过键盘可改变输出信号的频率和幅度~

这个网上资料很多的,你可以参考下的,我前几天也做了个,proteus仿真的,程序如下,希望能帮到你的,有问题可以交流下的
#include

unsigned char i,sqar_num=128; //最大值100,默认值50
unsigned char cho=0; //0:正弦波。1:方波。2:三角波。3:锯齿波。
unsigned char num=0;
unsigned char TIME0_H=0xff,TIME0_L=0xdc; //定时器0的初值设置;全局变量.对应正弦波,锯齿波50HZ
sbit chg= P1^0;
sbit freq_u=P1^1;
sbit freq_d=P1^2;
sbit duty_u=P1^3;
sbit duty_d=P1^4;
sbit cs =P3^7;
bit flag=0;
unsigned int FREQ=50;//初始化频率,30HZ
unsigned char flag1;

sbit rs=P1^5;
sbit lcdcs=P1^7;
sbit cd=P3^0;
unsigned char TempBuffer[7];

unsigned char value1[]={"Frequency:"};


void delay(unsigned int ms)
{
unsigned int i,j;
for (j=0;j<ms;j++)
for (i=0;i<120;i++);
}

unsigned char code sin_num[]={
0x80,0x82,0x85,0x88,0x8b,0x8e,0x91,0x94,0x97,0x9a,0x9d,0xa0,0xa3,0xa6,
0xa9,0xac,0xaf,0xb2,0xb6,0xb9,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,
0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,
0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,
0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,
0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,
0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,
0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,
0x83,0x80,
0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,
0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,
0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,
0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,
0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,
0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,
0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,
0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,
0x76,0x79,0x7c,0x80
/*135,145,158,167,176,188,199,209,218,226,234,240,245,249,252,254,254,253,251,247,243,237,230,222,213,204,193,182,170,158,
146,133,121,108,96,84,72,61,50,41,32,24,17,11,7,3,1,0,0,2,5,9,14,20,28,36,45,55,66,78,90,102,114,128
*/
};
unsigned code sanjiao_num[]=
{
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,
36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,
70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,
104,106,108,110,112,114,116,118,120,122,124,126,128,130,
132,134,136,138,140,142,144,146,148,150,152,154,158,160,162,164,166,168,170,
172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,
212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,
252,254,255,254,252,250,248,246,244,242,240,238,236,234,232,230,228,226,224,222,220,
218,216,214,212,210,208,206,204,202,200,198,196,194,192,190,188,186,184,182,180,178,
176,174,172,170,168,166,164,162,160,158,154,152,150,148,146,144, 142,140,138,136,134,
132,130,128,126,124,122,120,118,116,114,112,110,108,106,104,102,100,98,96,94,92,90,88,
86,84,82,80,78,76,74,72,70,68,66,64,62,60,58,56,54,52,50,48,46,44,42,40,38,36,
34,32,30,28,26,24,22,20,18,16,14,12,10,8,6,4,2,0,






};

//调节部分——频率
void freq_ud(void)
{
unsigned int temp;
if(freq_d==0)
{ FREQ--; }
else if(freq_u==0)
{ FREQ++; }
temp=0xffff-3906/FREQ; //切换后频率为50HZ 65336-10^6/(256*FREQ)
// temp=0xffff-1953/FREQ;
TIME0_H=temp/256;
TIME0_L=temp%256;

}
//调节部分——方波的占空比
void duty_ud(void) //方波也采用512次中断构成一个周期。
{
if(duty_d==0&sqar_num>0)
sqar_num--;
else if(duty_u==0&sqar_num<255)
sqar_num++;


}
//波形发生函数
void sint(void)
{
//char num=0;
// if(!flag)
{
cs=0;P2=sin_num[num++];cs=1;
if(num==255){num=0;}
}
/* else if(flag)
{
cs=0;P2=sin_num[num--];cs=1;
if(num==0){num=0;flag=0;}

} */
}


void square(void)
{
if(i++<sqar_num) {cs=0;P2=0XFF;cs=1;}
else{cs=0;P2=0X00;cs=1;}
}
void triangle(void)
{
cs=0;P2=num++;cs=1;
}
void stw(void)
{
cs=0;P2=sanjiao_num[num++];cs=1;
if(num==255){num=0;flag=1;}
}

//1602显示开始
void write_command(unsigned char command)
{
rs=0;
P0=command;
lcdcs=1;
lcdcs=0;
}

void write_data(unsigned char data0)
{
rs=1;
P0=data0;
lcdcs=1;
lcdcs=0;
}

void init_1602()
{
delay(1);
write_command(0x38);
delay(1);
write_command(0x0c);
delay(1);
write_command(0x06);
delay(1);
}
//1602显示结束

/*******************频率值转换为字符串**********************/
void temp_to_str()
{

TempBuffer[0]=FREQ/1000+'0'; //千位
TempBuffer[1]=FREQ%1000/100+'0'; //百位
TempBuffer[2]=FREQ%1000%100/10+'0';//十位
TempBuffer[3]=FREQ%1000%100%10+'0';//个位
TempBuffer[4]='H';
TempBuffer[5]='Z';
TempBuffer[6]='\0';
}
void main()
{
TMOD=0X01;
TH0=0xff;
TL0=0xd9;
IT0=1; //设置中断触发方式,下降沿
EA=1;
EX0=1;
ET0=1;
IP=0X01; //键盘中断级别高
init_1602();//初始化lcd
write_command(0x80);//液晶显示位置
delay(1);
for (i=0;i<sizeof(value1)-1;i++)
{
write_data(value1[i]);
delay(1);
}

TR0=1;
while(1)
{
show_frequency();
}
}

这个方案的电路在图书或者网上可以下载得到,搞不好软件也有,建议你在网上买个学习套件,带单片机的那种有很多例子帮助你快速学习,先学习怎么用单片机写软件,然后把那你那方案移植就好了。

波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。本次课程设计使用的AT89S51 单片机构成的发生器可产生锯齿波、三角波、正弦波等多种波形,波形的周期可以用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑等优点。在本设计的基础上,加上按钮控制和LED显示器,则可通过按钮设定所需要的波形频率,并在LED上显示频率、幅值电压,波形可用示波器显示。

二、系统设计

波形发生器原理方框图如下所示。波形的产生是通过AT89S51 执行某一波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。在AT89S51的P2口接5个按扭,通过软件编程来选择各种波形、幅值电压和频率,另有3个P2口管脚接TEC6122芯片,以驱动数码管显示电压幅值和频率,每种波形对应一个按钮。此方案的有点是电路原理比较简单,实现起来比较容易。缺点是,采样频率由单片机内部产生故使整个系统的频率降低。

1、波形发生器技术指标

1)波形:方波、正弦波、锯齿波;

2)幅值电压:1V、2V、3V、4V、5V;

3)频率:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;

2、操作设计

1)上电后,系统初始化,数码显示6个‘-’,等待输入设置命令。

2)按钮分别控制“幅值”、“频率”、“方波”、“正弦波”、“锯齿波”。

3)“幅值“键初始值是1V,随后再次按下依次增长1V,到达5V后在按就回到1V。

4)“频率“键初始值是10HZ,随后在按下依次为20HZ、50HZ、100HZ、200HZ、500HZ、1000HZ循环。

三、硬件设计

本系统由单片机、显示接口电路,波形转换(D/A)电路和电源等四部分构成。电路图2附在后

1、单片机电路

功能:形成扫描码,键值识别、键处理、参数设置;形成显示段码;产生定时中断;形成波形的数字编码,并输出到D/A接口电路和显示驱动电路。

AT89S51外接12M晶振作为时钟频率。并采用电源复位设计。复位电路采用上电复位,它的工作原理是,通电时,电容两端相当于短路,于是RST引脚上为高电平,然后电源通过对电容充电。RST端电压慢慢下降,降到一定程序,即为低电平,单片机开始工作。

AT89S51的P2口作为功能按钮和TEC6122的接口。P1口做为D/A转换芯片0832的接口。用定时/计数器作为中断源。不同的频率值对应不同的定时初值,允许定时器溢出中断。定时器中断的特殊功能寄存器设置如下:

定时控制寄存器TCON=20H;

工作方式选择寄存器TMOD=01H;

中断允许控制寄存器IE=82H。

2、显示电路

功能:驱动6位数码管显示,扫描按钮。

由集成驱动芯片TEC6122、6位共阴极数码管和5个按钮组成。当某一按钮按下时,扫描程序扫描到之后,通过P2口将数字信号发送到 TEC6122芯片。TEC6122是一款数字集成芯片。它的外接电压也是+5V,并且由于数码管的载压较小,为了保护数码管,必须在两者间接电阻,大约是560欧。

扫描利用软件程序实现,当某一按键按下时,扫描程序立即检测到,随后调用子程序,执行相应的功能。

3、D/A电路

功能:将波形样值的编码转换成模拟值,完成双极性的波形输出。

由一片0832和两块LM358运放组成。DAC0832是一个具有两个输入数据寄存器的8位DAC。目前生产的DAC芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。另一类芯片内部没有数据寄存器,输出信号随数据输入线的状态变化而变化,因此不能直接与微型计算机接口,必须通过并行接口与微型计算机接口。DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D/A转换,故不需要外加电路。0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以由运算放大器LM358实现,用两片LM358可以实现双极性输出。

单片机向0832发送数字编码,产生不同的输出。先利用采样定理对各波形进行抽样,然后把各采样值进行编码,的到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过D/A转换后输出就可以得到波形。假如N个点构成波形的一个周期,则0832输出N个样值点后,样值点形成运动轨迹,即一个周期。重复输出N个点,成为第二个周期。利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率。这样就控制了输出的波形及其幅值和频率。

四、 软件设计

主程序和子程序都存放在AT89S51单片机中。

主程序的功能是:开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的键转到相应的子程序进行处理,主程序框图如图1所示。

子程序的功能有:幅值输入处理、频率输入处理、正弦波输出、锯齿波输出、方波输出、显示等。

下面是程序

include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit LCP=P2^2;

sbit SCP=P2^1;

sbit SI=P2^0;

sbit S1=P2^3;

sbit S2=P2^4;

sbit S3=P2^5;

sbit S4=P2^6;

sbit S5=P2^7;

sbit DA0832=P3^3;

sbit DA0832_ON=P3^2;

uchar fun=0,b=0,c=0,d=0,tl,th;

uchar code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar code tosin[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5

,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5

,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd

,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda

,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99

,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51

,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16

,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00

,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15

,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e

,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80 };

void display(unsigned char command)

{

unsigned char i;

LCP=0;

for(i=8;i>0;i--)

{

SCP=0;

if((command & 0x80)==0)

{

SI=0;

}

else

{

SI=1;

}

command<<=1;

SCP=1;

}

LCP=1;

}

void key1(void)

{

fun++;

if(fun==4)

fun=0x00;

}

void key2(void)

{

tl++;

if(tl==0x1f)

th++;

}

void key3(void)

{

tl--;

if(tl==0x00)

th--;

}

void key4(void)

{

double t;

int f;

TR0=0;

t=(65535-th*256-tl)*0.4;

f=(int)(1000/t);

S3=tab[f%10];

f=f/10;

S2=tab[f%10];

f=f/10;

if(f==0)

S1=0;

else

S1=tab[f];

TR0=1;

}

void key5(void)

{

tl--;

if(tl==0x00)

th++;

}

void judge(void)

{

uchar line,row,de1,de2,keym;

P1=0x0f;

keym=P1;

if(keym==0x0f)return;

for(de1=0;de1<200;de1++)

for(de2=0;de2<125;de2++){;}

P1=0x0f;

keym=P1;

if(keym==0x0f)return;

P1=0x0f;

line=P1;

P1=0xf0;

row=P1;

line=line+row; /*存放特征键值*/

if(line==0xde)key1();

if(line==0x7e)key2();

if(line==0xbd)key3();

if(line==0x7d)key4();

}

void time0_int(void) interrupt 1 //中断服务程序

{

TR0=0;

if(fun==1)

{

DA0832=tosin[b]; //正弦波

b++;

}

else if(fun==2) //锯齿波

{

if(c<128)

DA0832=c;

else

DA0832=255-c;

c++;

}

else if(fun==3) // 方波

{

d++;

if(d<=128)

DA0832=0x00;

else

DA0832=0xff;

}

TH0=th;

TL0=tl;

TR0=1;

}

void main(void)

{

TMOD=0X01;

TR0=1;

th=0xff;

tl=0xd0;

TH0=th;

TL0=tl;

ET0=1;

EA=1;

while(1)

{

display();

judge();

}

}

五、心得体会

开始的时候由于没有经验,不知如何下手,所以就去图书管找了一些书看,尽管有许多的设计方案,可是总感觉自己还是有许多的东西弄不太清楚,于是就请教同学。他常做一些设计,有一些经验。经过他的解释分析各方案之后,决定用查表的方法来做。这样可以降低一些硬件设计的难度,初次设计应切合自己的水平。用8031需要扩展ROM,这样还要进行存储器扩展。而且现在8031实际中已经基本上不再使用,实际用的AT89S51芯片有ROM,这样把经过采样得到的数值制成表,利用查表来做就简单了。我认为程序应该不大,片内ROM应该够用的。用LED显示频率和幅值,现有集成的接口驱动芯片,波形可通过示波器进行显示,单片机接上D/A转换芯片即可,这样硬件很快就搭好了。

我以为这些做好了,构思也有了,写程序应该是相对容易的。谁知道,写起程序来,才想到功能键要有扫描程序才行呀,我真的感到很难。那时真的有点想放弃?于是就去请教了老师,老师帮忙分析了一下,自己又查阅了一些资料,终于明白了扫描程序怎么写。

于是在自己的努力下,程序很快就写好了。这次是我的第一个设计器件,尽管经历了不少的艰辛,但给我积累了一点设计的经验,最后也有点小小的成就感。后面的路还很长,我还的努力!

参考文献

[1] 童诗白,华成英.模拟电子技术基础〔M〕.北京:高等教育出版社,2003.345-362

[2] 潘永雄,沙河,刘向阳.电子线路CAD实用教程〔M〕.西安:西安电子科技大学出版社,2001.13-118.

[3] 张毅刚,彭喜源,谭晓昀,曲春波.MCS-51单片机应用设计[M].哈尔滨:哈

尔滨工业大学出版社,1997.53-61.

更多电子问题请关注我!zhidao_ceo竭诚为您解答!

正弦波可以用很多方法实现,关于这类的解决方案书上有很多,我觉得自己看书会更有助于你学习。用DA做其实就是简单的数学运算,计算DA加一个分压值的时间,然后计数器计数到设定好的值。键盘有PS2时序,按照时序读每个时钟对应的值就可以。我不会写汇编,所以代码帮不上什么忙。祝你成功吧!

你用AD9805和AT89C52嘛!我最近在做正弦波,三角波,矩形波信号发生器 用单片机控制 MAX038来做 程序太复杂了!而且我不会汇编 都用的C


怎样测量非正弦波电压的幅值
采用由集成运算放大器与晶体管差分放大器共同组成的方波—三角波—正弦波函数发生器的设计方法,先通过比较器产生方波,再通过积分器产生三角波,最后通过差分放大器形成正弦波。波形变换的原理是利用差分放大器传输特性曲线的非线性。经过仿真得出了方波、三角波、正弦波、方波——三角波转换及三角波——...

正弦波电机低速顿挫原因
汽车在行驶途中出现顿挫,一般都跟发动机和变速箱离不开关系。发动机由点火,进气,喷油嘴共同组成了燃油的燃烧。也是发动机的动力来源。如果喷油量减少,进气量降低,点火变弱,动力就会不足,发动机就会出现顿挫感。发动机发生顿挫的原因:1.发动机积碳。积碳作为发动机的一个顽疾,是造成汽车顿挫的一个重要...

磁电传感器信号处理电路
磁电式轮速传感器输出是正弦波信号就要整形成方波信号送单片机.关键是要得到传感器的正确输出信号.频率为1000HZ就直接整型送单 片机可以了.

COSHIP卫星电视接收机
为了进一步了解数字卫星电视接收机的工作过程,下面将以在电路结构上较有代表性的TMicroelectronics公司的四片机方案为例,详细介绍整机电路的电路原理。STMicroelectronics公司的四片机方案的电路组成框图见图7-21。以下分部分进行介绍。 (一)一体化调谐解调解码器电路 本方案前端调谐器采用一体化零中频调谐解调机码器,...

高硅钢发展及制备技术研究进展
1)日本用0.35mm厚的6.5wt%高硅钢片制作高速高频电机铁芯获得了良好的节能效果,其与普通3.56.5wt%硅钢制作的铁芯相比,在正弦波驱动和非正弦波驱动时,电机效率...尽管国内研究者们也对6.5%Si高硅钢进行了一些相应的研究,但收效甚微,截至目前为止,国内硅钢行业中像宝钢这样的龙头企业都还没有实施甚至是设计出一套完善...

MCS-51单片机最小系统包括那些部分
另外值得一提的是如果读者自己在设计单片机系统的印刷电路板(PCB) 时,晶体和电容应尽可能与单片机芯片靠近,以减少引线的寄生电容,保证振荡器可靠工作。检测晶振是否起振的方法可以用示波器可以观察到XTAL2 输出的十分漂亮的正弦波,也可以使用万用表测量( 把挡位打到直流挡,这个时候测得的是有效值...

急求一个89c51设计的电子时钟,有原理图和C程序
的输出为方波的数字式晶体振荡电路,这个电路中,CMOS非门U1与晶体、电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较...定时电子钟电路特点这里介绍的电子钟,电路可称得上极简,它仅使用单片的20引脚单片机完成电子钟的全部功能,而笔者见到的其它设计方案均采用二片以上的多片ic...

寻求一篇数学专业关于点集拓扑的大学毕业论文,题目“连续映射的等价条件...
文中介绍了Micro Linear公司的一款单片正弦信号发生芯片ML2035,它可以在几乎不需要其它外围器件的条件下,产生从直流到25kHz的正弦信号,并利用此芯片完成了简易正弦信号发生器电路的设计。 关键词:信号发生器,信号源,正弦信号,ML2035, DDS 目录1. 绪论2. 技术概述3. 需求分析阶段3.1 功能模块图3.2 数据流图3.3 E...

数控机床毕业论文
1 PMSM 的数学模型我们考虑的是正弦型永磁同步电动机系统。该电动机具有正弦形的反电动势波形,其定子电压、电流也为正弦波形。假设电动机是线性的,参数不...为进一步分析和设计控制系统提供了有效的方法和思路。参考文献:[1] 欧阳黎明.MATLAB控制系统设计[M].北京:国防工业出版社,2001.[2] 张崇巍,李汉强.运动...

传感器 ad转换程序
二 课程设计条件:硬件:个人PC一台,8051单片机仿真头一个,89S51单片机一个,ADC0809芯片一块,DAC0832芯片一块,7402一个,LM358一片,按键开关5个,电阻电容若干,6M晶振一个,稳压电源,函数信号发生器,及示波器个一个软件:PC机WINDOWS操作系统,KEIL单片机仿真调试软件三 设计思想:通过ADC0809将正弦波模拟信号按照一定的频率...

平房区19477735913: 用单片机设计正弦信号发生器 -
桂枯艾畅: 这个方案的电路在图书或者网上可以下载得到,搞不好软件也有,建议你在网上买个学习套件,带单片机的那种有很多例子帮助你快速学习,先学习怎么用单片机写软件,然后把那你那方案移植就好了.

平房区19477735913: 跪求最简单的完整的单片机产生正弦波的程序 -
桂枯艾畅: 单片机不能完成产生这个波形,需要外接DA转换芯片配合才行,单片机只是控制器,

平房区19477735913: 设计并制作一个正弦信号发生器. -
桂枯艾畅: 7.2万字 82页 有设计图和程序代码 摘要 采用FPGA+DAC来实现DDS.这样通过FPGA在数字域实现频率合成然后通过DAC形成信号波形.由于信号都是由FPGA在数字域进行处理,可以很方便的将FM和AM等调制在数字域实现.所有调制电路...

平房区19477735913: 利用单片机怎么产生正弦波信号 -
桂枯艾畅: 单片机 外接AD转换芯片 再加运放 通过一定的控制程序就可产生正弦波. 实现方法: 1、通过单片机DA来实现,需要通过查表法; 2、通过PWM方式实现; 不过都需要加硬件滤波电路来实现正弦波的平滑.

平房区19477735913: 单片机正弦信号发生器的设计 -
桂枯艾畅: 设计一个正弦信号发生器.要求: (1)正弦波输出频率范围:1kHz~2MHz;(2)具有频率调节功能(频率可调);(3)输出信号频率稳定度:优于10-2; (4)输出电压幅度:在 负载电阻上的电压峰-峰值Vopp≥1V

平房区19477735913: 采用单片机怎么设计一台信号发生器(方波、三角波、正弦波)?
桂枯艾畅: 用C语言写比较简单,用函数可以用,如果用汇编语言写,就要用查表的方法,而且采样点不能太多(不超过255为好).上面那位说得对,就是一个D/A程序,只是不断的转换.

平房区19477735913: 单片机设计一个波形发生器,可产生方波、三角波、正弦波,数码管显示输出类型和频率,求c语言和电路图
桂枯艾畅: 这个很简单的,单片机+dds+数码管+按键可调,,,,那个dds模块淘宝上面有你自己搜下,价格在30块左右,然后店家会给你dds模块的资料,里面有dds的学习,很简单的程序直接移植进来...dds就能搞定正弦波和方波了,理论上一片ad8950/51差不多能产生50m的频率波形,但是一片正规的ad8950价格在75块左右,但是你买的那个模块大概能产生400k左右的频率...再搞个积分器就可以产生三角波了...加油

平房区19477735913: 正弦波发生器 -
桂枯艾畅: 正弦波的特征主要有:振幅,周期,相位.一般的波形发生器关注的为:振幅和周期.设计一个系统首先要确定系统的基本参数.如果要发生固定的正弦波,则可以采用查表的方式进行,即将要转换的数据提前计算好,保存在数组中.这种方式可以快速的,实现高频正弦波.另一种则是,事实运算,通过引入 数学函数库 ,计算出所要显示的数据.这种方法,在波形发生改变时,需要一段时间进行计算.你的程序主要就是 ADC0832的驱动部分和这个取值发送部分.

平房区19477735913: 用89C52单片机做信号发生器,keil51编程从100hz到200hz的正弦波,求程序,大虾们帮忙啊 -
桂枯艾畅: 单片机好像不能直接产生正弦波吧,你可以用单片机定时器产生100--200hz的方波,然后通过硬件电路的方法转换为正弦波.

平房区19477735913: 怎样用单片机做信号发生器
桂枯艾畅: 一、 设计任务 设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的 特定形状波形. 二、 设计要求 1. 基本要求 具有产生正弦波、方波、三角波三种周期性的波形. 用键盘输入编辑生成上述三种波形(同周期)...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网