基于单片机控制的放大器参数测试仪的毕业设计.doc
-
资源ID:4855146
资源大小:2.79MB
全文页数:49页
- 资源格式: DOC
下载积分:10金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于单片机控制的放大器参数测试仪的毕业设计.doc
一、题目要求和方案论证题目要求:1)制作出放大器参数测试仪1) 测试参数的种类、数量自定,电压增益不小于1000,输出幅度不小于10V;2) 测试参数的精度自定;3) 测试仪的功能,例如对测试的结果是否存储、显示、打印等自定。方案论证:方案一:基于模拟器件的信号处理方法整机测试指标:放大器放大倍数,输入阻抗,输出阻抗,最大不失真电压。电路实现方法:前端信号采用8038集成函数发生器产生测量信号,频率的改变利用改变外界的电阻方法来实现。放大器输出幅度的测量采用二级管检波的方法进行测量,同时利用模拟除法电路对输入信号和输出信号进行运算,从而得到放大器的放大倍数。对于最大不失真电压的测量采用模拟滤波法,众所周知,在放大器输出电压失真的情况下,会产生谐波分量,利用低通和高通滤波器,我们便可以将基波分量和谐波分量分离出来,从而得到基波分量与谐波分量的比值,根据比值的大小,我们便可以判断出失真与否,还有失真的程度,即完成了对放大器参数的测量。基于模拟器件的信号处理系统是一种比较传统的信号处理方法,一般应包括放大器、滤波器、乘法器、除法器等。这种系统实时性比较好,而且如果没有对精度的特殊要求,它的造价一般也比较低。但用于这种场合是不合适的,原因在于这一信号处理系统要用到除法器,而模拟除法器要达到比较高的精度,其造价是比较高的,而且调试也比较困难,稳定性很难保证,因此本设计将不采用模拟器件作为核心的信号处理系统。方案二:基于CPLD作主控单元数字测量与分析方法整机测试指标:幅频特性、输入阻抗、输出阻抗、最大不失真电压、失真度的测量;电路实现方法:前级信号源利用FPGA来实现,通过DDS技术产生频率和幅度可程控的信号源,用于对放大器的测量;后级输入阻抗,输出阻抗,最大不失真电压,失真度的测量,采用CPLD控制外接高速AD进行数据采集与处理,从而得到对放大器参数的测量。方案的优缺点:优点:完全依靠于数字化的测量,比如对最大不失真电压的测量,可以利用CPLD进行FFT,从而完成对信号频谱的分析,得到最大不失真电压和失真度的测量。此种方案处理速度快,实时性好。缺点:成本高,编程任务重,同时针对题目的要求,由于电压增益不小于1000倍,输出幅度不小于10V,可以很明显的看出,测量对象是低频放大器,因此对主控单元的处理速度要求不是非常严格,因此设计过程中没有采用此方案。方案三:基于单片机作为主控单元,利用数字器件的测量整机测试指标:幅频特性、输入阻抗、输出阻抗、最大不失真电压;电路实现方法:信号源采用AD9850进行生成,采用AD9850的最大优点是频率可控,频率稳定度高,且幅度稳定,一般不需要外界的附加电路便可以实现,从而给电路的设计带来方便,放大器的输入阻抗测量采用等效电阻法进行测量,放大器的输出阻抗利用双重负载法进行测量,大负载接入放大器输出端,可以将电压信号完全采集出来,而利用小负载时,由于放大器本身存在内阻,因此当小负载可以和放大器的输出电阻相匹配的时候,便可以等效为放大器的输出电阻和小电阻进行分压,从而利用公式可以求得放大器的输出电阻。而最大不失真电压的测量采用了频域计算的方法,通过时域的测量并进行了变换得到了最大不失真电压。另外系统采用此方案,有许多优点,例如不易受干扰、重复性好、调试容易、稳定性好等,最突出的是精度高。缺点是:实时性较差、系统复杂,造价稍高,需要较多的开发经验。对于这一系统,由于对实时性要求不是太高,而精度是主要矛盾,因此我们决定选取基于数字器件的信号处理系统,来完成本设计。综上所述,我们选择方案三,通过分析可以看到,方案一没有充分应用现在电子器件的大规模集成电路,因此,实现的功能不能够达到智能仪器的要求;方案二虽然应用了大规模集成电路,但是成本较高,同时由于测量的放大器是低频放大器,因此对速度要求不是非常严格,因此完全可以利用单片机来作为主控单元,同时前端信号的产生,利用了AD公司的单片DDS专用芯片AD9850来实现,它具备与单片机方便的接口,可以通过单片机编程实现对其产生信号频率的控制,缩短了整机的开发时间。二、整机工作原理与功能实现1、 系统的方框图设计待测放大器人机界面放大器测试仪123 图2-1 系统设计方框图以上框图中表示的为放大器参数测试仪的主要组成。1) 待测放大器:待测放大器的主要技术指标均已达到或超过题目当中给定的测量指标。经过直接测量,放大器的最大放大倍数为1200倍,输出最大不失真电压为14V,输入阻抗为10K,输出阻抗为50-100欧姆。由此可见,这样的低频模拟放大器基本可以满足我们的测试要求。待测放大器电路采用集成运算放大器完成,集成运算放大器性能指标大大优于晶体管组成的分立元件放大器。理想集成运算放大器的主要特点:差模增益趋向于无穷大,输入电阻趋向于无穷大,即两个输入端之间的等效电阻很大。集成运放的共模抑制比很大,通常大于80至100dB。关于集成运放的输出端与输入端之间相位关系特性主要有下列几点:同相输入端与输出端的信号相位相同,反负相输入端与输出端信号相位相反。在反相输入端信号电压不变时,同相输入端的输入信号电压增大,输出端的信号也在增大;同相输入端的输入信号电压减小,输出端的信号也在减小。在同相输入端信号电压不变时,反相输入端的信号电压增大,输出端的信号电压减小;反相输入端的信号电压减小,输出端的信号电压增大。集成运放的输出电压由下式决定:UoAo(Ui1Ui2)式中:Uo为集成运放的输出电压;Ao为集成运放的开环放大倍数;Ui1为集成运放同相输入端信号电压;Ui2为集成运放反相输入端信号电压。从上式中可以看出,当输入信号电压UO1大于输入信号UO2时,输出信号电压UO1大于零(为正);当输入信号电压UO1小于输入信号UO2时,输出信号电压UO1小于零(为负)。为了电路分析和计算的方便,需要将电路中的集成运放看成是一个理想的集成运算放大器,显然当集成运算放大器的性能愈好时,计算和误差就会愈小,所设计的实际电路与理论计算就愈接近。1:反相放大器反相输入运算放大器的输入输出关系为+_+Uo_+Ui_R1RfRpUo=- Auf Ui=-Rf Ui/R1输入电阻 Ri=R1输出电阻Ro0平衡电阻Rp=R1/Rf 图2-2 反相放大器电路反馈电阻的阻值不可太大,否则会产生教大的噪声及漂移,一般为几十千欧到几百兆欧。R1的取值应远小于信号源的内阻。反相放大器的实际输出电阻在一定的输入电压Ui作用下,反相放大器的输出端可以看作是电势为一定值的有源二端网络,其等效输出电阻是在无负载时输出开路电压Uo除以负载短路电流Ik,Roe=Uo/Ik如下图2-3所示,由于输出端短路接地,输出对反相端的反馈电压为零,反相端对地的电压为输入电压Ui的分压值+Ui-R1U-R2RdR3I2Ro+Eo-IoIk图2-3 放大器输出电阻等效计算电路U- =UiR2/(Rd+R3)/R1+R2/(Rd+R3) =UiR2(Rd+R3)/R2(Rd+R3)+R1(R2+R3+Rd)差模输入电压经过差模放大后的输出电压为Eo= -Ad(U-U+)=-AdU-Rd/(Rd+R3)反相放大器的输出短路电流Ik是Eo经过Ro的短路电流Io和经R2流入地的电流I2之和。则有Ik=Eo/Ro+U-/R2=-AdR2Rd+Ro(Rd+R3)Ui/RoR2(Rd+R3)+R1(R2+R3+Rd)由以上式子可求得反相放大器的等效输出电阻为Roe=Uo/Ik=RoR2(Rd+R3)+R1(R2+R3+Rd)/RdR1Ad+(Rd+R3)(R2+Ro)+R1(R2+R3+Rd+Ro)因为RoR1、R2,则RoeRo/(1+Ad F)可见反相放大器的输出电阻与集成运放的输出电阻Ro相比,降低了(1+Ad F)倍。当输入交流信号时,由于运放的开环增益是频率的函数,反相放大器的输出阻抗也是频率的函数,则Zoe=Zo/1+Ad(j)F一般信号频率n,则输出阻抗ZoeRo/(1+AdF),当输出频率比较高时,输出阻抗将有很大的变化。2:同相放大器 同相放大器的电路图如下图2-4所示:+_+Uo_+Ui_R1RfRp图2-4 同相放大器电路输入与输出之间的关系为 Uo=(R1+Rf)Ui/R1输入电阻 Ri=ric此式中ric 为运放本身同相端对地的共模输入电阻,一般比较大,约为100兆欧母左右。同相放大器的输出电阻与反相放大器的输出电阻一样 Ro0平衡电阻为 Rp=R1/Rf同相放大器与反相放大器相比,同相放大器具有很高的输入电阻和很低的输出电阻是很好的阻抗变换器。2)放大器测试仪:这是测试放大器的最关键的部分,此部分可以实现对输入阻抗,输出阻抗,最大不失真电压,幅频特性的测量。主要框图如下:信号源待测放大器检波器多路开关A/D数据采集主控器MCU锁存器图2-5 放大器参数测试原理框图3)人机界面:主要由两大部分组成,分别为上位机显示界面和下位机操作系统所构成。对于下位机的操作系统主要包括,键盘部分,数码管显示部分,数据上传部分,电源部分所构成。其中,利用键盘,用户可以选择要测量的放大器参量,从而进行相应的测量;数码管显示部分,可以显示用户操作是否正确,操作的提示信息等附加功能;数据上传部分是整个系统的连接纽带,负责向上位机传送测得的数据;电源部分主要为整个系统提供稳定的工作电源。2、各级电路的选取以及工作原理1)幅频特性测量电路的选取采用检波法测量输入输出的信号幅度,然后进行除法运算,从而达到了测量幅频特性的目的。对于前端信号利用了AD公司的专用集成芯片AD9850,它具有于单片机便捷的接口,因此可以通过软件对输出信号的频率进行控制,由于测量的对象是低频放大器,因此我们使AD9850输出的频率范围是从0500KHZ, 幅度的测量通过二极管检波。在实际电路当中,根据实际需要对电路参数进行了恰当的设置。为了保护AD9850,同时减小信号源的输出阻抗,我们在AD9850的后侧放了一级射随,采用了AD813完成,此运算放大器的带宽为10MHZ,完全可以满足我们的需要,信号经过射随之后,经过检波管进行检波,所得的直流进入A/D,放大器的输出信号也要经过检波管进行检波,防止检波电路对前级放大器输出造成影响,因此在放大器与检波器之间加了一级的缓冲,从而达到了相互隔离的目的。检波之后,得到的直流进入A/D转换,A/D的输入切换通过模拟开关来实现,虽然模拟开关在导通时有一定的内阻,但是电路采用模拟开关,切换的是电压信号,用模拟开关便可达到这一目的,并且不会给系统带来特别大的误差;如果采用继电器,虽然导通内阻为零,但是切换速度不能过快,给系统的实时性造成影响。鉴于此种原因,我们选择了模拟开关实现对电压信号的切换测量。A/D转换器,我们采用的是TI公司的8位串行单通道AD TLC0831,它占用外界资源少,接口简单,编程方便。图2-6 幅频特性测试电路(一)图2-7 幅频特性测试电路(二) 2) 输入阻抗测量电路的选取在输入阻抗测量电路的选取上,我们首先考虑到把放大器的输入阻抗等效为一个待测电阻,建立起来这个概念之后,对于输入阻抗测量电路的选取,就有了一个整体的认识。将前端信号源和放大器的输入端之间串入了一个已知阻值的电阻,然后通过检波管对信号源的幅值和放大器等效输入阻抗上的电压幅值进行检波,送入A/D,并且通过单片机进行计算,便可以得到放大器的输入电阻。具体的电路如下图所示。图2-8 输入阻抗测试电路需要说明的是,对于测量放大器的输入阻抗时上端已知电阻的选取到底以何种标准为宜,经过我们反复的测试,发现这个已知电阻的选取既不能太大,又不能太小,太大则导致落在放大器等效输入阻抗的电压值过小,测量不准确;同理,如果阻值过小,导致信号源的压降全都落在放大器的等效输入电阻上,也不能精确的测量放大器的输入电阻值。3) 输出阻抗电路的选择对于输出阻抗的测量的方法与输入阻抗有类似的方面,输出阻抗也可以等效,这样我们在放大器输出时接入两种不同的负载,一种是无穷大,相当于开路时测量放大器输出的电压值,一种情况是接入一个阻值赋在很小的负载,这样由于放大器本身存在内阻,导致有一部分电压会落在内阻上,从而通过检测电压值,便可以计算出放大器的输出阻抗。具体电路形式见下图。图2-9 输出阻抗测试电路4) 最大不失真电压测量的电路选取对于最大不失真的测量,已经在前面的方案选择里讲到了很多种的实际测量方法,可以利用时域分析法,频域法;在这里我们采用了频域分析的方法,利用A/D转换器对放大器的输出电压进行测量,并对采集的数据进行FFT变换,从而得到电压的频谱,再设计作品的实际过程中,我们利用了Tektronix TDS220数字示波器对放大器地输出电压进行了频谱分析,得到了其基波与各次谐波之间的频谱幅度关系,分析发现,当放大器的输出电压出现失真时,它的基波分量和三次谐波分量会有较大的变化,特别是三次谐波分量会很快上升,而基波分量有小幅度的下降,从而在对输出电压进行FFT之后,对其的基波与三次谐波的幅度进行比较,便可以得到该放大器的输出电压是否失真,并可以得到最大不失真电压。具体电路如下图所示:图2-10 最大不失真电压测试电路5) 信号源电路与A/D电路信号源采用AD公司的专用集成芯片AD9850,可以产生频率可控的正弦信号。由于测量对象属于低频放大器,因此产生信号的频率范围是从0-500KHZ;AD9850采用32位频率控制字,由于单片机是8BIT数据宽度,因此需要4个字节便可以完成对9850频率的设置;对于频率与频率控制字之间的关系,如下公式所示:其中公式当中的Fout是AD9850输出的频率值;频率控制字;CLKIN是AD9850的主振时钟。可以看到,根据所要得到的频率值,很容易就可以得到ad9850的频率控制字。通过单片机实现对ad9850的操作就很容易的得到了测量放大器的前端信号源。其中,ad9850的各位控制字和读写时序见下图:图2-11 AD9850时序图A/D数据采集电路采用TLC0832进行测量,A/D转换器的输入范围是05V,8BIT串行,因此与微处理机接口与编程都十分方便。 TLC0832的基本特性:TLC0832是八位逐次逼近模数转换器,它有两个可选择的输入通道。TLC0832的特点如下:*8位分辨率;*可和微处理器接口或独立使用;*可满量程工作或使用5V基准电源;*具有单通道或多路器选择的双通道,并可选择单端或差分输入;*采用单5V供电,输入范围为05V;*输入和输出与TTL和CMOS兼容;TLC0832处于工作状态时,置CS端方可启动转换,并使所有的逻辑电路使能。CS在整个转换过程中必须置为低电平,接着从处理器接受一个时钟。当一个时钟的时间间隔被自动插入后,可以使多种转换器选定的通道稳定。而当DO脱离高阻状态时,可提供一个时钟的时间间隔的前导低电平,以使多路器稳定。SAR比较器用于对电阻梯形网络输出的逐次信号和输入模拟信号进行比较,比较器输出则用于表示刘大于还是小于电阻梯形网络的输出。在转换过程中,转换的数据同时从DO端输出,并以最高位(MSB)开头。在经过8个时钟后,转换完成,CS变高,内部所有寄存器清零,此时,输出电路变为高阻状态。如果希望开始另一个转换,CS必须有一个从高到低的跳变,且后面应紧跟着输入地址数据。 TLC0832的输入配置可在多路器寻址时序中进行,多路器地址通过DI端移入寄存器。用多路器地址选择模拟输入通道的方法如表2-1所列,其工作时序图如图1所示。表2-1 选择模拟输入通道通道号CH0CH1输入数据流(bit)110111图2-12 TLC0831时序图6) 数据处理与主控电路由于对数据采集与处理的速度要求不太高,同时以控制和运算为主的系统一般选用单片机来处理数据,单片机技术是比较成熟的技术,它的特点是以程序控制的方式把比较复杂的问题化大为小逐步求精,(如:乘法可以化为若干次加法处理)这样一来非常复杂的问题也可以处理了,缺点是实时性较差,单片机由于其使用面非常之广因此价格极其低廉,对于本系统使用单片机是再合适不过了。在有些场合速度要求较高而问题又比较复杂(如:数字滤波技术)就需要我们另辟蹊径了,比如DSP器件就是专为解决这些问题设计的。DSP器件从本质上说和单片机类似也是程序控制方式,但其采用了不同于冯-诺依曼的哈佛结构使程序运行速度更快,在总线上采用流水线结构,并专设有用于乘法运算的硬件乘法器。这些技术的综合运用使得DSP器件执行一条指令的时间以nS计。DSP器件的缺点是成本高对开发人员的数学功底要求较苛刻,但DSP器件以其固有的优点代表着数字信号处理器件发展的方向。本系统采用89C51单片机,由于其优良的性能和低廉的价格,用在本系统的数字处理机部分是非常合适的。单片机按其性能可分为8位和16位,16位单片机由于其造价较高使用不多,8位单片机以51系列为代表。AT89C51单片机是51系列单片机性价比较高的一种,内含4K电可擦ROM、128字节RAM。用户程序可以直接烧录到芯片内而不需要外配ROM和RAM非常方便,AT89C51内含两个16位定时器,一个全双工串口,5个双优先级中断源,4个8位I/O口。这些资源在大多数场合已足够用,这里也不例外,因此本设计的数字处理机电路非常简洁。7) 显示与键盘电路对于这部分电路、一般常用两种办法:A:利用专门译码芯片如CD4053和专用编码芯片ICL8279控制数码管和键盘。B:利用单片机、I/O口直接驱动输入方法和完成对键盘的控制。显示AD985089C51单片机键盘MAX7219图2-13 显示与键盘电路由于本设计用了多达16个键盘和8个数码管,用专用模块编码译码成本相对较高(ICL8279零售价40元),所以不采用A方案。另一方面,考虑到本设计中单片机负荷较重,需要同时进行数据的采集及处理,并控制多个模块工作,难以再给出I/O口来对键盘和数码管进行控制,因而B方案也是不合适的。针对以上分析,根据题目要求,我们用MAX7219来管理8位数码管,利用单片机的P1口完成对键盘的扫描与控制,从而完成了廉价高效的显示和键盘单元,由于MAX7219内部有128字节的RAM,因此还为系统提供了128位的RAM,以及更为强大的数据处理能力,可谓一举多得。实践证明这样的设计是行之有效的。8) 与上位机通讯电路串口是计算机与外部设备进行数据交换的重要介质,所以串行通信在实际工程实现中有着广泛的应用。而Microsoft公司的VC+6.0功能强大,其基础类库(MFC)封装了WIN32 API中的标准通信函数,可方便的支持串口通信。在放大器参数测试仪的设计中,为了能够将幅频特性曲线、输入阻抗、输出阻抗、最大不失真电压通过PC进行显示,我们运用了串口进行了下位机(单片机)与上位机(PC机)的通信。二者通过RS-232串行口接收或上传数据和指令。传输介质为二芯屏蔽电缆,接线图如下图所示:图2-14 RS-232串行口接线图RS-232信号的电平和单片机串口的电平不一致,必须进行二者之间的电平转换。在此使用的集成电平转换芯片MAX232为RS-232C/TTL电平转换芯片。它只使用单+5V为其工作,配接4个1UF电解电容即可完成RS-232电平与TTL电平之间的转换。其原理图如下图所示,转换完毕的串口信号TXD、RXD直接和单片机AT89C51相连接。图2-15 RS-232C/TTL电平转换图3、电路设计与参数计算1) 待测放大器的设计为了满足测试要求,设计的放大器应该具有放大倍数在1000倍以内可调的特点,因此我们采用两级运放,第一级最大放大倍数50倍,第二级最大放大倍数为20倍,从而达到设计要求。同相放大器与反相放大器相比,同相放大器具有很高的输入电阻和很低的输出电阻是很好的阻抗变换器。因此为了提高放大器本身的性能,我们第一级放大采用同相而第二级采用反相放大。其电路图如图2-15所示,图2-16 放大器原理图图2-17 放大器电路图2) 输入阻抗测量电路的设计在输入阻抗电路设计参数的计算过程中,考虑到了几个参数的选取,包括检波器的输入阻抗,检波二极管的抬升电压的获取,放大器输入端固定电阻的阻值选取;为了提高检波器的输入阻抗,在检波管的后级电阻选取了大电阻,为了提高低频信号的检波质量,与其并联的电容也选取了较大值,根据实际效果,检波电阻为50K,检波电容为10UF,通过实际测量,可以满足电路的要求。为了对幅度小的信号也能进行检波,防止检波管的死区电压影响检波管的效率,在检波管上加了一个偏置电压,该电压能够让检波管处于微导通状态,从而提高了检波效率。根据实际情况,选择的检波管型号为2AP9,属于锗管,因此将偏置电压设置为0.3V,实际证明,效果很好。由于检波电路的输入阻抗与前面提到的电路均有直接关系,因此,在前面的电阻选择上,我们均选用了较大的电阻,以免使检波电路的输入阻抗过小,影响前级电路。3)幅频特性电路参数的计算在幅频特性测量上,也应用了检波电路,具体电路参数与输入阻抗的参数计算过程近似。电路实现过程中发现,在放大器放大倍数超过800倍时,放大器输出检波器会对放大器的输出信号造成影响,这对测量输出阻抗和最大不失真电压是极为不利的。防止出现这种失真,我们在放大器的输出端加了一级射随器,这样解决了放大器失真的问题。4) 输出阻抗的测量参数的计算对待测放大器进行了手动测量,发现放大器的输出阻抗在10欧姆-30欧姆之间,如此小的输出阻抗,给实际的自动测量带来了很多技术难题。针对这个问题,我们采用了双负载对输出信号进行提取,对于双负载的切换,并没有采用模拟开关,而是采用继电器,因为输出阻抗本身就较小,采用模拟开关,由于其本身存在导通电阻的问题,因此会给测量带来很大的误差。虽然继电器切换频率不能过快,但是对于放大器输出阻抗的测量上并不需要对继电器进行过高频率的切换,因此采用继电器实现切换是理想的选择。放大器的双负载,在实际过程中,我们分别选择了100K和100欧姆,因此可以对放大器的输出阻抗进行测量。三、AT89C51软件设计第一节 放大器各参数测量程序设计此部分处理程序主要控制着A/D转换器的工作,检测峰值,继电器和模拟开关的切换,与微机的通信和显示键盘通信等。1)主程序设计初始化部分用于加载各特殊功能寄存器的值,和一些重要的寄存器初始状态,然后检测是否开始测量,这时程序不停检查各测量标志位的状态,一旦有要测量的指标,马上跳转到相应的程序完成对相应指标的测量,放入暂存器保存当前值,以备用于上传到PC机。(详细程序见附录)2)中断程序设计中断程序主要用于键盘检测与相应功能标志位的置位,一旦有中断申请,证明要测量放大器的某个参数,程序马上执行置标志位的工作,并迅速跳回主程序,主程序可以通过判断相应的测量标志位是否置位来执行相应的程序,这样可以保证对键盘响应的测量任务每一次都能以最快的速度执行,并且不会影响其他中断源的工作。3)定时器中断程序设计定时器中断程序主要用于控制A/D转换器的采样频率,由于在测量放大器的输入阻抗、输出阻抗、最大不失真电压的过程中,要通过信号源加入一定频率的正弦信号,然后通过测量输入信号与待测量点之间的关系来计算出各个放大器的参数,信号源提供的频率为300HZ,因此采样速率我们设置为5K,因此在一个周期当中相当于采集了16个点,总共采集点数为128点,在测来能够最大不失真电压的时候,我们利用的单片机进行FFT变换,实践证明由128个数据点来进行FFT变换得到信号的频谱是比较好的。定时器初值计算:0EBHTL0 0FEHTH0H100592.11/8102.6553665536102.5K64-=´´-=-=´=-EBFES时钟周期定时时间初值定时时间1-44)串行通讯中断子程序设计串行通讯主要用于接收微机的控制信号,和握手信号,握手信号是一个特殊数值,当单片机接到这个信号后,马上在返回给微机这个信号,这样微机就可以判断出和本系统是否连上,为下一步的处理做准备,由于程序很简单,在此就不多作介绍了,详细情况参见源程序清单。波特率计算:晶振选用11.0592MHz的原因,只有这一晶振频率下才能保证单片机工作最快且定时器的初值为整数,否则或者单片机工作速度下降或者波特率不准影响通讯质量。第二节 显示与键盘处理程序设计显示与键盘处理程序担负着原始数值信号到显示七段码的变换,对数码管和键盘的扫描等功能。此部分程序由于在数码管扫描时采用的是MAX7219专用数码管扫描芯片,MAX7219是串行接口,能驱动8位数码管,其读写时序非常简单,根据下面的时序图,我们很容易的编写了AT89C51的程序,在单片机当中,我们开辟了8个字节作为显示缓冲区,同时用MAX7219的最大优点是,一旦单片机将数据发送给MAX7219之后,那么单片机就不用去管理数码管了,可以由MAX7219单独来完成扫描过程。MXA7219时序图如下图所示:图3-1 MAX7219时序图键盘程序采用中断设计方法,通过与门连接到单片机的中断口上,我们利用了中断INT0,从而实现了对4*4键盘的扫描。由于程序设计不是很复杂,在此不再加以赘述,详见程序清单。四、上位机程序设计对于单片机与PC机通讯采用了协议,传输波特率为9600,通过VC+ 6.0编写上位机的程序,在WINDOWS 环境下提供了完备的API应用程序接口函数,程序员通过这些函数与通信硬件接口。通信函数是中断驱动的:发送数据时,先将其放入缓存区,串口准备好后,就将其发送出去;传来的数据迅速申请中断,使WINDOWS 接收它并将其存入缓冲区,以供读取。发送过程较易实现,接收处理方式主要有查询和中断方式。采用查询方式时,CPU要不断测试串口是否有数据,以防止接收串口数据出现错误、遗漏、效率低;而采用中断方式则无需测试串口,一旦有数据传至,CPU终止当前任务,由中断服务程序完成操作,所以,中断方式具有效率高、接收准确、编程简单等优点。因此在上位机程序的编写过程中采用的是中断接收方式。第一节 通信协议为了实现更好的数据传输,防止出现数据冲突,我们在单片机与上位机通讯时,约定了协议,当单片机向PC机发送关键字时,PC机程序才执行相应的功能。现将双方的通讯协议介绍如下:波特率为9600bit ,N81(无奇偶校验,8数据位,1停止位),每个字节使用ASCII码1、 幅频特性(单位:横轴K欧姆,纵轴倍数)A 总点数 X 坐标 X 坐标 。 S起始位1字节 幅频特性总点数4字节 1字节 7字节 。 停止位1字节2、 输入阻抗(单位:K欧姆)I 输入阻抗 S 起始位1字节 3字节 停止位3、 输出阻抗(单位:欧姆)O 输出阻抗 S1字节 5字节 停止位4、 最大输出不失真电压(单位:V)V 最大输出不失真电压 S1字节 2字节 停止位 第二节 程序实现与流程该程序实现主要功能为:以图形的方式显示被测放大器的幅频特性,输入阻抗,输出阻抗及最大不失真电压。程序实现方法,串口通过MSComm控件接收数据,对接收到的数据进行处理并在屏幕上显示出来。1. 在OnInitDialog中配置串口串口设置为二进制方式,大于等于一个字符则发出一个OnComm事件,配置为“9600,n,8,1”。2. OnComm函数OnComm函数接收数据并存入缓冲区,检测到S后则判为一组新数据接收完,发出WM_COMNEWDATA消息。3数据处理OnComNewData()函数响应WM_COMNEWDATA消息并对接收到的数据进行处理,为防止前一数据未处理完毕又接收到新数据造成数据丢失,特设一循环检测直到处理完毕。4屏幕显示在OnPaint()函数中将接收到的数据按其特定的方式显示出来。各部分程序流程图NY清空m_FA将得到的新值赋给m_FA按得到的频点对未采集到的插值Ym_strRxData中有无I解码后送给m_Rin即输入阻抗解码后送给m_Routm_strRxData中有无V解码后送给m_violocityM_strRxData中有无O开始m_strRecv从开始到S赋给m_strRxDatam_strRecv中有无sm_strRxData中有无A结束YNNYNY图4-1 屏幕显示程序流程图上位机的程序流程如下图所示:将内存位图显示在显示器结束开始创建内存DC及位图背景图放入内存 在内存DC上绘制网格线在内存DC上绘制字符标注绘制幅频响应曲线图4-2 上位机程序流程五、实验数据测量与误差分析为了验证所作放大器参数测试仪是否能够达到测试指标,我们用仪器进行了实际的测量,实验仪器与测试数据如下。我们用到的测试仪器是,WYK302B2直流稳压源、SG1640B信号发生器、Tektronix TDS220数字示波器、DA-16型晶体管毫伏表、Sabtronics (5000 DMM/SCANNER型) 高精度7位半数字电压表。1)放大器幅频特性测试表5-1 放大器幅频特性测试数据直流电源Vcc=+15V,输入信号峰峰值:Vpp=10mV输出信号Uo也是峰峰值f/Hz10023554376410181300157018602160Uo/V12.212.212.212.212.212.212.1512.112.0Au122012201220122012201220121512101200f/kHz2.542.903.504.044.725.285.926.958.05Uo/V11.911.8511.8011.6511.5011.4011.3011.2010.90Au119011851180116511501140113011201090f/kHz9.2510.6211.9012.5012.9914.5017.7920.2825.03Uo/V10.309.648.968.688.487.686.485.684.44Au1030964896868848768648568444f/kHz33.0039.5050.7660.2065.2080.3989.30101.5131.5Uo/V3.242.581.841.381.160.8240.6880.5600.388Au32425818413811682.466.856.033.8f/kHz155.2259.3353.9413.4491.5Uo/V0.2760.1080.0980.0820.051Au27.610.89.88.25.1根据以上数据可以画出放大器的幅频特性图如下所示,为了方便观察,我们将此图分为0500kHz和0100kHz两档来画。 图5-1 放大器幅频特性图(0500kHz)(12990Hz,848)图5-2 放大器幅频特性图(0100kHz) 由以上的数据和幅频图分析我们可以很明显的看到,放大器的低频放大倍数为1220倍,通频带为0Hz13kHz,满足低频放大器的要求。2)最大不失真电压直流电源Vcc=+15V ,f为输入信号频率,Vpp为最大不失真电压表5-2 最大不失真电压测量数据(一)f/kHz0.1010.3960.5621.021.342.454.916.428.57Vpp/V14.414.514.514.414.314.414.414.314.3可见在08.57kHz范围内最大不失真电压基本保持不变,因此,在测量时采用300Hz信号输入。最大不失真电压Vpp=13.38±0.08V直流电源Vcc=+12V ,f为输入信号频率,Vpp为最大不失真电压表5-3 最大不失真电压测量数据(二)f/kHz0.1150.3260.5871.121.983.565.126.778.43Vpp/V11.611.511.611.411.311.411.411.311.3可见在08.43kHz范围内最大不失真电压基本保持不变,因此,在测量时采用300Hz信号输入。最大不失真电压Vpp=11.4±0.1