76范文网为您提供各类范文参考!
当前位置:76范文网 > 知识宝典 > 范文大全 > 基于单片机的程控放大器设计

基于单片机的程控放大器设计

来源:76范文网 | 时间:2019-05-09 10:30:14 | 移动端:基于单片机的程控放大器设计

基于单片机的程控放大器设计 本文简介:

毕业设计(论文)基于单片机的程控放大器设计专业:电子科学与技术摘要本设计由直流稳压电源、前置放大电路单元、增益控制部分、功率放大部分、单片机自动增益控制部分几个模块构成。输入部分采用高速电压反馈型运放OPA642作跟随器提高输入阻抗,并且在不影响性能的条件下给输入部分加了保护电路。使用了多种抗干扰措

基于单片机的程控放大器设计 本文内容:

毕业设计(论文)
基于单片机的程控放大器设计
专业:
电子科学与技术

摘要本设计由直流稳压电源、前置放大电路单元、增益控制部分、功率放大部分、单片机自动增益控制部分几个模块构成。输入部分采用高速电压反馈型运放OPA642作跟随器提高输入阻抗,并且在不影响性能的条件下给输入部分加了保护电路。使用了多种抗干扰措施以减少噪声并抑制高频自激。同时利用可变增益宽带放大器AD603来提高增益和扩大AGC控制范围,通过软件补偿减小增益调节的步进间隔和提高准确度。功率输出部分采用分立元件制作,提高了负载阻值以及输出有效值。控制部分由51系列单片机、A/D、D/A和基准源组成。整个系统通频带为1kHz~20MHz,最小增益0dB,最大增益80dB。增益步进1dB,60dB以下预置增益与实际增益误差小于0.2dB。不失真输出电压有效值达9.5V,输出4.5~5.5V时AGC控制范围为66dB,应用单片机和数字信号处理技术对增益进行预置和控制,AGC稳定性好,可控范围大,完成了设计的所有基本要求并做适当的发挥,使设计更完善。关键词:程控;宽带;自动增益控制;AD603;AGC
Abstract
The
design
of
the
DC
power
supply,
the
preamplifier
circuit
unit
,
gain
control
section
,
the
power
amplifier
section
,
SCM
AGC
part
of
several
modules
.
The
input
section
with
high-speed
voltage
fee
dback
op
amp
OPA642
as
a
follower
to
improve
the
input
impedance
,
and
without
affecting
the
performance
of
the
conditions
to
the
input
section
added
protection
circuit.
Using
a
variety
of
measures
to
reduce
noise
interference
and
suppress
high
frequency
self-excited
.
While
taking
advantage
of
the
variable
-gain
broadband
amplifiers
AD603
to
improve
and
expand
the
AGC
gain
control
range
,
reducing
the
gain
adjustment
step
interval
and
improve
accuracy
by
software
compensation.
Power
output
section
using
discrete
components
,
improving
the
load
resistance
and
the
output
rms
.
Controlled
in
part
by
the
51
series
micro
controller
,
A
/
D,
D
/
A
and
a
reference
source
components.
Passband
of
the
entire
system
1kHz
~
20MHz,
the
smallest
gain
0dB,
the
maximum
gain
80dB.
Gain
step
1dB,
60dB
gain
with
the
following
preset
actual
gain
error
is
less
than
0.2dB.
Undistorted
output
voltage
effective
value
of
9.5V,
4.5
~
5.5V
output
when
the
AGC
control
range
of
66dB,
the
application
micro
controller
and
digital
signal
processing
techniques
to
gain
presets
and
control
,
AGC
good
stability
,
large
controllable
range
,
completed
the
design
all
the
basic
requirements
and
make
the
appropriate
play
to
make
the
design
better
.Keywords:
programmable
;
broadband
;
AGC
;
AD603;
AGC目




