电赛选拔可控放大器Word文档下载推荐.docx

上传人:b****7 文档编号:22351984 上传时间:2023-02-03 格式:DOCX 页数:24 大小:232.52KB
下载 相关 举报
电赛选拔可控放大器Word文档下载推荐.docx_第1页
第1页 / 共24页
电赛选拔可控放大器Word文档下载推荐.docx_第2页
第2页 / 共24页
电赛选拔可控放大器Word文档下载推荐.docx_第3页
第3页 / 共24页
电赛选拔可控放大器Word文档下载推荐.docx_第4页
第4页 / 共24页
电赛选拔可控放大器Word文档下载推荐.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

电赛选拔可控放大器Word文档下载推荐.docx

《电赛选拔可控放大器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电赛选拔可控放大器Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。

电赛选拔可控放大器Word文档下载推荐.docx

(3)上述带通滤波器中心频率可设置,设置范围15kHz~35kHz,步进为2kHz。

(4)电压增益、截止频率误差均不大于5%。

(5)其他。

根据题目要求分以下几部分进行方案设计与论证:

1、测量放大部分

(1)前置放大电路的设计

方案一:

用LM324放大器,其电源电流很小且与电源电压无关,输入偏流电阻是温度补偿的,也不需外接频率补偿,可做到输出电平与数字电路兼容,但其带宽参数无法满足本设计要求故不采用。

方案二:

采用运算放大器OP07,Op07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。

由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。

