返回主页 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 进入论坛

学林杯第二届单片机征文大赛公开评奖稿件 深圳学林电子www.51c51.com 版权所有 转载注明出处   请不要忘了:现在为你喜欢的稿件投票!
作品1:征文-我是怎样开始学习电子的 山西省大同市作品6:多功能自行车测速仪  北京大学      崔健
作品2:数字温度计的设计  杭州电子科技大学     陈智杰作品7:带闹钟智能电子钟 深圳市天安数码城      谢玉平 
作品3:如何使自制的单片机电子钟走时精准      舒新生作品8:电话回拨服务告知装置 武汉市桥口区      詹显德
作品4:宽带数控放大器 陕西省西安通信学院    韩宏伟作品9:单片机应用之摩斯密码电子锁广东省顺德      吴志光
作品5:一些事,一些情  韶关市      冯敬锋作品10:基于aduc842瞬态波形存储器 华中师范大学物理学院     杨程泽
作品11:基于AT89S52单片机的毫欧表电路设计中南林业科技大学涉外学院     郭海

宽带数控放大器

单片机应用

韩宏伟

陕西省长安区西安通信学院

 

摘要:本设计采用AT89C52单片机调控,具有LED显示与键盘输入预置的方案,使用AD603和AD818集成运算放大器完成放大功能,并且设计电压增益步进达到了1dB,能够完成增益从0dB~66dB可调。用可变增益宽带放大器AD603来提高增益,利用高速宽带视频放大器AD818扩大AGC控制范围,通过单片机实现增益步进调节的间隔。使用了多种抗干扰措施以减少噪声并抑制高频自激。整个系统通频带为1kHz20MHz,最小增益1dB,最大增益69dB。增益步进1dB60dB以下预置增益与实际增益误差小于0.2dB。不失真输出电压有效值高达25.5V

一、方案论证与比较

方案一 简单的放大电路可以由三极管搭接的放大电路实现,1为分立元件放大器电路图。为了满足增益60dB的要求,可以采用多级放大电路实现。对电路输出用二极管检波产生反馈电压调节前级电路实现自动增益的调节。本方案由于大量采用分立元件,如三极管等,电路比较复杂,工作点难于调整,尤其增益的定量调节非常困难。此外,由于采用多级放大,电路稳定性差,容易产生自激现象。


1
方案二为了易于实现最大60dB增益的调节,可以采用D/A芯片AD7520的电阻权网络改变反馈电压进而控制电路增益。又考虑到AD7520是一种廉价型的10DA转换芯片,其输出Vout=Dn×Vref/210,其中Dn10位数字量输入的二进制值,可满足210=1024挡增益调节,满足题目的精度要求。它由CMOS电流开关和梯形电阻网络构成,具有结构简单、精确度高、体积小、控制方便、外围布线简化等特点,故可以采用AD7520来实现信号的程控衰减。但由于AD7520对输入参考电压Vref有一定幅度要求,为使输入信号在mVV每一数量级都有较精确的增益,最好使信号在到达AD7520前经过一个适应性的幅度放大调整,再通过AD7520衰减后进行相应的后级放大,并使前后级增益积为1024,与AD7520的衰减分母抵消,即可实现程控放大。但AD7520对输入范围有要求,具体实现起来比较复杂,而且转化非线性误差大,带宽只有几kHz,不能满足频带要求。


方案三根据题目对放大电路的增益可控的要求,考虑直接选取可调增益的运放实现,如运放AD603。其内部由R-2R梯形电阻网络和固定增益放大器构成,加在其梯型网络输入端的信号经衰减后,由固定增益放大器输出,衰减量是由加在增益控制接口的参考电压决定;而这个参考电压可通过单片机进行运算并控制D/A芯片输出控制电压得来,从而实现较精确的数控。此外AD603能提供由直流到30MHz以上的工作带宽,单级实际工作时可提供超过20dB的增益,两级级联后即可得到40dB以上的增益,通过后级放大器放大输出,在高频时也可提供超过60dB的增益。这种方法的优点是电路集成度高、条理较清晰、控制方便、易于数字化用单片机处理。

二、系统设计

1、系统设计与总体流程如图1:

根据题目的要求,经过仔细分析,充分考虑各种因素,制定了整体的设计方案:以单片机89C51为核心,完成四个方面的功能:处理键盘数据,DA转化,控制放大器的增益,控制LCD显示。

· 首先由键盘输入控制数据;

· 控制数据进入单片机,经过运算,单片机做出相应的反应。

