3.软件设计
3.1程序总体流程图
图3.1程序总体流程图
3.2程序清单(见附录2)
4.系统测试
4.1测试仪器
台式万用表,型号:UT802 任意波形发生器,型号:YB32020
7
示波器,型号:DXO-X2002A
4.2测试结果
(1)输入阻抗测试
在输入端串接50Ω电阻,测量输入端电压峰峰值,通过计算可测的输出阻抗。
结果分析:经过测量,在不同带宽范围内均可满足输入阻抗?50Ω。 (2)
类型 序号 项目与指标 测试记录 Vimin?10V 电压增Vo?1.0V 益>40dB (1) 放大器增益 AV?40dB PO?0.2W 增益手动连 续调节 0~40dB 最大输出电 (2) 输出电压 压有效基本 值>2V VO?11V 要求 f1?2MHz 0~5MHz VO1?1V (3) -3dB通频带 f1?4MHz VO1?1.032V f2?5MHz VO2?950mV 0~4MHz通频最大值= 带内增益起最小值= 伏<1dB 8
(4) 负载电阻 负载电阻(50?2)Ω RO?50? 类型 序号 项目与指标 测试记录 Vimin?10mV (1) 电压增Vo?10V 益>60dB 放大器增益 AV?60dB PO?0.2W f1?2MHz 0~10MHz VO1?10V -3dB通频带 f2?9MHz 发挥 部分 VO2?7.23V (2) f3?10MHz VO3?6.68V 0~9MHz通频最大值=10V 带内增益起最小值=7.21V 伏<1dB (3) 输出电压 最大电压有效值?10V VO?11.5V 进一步降低 输入电压提Vimin?5mV (4) 提高电压增益 高放大器的电压增益,电VO?11V 压增益 每提高2dB Av?66.8dB AV可预置并显示 (5) 可预置并显示 AV可连续调节带宽并显示 带宽可预置并显示 9
5.结束语
本设计利用AD8039实现前级放大、VCA810实现可控增益调节,采用三阶无源滤波完成3dB截止频率为5MHz和10MHz的要求,最后采用AD811和BUF634实现功率放大部分。采用C8051F020单片机进行DAC、按键控制和LCD显示。
在系统设计的过程中,我们遇到了很多问题,VCA810输出带宽不够、滤波器截止频率和通频带内增益起伏不满足1dB要求、AD811放大倍数不对、输出带宽过小、单片机控制后波形很不好等问题。通过小组成员间的交流讨论、仔细分析最终解决了上述问题,但其中AD811输出带宽的问题还是没能得到很好的解决,不能满足带宽要求。在这个过程中,我们深刻地体会到共同协作和团队精神的重要性,并且也提高了自己发现问题、解决问题的能力。
参考文献
[1] 童诗白,华成英.模拟电子技术基础(第四版)[M].北京:高等教育出版社,2006
[2] 肖看,李群芳.单片机原理、接口及应用——嵌入式系统技术基础(第二版)[M].北京:清华大学出版社,2010
[3] 黄智伟,王彦,陈文光,朱卫华.全国大学生电子设计竞赛训练教程(修订版)[M].北京:电子工业出版社,2010
附录
附录1 主要元器件清单
(1)C8051F020 1片 (2)LCD及矩阵键盘 1个 (3)AD8039 1片 (4)VCA810 1片
10
(5)OPA2227 1片 (6)AD844 1片 (7)电容电阻电感 若干
附录2 程序清单
main.c
/******************************************************************** 本程序为宽带直流放大器。 DAC0控制VCA810 (第3脚);
TXD(P0.0)控制滤波器的截止频率是5MHz还是10MHz(默认5MHz); RXD(P0.1)控制VCA810是手动调节还是以5db步距调节(默认5db步距调节);
Key1: 10MHz; Key2:5MHz;
Key3:5db步距调节; Key4:手动调节;
********************************************************************/ #include \#include \#include \#include \#include \
sfr16 DAC0 = 0xD2; sfr16 DAC1 = 0xD5;
sbit sps_0=P0^0; sbit sps_1=P0^1;
static int count=0;
unsigned int sample[13]={0,188,404,613,822,1032,1241,1451,1660,1869,2078,2287,2499}; float
sample1[13]={0,0.125,0.250,0.375,0.500,0.625,0.750,0.875,1.000,1.125,1.250,1.375,1.500};
void KeyPressedHandler (); //按键检测函数 void Clear_LCD_all(void); //屏幕处理函数
11