三极管性能检测仪Word下载.docx
《三极管性能检测仪Word下载.docx》由会员分享,可在线阅读,更多相关《三极管性能检测仪Word下载.docx(23页珍藏版)》请在冰点文库上搜索。
![三极管性能检测仪Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/12/b44d6664-e278-4d83-9d3f-11c143afca56/b44d6664-e278-4d83-9d3f-11c143afca561.gif)
用恒流源给基极提供10μA的恒定电流,即VCC=10V,基极电阻Rb=1MΩ,考虑管压降后取基极电阻Rb=910k,用以保证基极电流恒定,用稳压管控制VCE=10V,以保证集电极-发射极极间电压恒定;
方案二:
用恒流源给基极提供10μA的恒定电流,即VCC=10V,基极电阻Rb=1MΩ,考虑管压降后取基极电阻Rb=910k,用以保证基极电流恒定,因为IB=10μA,β=50~300,所以IC=0.5~3mA,取RC=200Ω,VCE=9.90~9.40V,将集电极电压经运放放大,送模数转换芯片进行采样;
方案三:
用恒流源给基极提供10μA的恒定电流,即VCC=10V,基极电阻Rb=1MΩ,考虑管压降后取基极电阻Rb=910k,用以保证基极电流恒定,因为IB=10μA,β=50~300,所以IC=0.5~3mA,而Ie=(β+1)IB,若β>
>
1,则IE≈IC,取Re=200Ω,VCE=9.90~9.40V,将发射极电压经运放放大,送模数转换芯片进行采样;
方法一不能确定集电极的电流,这样不便于采集集电极电流;
方法二中集电极电阻值太小,起不到限流作用;
比较三种方法采用方法三。
2.2采样电路方案论证
用TLC549采集三极管发射极输出电压,送单片机进行数据处理。
用ADC0809采集三极管发射极输出电压,送单片机进行数据处理;
比较两种方法,ADC0809是并行输出数据,TLC549是串行输出数据,两个芯片都是8位A/D转换芯片,TLC549的转换时间为17μs,ADC0809的转换时间为100μs,TLC549比ADC0809的转换时间快,但是该测试队时序要求不高,因此采用方案二。
2.3显示部分方案论证
方法一:
把所有的测量结果送到上位计算机进行显示,显示精度比较高,但不够方便灵活,并且需两个全双工串行接口,实现比较困难;
把测量所得的参数用LED显示。
把测量所得的参数通过LCD液晶屏显示,这种方案虽然简便易行
比较上述三种方案,最终采用方案三,该方案简单易行。
3理论分析与参数计算
=(IC-ICEO)/IB≈IC/IB
在放大区基本不变。
在共发射极输出特性曲线上,通过垂直于X轴的直线来求取IC/IB,如图2.3所示。
在IC较小时和IC较大时,会有所减小,这一关系见图2.4。
图2.3共发射极输出特性曲线求直流电流放大系数图2.4基极电流和集电极电流关系曲线
设定IB=10μA,VCE=10V,考虑到运放和单片机的输入电压后选择集电极电压为10V。
可计算出Rb=1MΩ,由于三极管自身的管压降,所以采用Rb=910kΩ,保证了IB=10μA。
因为IB=10μA,
=50~300,所以IC=0.5~3mA,而IE=(
+1)IB,若
1,则IE≈IC,取
Re=200Ω,VCE=9.90~9.40V,由于IB=10μA,则
=IC/IB=IC/(10*10-3)。
=IC/IB
在放大区值基本不变,可在共射接法输出特性曲线上,通过垂直于X轴的直线求取IC/IB。
具体方法如图2.5所示。
图2.5共发射极输出特性曲线求交流电流放大系数
任务书中要求IB由10μA变化到20μA,VCE=10V。
IB=10μA时基极电阻Rb=910kΩ,当IB=20μA时在Rb上并联一个910kΩ电阻这样保证了IB=20μA。
VCE=10V的分析方法与三极管直流放大系数中VCE=10V的分析方法类似。
由于IB由10μA变化到20μA,即△IB=10μA,则
=△IC/△IB=△IC/(10*10-3)。
3.3放大电路
在采样电路中若模拟信号过小会造成A/D转换结果不准确,一般在A/D输入信号前端加运放电路,用以提高转换精度。
本设计中对运放精度不做要求,所以采用常用的集成运放LM324。
由于ADC0809CCN只能输入正电压,而PNP型三极管输出负电压,所以在其输出端应接反向比例运算电路。
这样放大电路可以采样电路进行4倍和8倍放大,满足了测直流放大系数
和交流放大系数β时电压放大系数不同的要求。
当测NPN型三极管时,
,根据理论计算和实际电阻的阻值可以计算出当放大8倍电压时Rf=36k,R=5.1k,当放大4倍电压时Rf=36k,R=12k。
,根据理论计算和实际电阻的阻值可以计算出当放大8倍电压时Rf=16k,R=2k,当放大4倍电压时Rf=16k,R=4k。
3.4采样电路
β=IC/IB,而IE=IC+IB,所以IE/IB=β+1,若β>
1,则IE≈IC,我们取Re两端的电压量Ue为IC的相应量,如图2.6所示。
图2.6采样电路
因为要对输出的电压量Ue进行数据处理使之变成电流量IC,再将IC与IB比较得到共发射极直流电流放大系数
和交流电流放大系数。
要将输出的电压送单片机进行数据处理,而单片机只接受和输出数字量,因此在单片机的输入端必须用到A/D转换器件,将模拟量转换为数字量后输入单片机进行数据处理。
量化间隔和量化误差是A/D转换器的主要技术指标之一。
量化间隔可用下式表示
,n为A/D转换器的位数。
量化误差有两种表示方法:
一种是绝对误差,另一种是相对误差。
由于ADC0809和TLC549都是8位的A/D转换器,所以它们的量化间隔为:
量化误差为:
它们的量化间隔和量化误差都相等,所以看它们的转换时间,ADC0809的转换时间为100μs,TLC549的转换时间为17μs,对时序要求不高,TLC549难以通过程序控制,所以采用ADC0809CCN。
3.6数据处理部分
采用STC89C52进行数据处理。
因为采集的是发射极电压Ue,要将其转换为集电极电流量IC,集电极电流IC和基极电流IB比较得到共发射极直流电流放大系数
。
由Re=200Ω,IB=10μA,
=50~300,所以IC=0.5~3mA,Ue=200*IE=0.1~0.36,该信号需经8倍放大得到
=0.8~4.8V,取Re=200Ω,则IE=Ue/200,因为
=(IC-ICEO)/IB≈IC/IB,IC=
IB,而IE=IC+IB=(
1,则IC≈IE=Ue/200,
=(Ue/200)/IB。
交流放大系数为
β=IC/IB=(IC2-IC1)/(IB2-IB1)=(IC2-IC1)/[(20-10)*10-3]=(IC2-IC1)/(10*10-3)=IC2/(10*10-3)-IC1/(10*10-3)
由此可以看出交流放大系数的计算实际就是取IB=20μA时的输入信号和IB=10μA时的输入信号比较得到的。
取Re=200Ω,IB=20μA,β=50~300,所以IC=1~6mA,Ue=200*IE=0.2~1.2V,该信号需放大4倍得到
=0.8~4.8V。
通过单片机控制液晶1602显示结果。
系统的整体电路如图4.1所示:
图4.1三极管电流放大系数测试原理图
图中三极管的位置是以后被测三极管所插得位置。
4.2恒流源电路
恒流源电路分为NPN型恒流源和PNP型恒流源,分别提供测NPN型的三极管和PNP型的
三极管参数的稳恒电流|IB|,其中测NPN时的电路图如图4.2所示:
图4.2测试NPN型三极管的电路
测PNP时的恒流源电路如图4.3所示:
图4.3测试PNP型三极管的电路
在上两个图中当开关打开时IB=10μA,开关闭合时IB=20μA,这样同时满足测直流放大系数
时IB=10μA,测交流放大系数β时IB由10μA变到20μA的要求。
4.3采样放大电路
图4.4NPN型三极管β值测试采样放大电路
图4.5PNP型三极管β值测试采样放大电路
由于测试三极管直流放大系数和交流放大系数时所需放大的电压信号放大倍数不同且输入的基极电流也不同,所以设计双刀双掷开关用于放大不同的基极电流下的输出电压值。
如图4.4,测试NPN型三极管时开关打上去IB=20μA,输出电压Ue放大倍数为
倍;
开关打下去IB=10μA,输出电压Ue放大倍数为
倍。
如图4.5,测试PNP型三极管时开关打上去IB=20μA,输出电压Ue放大倍数为
4.4数据处理及显示电路
图4.6三极管β值测试数据处理及显示电路
用单片机控制ADC0809CCN进行数据采集并输出
图4.9软件流程图
源供电不稳定,进而影响了运放,使得它放大倍数不稳定,所以就有杂波输出,在电路中的表现就是使液晶输出跳变。
取C9=100μf,C14=0.1μf经计算确定电阻值R
图5.2滤波电路
5.1电源部分
由于三极管需要
为NPN型三极管和PNP型三极管分别供电,而单片机需要+5V电源为其供电,这样一个电路中使用了三组电源供电,增加了测试仪的供电难度。
可以选用7805来稳压输出+5V电压,就可减少一组电源的使用,实现起来也更为简单。
6所用芯片的数据指标
使用注意事项
1)模拟输入电压不得超过5V。
2)参考电压必须非常稳定。
3)输入电压过小会影响转换精度,若输入电压过小可在输入端接运放,以提高转换精度。
6.1集成运放
集成电路是一种将“管”和“路”紧密结合的器件,它以半导体单晶硅为芯片,采用专门的制造工艺,把晶体管、场效应管、二极管、电阻和电容等元件及它们之间的连线所组成的完整电路制作在一起,使之具有特定的功能。
集成放大电路最初用于各种模拟信号的运算(如比例、求和、求差、积分、微分……)上,故被称为集成运算放大电路,简称集成运放。
集成运放广泛用于模拟信号的处理和发生电路之中,因其高性能、低价位,在大多数情况下,已经取代了分立元件放大电路。
集成运放的电路结构特点
1)因为硅片上不能制作大电容,所以集成运放均采用直接耦合方式。
2)因为相邻元件具有良好的对称性,而且受环境温度和干扰等影响后的变化也相同,所以集成运放中大量采用各种差分放大电路(作输入级)和恒流源电路(作偏置电路或有源负载)。
3)因为制作不同形式的集成电路,只是所用掩模不同,增加元器件并不增加制造工序,所以集成运放允许采用复杂的电路形式,以达到提高各种方面性能的目的。
4)因为硅片上不宜制作高阻值电阻,所以在集成运放中常用有源元件(晶体管或场效应管)取代电阻。
5)集成晶体管和场效应管因制作工艺不同,性能上有较大差异,所以在集成运放中常用复合形式,以得到各方面性能俱佳的效果。
集成运放芯片LM324主要性能
·
双电源供电,宽供电电压:
3V~30V
输入偏置电流:
20nA
输入失调电压:
2mV
输入失调电流:
2nA
差分输入电压范围即最大额定电源电压:
32V
开环差额放大电压:
100V/mV
内部频率补偿
共模输入电压范围包括地
独立于供电电压的电流损耗:
0.8mA
集成运放芯片LM324功能描述
LM324有4个独立的,高增益,内部频率补偿的运算放大器。
单电源供电范围广。
VCC接至少1.5V的共模输入电压。
包括传感器放大、电压放大模块和所有的常规运算放大器电路的应用在单电源电压系统中可以更简单的实现。
显示质量高
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。
因此,液晶显示器画质高且不会闪烁。
数字式接口
液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。
体积小、重量轻
液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。
功耗低
相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。
一般1602字符型液晶显示器实物如图10-53:
图10-531602字符型液晶显示器实物图
10.8.2.11602LCD的基本参数及引脚功能
1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图10-54所示:
图10-541602LCD尺寸图
1602LCD主要技术参数:
显示容量:
16×
2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×
4.35(W×
H)mm
引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
表10-13:
引脚接口说明表
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
7.1做成的实验板如下:
7.2制作过程:
在网上查阅了很多的资料,最终参考了发射极产生电压送显示的方法,然后放大模块,采样模块,数据采集模块,显示模块完全通过我们小组设计出来的,所以工作量很大经过大量的讨论,最终确认了如上方案,用了几天把电路板做出来,经过严格的检查,电路连接没有出现错误,但是刚开始输出非常不稳定,在调试阶段是最苦的,我们换了很多的程序设计的方法,最终的到现在的这个程序,已经稳定输出,但是每次复位后,输出会存在一定的误差,由于时间的关系,我们也只能做到这样了。
8.1操作方式
刚开始开关右拨,等待液晶显示,大约6秒这样,这个很重要,能否成功就看这个了,因为这是程序经过编写改造的,绝对不是网上抄袭,然后在显示数之后,按下按键开关,把npn模块的两个开关往另一个方向一拨,等待几秒钟就可以显示交流下的放大倍数显示了。
Pnp管也是这样显示的,但是要把电路中间那个开关往下打。
Ok就这样。
9.1操作过程及结果
我们电路的采样电压是慢慢的升上去,这个是什么原因我们也不太清楚,猜测可能是npn三极管的问题,因为pnp模块没有这种现象现在,那时困扰我们很长的时间,因为经过ADC0809转换后,显示很不稳定,所以在程序设计的时候,初始化完毕后我们采用延时6秒,等待电压稳定。
最后按照正常的操作方式,测得npnC9013在直流电下放大倍数为207,交流为231,pnpS9014在直流电下放大倍数为65,交流为66.
10.1实习总结:
经过三周的努力,我们学习到了许多东西,对做电路板有了一个更加清楚地认识,明白了团队合作的重要性,在这三周,学会了对adc0809ccn和液晶显示LCD1602使用,对画图软件有了一个更加全面认识,使用起来更加灵活,在其中我们,我们知道了做电路不难,但是调电路让人很头疼,所以一定要有一颗恒心,不拍艰难,这样我们可能做得更好,电路做得不是很好输出还不够稳定,但是时间已经没有了,从这一方面也证实了我们小组的基础还是不够扎实,需要在以后的学习中更加努力,更加认真。
同时感谢在这三周指导老师对我们的帮助。
我们相信以后一定会做得更好的。
本代码由我们小组两个成员共同讨论了很久,其中更换了多次设计程序的想法,还存在一定的不足,不过已经可以使数据稳定的输出
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitkey=P2^3;
bitflag=0;
sbitrs=P2^4;
sbitrw=P2^5;
sbite=P2^6;
sbitCLK=P3^5;
//接时钟接口,为adc0809提供时钟
sbitst=P3^6;
sbitoe=P3^7;
sbiteoc=P2^7;
ucharcodetable[]="
B="
;
ucharcodetable1[]="
Ilikecpu"
ucharadcreg,bai,shi,ge;
uchartemp,xyb,b,num;
voiddelay(uintt)
{
uintx;
for(;
t>
0;
t--)
for(x=113;
x>
x--);
}
/*delay_1ms(uintt)
uintx,y;
for(x=t;
x--)
for(y=113;
y>
y--);
}*/
delay_50us(uintt)
ucharj;
for(j=19l;
j>
j--);
/*delay_50ms(uintt)
uintj;
for(j=6245;
voidwrite_com(ucharcom)
e=0;
rs=0;
rw=0;
P0=com;
delay_50us(10);
e=1;
delay_50us(20);
voidwrite_data(uchardat)
rs=1;
P0=dat;
voidinit(void)//初始化定时器
TMOD=0x01;
//选择t0的工作方式1
TH0=(65536-200)/256;
TL0=(65536-200)%256;
EA=1;
//开总中断
ET0=1;
//开定时器t0
TR0=1;
//启动定时器t0
/*T0的中断服务程序,为adc0809ccn提供时钟信号*/
voidtimer0int()interrupt1
CLK=~CLK;
voidinit2(void)//初始化
delay_50us(300);
write_com(0x38);
delay_50us(100);
write_com(0x08);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
write_com(0x80);
write_data(table[0]);
write_data(table[1]);
delay(20);
write_com(0x80+0x41);
for(num=0;
num<
11;
num++)
{
write_data(table1[num]);
delay(20);
}
voiddisplay(ucharb)
bai=b/100;
shi=b%100/10;
ge=b%10;
write_com(0x82);
write_data(bai+'
0'
);
write_data(shi+'
write_data(ge+'
voidmain()
{
init();
//初始化定时器
init2();
//初始化lcd1602
delay(6000);
//很重要
while
(1)
if(flag==0)
{
st=0;
st=1;
st=0;
//启动A/D
while(eoc){}//等待eoc变低可能出错的地方
while(!
eoc){}//等待eoc变高
oe=1;
adcreg=P1;
oe=0;
temp=1000*adcreg/16;
xyb=temp;
//为交流做准备
display(temp);
flag=~flag;
}
if(key==0)
{delay(5);
if(key==0)
delay(6000);
while(!
key);
st=0;
while(eoc){}//等待eoc变低
o