· 单片机外围与DAC0832相连,实现将CUP输送的预置数字大小转换成对应的控制电压然后经过LM358运放进行调整;使其能够达到我们的需求。增益控制电压输出到放大电路并且调节放大电路,使放大电路产生相应的变化,改变放大增益;从而达到步进增益的控制。

三.主要电路原理分析与计算

1)直流稳压电源

本电源采用桥式全波整流、大电容滤波、三端稳压器件稳压的方法,产生各种直流电压,如正负15V,正负5V等都可以买到相应的固定输出的三端稳压芯片,如LM7815LM7805。而电子市场上没有我们要求的前级和后级放大器所需要的+10V和固定输出的三端稳压器件,所以我们采用LM317T可变输出的稳压芯片,典型电路图如图2


2
      交流输入经过电容滤波后的稳定的直流电送到三端稳压集成电路LM317TVin端。LM317T是这样工作的:由Vin端给它提供工作电压以后,它便可以保持其+Vout端比其ADJ端的电压高1.25V。因此,我们只需用极小的电流来调整ADJ端的电压,便可在+Vout端得到比较大的电流输出,并且电压比ADJ端高出恒定的1.25V
LM317TADJ端加一个接地的滤波电容,会使纹波抑制比大幅度地提高,给高频小信号运算放大器提供非常稳定的电源。二极管的作用是当有意外情况使得LM317T的输入电压比输出电压还低的时候防止从输入端上有电流倒灌入LM317T引起其损坏。

2)放大部分

考虑到增加输出电压和增益,因此我们用一个AD603再加一个AD818这样不但可以很轻易满足题目的要求,而且使得总体的电路设计很容易实现

1. AD603和AD818的相关资料

