多功能晶体管测试仪毕设论文
摘要晶体管的出现在电子器件的历史上具有划时代的意义,在当今社会的重要性更是不容忽略,它实际上是所有现代电器的关键活动元件。因而研究测量其参数的测试仪器的具有重大的意义。在分析传统XJ4810型晶体管特性图示仪的电路结构和功能实现的基础上,结合模拟和数字电子技术的特点,确立了整个系统构成。本系统以凌阳16位单片机SPCE061A为核心,其内部集成了两路10位DA和7通道的AD,用一路DA输出作为压控电压源的输入端,压控电压源的输出端作为集电极电压的控制端;另一路DA则作为压控恒流源的输入端,压控恒流源的输出端则作为基极的电流控制端。用其中的两路AD分别采样基极和集电极电压,采样结果送CPU处理后再送液晶显示器显示。系统采用的液晶显示器是LCM12664ZK点阵图形液晶模块,显示效果好。系统软件采用C语言在凌阳单片机集成开发环境Μ’NSP™IDE200上编程,利用模块化的程序设计方法编写系统各模块程序,使整个系统性能稳定,易于扩展。本系统的压控恒流源和压控电压源都是采用运放构成,电路简单,精度能满足设计要求。经测定恒流源的输出范围为±100UA,误差为±05UA;电压源的输出范围±10V,误差为±002V。本测试系统目前能够完成三极管管型和极性判别、输入、输出特性曲线、放大倍数等参数以及二极管一些参数的测定。它具有功能稳定,精确度较高,易于功能扩展等特点。关键词SPCE061A;LCM12864ZK;晶体管参数;压控恒流源;压控电压源ABSTRACTTHEAPPEARANCEOFTRANSISTORHASANEPOCHALIMPACTONTHEHISTORYOFELECTRONICELEMENT,ANDITSSIGNIFICANCECOULDNOTIGNOREASTHEACTIVECOMPONENTOFALLMOSTOFELECTRONICDEVICESSO,TAKINGARESEARCHONTHETRANSISTORTESTEREASURINGITSPARAMETERHASGREATIMPORTANCEBASEDONTHEANALYSISOFGENERALCONFIGURATIONANDWORKINGPRINCIPLETHETRADITIONINSTRUMENTXJ4810,COMBINEDWITHTHEANALOGANDDIGITALELECTRONICTECHNOLOGY,WEASCERTAINTHESYSTEM’SSTRUCTURETHISSYSTEMBASESONSPCE061A,WHICHCONTAINSTWODACANDSEVENADC,ONEDACISUSEDASTHEOFVCVSVOLTAGECONTROLLEDVOLTAGESOURCE,WHICHOUTPUTISUSEDTOCONTROLTHEVOLTAGEOFCOLLECTORTHEOTHERDACISUSEDASTHEOFVCCSVOLTAGECONTROLLEDCURRENTSOURCE,WHICHOUTPUTISUSEDTOCONTROLTHECURRENTOFBASETHETWOOFSEVENADCAREUSEDTOSAMPLETHEVOLTAGEOFCOLLECTORANDBASERESPECTIVELY,ANDTHERESULTISSENDTOTHEDISPLAYAFTERPROCESSINGOFPROCESSORTHISSYSTEMUSEDLCM12864ZKASTHEDISPLAY,WHICHHASNICEDISPLAYEFFECTTHISSYSTEMSOFTWAREISDEVELOPEDONINTEGRATEDDEVELOPMENTENVIRONMENTΜ’NSP™200USINGCLANGUE,ANDWEUTILIZETHEMODULARIZATIONOFPROGRAMDESIGNTOMAKETHESYSTEMSTABLEFUNCTIONANDTOBEPRONGEDTOOTHERFUNCTIONTHISSYSTEM’SVCCSANDVCVSAREBOTHCOMPOSEOFAMPLIFIERTHECIRCUITISSIMPLE,ANDTHEPRECISIONCANMEETTHEDEMANDSOFDESIGNTHERESULTOFEXPERIMENTSPROVESTHATTHERANGEOFOUTPUTCURRENTOFVCCSISFROM100UATO100UA,THEERRORIS±20UAANDTHERANGEOFOUTPUTVOLTAGEOFVCVSISFROM10VTO10V,ANDTHEERRORIS±005VTHESYSTEMCANMEASURETHETYPEANDPOLARITY,THECHARACTERISTICCURVE,THEOUTPUTCHARACTERISTICCURVE,ANDAMPLIFICATIONOFTRANSISTORPARAMETERANDDIODESITHASTHESTABLEFUNCTIONANDHIGHACCURACYITISEASYTOBEEXPANDEDITSFUNCTIONKEYWORDSSPCE061ALCM12864ZKTRANSISTORPARAMETERVCCSVCVS目录引言11设计任务及要求12设计方案比较与论证121系统构架比较222显示方案比较223受控源3231受控源选择3232电流源4233电压源424调理模块53硬件电路设计531凌阳16位单片机SPCE061A简介5311SPCE061A单片机概述5312内部结构简要说明6313“61A”板介绍732测量电路的设计833压控恒流源电路934压控电压源电路1135电压调理电路1236键盘和LCD显示电路134系统软件设计1441系统软件设计概述1442端口分配1643液晶模块程序编写16431LCM12864ZK介绍16432基础驱动程序编写17433用户API功能函数编写1844功能模块编程20441管型和极性的判别20442直流放大倍数的测量21443输入特性曲线测量22444输出特性曲线测量23445其它功能扩展245系统调试及测定2551硬件调试方法及过程25511调试仪器25512调试过程2552软件调试及标定25521恒流源测定25522压控电压源的测定27523AD电压采样的测定296结果测量及分析3061测试仪器3062测试数据及分析30621管型判别30622放大倍数的测量30623输入特性曲线的测量31624输出特性曲线的测量327总结33谢辞34参考文献35附录36第1页共49页引言50年代起,电子器件出现了重大的突破,晶体管逐渐代替了电子管器件,使电子工业由电子管时代迈向晶体管时代,这是一次阶段性的飞跃。随着晶体管的出现,测量其参数的测试仪器晶体管管特性图示仪也相应而生,并随着晶体管的发展而发展。晶体管的参数是用来表征管子性能优劣和适应范围的指标,是选管的依据。为了使管子安全可靠的工作,必须注意它的参数。晶体管特性图示仪是一种能在示波管屏幕上观察和测试半导体管特性曲线和直流参数的测量仪器。目前学校教学使用的晶体管特性图示仪仍然是老式的体积庞大的模拟阴极射线管显示仪器,开发一种易用、便携、廉价的新型图示仪是具有现实意义的。晶体管参数测试仪与其它电子测量仪器一样,也经历了全电子管式全晶体管式晶体管与集成电路混合式几个发展阶段。1964年,我国第一台电子管式的半导体管特性图示仪JTL型图示仪问世。70年代初.上海无线电二十一厂试制了QT2型晶体管式的图示仪,满足了半导体器件飞速发展的需要。80年代,以XJ4810型为主要代表的晶体管与集成电路混合式的半导体管特性图示仪问世。它采用了CMOS数字电路、D/A变换器代替传统的RC充放电电路,使阶梯波质量有了质的飞跃;采用直流光点扫描,避免了容性电流干扰,使微电流测试范围由1ΜA/DIV扩展到20NA/DIV。目前,晶体管测试仪正向数字化、智能化方向发展,具有LCD显示、数字读出、光标测量的图示仪已经问世。数字技术、计算机技术、微电子技术大量应用于图示仪中,使它成为智能化的自动测量仪器。本系统定位于利用模拟与数字技术实现传统的晶体管参数测试仪的基本功能,尽力实现减小体积重量、性能稳定、参数测试准确、成本低、兼容性好的特点。本系统以内部集成两路DA和7路AD的凌阳16单片机为核心,实现控制和数据采集,并通过液晶显示模块LCM12864ZK对各项参数和输入输出曲线进行显示。1设计任务及要求设计一个晶体管参数测试仪,实现以下功能(1)能判别二极管好坏,极性;(2)能判别三极管管型,极性,好坏;(3)三极管Β测量;(4)晶体管输入特性和输出特性测试;(5)利用液晶显示相关信息及曲线。2设计方案比较与论证针对课题要求,经过分析,我认为主要由六个功能模块来实现系统设计。如图21所示。第2页共49页图21系统功能模块图下面分别从系统构架、显示方案、受控源以及调理模块等主要模块对各个方案进行分析比较,得出最适合本设计要求的方案。21系统构架比较方案1ATMEL89C51芯片+ADC0809DAC0832制作控制采样及数据处理模块。这种组合的优点是技术成熟,成本较低。缺点是使用芯片多,连线多,导致系统稳定性下降;由于使用的是8位ADC、DAC,精度不会很高。方案2凌阳16位单片机SPCE061A负责控制采样、数据处理。由于SPCE061A内置7通道10位ADC及两路10位DAC,使系统连线大为减少,内置的10位ADC、DAC使系统精度大为提高。方案3用DSP芯片或CPLD完成数据处理,外置ADC、DAC。此方案系统复杂,成本过高,编程不便。方案1价格低廉,但是系统稳定性不如其他的两个方案。方案3的性能是优越的,测试的速度和精度都要比前两个方案高,但是价格太高。由性价比方面考虑,我们采用的方案2是比较优越的。22显示方案比较方案1采用模拟示波器来显示晶体管的输入和输出特性曲线简易,但显示其他参数时不直观,而且示波管体积较大。方案2采用点阵图形液晶模块显示,显示界面清晰直观,可以直接显示测量结果,体积小,轻便。方案3把所有的测量结果送到上位计算机处理并进行显示,显示精度比较高,但不够方便灵活,并且需两个全双工串行接口,需要编写上位机程序,实现比较困难。控制和处理模块电压源电流源采样和调理模块测量电路模块显示模块键盘模块受控源模块第3页共49页考虑到尽力实现减小体积和重量的系统设计目标,所以我们选择了方案2。23受控源231受控源选择三极管共射极连接时的输入曲线描述的是当输出电压CEU为某一数值(即以CEU为参变量)时,输入电流BI与输入电压BEU之间的关系。用函数表示为常数CEBEBUUFI21而输出曲线描述的是当输入电流BI为某一数值(即以BI为参变量)时,集电极电流CI与电压CEU之间的关系。用函数表示为常数BCECIUFI22可见,无论是输入曲线还是输出曲线,都必须有两个受控源,一个是基极电流源或电压源,另一个是集电极电压源。下面比较一下电压源输入基极与电流源输入基极两种方式的特点。方案1基极输入电压源下图22是9013H的输入特性曲线图9013H0010203040506070809100102030405060708UBEIB图229013H的IBUBE曲线从图IBUBE曲线中可以看到,如果采用电压控制电压源(VCVS)输入基极,在电压稍大于开启电压时,曲线斜率急剧增大,只要UBE有微小增加,对应的IB就会迅速增大。实际操作的过程中,电压采样难以保证被测管的安全,测量相对困难而且精度不高。为了保证无损测试,我们需要找到一种相对安全准确的方式,即采用压控恒流源输入基极的方法。第4页共49页方案2基极输入电流源将IBUBE图曲线的两个坐标轴对换,得到UBEIB曲线。如图23曲线IB轴靠近原点的部分斜率很大,然而此时被测管工作在安全的区域。随着IB的增大,UBE增大的速率缓慢。这种测量方式不但有效的保护了被测管,使之工作在允许的状态,而且平缓的曲线使得测试系统更容易控制、采样。图239013HIBUBE曲线旋转90度得到的UBEIB曲线所以本系统采取方案2,电流源输入基极和电压源输入集电极的方法。232电流源电流源的设计是系统设计的重点。在整个系统的工作过程中,都需要提供一个相对恒定的基极电流IB,因为的IB精确程度直接影响到测量参数的精确与否,决定了测试的成败。方案1采用专用恒流源,它的优点是性能稳定,简化了电路设计。但是市场购买的恒流源所能提供的恒流值一般是固定的,不能根据需要进行调节,市场价格也不低,使用不便。方案2采用运放制作简单恒流源,优点是可以根据设计需要提供多种电流值IB,而且成本低,容易实现。缺点是精度较低,输出电流范围小。方案3采用开关电源的恒流源。优点是效率高、体积小、重量轻。缺点是电路结构复杂,实现较困难。考虑到本系统设计基极输入电流范围为0~100UA足够,而且精度要求不是很高。所以本系统采取方案2。233电压源方案1用DA输出的模拟电压经运算放大器放大后输出。优点是电路简单。缺点是输出电压带负载能力较弱,输出电压不稳定,精度较低。方案2采用PWM调制的开关电源输出。优点是输出电压稳定,精度较高,并且负载第5页共49页能力强。缺点是电路较复杂。考虑到本系统设计精度要求不高,选取方案1。24调理模块方案1采用AD521、AD522等集成测量放大器调整AD采样前的电压。优点是具有高输入阻抗,低输出阻抗,低失调电压及温度漂移系数和稳定的放大倍数。缺点是价格昂贵,电路复杂。方案2采用独立运算放大器。优点是电路较简单有较高的输入阻抗和较低的输出阻抗。缺点是精度不高。考虑到本系统设计精度要求不高,而且要采样的基极和集电极电压较大,所以选取方案2。3硬件电路设计基于上面的方案设计与论证得到本系统结构框图,如图31所示。下面将分别介绍系统各部分电路的设计。图31晶体管参数测试仪系统框图31凌阳16位单片机SPCE061A简介311SPCE061A单片机概述SPCE061A是继Μ’NSP系列产品SPCE500A等之后凌阳科技推出的又一个16位结构压控电压源SPCE061A单片机DA1DA2AD14LCD液晶显示测量电路压控恒流源电压调理电路功能选择4X4键盘第6页共49页的微控制器。目前有两种封装形式84引脚的PLCC84封装和80引脚的LQFP80贴片封装。主要性能如下■16位Μ’NSP微处理器;■工作电压VDD为2436VCPU,VDDH为2455VI/O;■CPU时钟32768HZ49152MHZ;■内置2K字SRAM、内置32KFLASH;■可编程音频处理;■32位通用可编程输入/输出端口;■32768HZ实时时钟,锁相环PLL振荡器提供系统时钟信号;■2个16位可编程定时器/计数器可自动预置初始计数值;■2个10位DAC数模转换输出通道;■7通道10位电压模数转换器ADC和单通道语音模数转换器;■声音模数转换器输入通道内置麦克风放大器自动增益控制AGC功能;■系统处于备用状态下时钟处于停止状态耗电小于2ΜA36V;■14个中断源定时器A/B,2个外部时钟源输入,时基,键唤醒等;■具备触键唤醒的功能;■使用凌阳音频编码SACM_S240方式24K位/秒,能容纳210秒的语音数据;■具备异步、同步串行设备接口;■具有低电压复位LVR功能和低电压监测LVD功能;■内置在线仿真电路接口ICE(INCIRCUITEMULATOR);■具有保密能力;312内部结构简要说明SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,它采用高性能的U’NSP内核,具有丰富的硬件资源,并集成了ICE(在线仿真电路)接口,可以直接利用该接口对芯片进行下载(烧写)、仿真、调试等操作。图32为SPCE061A单片机的内部结构框图。第7页共49页图32SPCE061A内部结构图1SPCE061A有两个16位通用的并行I/O口A口和B口。A口的IOA0IOA7用作输入口时具有唤醒功能,即具有输入电平变化引起CPU中断功能。这两个口的每一位都可通过编程单独定义成输入或输出口。通常,对某一位的设定包括以下3个基本项数据向量DATA、属性向量ATTRIBUTION和方向控制向量DIRECTION。3个端口内每个对应的位组合在一起,形成一个控制字,用来定义相应I/O口位的输入输出状态和方式。2SPCE061A有8路可复用10位ADC通道,其中一路通道MIC_IN用于语音输入,其余7路通道LINE_IN和IOA06管脚复用,可以直接通过引线IOA06输入,用于将输入的模拟信号如电压信号转换为数字信号。SPCE061A的A/D转换范围是参考电压范围0V~VDD。3SPCE061A提供两个DAC通道,DAC的输出范围从0X00C0到0XFFC0,即仅高10位数据起作用。DAC1和DAC2输出为模拟电流信号,DAC的最大输出电流和参考VDD成正比,当VDD33V,DAC的输出电流范围是033MA。313“61A”板介绍“61板”将SPCE061A的32个I/O口全部引出IOA0IOA15,IOB0IOB15,对应的SPCE061A引脚为A口,41~48、53、54~60;B口,5~1、81~76、68~64。而且该I/O口是可编程的,即可以设置为输入或输出设置为输入时,分为悬浮输入或非悬浮输入,非悬浮输入又可以设置为上拉输入或是下拉输入;在5V情况下,上拉电阻为150K,下拉电阻为110K;设置为输出时,可以选择同向输出或者反相输出。“61板”上带有在线调试器PROBE和EZ_PROBE接口,可以通过将PROBE与PC机连接起来进行调试、仿真和下载程序的。这样,就不需要再用仿真器和编程器了。也可以EZ_PROBE的接口,及一根下载线用作程序的下载,一端连接PC机的25PIN并口,另外一端接61板的5PINEZ_PROBE接口。第8页共49页“61板”本身具有上电复位功能,即通电就自动复位,另外,还具有外部复位电路,即在引脚6上外加一个低电平就可令其复位。“61板”的内核SPCE061A电压要求为33V,而I/O端口的电压可以选择33V也可以选择5V。所以,在板子上具有两种工作电压5V和33V。对应的引脚中15、36和7必须为33V,对于I/O端口的电压51、52、75可以为33V也可以是5V,这两种电平的选择通过跳线J5来选择。32测量电路的设计图33是本晶体管测试仪的测量原理图。图中的恒流源提供基极电流,由DA1给出的电压来控制。晶体三极管是一种电流放大器件,采用电流源输入可以使电压变化缓和,测量的结果更为准确。图中DA2电压,对应压控压源一个电压输出。通过软件给出DA1、DA2的电压值,对应于被测管B极电流IB和集电极电压VC,通过AD1,AD2对B、C点电压采样就可以画出输入、输出特性曲线。图33测量电路集电极与电源间有个360Ω的电阻,因此电流IC通过公式可求得IC(VDVC)/RC31这里,RC为限流保护电阻,接在集电极与压控压源之间,选取360Ω,是为了使压控压源输出的电压大部分加到集电极上,因为集电极处于放大状态时集电极电流大多为030MA基极电流为0~100UA,放大倍数为50~300,集电极最大电流为30MA,RC两端的压降约为9V由于DA的输出电压范围有限,所以要接入一个放大器及射随以给出电压。加在被测管C极上电压由此电压间接控制。基极接入一个10K的偏置电阻RB,而基极电流范围为0100UA,因此RC两端的压降被测管恒流流源DA2DA1压控电压源地BCEAD1RB10KΩRC360ΩAD2AD3AD4VCVD第9页共49页约为1V通常晶体管的放大倍数在50300之间,集电极最大电流为003A,在集电极最大电流允许范围内。这里的AD3和AD4是考虑到当恒流源和电压源的误差较大是可以通过采样偏置电阻两端的电压来求基极和集电极电压。33压控恒流源电路由于三极管有NPN和PNP两种型号,测量两种三极管输入输出特性曲线时所用电压极性相反。所以系统需要提供正负极性的基极电流和集电压来分别测量NPN和PNP晶体管。而SPCE061A的DAC为电流型,当AD参考电压为33V时,DAC输出的电流范围为0~33MA,所以必须将电流转化为电压,并且是双极性电压转换。所以可以用运放将DA的输出电流转换为双极性电压。电路如图34所示。由于SPCE061A内部的DAC没有内置反馈电阻,因此电路中接入了1K的反馈电阻(R1和R4),参考电压VRET为33V,可以直接接61板的33V端口电压选择接口。图34DA1的双极性电压输出电路上图中VRET为33V时V1电压为33~0V,V2电压为33~33V。考虑到本设计要求的精度不是很高,用运算放大器构成恒流源电路简单.其内阻和输出电流均能满足需要。下图35是用运放构成恒流源的原理图,主放大器A1为差分输入单端输出的运算放大器。接在反馈电路中的放大器A2为电压跟随器形式,即V3V4。由于放大器A2的输入阻抗很高,实际上起着缓冲级的作用。根据理论分析,差分输入级输出电压VO为第10页共49页图35恒流源电路21211201VRRVRRV324303443334332RRIRRVRRRVRRRVL33以(33)式代入(32)式,得1121120RRVRRV4303RRIRRL34从输出电路可得出(将放大器A2的输入阻抗近似看作无穷大)0450IRRV35令34式等于35式,解得4131541321413120RRRRRRRRRRRVRRRRRILI36令4321,RRRR,这时36)式就可改写成5120RRVRII37由此可得出,IO正比于输人电压VI,反比于电阻R5而与负载RL无关。式中负号则表示电流IO方向与输入电压VI极性相反。当R1和R2为定值时,我们可借助改变R5的数值来满足不同被测器件对基极电流的不同幅度要求。第11页共49页这里选择KRRKRR50,804231,因此5085RVII,而这里VI的范围为3333V,选取R520K,输出电流的范围可以达到±100UA34压控电压源电路与恒流源的设计类似,必须有双极性电压输入,才能有双极性的电压输出,因此DA2的电流输出需转换为双极性电压。电路如图36所示。图36DA2双极性电压输出电路这里参考电压VRET为33V,DA2输出的双极性电压为±33V,必须经放大进行电压变换,输出变为±10V,为三极管集电极提供可变的UCE值。由于射随器的输入阻抗高,输出阻抗低,为提高带负载能力,电路中电压放大级后利用运放做的射随器对负载驱动,消除负载变化对电压源输出电压的影响。电路如图37所示图37压控电压源电路这里前级运放为同相放大,比例系数为R22R23/R223。第12页共49页35电压调理电路本系统要对集电极和基极电压采样。然后再计算出基极和集电极电流从而画出晶体管的输入输出曲线。SPCE061A的AD采样电压范围为033V,过高的电压或负电压都会对片内ADC、DAC和基准源产生致命的伤害。对于基极电压,如过不经放大直接采样,由于信号较小容易受外界干扰而且采样精度不可能很高。举个简单的例子,基极电压范围为0~07V,放大3倍得到0~21V,在不引入其他误差的情况下,10位AD就是用10243312651个数字量来表示07V模拟电压,即转换后的精度为1024123370,而转化前精度仅为102433,解析度提高了13。对于基极电压要放大,而集电极电压则要衰减。放大及衰减电路用集成运算放大器很容易实现。电路如图38所示图38放大衰减电路同时,由于基极和集电极电压在调整电路后电压为双极性电压,而SPCE061A的AD采样电压只能为正电压,必须经偏置电路才能接入AD采样。由于SPCE061A的内置AD没有内置偏置电路,所以可以外加偏置电路使其能采样双极性电压。偏置电路如图39所示第13页共49页图39AD双极性偏置电路变换为双极性输入后,用偏移码表示输入结果,偏置电压与采样电压的关系为INAV2INVRETV。如表31表31参考电压为33V输入时的偏移码对照表参考电压(RETV)INAVINV数字量D高10位33V3300X004001650X800033330XFFC036键盘和LCD显示电路本系统采用44键盘,可以很容易进行功能扩展。电路如图310所示。图310系统键盘电路图第14页共49页系统采用点阵图形液晶模块LCM12864ZK作为显示。其内置的控制/驱动器采用中国台湾矽创电子公司生产的ST7920,具有较强的控制显示功能。LCM12864ZK的液晶显示屏,可显示4行,每行8个汉字。该模块具有2MB的中文字型ROMCGROM,共提供8192个1616点阵中文字型;另外,绘图显示画面还提供一个64256点阵的绘图区域GDRAM及240点的ICONRAM,可以和文字画面混合显示。键盘使用IOB口的高8为,低8为作为液晶的并行数据口,液晶的控制口使用IOA口高8为中的IOA8IOA10。液晶与单片机的接口采用8线并行方式,电路如图311所示。图311液晶接口电路4系统软件设计41系统软件设计概述SPCE061A采用高性能的Μ’NSP内核,具有丰富的硬件资源,集成了ICE(在线仿真电路)接口,可以直接利用该接口对芯片进行下载(烧写)、仿真、调试等操作。并提供支持标准C语言,汇编语言以及C语言与汇编语言相互调用的集成开发环境Μ’NSP™,本系统软件调试使用的是Μ’NSP™IDE200版本,它集程序的编辑、编译、链接、调试以及仿真等功能为一体。本系统就是在此开发平台上用C语言进行模块化编程而实现的。当要进行功能扩展是可以直接调用其中的功能函数,使用非常方便。如图41本系统软件主程序流程图第15页共49页初始化液晶和键盘显示开机画面扫描键盘有键按下否键分析0键和其它1键2键3键4键NOYES测管型并显示结果测放大倍数并显示结果测输入曲线并显示测输出曲线并显示清看门狗开始第16页共49页图41系统主程序流程图42端口分配端口分配如表41所示表41端口分配IOB15~IOB8IOB15~IOB8IOB15~IOB13IOB10~IOB8IOA3~IOA0键盘接口并行数据口管脚测试口液晶控制口AD采样通道其余不用。43液晶模块程序编写431LCM12864ZK介绍本系统采用的LCM12864ZK是北京青云创新科技发展有限公司推出的带中文字库图形的液晶显示模块,其功能较强,控制简单。LCM12864ZK是具有串/并行接口,内部含有中文字库的图形点阵液晶显示模块,其内置的控制/驱动器采用中国台湾矽创电子公司生产的ST7920,因而具有较强的控制显示功能。LCM12864ZK的液晶显示屏为12864点阵,可显示4行,每行8个汉字。该模块具有2MB的中文字型ROMCGROM,共提供8192个1616点阵中文字型;同时,为了便于英文和其他常用字符的显示,具有16KB半宽字型ROMHCGROM,提供128个168点阵的字母符号字型;另外,绘图显示画面还提供一个64256点阵的绘图区域GDRAM及240点的ICONRAM,可以和文字画面混合显示,且内含CGRAM可提供4组软件可编程的1616点阵造字功能。LCM12864ZK模块采用LED背光,工作电压/电流分别为3V/12MA或5V/2MA,具有27~55V的宽工作电压范围,还具有睡眠、正常及低功耗工作模式,可满足系统各种工作电压及便携式仪器低功耗的要求。为了适应多种微处理器和单片机接口的需要,模块提供了4位/8位并行、2线/3线串行多种接口方式。另外,模块还提供了画面清除、光标显示/隐藏、显示打开/关闭、显示字符闪烁、光标移位、显示移位、反白显示、睡眠模式等操作指令。LCM12864ZK的指令集包括基本指令集RE0和扩充指令集RE1两大类,用户可以通过这些命令使模块执行相应的显示或控制功能。下面简要介绍部分常用的操作命令1设定DDRAMDISPLAYDATARAM地址设定DDRAM地址到地址计数器AC,第一行AC范围为80H~87H,第二行地址范围为88H~8FH,第三行AC范围为90H~97H,第四行地址范围为98H~9FH。2进入点设定第17页共49页在数据的读取与写入时,指定光标的移动方向及显示的位移。I/D位地址上计数器递增递减选择。当I/D1时,光标右移,DDRAM的位地址计数器1;当I/D0时,光标左移,DDRAM的位地址计数器1。S显示画面整体位移。3清屏显示4功能设定DL1,为8为MCU控制界面;DL0,为4位MCU控制界面;RE0,为基本指令;RE1,为扩充指令。5写入资料到RAM写入资料到内部RAM,写入后会使AC改变。6读取忙碌标志BF和位址计数器读取忙碌标志BF可以确认内部动作是否完成,同时可以读出位址计数器AC的值。432基础驱动程序编写LCM12864ZK模块的基础驱动程序由5个文件组成,分别为底层驱动程序文件LCD_PORTCONFIGH、LCD_DRIVER_USERC、用户API功能接口函数文件LCD_DRIVER_USERH、LCD_DISC以及LCD_DISH。基础驱动程序架构如图42所示第18页共49页图42LCD基础驱动程序架构LCD_PORTCONFIGH该文件为底层驱动程序的头文件,主要对使用到的端口进行定义以及配置,用户在使用基础驱动程序时,要使端口的分配符合实际硬件的接线。LCD_DRIVER_USERC该文件为底层驱动程序,负责MCU与液晶模块进行数据传输的任务,主要包括初始化模块、写控制指令、写数据、读数据等函数;这些函数仅供给上一层的LCD_DISC调用,不建议用户在应用程序中调用这些函数。LCD_DRIVER_USERH该文件为LCD_DRIVER_USERC的对应头文件,里面对应C源文件当中的函数进行外部声明。LCD_DISC该文件中提供了供用户应用程序调用的液晶驱动API功能函数,如绘点、绘线、绘矩形、绘圆等绘图函数,以及写字符、字符串等功能。LCD_DISH该文件为LCD_DRIVER_USERC的对应头文件,里面对应C源文件当中的函数进行外部声明。433用户API功能函数编写本系统主要使用到显示字符串,和十进制数值,以及绘点和全屏绘图函数。这几个函数的定义在LCD_DISC文件中,其声明在LCD_DISH文件中。1字符串显示函数。编程思路先将写命令送到液晶控制器,然后字符首址送到液晶字符显示缓冲区,然后缓冲区地址加1,字符串指针指向下一个字符,判断是否为结束字符,依次将字符送到字符显示缓冲区。代码如下VOIDPARALLEL_DISPLAYSTRINGS_WITHADDRESSUCHARUCADD,UCHARP{PARALLEL_WRITE_LCDCOMMAND,BASIC_FUNCTION//基本指令动作LCD_PORTCONFIGHLCD_DRIVER_USERHLCD_DISCLCD_DISH用户应用程序驱动层LCD_DRIVER_USERC功能函数层应用层第19页共49页PARALLEL_WRITE_LCDCOMMAND,UCADDWHILEP \0 PARALLEL_WRITE_LCDDATA,P}2)基本绘点函数。编程思路先确定点在显示屏的位置和液晶显示缓冲区的地址,然后将RAM中相应的单元数据的相应位置1(画点)或值0清点。程序如下VOIDPARALLEL_IMGDISPLAYONESPOTUCHARX,UCHARY,UINTBSPOT{UINTIMGRAMNUM0//用于确定IMGRAM区数组下标UINTIMGRAMBITNUM0//用于确定IMGRAM区某个元素的具体位IMGRAMNUM63Y16X/8IMGRAMBITNUM7X8IFBSPOT{IMGRAMIMGRAMNUM|0X00010E0C0B0E1E0E0B0B1C10C0E10C0B0第22页共49页输出电压保持不变时集电极IC与基极电流IB之比,即ΒBCII41严格的讲,IC应该减去被测管的穿透电流ICE0,即BCECIII0Β42硅管的ICE0很小(一般小于1UA),完全可以忽略不计,但对于锗管则应考虑ICE0。晶体管的曲线为非线性,当IC很小或很大时Β值都会降低。多数管子的Β在30200倍之间,个别在300倍左右。据此原理,编程思路如下让恒流源输出固定电流(比如对于NPN用10UA,PNP为10UA),电压源输出固定电压(比如NPN为5V,PNP为5V),使管子可以处于放大状态,然后AD采样RC两端的电压降,若小于某个规定的值(如01V),那么就认为管子没有处于放大状态,也就是说管子的引脚没有插对或没插好,亦或是管子坏了。对于损坏的条件等可以通过实际检测得到判定条件。求得RC两端的压降后就可以求得放大倍数Β。同样的原理,可以测定二极管的正向压降。443输入特性曲线测量本系统采用的是三极管共发射极接法,其输入量是基极电流BI和发射结压降BEU。其输出量是集电极电流CI和管压降CEU。输入特性曲线反映的是以CEU为参变量,基极电流BI和发射结压降BEU之间的关系。其表达式为常数CEBEBUUFI43在前面的方案论述中已经说明本系统采用的是电流源输入基极和电压源输入集电极的方法,据此原理,编程思路如下先在RAM中开辟一块1KB的数据缓冲区,令电压源输入某一电压到集电极(比如1V),然后基极注入电流从0到最大(或最小)变化,没改变一次基极电流就采样一次基极电压,共采样128个点,即将基极电流量化的0128,作为横坐标,并将采样结果量化到063,作为纵坐标,然后再保存于数据缓冲区的相应地址单元。改变集电极的电压,同理采样另一组数据保存于RAM中相应的地址,最后将RAM中全部数据送到液晶的图形缓冲区进行全屏显示。本系统中直接对基极电压采样128点,方法简单,而且程序中利用了补点补偿算法进行绘点,使得绘图曲线平滑清晰。同时程序中利用管型测试的结果自动设置基极电流的增量方向和集电极的电压极性,实现自动设置测试条件。程序流程图如图45所示这里的VCC是测量电路中压控电压源的输出电压第23页共49页图45输入特性曲线测量流程图444输出特性曲线测量输出曲线描述的是当输入电流BI为某一数值(即以BI为参变量)时,集电极电流CI与电压CEU之间的关系。用函数表示为常数BCECIUFI44与输入特性曲线的测定方法类似,具体编程思路如下基极输入一固定电流,然后开始预设定VCC和IB初值采样UB电压量化后存于RAM的相应单元以一定步长改变IBIB是否到达最大或最小值以一定步长改变UCEVCC是否到达最大或最小值调用全屏绘图函数全屏显示返回NONOYESYES第24页共49页集电极施加电压010V,对集电极电压进行采样128点,并量化到0128作为横坐标,然后计算出集电极电流IC并量化到063,结果存于数据缓冲区的相应地址;改变基极电流(比如步进为20UA),同理可以得到第二条曲线的数据,最后将缓冲区的所有数据送到液晶的图形缓冲区,进行全屏刷新显示。流程图如图46所示。图46输出特性测量流程图445其它功能扩展本系统采用44键盘,方便系统功能扩展。我们可以在测量晶体管输出特性曲线的开始预设定和VCC和IB初值采样UC电压并计算出集电极电流IC结果量化后存于RAM的相应单元以一定步长改变IBIB是否到达最大或最小值以一定步长改变VCCVCC是否到达最大或最小值调用全屏绘图函数全屏显示返回NONOYESYES第25页共49页同时截取IC变化缓慢的部分数据求得晶体管的交流放大倍数。我们可以让发射极开路(即发射极引脚不插即可),然后采样基极偏置电阻RB两端的电压就可以求出集电极基极之间的反向电流ICBO。对于集电极发射极之间的反向击穿电流ICEO,由于其一般都非常小,而集电极的偏置电阻RC也很小,所以不能通过采样其两端的电压来求其电流。但可以在测量晶体管输出曲线的同时得到其反向击穿电流ICEO,即IB为0时的集电极电流值。另外,我们可以利用61A板便利的通用异步串行接口,将采集到的各项数据传送到上位机,并用LABVIEW