OP07同时具有输入偏置电流低(OP07A为±

2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备。

为了达到60DB增益采用两级放大,第一级放大倍数为10,总的放大倍数为第一级放大倍数与第二级放大倍数的乘积。

图1

(2)程控增益放大部分

由一增益可软件编程的放大器,将不同幅度的模拟输入信号放大到某个特定范围,便于A/D转换器进行采样;

或者将给定信号放大一个由软件设定的增益后输出。

集成程控增益放大器。

它们具有低漂移、低非线性、高共模抑制比和宽频带等优点,但其增益有限,只能实现特定的几种增益切换。

所以我们不采用此方案。

方案二:

运放+模拟开关+电阻网络。

如图1这种方法利用模拟开关切换电阻反馈网络,从而改变放大电路的闭环增益。

此种方法通用性强,经济实惠,效果显著。

所以我们用此方案。

2、滤波部分

在业自动化的许多领域都要使用滤波器。

一般有源滤波器均由运算放大器和RC元件组成。

使用RC网络,RC电路尽管可以做到体积小和廉价,但要满足此设计要求,需多个图2结构并联,网络仍然过于庞大。

而且其上半周内电容C中积蓄得能量到下半周就会被电阻R消耗一半,因此单纯的RC电路Q值不会大于0.5,选择性差,效果同样不佳。

所以我们不采用。

图2

使用MAX262可编程开关电容通用滤波器,它是美国MAXIM公司开发的一种通用有源滤波器,可用微处理器编程控制,方便的构成各种低通、带通、高通、陷波和全通配置,而且不需要外部元件,可靠性高,对使用环境的要求不高。

如图3通过单片机(89s52)对该芯片的6个输入端进行有效设置可实现64个不同的中心频率f0,而且Q值可达128完全满足本题目所以我们采用方案二。

单片机与max262的连接图:

1、系统原理框图,见图4。

采用模拟开关CD4051控制反馈电阻调节电压增益,优点是电路简单、通用性强。

AT89S52直接驱动数码管显示,滤波部分芯片MAX261输入采用4013分频并用模拟开关控制。

2、整体电路图:

3.滤波部分:

4.单片机控制部分:

5.软件流程如下:

总程序框图,见图5

1、前端放大电路及程控放大部分

放大电路采用反相放大放大倍数计算公式为Avf=-Rw/RfAv=20lgAvf

当增益Av=10dBAvf=3.16=Rw/10k。

由此可计算出Rw=31.6k欧姆,再经过模拟开关CD4051进而可计算出增益分别为20、30、40、50、60时Rw的值(如图)。

调节Rw的值即可获得所需的增益。

2、通频带计算

系统选用模式一实现低通、带通,模式三实现高通。

同时89C51的ALE信号送到MAX261的CLKA和CLKB引脚作为时钟信号及晶振频率1/6及2MHz作为

MAX261的外部时钟时钟频率,MAX261处理的输入信号范围为15kHz~50kHz,通过改变编程数据F0~F5实现64级中心频率调节。

根据厂家的芯片资料fclk/f0=40.84+1.57N1及Q=64/(128-N2)并由查表得出下表数据:

f0

fclk

MODES1,3

F5~F0

N1

Q6~Q0

N2

1kHz

125kHz

125.66

010000

16

0010000

15.6

2kHz

250kHz

3kHz

0.5MHz

166.50

101010

42

0101010

42.1

4kHz

5kHz

100.56

000000

0000000

6kHz

1MHz

423

7kHz

142.94

011011

27

0011111

8kHz

9kHz

109.96

000111

7

0000111

6.8

10kHz

100.53

11kHz

2MHz

182.21

110100

52

0110100

51.8

12kHz

42.2

13kHz

153.93

100010

34

0100010

14kHz

0011011

15kHz

133.52

010101

21

0010101

16kHz

17kHz

117.81

001011

11

0001011

18kHz

111.53

19kHz

105.24

000011

3

0000011

20kHz

3、抗干扰措施:

宽带放大器的总增益为0—60dB,因此抗干扰措施必须要做的好,才能避免自激和减少噪声。

设计中采用了如下方法:

运算放大器采用低噪声、低失调、高开环增益的OP07,;

在电源端并接0.1uf的电容避免电源的高频干扰,并接20uf的电容避免低频干扰。

所有信号耦合用电解电容两端并接高频瓷片电容,以避免高频增益下降。

1、放大器测试:

增益(dB)

Vi(mv)

Vout

20

21.3mV

10

30

40

2.1V

50

60

2、程控滤波器测试:

Vi

f

Vo

3.结论

基本要求

发挥要求

实际性能

(1)放大器输入正弦信号电压振幅为10mV,电压增益为40dB,通频带为100Hz~40kHz,放大器输出电压无明显失真。

(1)放大器电压增益为60dB,输入正弦信号电压振幅为10mV,增益10dB步进可调,通频带为100Hz~100kHz。

电压增益为60dB,输入正弦信号电压振幅为10mV,增益10dB步进可调,通频带为100Hz~100kHz。

(2)滤波器可设置为低通滤波器,其-3dB截止频率fc在1kHz~20kHz范围内可调,调节的频率步进为1kHz,2fc处放大器与滤波器的总电压增益不大于30dB,RL=1kW。

(2)制作一个带通滤波器,中心频率50kHz,通频带10kHz,在40kHz和60kHz频率处,要求放大器与带通滤波器的总电压增益不大于45dB。

低通滤波器,其-3dB截止频率fc在1kHz~20kHz范围内可调,调节的频率步进为1kHz,2fc处放大器与滤波器的总电压增益不大于30dB,RL=1kW。

(3)滤波器可设置为高通滤波器,其-3dB截止频率fc在1kHz~20kHz范围内可调,调节的频率步进为1kHz,0.5fc处放大器与滤波器的总电压增益不大于30dB,RL=1kW。

(3)上述带通滤波器中心频率可设置,设置范围40kHz~60kHz,步进为2kHz。

高通滤波器,其-3dB截止频率fc在1kHz~20kHz范围内可调,调节的频率步进为1kHz,0.5fc处放大器与滤波器的总电压增益不大于30dB,RL=1kW。

带通滤波器,中心频率50kHz,通频带10kHz,在40kHz和60kHz频率处,要求放大器与带通滤波器的总电压增益不大于45dB。

(5)其他

设置参数显示

附录

1.程序

#include<

reg51.h>

math.h>

intrins.h>

typedefunsignedcharuchar;

typedefunsignedintuint;

typedefunsignedlongulong;

voidWrite_Max262(void);

voidLow_Pass(void);

voidHigh_Pass(void);

ucharFclk_F0_Q(void);

voidfd();

ucharcodeTable[13]={

0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90,

0x89,0xc7,0xf6};

ucharcodeSelect[6]={

0x7f,0xbf,0xdf,0xef,0xf7,0xfb};

sbitA0=P1^0;

sbitA1=P1^1;

sbitA2=P1^2;

sbitA3=P1^3;

sbitD0=P1^4;

sbitD1=P1^5;

sbitW_R=P1^6;

sbitsw=P1^7;

#defineS10x38

#defineS20x34

#defineS30x2c

#defineS40x1c

ucharnum,dd=0,Mode=3,N1,N2,c,Q=1;

uintf0=40000,fc_H=1000,fc_L=1000,d=0xf6;

ulongfclk=200000;

voidDelay(uintz)

{

uintx,y;

for(x=z;

x>

0;

x--)

for(y=124;

y>

y--);

}

voidDisplay(void)

staticucharnum,Temp;

staticuintk;

P2=0xff&

d;

k++;

switch(num)

{

case0:

P0=Table[dd];

break;

case1:

switch(c)

{

case0:

P0=Table[0];

Temp=0;

break;

case1:

P0=Table[10];

Temp=fc_H/1000;

case2:

P0=Table[11];

Temp=fc_L/1000;

case3:

P0=Table[8];

Temp=f0/1000;

default:

}

case2:

P0=Table[Temp/10];

case3:

P0=Table[Temp%10];

default:

}

switch(c)

case0:

P2=Select[num]&

if(k>

20)

P2=Select[num]&

else

P2=0xff&

num++;

num%=4;

k%=40;

Delay

(1);

ucharKeyscan(void)

ucharKey;

if((P3&

0x3c)==0x3c)

return(0xff);

Delay(10);

Key=P3&

0x3c;

while((P3&

0x3c)!

=0x3c)

Display();

return(Key);

voidKeySet(void)

uchari;

switch(Keyscan())

caseS1:

c++;

c%=4;

caseS2:

switch(c)

{

fc_H+=1000;

if(fc_H==21000)

fc_H=1000;

fc_L+=1000;

if(fc_L==21000)

fc_L=1000;

f0+=2000;

if(f0==62000)

f0=40000;

caseS3:

fc_H-=1000;

if(fc_H==0)

fc_H=20000;

fc_L-=1000;

if(fc_L==0)

fc_L=20000;

f0-=2000;

if(f0==38000)

f0=60000;

caseS4:

for(i=0;

i<

3;

i++)

{

Q=1;

High_Pass();

Fclk_F0_Q();

Write_Max262();

}

Low_Pass();

Q=f0/10000;

default:

voidLow_Pass(void)

Q=pow(Q,2);

Q*=2;

f0=(uint)(fc_L/(sqrt((1-1/Q)+sqrt(pow(1-1/Q,2)+1))));

voidHigh_Pass(void)

f0=(uint)(fc_H*(sqrt((1-1/Q)+sqrt(pow(1-1/Q,2)+1))));

ucharFclk_F0_Q(void)

if(Mode==1)

N1=(fclk/f0-28.87872)/1.11072;

N2=(11585.28-Q)/90.51;

else

N1=(fclk/f0-40.48)/1.57;

N2=(8129-Q)/64;

return(N1);

return(N2);

voidWrite_Max262(void)

uchari,j,Temp_Mode,Addr=1;

uintTemp1=0,Temp2=0;

Temp1=(N1<

<

4)+15;

Temp2=(N2<

W_R=0;

Temp_Mode=Mode;

Temp_Mode=Temp_Mode<

4;

P1=Temp_Mode&

0xf0;

_nop_();

W_R=1;

for(i=0;

W_R=0;

P1=Addr|0xb0;

P1=P1&

Temp1;

Addr++;

Temp1>

>

=2;

Temp1=Temp1|0x000f;

_nop_();

W_R=1;

for(j=0;

j<

j++)

Temp2;

Temp2>

Temp2=Temp2|0x000f;

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

当前位置:首页 > 医药卫生 > 中医中药

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

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