AD603是美国模拟器件(Analog Device公司的一高性能、低噪声、90MHz、增益可调的集成运放。常用于RF/IF的AGC控制、视频增益控制、A/D输入调整、信号测量等领域。其结构如图3所示。

以下是它的一些具体参数:

电源电压Vs±7.5V

输入信号幅度VINP+2V
增益控制端电压GNEGGPOS±Vs
功耗:400mW
工作温度范围;
   AD603A
-4085
   AD603S
-55+125                                      3

存储温度:-65150       

可见AD603由固定增益放大器、精确的无源R-2R梯形衰减网络、增益控制接口三部分组成。由上图可知衰减网络的衰减范围,即增益可调范围为0~42.14dB,输入信号并不直接加到放大器输入端,而是加到梯形衰减网络的输入端,这样就保证了①固定增益放大器的输入为一弱信号,使信号的失真将很小;②带宽的设置与增益的调节相对独立。                                                                       

37-1.gif (5724 bytes)

4 AD603功能框图

增益控制接口通过控制电压VG=GPOS-GNEG来控制片内的精确调节器来控制输入信号的衰减量GA,增益控制接口的电压—增益转换率为42.14dB/V,即23.73mV/dB,其线性转换曲线如图5所示。其中对GPOS与GNEG只要求不超过电源电压,增益的调整与其自身电压值无关,而仅与其差值VG有关,并且控制电压GPOS/GNEG端的输入电阻高达50MΩ,即输入电流很小,则片内控制电路对提供增益控制电压的外电路影响很小。以上特点适合构成程控增益放大器。

37-2.gif (2293 bytes)

5 增益控制转换曲线

固定增益放大器通过在图4中⑤FDBK与⑦VOUT之间外加电阻实现运放的增益与带宽设置,当减小外部电阻时加大负反馈时,使增益减小而扩展带宽,反之则增大增益而减小带宽。其增益可由下式决定:

g12.gif (758 bytes) (2)

式中R——外加电阻;

GF——固定增益放大器的增益。
当R为短路时,固定增益放大器的增益/带宽值为31.07dB/90MHg,当R为开路时,则为51.07dB/9MHg,考虑到梯形网络的衰减量,则AD603的整体增益可计算为:

G=GA+GF=42.14[R(VG)-0.5]+GF

g13.gif (1223 bytes) (3)

可见单级AD603可提供高达42.14dB的动态范围,且增益可调易于程控,所以在本设计中选用其作为主放级。

从芯片厂商给的资料来看,AD603给出了三种典型的应用方法。

6

2.单级+10db ~+50db,带宽9MHz接法

电路如图7:

7

3.单级0db ~+40db,带宽30MHz接法

电路如图8:

8

此电路的优点是增益、带宽都是适中,经过两级放大,不仅可以满足题目要求,而且高出许多,所以是一个比较合适我们的电路,故我们采用这种接法作为放大电路部分。

因此1脚与2脚之间电压差与增益的关系式为

 

Gain=40VG+20    

 

AD818 运放性能介绍

AD818 是一个低功耗,宽带,高速视频运算放大器其结构如图9所示:

                                 9

常被用作视频放大中,它的电压转换速率高达:500V/μs。

55 MHz 0.1 dB带宽为55 MHz 0.1 dB

130 MHz 带宽(3 dB, G =+2)

100 MHz 带宽(3 dB, G+ =–1)

其典型应用电路如图10

10

总的电路图如图11所示:

                              图11

2. 手动增益预制和控制的实现

开环增益手动控制的基本思路是由单片机数字程控,经D/A转换产生控制输出电压并使加到AD603的1脚来实现。由于时间有限所以我们每用单片机实现 自动控制电压。而我们利用单片机使得输出电压以25mv/db增加,然后控制输出电压的变化范围在0-1v之间,而我们再AD603的2脚上加一个0.5v的电压这样就可以产生运放所需要的控制电压-0.5——+0.5之间,提供给AD603。

3. 单片机系统

单片机是整个放大器控制的核心,它主要完成以下功能:接受用户按键信息以控制增益;对AD603的增益控制电压进行控制。控制部分以AT89C51单片机为核心,LED显示及键盘组成。

D/A转化部分由DAC0832D/A转换和两片358运放组成。增益预置值通过键盘输入之后,经过单片机运算后送至D/A转换器转换成0~+1V的控制电压。DAC8032是8位的D/A转换器,8位数据可以表示256种状态,我们只取前200种。对应40dB的增益,步进为40/200=0.2dB。

原理图如图12:

12 D/A转化原理图

各个功能有不同的模块实现:

键盘检测模块:纪录用户对键盘的操作,将设定的增益数值记录下来。

控制电压生成模块:根据用户对增益的设置,查表得到队D/A转化器的控制电压,输送给D/A转化器以产生精确的控制电压。

显示模块:按用户需要将预制增益显示在数码管上。

调试:先不接放大部分,调试控制部分,使DAC0832输出0~1V电压正常。再用一电压加到ADC0809的输入端,调整使电压显示正常。然后接上放大部分进行调试。采用先分别测试单个单元模块,调试通过后再进行整机调试的方法,很好的提高了调试效率。

四、软件设计

1.软件流程

程序采用汇编语言来编写。流程图如图13所示。

13  程序流程图

2.源程序见附录1:

五、测试结果

输入电压 10—50mV           增益预制30dB

输出电压最大有效值           =15V

频带范围                   BW=10MHz

增益步进                   0-66dB

六、抗干扰措施

系统总的增益为0~80dB,增益控制部分增益最大可达66dB,因此抗干扰措施必须要做得很好才能避免自激和减少噪声。我们采用下述方法减少干扰,避免自激:

1  将输入部分和增益控制部分装在屏蔽盒中,避免级间干扰和高频自激。

2  电源输入级电源靠近屏蔽盒就近接上1000uF电解电容,盒内接高频瓷片电容,通过这种方法可避免低频自激。

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

4  构建闭路环。在输入级,将整个运放用较粗的地线包围,可吸收高频信号减少噪声。在增益控制部分也采用了此方法。

5  数模隔离。数字部分和模拟部分之间除了电源隔离之外,还将各控制信号用电感隔离。

6  使用同轴电缆,输入级和输出级使用BNC接头,输入级和功率级之间用同轴电缆连接。

实践证明,电路的抗干扰措施比较好,在1KHz~10MHz的通频带范围和0~80dB增益范围内都没有自激。


附录1:单片机源程

;数码管定义


LEDDATA       EQU    p2.7

LEDALE     EQU     P2.6

LEDCLK     EQU    P2.5

;键盘定义

   SW  EQU    P0.0  ;十位

    GW  EQU    P0.1  ;个位

   DF EQU    P0.3  ;位选

;DAC0832输出口定义

   OP EQU         P1   

;变量定义

    LEDBUF1 EQU 40H

   LEDBUF2 EQU 41H

   LEDBUF3 EQU 42H

   LEDBUF4 EQU 43H

   LEDBUF5 EQU 44H

   LEDBUF6 EQU 45H

;程序开始

ORG     0000H

       LJMP   MAIN

      ORG    0100H

MAIN: MOV    SP,#70H

       CLR    LEDALE

       LCALL  CLEARDISP ;清数码管

      LCALL INATI  ;变量初始化

    LCALL DISPNUMBER ;初始化显示

      LCALL OPC    ;输出到0832

;键盘扫描

CIR:   LCALL DELAY  ;抖动延时

JNBDF,NEXTSTEP;增减转化

     JNB SW,SWPLUS  ;十位递增

      JNB GW,GWPLUS  ;个位递增

      LJMP   CIR     ;循环扫描

NEXTSTEP:  LCALL DELAY ;抖动延时

       JNB  DF,CIR   ;增减转化

       JNB  SW,SWMIN  ;十位递减

        JNB  GW,GWMIN  ;个位递减

         LJMP NEXTSTEP  ;循环扫描

;十位递增子程序

SWPLUS: MOV   A,LEDBUF3

       ADD   A,#1

         DA    A

        ANL   A,#0FH

       MOV   R2,A

       XRL   A,#06

       JZ    N    ;10位最大为6

       MOV   A,R2

         MOV   LEDBUF3,A

         LCALL DISPNUMBER   ;显示

       LCALL OPC    ;输出到0832

         LJMP CIR    ;继续扫描

N:     MOV   LEDBUF3,#0

LCALL DISPNUMBER   ;显示

LCALL OPC    ;输出到0832

       LJMP  CIR    ;继续扫描

;个位递增子程序

GWPLUS: MOV A,LEDBUF4

       ADD  A,#1

       DA   A

       ANL  A,#0FH

       MOV  LEDBUF4,A

       LCALL DISPNUMBER    ;显示

       LCALL OPC    ;输出到0832

       LJMP  CIR    ;继续扫描

;十位递减子程序

SWMIN: MOV  A,LEDBUF3

      SUBB A,#01

      CPL  A

      JZ   NN

      CPL  A

      MOV  LEDBUF3,A

      LCALL DISPNUMBER

      LCALL OPC

      LJMP  NEXTSTEP

NN:   MOV   LEDBUF3,#06

      LCALL DISPNUMBER

      LCALL OPC

      LJMP  NEXTSTEP

;个位递减子程序

GWMIN:MOV A,LEDBUF4

      SUBB A,#01

      CPL A

      JZ NNN

      CPL A

      MOV LEDBUF4,A

      LCALL DISPNUMBER

      LCALL OPC

      LJMP  NEXTSTEP

NNN:  MOV   LEDBUF4,#09

      LCALL DISPNUMBER

      LCALL OPC

      LJMP  NEXTSTEP

;数值计算后输出到0832

OPC:MOV A,LEDBUF3

    MOV B,#10

    MUL AB

    ADD A,LEDBUF4

    MOV OP,A

   ;MOV DPTR,#8000H

   ;MOVX @DPTR,A

RET

; 变量初始化

INATI:MOV LEDBUF1,#10

    MOV LEDBUF2,#10

     MOV LEDBUF3,#2

     MOV LEDBUF4,#0

     MOV LEDBUF5,#11

    MOV LEDBUF6,#12

     RET

显示前查表

DISPNUMBER:

        MOV     R0,#LEDBUF6

        MOV     R1,#06H

DISPNUMBER_0:

        MOV    A,@R0

        MOV    DPTR,#TABLE

        MOVC   A,@A+DPTR     

        LCALL  SENDDATA

        DEC    R0

        DJNZ   R1,DISPNUMBER_0

        RET

;清数码管

CLEARDISP:

        MOV     R7,#06H

  CLEARDISP_0:

        MOV     A,#0FFH

        LCALL   SENDDATA

        DJNZ    R7,CLEARDISP_0

        RET

;数码管显示

SENDDATA:PUSH    01H

        MOV     R1,#08H

SENDDATA_0:

        CLR     C

        RRC     A

        MOV     LEDDATA,C

        CLR     LEDCLK

        SETB    LEDCLK       

        DJNZ    R1,SENDDATA_0

        POP     01H         

        RET

;延时子程序

 DELAY:  MOV     R6,#0CDH

 LL1:    MOV     R5,#0F9H

 LL0:    NOP

        NOP

        DJNZ    R5,LL0

        DJNZ    R6,LL1

        RET

;表定义

TABLE:    DB 81h     ;0

         DB 0F9h    ;1

         DB 15h     ;2

         DB 31h     ;3

         DB 69h     ;4

         DB 23h     ;5

         DB 03h     ;6

         DB 0F1h    ;7

         DB 01h     ;8

         DB 21h     ;9

         DB 0ffh    ;不亮

         DB 019H    ;d

           DB 0BH     ;b

;程序结束

         END