大学生电子设计竞赛设计报告-简易三极管参数测试仪设计.doc_第1页
大学生电子设计竞赛设计报告-简易三极管参数测试仪设计.doc_第2页
大学生电子设计竞赛设计报告-简易三极管参数测试仪设计.doc_第3页
大学生电子设计竞赛设计报告-简易三极管参数测试仪设计.doc_第4页
大学生电子设计竞赛设计报告-简易三极管参数测试仪设计.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

黑龙江省大学生电子设计竞赛设计报告密号:(密号由组委会填写)黑龙江省大学生电子设计竞赛设计报告题 目: 简易三极管参数测试仪 学 校: 哈尔滨工程大学 参赛队员姓名: 有效联系方式: 03821 ,03815 晶体管参数测试设计要求1) 制作出晶体管参数测试仪2) 测试参数的种类,数量自定3) 测试参数的精度自定4) 测试仪的功能,例如对测试的结果是否存储,显示,打印等自定 目录一.摘要3二.abstract and keyword3二.方案论证与比较4 1三极管基极和集电极电压采样电路4 2三极管共射极输入输出曲线4 3测量结果显示方案4三.主要电路工作原理与计算4 1总体设计思路4 2采样电路设计与放大系数计算5 3. 施压电路设计8 4 输入输出特性曲线测量9 5人机界面10 6其它功能扩展10 7误差分析11四. 系统测试及分析13五误差分析13六. 总结14 简易三极管参数测试仪 摘要本设计以at89c51单片机最小系统为核心,用汇编语言编程,用多组放大器组成恒流源采样电路,可靠地实现了对三极管基极和集电极电流的检测,通过adc118和放大器组成数据采集电路。系统能准确地测量交直流放大系数。单片机对采集到数据进行处理,并用液晶显示各项参数。关键词:单片机,采样电流, 液晶显示abstract the design is based on the microcontroller at89c51 system, has reliably actualized the meterage of dynatron base pole current and collector current by the combination of a few groups of relays, and has the part of sampling circuit composed of adc118 . our system can accurately measure . the data collected is processed by the microcontroller and then is displayed in the lcd. keywords microcontroller , sampling circuit , relays ,lcd一.方案论证与比较根据题目要求,本系统的设计可以划分为以下几个部分,下面对每个设计方案分别进行论证与比较:1 三极管基极和集电极电压采样电路 方案一:采用在基极和集电极电阻两端直接测电压的方法。用这种方法虽然简单,但是电路复杂,需要多个运算放大器,精确度不高,很难达到题目要求。方案二:采用在发射极串电阻,直接在发射极测量电流ice 的方法。这种方案由于电阻两端对地电压较低,便于放大检测。但由于发射极电阻的存在,使基极电位很难确定,不便于基极电阻的选择,对uce的确定也会带来一定困难。方案三:用两路数据采集电路分别对基极电压和集电极电阻两端电压进行采样。基极电压经过普通运放组成的同向比例放大电路进行放大后送ad采样。而集电极电阻两端的电压采用op07放大。若所测三极管为pnp型管,则经过反向比例电路转换成正电压以满足adc118采样的需要。综合考虑,方案三电路结构简单,测量精度较高,故采用方案三。2. 三极管共射极输入输出特性曲线测量因时间问题,这只是我们的构想三极管输入特性曲线的测量方案:固定电压|vc |=12v,通过dac0832逐渐增大基极电压,每增大一次电压采集一次电流 ib,记入内存.单片机将采集所得的各项数据处理后,在上位机(电脑)上输出曲线。三极管输出特性曲线的测量方案通过改变基极电阻,达到题目要求的基极电流。同样通过da输出改变电压vce 每当改变一次集电极电压就采集一次电流ic,记入内存,显示输出曲线 。3. 测量结果显示方案 方案一:把测量所得的参数通过数码管显示方案二:把测量所得的参数和特性曲线通过液晶屏显示,这种方案虽然简便易行,但显示精度不高。方案三:把所有的测量结果送到上位计算机进行显示,显示精度比较高,但不够方便灵活,并且需两个全双工串行接口,实现比较困难。权衡以上三种方案,我们初步打算晶体管的基本参数用lcd显示,同时扩展与pc机连接的rs232串行通讯接口,用vb编写接收软件用来显示三极管的输入输出特性曲线,这样使用起来既方便灵活,又提高了精度,而且扩展了数据存储、打印等功能,但由于时间关系,我们没来得及做出曲线部分的电路,只把构思列出。二.主要电路工作原理与计算 1总体设计思路 总流程图如下:采样 电路at89c51单片机最小系统显示电 路三极管恒流源2. 采样电路设计与放大系数计算(1)基极和集电极电压采样电路固定基极的电流,并使三极管工作在放大区,从而对特定npn三极管来说其b极电流稳定。基极电流的恒流由运放op07实现(电路见图),此op07正向端加1v的电压。我们用精准电压源mc1403加电压跟随器来精确这1v电压。 在基极和集电极分别加上2个1k的采样电阻,分别在2个电阻两端取4个点的电压,通过4个由op07搭成的电压跟随器并把b极的电压经一个差放放大100倍后送入单片机内进行运算,并最终显示。电路图如下图(图3)。 图3集电极采样电路:在测三极管的的放大系数时。电阻r4的电阻值是1k欧姆 ,易得集电极的电流表达式:ic=vrc/1000。根据三极管直流电流放大系数的定义式可以算出: 一般来说, 和 的大小是不一样的, 不是一个固定不变的常数,它是两个变化量之比,其值的大小与工作点密切相关。但是在恒流特向较好的区域,如果忽略了 ,两者的大小是基本相等的。由于在完成本题中前两个任务时,三极管一直工作在恒流特性较好的区域,可以认为和是相等的。只要把| |从10a 改变到20a , |保持不变,三极管的静态工作点已经发生了改变,此时用与测直流放大倍数相同的办法就可以测出交流放大系数。a/d转换输出电路: a/d转换器是数据测量系统的核心部件,它把采集的模拟量变换成数字序列,并读回单片机。在设计中,我们对a/d的转换速度、精度和器件成本作了最好的折中,选用了8位a/d转换器adc118.电路图如下图(图4)图 4图 为与adc118相连接的电路。3 施压电路设计与计算 该部分只是我们的初步构思,方案是否可行尚待实际论证,但由于时间关系我们没能实际作出这部分电路,只把大致想法列出如下:倍压电路:由于三基管的反向击穿电压一般不会小于70 v 而且测量穿电压时要求用单片机控制加在集电极上的电压以一定步长逐渐变化,而单片机只能输出最大12 v、的电压。我们参考资料列出了一个 由cmos与非门组成的倍压电路。 。 图6图中为三倍压电路,当接通电源时,电路中a点电位为“0”,则b点电位为电源电压v。这时电源电压v通过对充电,使两端电压为v值,而并不导通。当反向器输出电位翻转之后,a点电位上升为v值,于是点电位相应上升为值,此时反偏,而导通.在下一个半周时,b点电位上升为v值,点电位相应上升为。经过对充电,使输出电压为。da双极性电压输出电路:由于三极管有npn和pnp两种型号,测量两种三极管输入输出特性曲线时所用电压极性相反。这就要求单片机输出的控制电压有正负两个极性。在此采用了一种典型的dac0832双极性输出电路,电路图如下:图中放大器2的输入端3通过电阻与参考电压相连,因此运算放大器2的输出电压:代入、的值,可得: 我们所用的基准电压是+5v,所以当时,; 当时,; 当时,。于是我们通过单片机控制输出从0到-5v的渐变电压就可以得到从-10v到+10v连续变化的电压。4输入输出特性曲线测量 输入特性曲线:使| vce |=10 v,npn型的三极管共发射极接法时,其输入量是基极电流和发射结压降。其输出量是集电极电流和管压降。输入特性曲线反映的是以为参变量,基极电流 和发射结压降之间的关系。其表达式为:本系统在测量npn型三极管时,继电器3的开关接在da输入一侧。为了满足发射结压降的变化要求,使基极电阻 连接在电路中,也就是继电器8的开关分别接在电阻和侧。继电器7的开关接在与连接的0通路中。先用单片机通过dac0832输出控制电压从0开始变化,每次改变0.05,直到+5 v。发射结压降 跟随控制电压变化,变化范围约为0.6-0.8 v。由于发射极接地,=。每改变一次电压,单片机通过基极采样电路获得一组基极电流 和基极电压的变化的数值(的计算方法同第二部分)。存入内存单元。处理并记录完所有的数据后,将数据送给显示电路输出。可以得到一条基极电流随发射结压降变化的光滑曲线。测pnp型三极管时,只要将电压从0v逐渐改变,每次改变-0.05v,直到-5v为止。输出特性曲线:输出特性曲线反映的是以基极电流为参变量。集电极电流和管压降之间的关系,其表达式为:当 管压降超过1 v后,集电极电流的大小与基极电流成正比,即。如果等间隔的改变的大小继续测试,可以得到一组间隔基本均匀,彼此平行的直线。本系统在测量时,先用单片机控制继电器 是电阻 连接在电路中。此时基极电流是 然后通过dac0832输出控制电压从0变化,每次改变0.1 v,单片机通过集电极采样电路获得电流的变化的数值记录在内存单元中,直到控制电压达到12伏。然后改变基极电阻 ,从而改变基极电流。用同样的方法测量。基极电阻共改变3次,所以可以得到三条输出特性曲线。处理并记录完所有的数据后,将数据送给显示电路输出。显示结果是三条集电极电流随管压降变化的平滑曲线。5人机界面 :i 液晶驱动 本系统采用ocmj4x8c(128*64)图形汉字两用液晶作为主要显示工具。该液晶带有总多控制字,程序开始时,先对液晶初始化,之后,每次先通过控制字制定开始位置,然后写入点阵信息。开机时显示欢迎画面,对用户操作进行提示,人机界面友好,图形美观。ii 汉字显示 本系统内置国标gb2312码简体中文字库(16x16点阵),每个汉字的内码有两个字节,顺序连续写入即可显示汉字。根据液晶的资料,自行编写了字符串显示、浮点数显示等功能函数,在其它程序中调用非常方便。6 其它功能扩展初步设想系统制作完成后,可以在液晶上显示输入、输出曲线。但由于液晶点阵大小的限制,不可能较精确的显示曲线。本系统在液晶显示的基础上扩展了串口通讯功能,能将单片机采集到的各项数据传送到上位机,在上位机的操作界面上更精确的显示三极管的输入、输出曲线,并可以对各项数据和曲线进行打印。具体实现如下:采用max232实现电平转换,以完成单片机与pc机的串行通讯。进行串行通讯时要满足一定的条件,pc串口是rs232电平的,而单片机的串口是ttl电平的,两者之间必须有一个电平转换电路,采用了专用芯片max232进行转换,用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的gnd、第2脚的rxd、第3脚的txd。,电路如下图所示,max232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。图8上位机程序用vb开发.其中串口通讯的visual basic程序采用mscomm控件编写.pc机按照与单片机约定好的次序将接收到的数据存入对应存储单元.当上位机操作面板上的某个按钮被按下时,系统产生消息响应,对数据进行运算。三、 软件设计1系统主程序 程序全部采用汇编语言编写,可实现数据采集、参数计算、数据等功能。采用液晶分屏显示各项基本参数。在输入输出曲线模块中,程序将ad采样得到的数据进行处理后,再一次性写入液晶的ddram和gdram进行显示。程序同时加入了软件复位功能,通过按键返回开机画面,程序进行重新检测。程序设计模块化,其它程序也可直接调用其中的功能函数,使用非常方便本系统软件主程序流程图如下开始液晶初始化,显示开机画面有键按下判断键盘指令 s3 s2 s1 发送数据测基本参数 s4 附录:程序;*modul ocm4x8c串*wr equ p3.6rd equ p3.7std equ p1.0sclk equ p1.1counter1 equ 31hcounter2 equ 32hrs_stu equ 33hda_in equ 34hdeh equ 48hdel equ 49h org 0000h ljmp mainorg 0100hmain:lcall delay2mov sp,#60hclr f0l0:mov a,#30h;30-基本指令操作 lcall send_ilcall delay1mov a,#01h ;清除显示 lcall send_i lcall delay2mov a,#06h;指定在资料写入或读取时,光标的移动方向 lcall send_i lcall delay1 mov a,#0ch;开显示,显示光标,闪烁 lcall send_i lcall delay1 mov a,#34h lcall send_i lcall delay1 mov a,#04h lcall send_i lcall delay1mov a,#30h;30-基本指令操作 lcall send_i lcall delay1;*l1: jb f0,chuan11chuan11:mov dptr,#tab11 mov a,#80h;设定ddram地址 lcall send_ig1: clr a movc a,a+dptr cjne a,#00h,s1 ajmp l2s1:lcall send_d inc dptr ajmp g1;*l2: lcalldelay3 mov a,#01h lcall send_i lcall delay2 lcall delay2 jb f0,chuan21chuan21:mov dptr,#tab21 mov a,#80h;设定ddram地址 lcall send_ig2: clr a movc a,a+dptr cjne a,#00h,s2 ajmp l3s2:lcall send_d inc dptr ajmp g2;*l3: lcalldelay3 mov a,#01h lcall send_i lcall delay2 lcall delay2 jb f0,chuan31chuan31:mov dptr,#tab31 mov a,#80h;设定ddram地址 lcall send_ig3: clr a movc a,a+dptr cjne a,#00h,s3 ajmp keys3:lcall send_d inc dptr ajmp g3 ;*l4: lcalldelay3 mov a,#01h lcall send_i lcall delay2 lcall delay2 jb f0,chuan41chuan41:mov dptr,#tab41 mov a,#80h;设定ddram地址 lcall send_ig4: clr a movc a,a+dptr cjne a,#00h,s4 ajmp l5s4:lcall send_d inc dptr ajmp g4 ;* l5: lcalldelay3 mov a,#01h lcall send_i lcall delay2 lcall delay2 jb f0,chuan51chuan51:mov dptr,#tab51 mov a,#80h;设定ddram地址 lcall send_ig5: clr a movc a,a+dptr cjne a,#00h,s5 ajmp keys5:lcall send_d inc dptr ajmp g5;* l6: lcalldelay3 mov a,#01h lcall send_i lcall delay2 lcall delay2 jb f0,chuan61chuan61:mov dptr,#tab61 mov a,#80h;设定ddram地址 lcall send_ig6: clr a movc a,a+dptr cjne a,#00h,s6 ajmp l7s6:lcall send_d inc dptr ajmp g6;* l7: lcalldelay3 mov a,#01h lcall send_i lcall delay2 lcall delay2 jb f0,chuan71chuan71:mov dptr,#tab71 mov a,#80h;设定ddram地址 lcall send_ig7: clr a movc a,a+dptr cjne a,#00h,s7 ajmp keys7:lcall send_d inc dptr ajmp g7;*dis: lcalldelay3 mov a,#01h lcall send_i lcall delay2 lcall delay2 jb f0,chuan81chuan81:mov dptr,#tab81 mov a,#80h;设定ddram地址 lcall send_ig8: clr a movc a,a+dptr cjne a,#00h,s8 ajmp keys8:lcall send_d inc dptr ajmp g8 ;*key: call key_pad jmp key;%lgs: lcall lgs0mov counter1,#80h mov counter2,#80hg31:lcall lan1lcall lan2 cjne a,#88h,g31 mov counter1,#80h inc counter2 mov a,counter2 cjne a,#0a0h,g31mov counter1,#88h mov counter2,#80hg32:lcall lan1lcall lan2 cjne a,#90h,g32 mov counter1,#88h inc counter2 mov a,counter2 cjne a,#0a0h,g32 mov a,#36h lcall send_i lcall delay1lcall delay3retlgs0: mov counter1,#80h mov counter2,#80hg00:lcall lan1mov a,#00h lcall send_d mov a,#00h lcall send_d inc counter1 mov a,counter1cjne a,#88h,g00 mov counter1,#80h inc counter2 mov a,counter2 cjne a,#0a0h,g00mov counter1,#88h mov counter2,#80hg01:lcall lan1clr a lcall send_d clr a lcall send_d inc counter1 mov a,counter1 cjne a,#90h,g01 mov counter1,#88h inc counter2 mov a,counter2 cjne a,#0a0h,g01 mov a,#36h lcall send_i lcall delay1retlan1:mov a,#34h lcall send_i lcall delay1 mov a,counter2 lcall send_i mov a,counter1 lcall send_i mov a,#30h lcall send_iretlan2: clr a movc a,a+dptr lcall send_d inc dptr clr a movc a,a+dptr lcall send_d inc dptr inc counter1 mov a,counter1 ret jmp main;*串口写子程序send_d:lcall delay2 ;写数据setb rs_stu;p0-contrali/o movda_in,a;writedata lcallserial_write retsend_i: lcall delay2 ;写指令clr rs_stu;p0-contrali/o movda_in,a;writeinstrution lcallserial_write retserial_write:pushamova,da_insetbstdclrsclksetbsclkclrsclksetbsclkclrsclksetbsclkclrsclksetbsclkclrsclksetbsclkclrsclkclrstdsetbsclkclrsclkjnbrs_stu,wstusetbstdsjmpwstu1wstu:clrstdwstu1:setbsclkclrsclkclrstdsetbsclkclrsclkjbacc.7,wd7clrstdsjmpwd6wd7:setbstdwd6:setbsclkclrsclkjbacc.6,wd61clrstdsjmpwd5wd61:setbstdwd5:setbsclkclrsclkjbacc.5,wd51clrstdsjmpwd4wd51:setbstdwd4:setbsclkclrsclkjbacc.4,wd41clrstdsjmpwd42wd41:setbstdwd42:setbsclkclrsclkclrstdsetbsclkclrsclksetbsclkclrsclksetbsclkclrsclksetbsclkclrsclkjbacc.3,wd31clrstdsjmpwd2wd31:setbstdwd2:setbsclkclrsclkjbacc.2,wd21clrstdsjmpwd1wd21:setbstdwd1:setbsclkclrsclkjbacc.1,wd11clrstdsjmpwd0wd11:setbstdwd0:setbsclkclrsclkjbacc.0,wd01clrstdsjmpwd02wd01:setbstdwd02:setbsclkclrsclkclrstdsetbsclkclrsclksetbsclkclrsclksetbsclkclrsclksetbsclkclrsclkpoparet;*;键盘部分;* key_pad: jnb p2.0,key_pad_go1 jnb p2.1,key_pad_go2 jnb p2.2,key_pad_go3 jnb p2.3,key_pad_go4 ret key_pad_go1: call d20ms jnb p2.0,key_pad_deal1 ret key_pad_go2: call d20ms jnb p2.1,key_pad_deal2 ret key_pad_go3: call d20ms jnb p2.2,key_pad_deal3 ret key_pad_go4: call d20ms jnb p2.3,key_pad_deal4 ret key_pad_deal1: call l4 call start jnb p2.0,$ ret key_pad_deal2: call l6 call divi jnb p2.1,$ ret key_pad_deal3: call display jnb p2.2,$ ret key_pad_deal4: call qingping call l1 jnb p2.3,$ retd20ms: mov deh,#25htm: mov del,#0ffhtm2: djnz del,tm2 djnz deh,tm retstart: mov p2,r7 mov p0,#0ffh clr rd ret;*;中断方式a/d转化;*int1: mov a,p0 setb rd mov r1,a mov a,r7 add a,#20h jnb acc.7,int1_go jnb acc.6,int1_go jnb acc.5,int1_go mov a,#1fh mov r7,a call divi reti int1_go: mov r7,a inc r1 mov a,r1 cjne a,#37h,next mov r1,#30hnext: call start reti;*qingping:mov a,#01h ;清除显示 lcall send_i lcall delay2 ret;*;数据处理100(33h-32h)/(31h-30h)*00dch=35h,36h 即100uc/ub*rb/rc=35,36h;*divi: mov r0,#00h mov r1,#00h mov r2,#00h mov r3,#00h mov r4,#00h mov r5,#00h mov r6,#00h mov r7,#00h lcall sub ;(uc+)-(uc-)=r5 (ub+)-(ub-)=r7, lcall d457 ;被除数在r2r5中,除数在r6r7中 ;(33h-32h) (即r5)/(31h-30h)(即r7)= r2,r3 mov r2,#00h ;被乘数为r2,r3. 乘数为r6,r7 mov r6,#00h mov r7,#20h ;此数据需要随电阻的不同而变更! lcall muld ;(r2,r3)*(r6,r7)=r2 r3 r4 r5 mov a,r5 mov r3,a mov a,r4 ; mov r2,a ; mov r6,#00h ; 把所得结果放大x倍 mov r7,#32h ; 结果放在r2 r3 r4 r5中 lcall muld ; mov a,r4 mov r6,a ;把结果转换成bcd码! mov a,r5 mov r7,a ;最终结果放在r3,r4,r5中 lcall h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论