函数信号发生器.docx

上传人:b****7 文档编号:11482152 上传时间:2023-03-01 格式:DOCX 页数:15 大小:109KB
下载 相关 举报
函数信号发生器.docx_第1页
第1页 / 共15页
函数信号发生器.docx_第2页
第2页 / 共15页
函数信号发生器.docx_第3页
第3页 / 共15页
函数信号发生器.docx_第4页
第4页 / 共15页
函数信号发生器.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

函数信号发生器.docx

《函数信号发生器.docx》由会员分享,可在线阅读,更多相关《函数信号发生器.docx(15页珍藏版)》请在冰豆网上搜索。

函数信号发生器.docx

函数信号发生器

 

序号————————

 

函数信号发生器

 

作者姓名:

指导老师:

作品类别

发明制作

作品编号

函数信号发生器

摘要本系统能够产生正弦波、方波、三角波。

同时还可以作为频率计测频率。

函数信号的产生由MAX038和外围电路完成,能产生1Hz—20MHz的波形。

波形选择由单片机完成。

输出或输入频率经74HC390分频后,由单片机完成自动频率检测显示。

关键词:

波形产生器、频率计、MAX038、74HC390、AT89S51。

前言

在现代电子学的各个领域,常常需要高精度且频率可方便调节的信号发生器。

各种波形曲线均可以用三角函数方程式来表示。

能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。

函数信号发生器在电路实验和设备检测中具有十分广泛的用途。

函数信号发生器的实现方法通常有以下几种:

(1)用分立元件组成的函数发生器:

通常是单函数发生器且频率不高,其工作不很稳定,不易调试。

(2)可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发

生器IC产生。

早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。

(3)利用单片集成芯片的函数发生器:

能产生多种波形,达到较高的频率,且易于调试。

鉴于此,美国马克西姆公司开发了新一代函数信号发生器ICMAX038,它克服了

(2)中芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。

MAX038频率高、精度好,因此它被称为高频精密函数信号发生器IC。

在锁相环、压控振荡器、频率合成器、脉宽调制器等电路的设计上,MAX038都是优选的器件。

(4)利用专用直接数字合成DDS芯片的函数发生器:

能产生任意波形并达到很高的频率。

但成本较高。

综合分析以上四种实现方法的性价比,我们决定采用单片集成芯片AX038来设计函数发生器。

频率越高、产生波形种类越多的发生器性能越好,但器件成本和技术要求也大大提高,因此在满足工作要求的前提下,性价比高的发生器是我们的首选。

一、整体设计思路

本函数信号发生器是主要是由MAX038芯片产生我们希望输出的正弦波、方波、三角波。

它是本制作的核心,当然随带的频率计用于显示输出频率,它是由单片机AT89S51控制的,由于用单片机所能测的频率范围有限,直接所计数的频率最大只能达到500KHz,为了能够测得更高的频率,所以加上分频器进行分频后再加到AT89S51的外部中断入口。

考虑到小信号时,所以必须加放大,然后整形才能达到分频器的输入要求。

至于显示部分就用74LS164移位寄存器来驱动数码管显示。

整体原理框架图如下:

图1

一:

硬件设计:

1.信号发生部分:

接通电源控制在输出状态,此时波形产生电路工作,它产生我们所选择的波形并输出到外部电路,另一部分则送入计数器。

波形发生器的这部分电路是由MAX038及其外围电路完成的。

MAX038是一个精密高频波形产生器。

它能产生频率高达20MHz的正弦波、三角波、方波等脉冲信号,其压控振荡器的频率分粗调和细调两层控制。

另外MAX038还包括占空比调整电路、波形同步电路、相位检测电路、波形切换开关和电压基准源等电路,所需外部元件少,使用很方便。

这部分电路框图如下图2:

波形产生原理框图(图2)

波形产生电路(图3)

本系统采用MAX038设计了输出三角波、方波和正弦波的函数信号发生器,频率范围为10Hz~1MHz,能够满足大多数实验与检测的需求。

  整机电路由信号产生级、电压放大级、功率输出级和电源四部分组成。

信号产生级的核心器件为MAX038,它的输出波形有三种,由波形设定端A0(3),A1(4)控制,其编码如表2所示。

其中x表示任意状态。

1为高电平,0为低电平。

MAX038的输出频率f0由Iin,FADJ端电压和主振荡器COSC的外接电容器CF三者共同确定。

当UFADJ=0V时,输出频率f0=Iin/CF,Iin=Uin/Rin=2.5/Rin。

当UFADJ≠0V时,输出频率f0=f(1-0.2915UFADJ)。

由波段开关SA2选择不同的CF值,将整个输出信号分为五个频段。

1)1Hz--10Hz

2)10Hz---100Hz

3)100Hz---10K

4)1K----20MHz

每频段频率的调节由电位器RP1和RP2完成。

RP1为粗调电位器,改变RP1数值,使振荡电容器CF的充电电流Iin改变,从而使频率改变。

RP2为细调电位器,它通过改变UFADJ的数值,使输出频率变化,它的变化范围较小,起微调作用。

为简化电路,各种波形的占空比固定为50%,这已能满足多数场合的使用要求。

为此将MAX038的脚7DADJ端接地。

MAX038的各种输出波形的幅度均为2V(P-P)。

2.频率计数器部分:

1.)AT89S51介绍

美国MEL公司的AT89S系列51单片机支持ISP功能,给单片机应用开发带来了极大方便。

现介绍一款简易型开发板的使用方法。

将该板插入DIP40封装的8051单片机插座处,通过廉价的ISP即可编程AT89S51,支持在线擦写,速度更快,非常方便。