2
一、设计题目,要求,意义
4
二、方案论证与比较
4
2.1
可控增益放大器部分
4
2.2
功率输出部分
7
2.3
测量有效值部分
7
三、具体系统设计
8
3.1总体设计思路
8
3.2系统各模块电路的设计与分析
103.2.1直流稳压电源
103.2.2前置放大电路单元
103.2.3
增益控制部分
113.2.4功率放大部分
113.2.5自动增益控制(AGC)
12
四、理论分析与参数计算
13
4.1电压控制增益的原理
13
4.2
AGC介绍
13
4.3正弦电压有效值的计算
13
五、单片机软件的设计
14
5.1
软件功能
14
5.2流程图
15
5.3代码分析
15
六、抗干扰措施分析
20
七、误差分析及性能总结
21
7.1
误差分析
21
7.2性能总结
21
八、课程设计心得与体会
21
8.1
课程设计过程
21
8.2
问题与解决方法
21
8.3
心得体会
22
九、参考文献
23
十、附录(电路图)
23
一、设计题目,要求,意义。
1.1.设计题目
《基于单片机的程控放大器设计》
1.2.设计要求
(1)输入阻抗≥1kΩ;单端输入,单端输出;放大器负载电阻600

(2)3dB通频带10kHz~6MHz,在20kHz~5MHz频带内增益起伏≤1dB;
(3)最大增益≥40dB,增益调节范围10dB~40dB;
(4)最大输出电压有效值≥3V。
1.3.设计意义
模拟电子线路的主要知识点有三点,即放大器,振荡器和调制解调器,而后

二者也多是以放大器为基础,所以放大器实际上是模拟电子线路最重要最基础的知识点。而对放大器而言,最主要的是反映当前新技术,新器件的应用。高速宽带,增益可程控,低噪声,高输入阻抗,高共模抑制比。程控宽带放大器这个题目正是切中了这个主要知识点的诸多主要方面。同时该课题还能同单片机应用等数字化技术与微机技术,较好地体现了当前“模拟的系统概念加数字化的处理技术”这一个电子技术发展的总趋势。
二、方案论证与比较
2.1
可控增益放大器部分
方案一

由晶体管简单放大电路的放大电路可以实现重叠,图1是一个分立放大器装置的电路图。为了满足40dB的增益的要求可以采用多级放大器电路来实现。二极管检测器的自动增益调整前产生反馈电压调节器电路的输出级电路。因为该程序使用了大量的分立元件,如晶体管和其它电路是比较复杂的,难以调整工作点,特别是定量的增益调整是非常困难的。此外,采用多级放大器电路的稳定性差,容易产生自激现象。图1

分立元件放大器电路图
方案二
原理框图如图2所示,场效应管工作在可变电阻区,输出信号取自电阻与场效应管与对V’的分压。采用场效应管作AGC控制可以达到很高的频率和很低的噪声,但温度、电源等的漂移将会引起分压比的变化,用这种方案很难实现增益的精确控制和长时间稳定。

2

场效应管放大器电路图
方案三
为了便于最大40dB的增益调整,可以使用D
/
A芯片AD7520改变反馈电阻网络电压,从而控制电路的增益的权利。又考虑到AD7520是一种廉价型10
-
位D
/
A转换芯片,输出VOUT
=
DN
×
Vref/210
,其中DN是10个数字输入的二进制值,可满足210
=
1024块的增益调整,以满足精度要求被检体。它是由CMOS电流开关和电阻梯形网络的结构,具有结构简单,精度高,体积小,易于控制,简化外部接线和其它特征,它可以被用来实现AD7520可编程的信号衰减。然而,由于输入基准电压Vref
AD7520具有用于将输入信号在一定的保证金要求在毫伏?V分别具有增益的更精确的大小,最好的信号之前通过一个自适应振幅调整到达AD7520放大器,并然后通过AD7520衰减围绕相应的级放大级的增益,使1024的情节,而分母的衰减补偿AD7520可以通过编程来实现放大。然而AD7520的输入范围是必需的,特别是实现更复杂的和非线性变换误差大,几kHz的带宽,频带不能满足要求。
方案四

使用增益控制电压是线性的,可编程增益放大器PGA
,用控制电压和增益(dB
)可变增益放大器之间的线性关系来实现增益控制(图3)
。根据对放大器增益控制要求的主题,考虑直接选择可调增益运算放大器,如AD603
。内的R-2R梯形电阻网络和固定增益放大器,它被施加到由固定增益放大器的输出,衰减的通过在所确定的增益控制的基准电压施加的衰减量的梯形网络的信号输入端接口;而这个参考电压可以由微控制器可操作性和控制D
/
A输出控制电压的芯片来,以达到更精确的数控。
AD603也可以通过直流可以提供到30MHz工作带宽比可以提供超过增益单级实际工作中衰减20dB,你可以得到40dB以上的增益多两至后级放大器的输出级联后,也是在高频率提供了更多的比增益60dB的。这种方法的优点是该电路的高集成度,相干清晰,易于控制,易于使用的单芯片数字处理。  图
3
可变增益的运放放大器电路图
总之,程序四个选择,集成了可变增益放大器AD603的增益控制。
AD603是一款低噪声,精密控制的可变增益放大器,温度稳定性高0.5dB的最大增益误差,以满足主体的精度要求,增益(分贝)与控制电压(V)是线性的,所以你可以很容易使用的D
/
A输出电压控制放大器的增益。
2.2
功率输出部分