AT89S51片内有两个独立的16位定时/计数器,两个外中断接口,一个串行通讯口,4k字节快闪擦写存储器(FLASHMEMORY),低功耗的闲置和掉电模式,内带有看门狗电路,在不附加任何外围电路的情况下,能实现大部分比较复杂的逻辑控制功能,对存储容量要求不高的实际应用,AT89S51确实是一种不可多得的高效能单片机。

内部原理图如图3。

(图5)

3.)利用AT89S51计数

AT98S51单片机共有两个16位的定时器/计数器,本频率计就是利用它的定时器与计数器同时工作,外部输入的脉冲在下降沿跳变时有效,进行计数器加1,定时器定时一秒内计数器所计的数就是外部输入信号的频率。

频率范围选择(图7)

100分频电路(图8)

由于单片机计算频率的范围有限,必须切换调整在它的范围内,才能准确的计算频率,(图7)就是控制是否经过100分频的电路,切换通过单片机控制完成。

(图8)是分频电路:

由于频率高的时候,单片机不能直接读取,所以要通过分频电路进行分频后再送到单片机进行计数。

本分频电路采用的是74LS390双十进制计数器进行分频的。

放大(图4)

4.)放大整形

为了输入的是小信号时也能对精确的测出它的频率,所以在信号的输入口加电压放大。

有时输入的信号波形不是很好时,放大后也是失真的信号,这就会影响到所测信号的频率,因此要经过整形。

5.)LED显示

显示部分采用8位共阳行数码管进行显示,采用了74LS164作为数码管的驱动模块,把8位数码管串联起来。

只须SDA与SCL两个口连到单片机的两个端口,详细数码管驱动电路(略)。

 

二:

软件设计

 

程序框图

程序:

#include

unsignedcharf_h;

unsignedintyichu_count;

bitcount_over;

sbits1=P0^5;

sbits2=P0^6;

sbitrl=P2^0;

charzixing[10]={0x88,0xEB,0x4C,0x49,0x2B,0x19,0x18,0xCB,0x08,0x09};

unsignedlongf;

voidmain(void)

{

voidDelay(chari);

charshift_164(chara);

voidtest_f(void);

shift_164(0x88);

Delay(200);

shift_164(0xEB);

Delay(200);

shift_164(0x4C);

Delay(200);

shift_164(0x49);

Delay(200);

shift_164(0x2B);

Delay(200);

//while

(1);

if(P0^2==0)

{

s1=0;

s2=1;

test_f();

}

if(P0^3==0)

{

s1=0;

s2=0;

test_f();

}

if(P0^4==0)

{

s1=1;

s2=0;

test_f();

}

}

voidtest_f(void)

{

unsignedlongget_f();

charx1,x2,x3,x4,x5,x6;

voidDelay(chari);

loop:

f=get_f();

if(f==0)

{

rl=0;

T0=1;

f=get_f();

}

//x6=f/100000;

x5=(f-x6*100000)/10000;

x4=(f-x6*100000-x5*10000)/1000;

x3=(f-x6*100000-x5*10000-x4*1000)/100;

x2=(f-x6*100000-x5*10000-x4*1000-x3*100)/10;

x1=f-x6*100000-x5*10000-x4*1000-x3*100-x2*10;

shift_164(zixing[x1]);

Delay(200);

shift_164(zixing[x2]);

Delay(200);

shift_164(zixing[x3]);

Delay(200);

shift_164(zixing[x4]);

Delay(200);

shift_164(zixing[x5]);

Delay(200);

shift_164(zixing[x6]);

Delay(200);

gotoloop;

}

//******************************测频率子程序*******************

voidintt0_f()interrupt1//T0作为频率值最高八位,频率值共24位

{

f_h=f_h+1;

}

voidintt1_time()interrupt3//T1作为门控时间产生器200US中断一次

{

if(yichu_count>=5000)

{

TR0=0;//频率停止计数

TR1=0;//时间停止计数

EA=0;//关中断

count_over=1;

yichu_count=0;

return;

}

yichu_count=yichu_count+1;

}

unsignedlongget_f()

{

unsignedlongf;

count_over=0;

TMOD=0X25;

TH1=TL1=0X9C;//设置T1计数初值,可以100US中断一次

f_h=TH0=TL0=0;//频率值清零

count_over=0;//清零计数完成标志

EA=1;//开所有中断

ET0=1;

ET1=1;

TR0=1;//频率计数器开始计数

TR1=1;//时间计数器开始计时

wait_count_over:

if(count_over!

=1)

gotowait_count_over;

f=(TL0+TH0*256+f_h*65536);

return(f);

}

voidDelay(chari)

{intj;

for(;i>0;i--)

for(j=0;j<125;j++)

{;}

}

charshift_164(chara)

{

SCON=0x00;

TI=0x00;

SBUF=a;

if(TI==0)

{};

return(a);

}

三、性能指标:

1.频率范围1Hz~~20MHz

2.输出阻抗50Ω,幅度2V(P-P)

3.输入阻抗50Ω

4.波形的占空比固定为50%

四、使用说明

(1)信号发生器的使用:

开机后,先要选择X1、X10、X1K、X1M,选择在可调频率范围内,调节粗调旋纽,调到要输出频率附近,再调节细调旋纽得到要求的频率。

(2)频率计的使用:

开机后,把切换开关切换到频率输入状态,再选择可计算的频率范围。

小结:

本作品实现了函数信号的产生,频率的计算。

能产生1Hz~~20MHz的正弦波、方波、三角波并显示其频率。

还可以计算外部频率的输入。

该作品具有频率范围宽,精度高,输出频率和幅度稳定等优点。

参考文献:

1.刘乃安陈健《高频电子线路》西安电子科大出版社

2.李朝青《单片机技术》北京航空航天大学出版社

3.徐维祥、刘敏《LED幕显示技术》电子工业出版社

4.电子网

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1