级联放大器电路由两个AD603
,输入信号可以是不同大小的前置放大器。因为最大输出电压AD603是小的,不符合主体的要求,所以,通过输出RMS来达到一个更高的水平所需要的前置放大器信号放大。
方案一
采用集成电路芯片。使用集成电路芯片电路简单,使用方便,性能稳定,具有详细的文档。但要求高于3V
rms输出,而在电子市场上很难买到这样的芯片,而我们买的AD811

HA-
2539等芯片,虽然输出电压的大小,以满足需求,但它是问题容易出现不稳定的情况。
方案二
采用分立元件来建立自己的后级放大器。难使用分立元件,调试繁琐,但它可以通过最合适的输入和输出阻抗,放大和其它参数来计算设计,电阻器和电容器,可能需要更换,这似乎在这一点上比IC灵活。所以,自行设计的放大器的优点是显而易见的
综上所述,采用方案二。
2.3测量有效值部分
方案一
程序上高速ADC电压进行采样,一个星期内,数据输入和计算微控制器的有效值,电压有效值可以得出:该程序具有很强的抗干扰能力,设计灵活,精度高,但难以调试,高频率采样困难和计算密集型,增加了软件的难度。
方案二
精密整流和集成,以获得正弦电压,那么ADC采样的平均值,用平均值和有效值计算有效值显示之间的简单转换关系的信号。只有一个简单的整流滤波电路和微控制器就可以完成交流信号的有效值测量。但是,衡量非正弦波的这种方法会导致较大的误差。

方案三

真有效值转换与集成芯片,真正的RMS输出直接测量信号。这有效值测量,从而实现任意波形。
综上所述,使用方案三,变换芯片AD637的选择。
AD637是一个真有效值转换芯片,它可以测量信号有效值高达7V
,精度优于0.5%
,和更少的外部元件,频带宽,对于1V信号为8MHz其3dB带宽的有效价值,你可以输入信号以dB为单位的水平表明该程序的硬件,软件简单,准确度也高,但不超过8MHz的信号更高。这个程序的硬件很容易实现,并为8MHz或更低时测得的RMS精度可以得到保证,在被摄物体的精确度要求高,在通频带10kHz到6MHz的。 
三、具体系统设计
3.1总体设计思路
根据拍摄对象的要求,结合考虑各种选项,模拟和数字系统充分利用各自的优势,发挥自己的优势,采用单片机前置放大器增益和控制方法,大大提高了系统的精度和可控性;后期放大器,设计用于由分立元件的使用互补推挽输出放大器增加输出电压有效值,从而使信号一直是最合理的前置放大器在单芯片数字控制算法。系统框图:由输入信号前置放大增益放大电压通过D由单片机控制的控制/
A转换器提供。的AD603
Vg的(=
V1-V2)根据公式:增益GAIN
=
40×
Vg的20

dB)被置位,并且在AGC模式下,控制电压Vg由AGC电路,而不是供应链管理的反馈电压而得到。后的最终级放大器之后的预放大信号都经过精确的测量和计算,以获得所需的输出信号,前,后级增益的匹配。由峰值检波电路中,反馈到由RMS得到的微控制器,算术和线性补偿所获得的输出电压。图
4系统原理框图
3.2系统各模块电路的设计与分析
3.2.1直流稳压电源

采用全波桥式整流,大电容滤波,三端稳压装置的方法来产生各种直流电压的电源。正负15V
,正负5V这样你就可以买到相应的固定输出三端稳压芯片,如LM7815

LM7805
。如果没有7.5V的电子市场AD603电压我们的要求,所以我们使用如图5所示的可变输出电压稳压芯片LM317T典型电路图。图5直流电源
后一个稳定的直流交流输入滤波电容的三端稳压集成电路LM317T的Vin的结束。
LM317T是这样工作的:
VIN引脚的工作电压给它后,它就能保持其+
Vout端电压低于其ADJ
1.25V年底高。因此,我们只需要使用一个非常小的电流来调节电压ADJ端,你可以得到的+
Vout端相对较大的输出电流,并且比ADJ端固定在1.25V电压高。
在ADJ端LM317T增加一个滤波电容到地,将极大地改善纹波抑制比,高频小信号运算放大器提供了非常稳定的电源。当有意外情况使得LM317T输入电压二极管效果比输出电压低时,输入可以防止电流从侵入LM317T造成损害。
3.2.2前置放大电路单元
以及图6是一个增益控制输入缓冲器电路中,
AD603的输入电阻只有100Ω
,输入电阻大于1kΩ到满足输入缓冲器部分的要求必须被加入,以使输入阻抗;附加噪声的电路之前的电路是非常大的,必须尽量减少噪音。因此,采用高速低噪声电压反馈运算放大器OPA642预跟随,而在输入耦合半导体过压保护。
输入第一个电阻分压器衰减的部分,然后由低噪声高速运算放大器OPA642放大,整体还是一个追随者,二极管保护输入电压峰值OPA642不超过它的极限(
2V

。它的输入阻抗大于1kΩ的。
400MHz的的OPA642的增益带宽积,放大3.4倍,
100MHz以上的信号被衰减。输入和输出端口P1,P2通过同轴电缆连接,以防止自激。级间耦合采用高频陶瓷电容电解电容并联的方式,无论是高频和低频信号。
3.2.3增益控制部分
获得安装在屏蔽盒控制部分,箱式多点接地和接地,以避免自激,一些电容和电阻采用SMD封装,入门级的连接尽可能短的最近的路。
AD603的典型的连接部分是最宽的一个在通频带,
90MHz的的通带中,在-10增益?
30分贝,输入控制电压U中的-0.5?
0.5
V.图7的范围是典型的访问到AD603
90MHz的带宽的方法。图8是一个增益控制电路。图7
AD603挑90MHz的带宽的典型方法
和增益控制电压的关系是:股份公司(
DB)
=
40
×
U
+10
,控制水平仅优于40dB,则采用两级级联,
AG(分贝)的增益=
40
×
U1
+40
×
U2
20
,所获得的范围为-20
?+60分贝符合题目的要求。
两个级放大器电路,由于相同的频率响应曲线,因此当后水平AD603系列,带宽减小时,一系列围绕90MHz的各级之前的带宽,两级放大器系列3dB带宽对应的总单基于振幅
-
频率响应曲线的总带宽级放大器电路1.5分贝带宽可以为60MHz的级联后进行绘制。
3.2.4功率放大器部分
电路如图9所示。参考音频放大器驱动器电路,考虑到负载电阻为600Ω

RMS输出大于3V
,而约2V
RMS
AD603的最大输出,所以用一个两阶段的晶体管发射结直流耦合和直流负反馈,以构建端到端
-
级功率放大,所述第一放大级的电压时,放大器电路的电压增益在这个阶段,电压的第一级的双端输出信号的电流和合成的第二级放大??变成单端信号,同时用,如果你需要,你需要增加一级跟随器晶体管,事实上,加上跟随在后的通频带急剧下降更多的能力来驱动负载能力增加是由于跟随结电容等效放大的输入信号频率较高时,输出电平的直流电流的输出信号是大和小。使用2扩增足以满足主体的需要。
NSC的选择晶体管2N3904
2N3906和(特征频率fT
=
250
?
300MHz的)可以达到25MHz的带宽。频率补偿电路不使用时,直流到在20MHz
20MHz的线性放大增益或更少非常光滑,稳定的直流特性的信号。我们会在串联的电容到地反馈回路,提高了直流负反馈,但它会使低频响应的变化,其实,这样做只能通过低频段,以提高从DC较低的频率1kHz时,但电路的稳定性有了很大的提高。
该电路的放大倍数:AG

1
+
R10/R9
,放大约10倍的整个放大器电路的电压。
R10是通过调整增益调整时,操作点可根据电源电压进行调整,
R7调整。
3.2.5自动增益控制(AGC


该模块使用的微控制器调整的基础上,输出信号的幅度增益。由单片机,
100Hz的截止频率探测器简单的2类RC滤波器采样后的输出信号。由于通频带放大器在1kHz,低端时的工作频率为1kHz时,为了确保在输出波形失真的变化时,增益较小时,
AGC响应时间设定为10ms时,
MCU定时器0产生10ms的中断输出RMS样品,在增益控制电压进行滤波的可变增益放大器波后加。理论上AGC控制范围达到0?
80分贝,事实上,由于添加了输入保护电路中,输出电压按不同的AGC范围是不相同的,在4.5的范围内,输出?5.5V时,
AGC是约70分贝,和当输出是2
?2.5V时,自动增益控制范围达80分贝。
这部分的51系列单片机,A
/
D,D
/
A和参考源组件。使用12
-
位串行A
/
D芯片ADS7816和ADS7841
(为RMS和峰值的同时测量)和12位串行双D
/
A芯片TLV5618
。使用一个参考电压源MC1403带隙基准源。在图10中所示的方框图。
四、理论分析与参数计算
4.1电压控制增益的原理
AD603的基本增益为:Gain
(dB)
=
40
VG
+
10,其中,VG是差分输入电压,单位是V,Gain是AD603的基本增益,单位是dB。
从此式可以看出,以dB作单位的对数增益和电压之间是线性的关系。由此可以得出,只要单片机进行简单的线性计算就可以控制对数增益,增益步进可以很准确地实现。但若要用放大倍数来表示增益的话,则需将放大倍数经过复杂的对数运算转化为以dB为单位后再去控制AD603的增益,这样在计算过程中就引入了较大的运算误差。
4.2
AGC介绍
基本增益AD603是:增益(dB

=
40
VG
+10
,其中,
VG是差分输入电压,单位为V
,增益为AD603的增益基本单位是分贝。
如可以从该式中,以dB为单位和电压增益的对数成线性关系可以看出。可以得出结论认为,只要一个简单的线性计算的微控制器可以控制对数增益,增益的步骤可以被精确地实现。然而,如果使用放大倍数的增益,那么放大倍率,需要复杂的操作成若干分贝为单位后AD603来控制增益,使得引入更高的计算误差的计算过程。
4.2.1AGC简介
AGC是一个缩写在广播,电视,VCR和接收信号处理电路的电平用于自动增益控制电路。它的作用是当信号强,它会自动降低增益,当信号较弱,因此自动获得提高,保证输出信号的基本稳定。
4.2.2正弦电压有效值计算
在图11所示AD637的内部结构。基于RMS的手册中给出的经验公式AD637芯片有:其中:
VIN是输入电压,
Vrms的输出电压有效值。
  

11

AD637的内部结构
五、单片机的软件程序
5.1软件功能
主程序和子程序都存放在AT89S52单片机中。该程序的主要功能是:
开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的键转到相应的子程序进行处理,利用程序控制D/A电阻网络中阻值的变化,并利用LM324N运算放大器来将其输出转换成电压形式,以此来输出放大或者衰减后的正弦波,同时在四位数码管中显示出所放大的倍数。
5.2流程图控制程序流程图如图3-1所示.
图3-1
波形放大部分程序流程图
5.3代码分析
本系统程序代码如下。
1.
函数声明及变量定义
为方便程序的编写,把部分常用的变量进行伪定义,把实现一定功能的程序编写为一个函数,有利于程序的编写。
#include"reg51.h"
#include"intrins.h"
sbit
dacs=P1^0;
//端口定义

sbit
dawr=P1^1;
//芯片
sbit
lcdrs=P1^5;
//定义寄存器
sbit
lcdrw=P1^6;
//定义是否读写
sbit
lcde=P1^7;
//定义使能端
sbit
lcd_flag=P0^7;
//定义是否忙标志
void
disp(void);
//以下为函数声明
void
lcd_delay(unsigned
int
);
void
lcd_deal(unsigned
char
,unsigned
char
,unsigned
char
);
void
_1602(void);
void
lcd_init(void);

void
lcd_moveto(unsigned
char
,unsigned
char
);
void
lcd_putchar(unsigned
char
);

unsigned
char
code
shuzi[]={0,1,2,3,4,5,6,7,8,9};
unsigned
char
code
lcd_Assic[12]={
//ASICII码

0x30,0x31,0x32,0x33,0x34,0x35,

0x36,0x37,0x38,0x39,0x56,0x2e};
unsigned
char
dis[2][16]={{

//液晶初始化数据

0x20,0x20,0x20,0x20,

//0x20输出是空即空格

0x20,0x20,0x20,0x20,

0x20,0x20,0x20,0x20,

0x20,0x20,0x20,0x20},

{0x20,0x20,0x20,0x20,

0x20,0x20,0x20,0x20,

0x20,0x20,0x20,0x20,

0x20,0x20,0x20,0x20}};
unsigned
char
val=0;//全局变量
2.主程序
本系统主程初始化并启动DAC0832芯片后,进入按键检测程序。当加一键按下时,val变量加一。显示屏第一行数字显示val的大小,第二行适时显示转化后的电压值。当加一键按下超过一秒钟后,val以500ms的速度增长,按键释放后停止。减一键类似。详细主程序见附录1。
3.显示子程序
此程序为液晶显示子程序,首先将要显示的变量val的百位、十位、个位分离。然后储存到液晶显示缓存区,最后经_1602()函数把缓存的数据送到显示屏上显示出来。
/*********************显示函数程序********************/
void
disp(void)
{

P2=val;

lcd_deal(0,0,val/100);

//分离百位

lcd_deal(0,1,val%100/10);
//分离十位

lcd_deal(0,2,val%10);

//分离个位

lcd_deal(1,2,(unsigned
char)((float)val/256*5)%10);

lcd_deal(1,3,11);
//显示符号“.”

lcd_deal(1,4,(unsigned
char)((float)val/256*50)%10);

lcd_deal(1,5,(unsigned
int)((float)val/256*500)%10);

lcd_deal(1,6,10);
//显示字符“V”

_1602();
//输出到1602
}
4.延时程序
此程序为液晶显示函数和主程序按键去抖延时提供毫秒级延时函数。
/*******************延时函数程序******************/
void
lcd_delay(unsigned
int
k)
{

//延时函数

unsigned
int
i0;
unsigned
char
i,j;

for(i0=0;i0
for(i=5;i>0;i--)

for(j=97;j>0;j--);
}
5.LCD1602液晶输出函数
此函数主要完成将液晶显示输出缓冲区的数据输出到液晶显示屏上。
/*********************液晶输出函数程序********************/
void
_1602(void)
{

unsigned
char
*p;

lcd_init();
//初始化

lcd_delay(10);
lcd_moveto(0,0);//指针定位到第一行第一列

for(p=dis[0];p//依次输出到第一行{lcd_putchar(*p);}

lcd_moveto(1,0);//指针定位到第二行第一列

for(p=dis[1];p//依次输出到第二行{
lcd_putchar(*p);
}
}
6.数据转化函数
此函数的功能为,将要显示的数据经查表后得到的ASSICII码传送到液晶显示缓存区内,以备显示函数调用直接显示出正确的字符。
/******************ASSICII码转化函数程序***************/
void
lcd_deal(unsigned
char
i,unsigned
char
j,unsigned
char
dat)
{

dis[i][j]=lcd_Assic[dat];
}
7.检测LCD忙函数

此函数主要功能为检测LCD1602液晶忙标志函数,当要向LCD1602内传输数据时,需要先进行忙标志检测。当返回函数为忙时,稍后写数据或者命令,如遇返回为不忙就可直接向LCD1602内写命令或者数据。
/******************检测忙标志函数程序*****************/
bit
lcd_busy()

//判断是否忙碌
RS=Low,RW=High,E=High:读状态
{bit
flag=0;

lcdrs=0;
//寄存器为Low

lcdrw=1;
//是否读写为High

lcde=1;
//使能端为High

if
(lcd_flag==1)
flag=1;

else
flag=0;

lcde=0;

return
flag;
//返回标志判断是否LCD忙碌
}
8.写命令函数
本函数为向LCD1602内写命令函数。
/*******************写命令函数程序*****************/
void
lcd_putcommand(unsigned
char
command)
{

//写指令
RS=Low,RW=Low,E=High:写指令

while
(

lcd_busy());

//判断是否忙碌

lcdrs=0;
lcdrw=0;

lcde=0;
P0=command;
lcde=1;
lcde=0;
}9.输出一个字符程序

此函数的功能为输出一个字符到液晶屏上。通过本函数可以向LCD1602内写数据,直接显示到LCD1602液晶屏上。
/*********************输出字符函数程序********************/
void
lcd_putchar(unsigned
char
putchar){
//写数据
RS=High,RW=Low,E=High:写数据

while(lcd_busy());
//判断是否忙碌

lcdrs=1;

lcdrw=0;

lcde=0;

P0=putchar;

lcde=1;

lcde=0;
}
10.LCD指针程序

此函数为定位LCD显示位置的指针,如要LCD的第二行中第四列上显示字符,需要将指针设置为第二行第四列,如lcd_moveto(2,4)。
/******************指针定位函数程序***************/
void
lcd_moveto(unsigned
char
x,unsigned
char
y)
{
//显示字符的位置:第x行y列(X=1或2,Y=0~15)

if
(x==0)
lcd_putcommand(0x80|y);

//第一行,并初始化从第y-1个字符开始显示

if
(x==1)
lcd_putcommand(0xc0|y);

//第二行,并............
}
11.LCD初始化函数程序

此函数功能为液晶屏的设置及初始化。
/*****************LCD初始化函数程序**************/
void
lcd_init(void)
{

lcd_putcommand(0x38);
lcd_delay(1);//LCD为2行,5×7字

lcd_putcommand(0x0c);

//显数据,关闭光标比较好

lcd_delay(1);

lcd_putcommand(0x06);lcd_delay(1);//每次右移一字符
}六、抗干扰措施分析
该系统的总增益为0?
80分贝,输入缓冲器和增益前置放大器增益控制部向上60分贝,因此抗干扰措施必须以避免自激和减少噪声可以做得很好。我们用下面的方法来减少干扰,避免自激,增益控制输入部分:

1
)的部分和安装在屏蔽盒中,以免档次和高频自激之间的干扰;使用感应隔离,输入级与输出级电源。

2
)电源隔离,功率电平隔离,由通过电感器的电源的各个部分隔离,输入功率电平是接近最靠近连接1000μF的电解电容,陶瓷电容箱连接到高频的屏蔽盒,用这种方法低频能够避免自激;
(3)
所有信号耦合用电解电容器和连接在所述高频陶瓷电容器,以避免高频增益衰减两端,
(4)构建一个封闭的环。在输入级,全被厚厚的运算放大器周围地面能吸收高频信号无噪音降低。在增益控制部分和后级功率放大部分也使用这种方法。功率电平,这种方法可有效地防止高频辐射;

5
)的模拟隔离的数量。除了电源隔离的数字和模拟部分之间,控制信号会被感应地隔离;
(6)使用同轴电缆,采用了输入级和输出级之间的BNC连接器的输入和输出级
同轴电缆。电路是更好的抗干扰措施,
1kHz时?
20MHz的频带范围为0
?
80分贝增益范围内不自激。
该系统的反馈控制,以控制输出电压的采样电压增益的单片机控制部分。由于AD603的增益与实际增益误差设置,这样处理软件校准。
七、误差分析及性能总结
7.1
误差分析
测量误差的主要来源是电磁干扰,与输入短由于测试网站与多台计算机和设备使用开关电源,电磁噪音很大,而且使用的同轴电缆的屏蔽效果不好,所以测量输入噪声电压短路,然后有很多的错误的方式不同。

7.2
性能概要

从各项指标在指标设计的各个方面都达到或超过了题目的要求。强调的模拟电路设计工艺以获得高增益和低噪音。采用多种措施应对抗干扰前置放大器,使用集成芯片的增益控制,使用功率放大级分立元件,放弃了比较难买到的宽带功率放大器,这样的设计非常灵活,很容易实现。  

八、课程设计心得与体会
8.1
课程设计过程
1、通过认真听取老师的讲解,了解了程控宽带放大器的基本原理和组成。
2、通过查阅书本和参考资料,确定方案,完成了程控宽带放大器的设计。
3、通过对电路的计算,确定了元件的的参数和指标。
4、完成了电路图的绘制。
5、完成论文的编写。
8.2
问题与解决方法
在设计过程中不免遇到各种问题,需要认真分析,排除各种问题。
在设计过程中,首先要上网查阅资料,确定设计方案。在这个过程中,因为只是的匮乏,芯片和电路的确定费了很大的功夫,最终在同学的帮助下,设计出了前几个模块。接下来自动增西控制部分,由于不清楚原理,只能请老师帮忙,分析了电路并对之进行简化,到此,才最后完成模块的设计。
接下来,为了达到或超过了题目要求,还对芯片的各参数进行深入的了解,精确的计算,过程很复杂。
由于以前实习的时候学习用过protel
99se,但由于长时间没有用,所以很生疏,致使电路图画的很慢,出现的两次返工,在这么紧张的时间里,是很让人郁闷的一件事情。最后通过阅读参考资料,上网搜索等,才完成了电路图的绘制。
8.3
心得体会
经过两个星期的忙碌和工作,本次课程设计已经接近尾声,作为一名本科生,由于经验和知识的匮乏,难免有许多考虑不周全的地方。但是通过课程设计,使我掌握了程控宽带放大器基本原理和组成,巩固了通信电子电路与单片机控制知识,掌控了知识在实际中的应用,提高了对电路分析与设计能力。同时我深深的感觉到自己知识的不足,自己原来所学的东西只是一个表面性的,理论性的,而且是理想化的。根本不知道在现实中还存在有很多问题。设计一个很简单的电路,所要考虑的问题,要比考试的时候考虑的多的多。所以,一开始,我遇到了很多麻烦。通过老师和同学们的帮助,我渐渐的有了眉目。这样,在很大程度上提高了我考虑问题的全面性。
设计电路,还要考虑到它的前因后果。什么功能需要什么电路来实现。另外,还要考虑它的可行性,实用性等等。这样,也提高了我的分析问题的能力。通过这次设计,使我的理论知识上升到了一个实践的过程,同时在实践中也加深了我们对理论知识的理解以及软件的应用能力。
在这里,我忠心的感谢王立老师的耐心辅导以及同学们的热心帮助,你们辛苦了!
九、参考文献
1
谢自美.
电子线路设计·实验·测试(第二版)
.华中理工大学出版社,
200o
1
李广弟.单片机基础.北京航空航天大学出版社,1995
2
赵茂泰.智能仪器原理及应用.北京:电子工业出版社,1999
3
杨欣荣,凌玉华等.现代测控技术与智能仪器.长沙:湖南科学技术出版社,1995
4
陈荣章,孔云英.工厂电气故障与排除方法.
化学朱玉田.
程控增益放大器实现方法的比较与选用[J
]
.
机电工程,
1997
,
(4)
:
42~44.
5
华苏重,
林青.
宽带高增益精密程控增益放大器设计[J
]
.
电子测量仪器学报,
1997
,
(2)
:
37~39. 
6
王俊杰,
黄心汉.
程控增益放大器和自动调整增益放大器的设计[J
]
.
电子技术应用,
1998
,
(5)
:
50~51. 
7
何立民.
MCS
-
51
系列单片机应用系统设计[M]
.
北京;航空航天大学出版社,1990.
8
高光天
仪表放大器应用[-]]
北京:科学出版社,1995
十、附录(电路图)
附录1
主程序
/*********************主程序********************/
void
main
(void)
{dacs=0;

//初始化并启动DAC0832

dawr=0;
P2=0;

disp();

while
(1){switch
(P3)
//按键检测
{

unsigned
char
i;
case
0xfe:
lcd_delay(10);//去抖if
(0xfe==P3)//确定按下
{

val++;
disp();
for
(i=0;i<=100;i++)
{
lcd_delay(10);
if
(0xfe==P3)continue;
else
break;

//一秒内是否释放
}
for
(i=0;;i++)
{
//一秒内未释放快加
lcd_delay(10);
if(0xfe==P3)

{

if
(i%50==0)
//速度为半秒加一次{val++;disp();if
(i==250)
i=0;}
}
else
break;

}for
(;;)
{
while
(0xfe==P3);
//按键释放检测
lcd_delay(10);

//去抖
if
(0xfe==P3)
continue;
else
break;//确定退出
}
}break;case
0xfd:
lcd_delay(10);
//去抖if
(0xfd==P3)//确定按下{val--;disp();
for
(i=0;i<=100;i++)
{
lcd_delay(10);
if
(0xfd==P3)
continue;
else
break;//一秒内是否释放
}
for
(i=0;;i++)
{
//一秒内未释放快减
lcd_delay(10);
if(0xfd==P3)
{
if
(i%50==0)
//速度为半秒减一次
{
val--;
disp();
if
(i==250)
i=0;
}
}else
break;
}
for
(;;)
{
while
(0xfd==P3);
//按键释放检测
lcd_delay(10);

//去抖
if
(0xfd==P3)
continue;
else
break;//确定退出
}}

break;
default:
break;
}
}
附录
2
电路原理图附录3
PCB图

基于单片机的程控放大器设计 本文关键词:放大器,单片机,设计

基于单片机的程控放大器设计  来源:网络整理

  免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


基于单片机的程控放大器设计》由:76范文网互联网用户整理提供;
链接地址:http://www.yuan0.cn/a/87763.html
转载请保留,谢谢!
相关文章