0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于微控制器的二极管和双极结晶体管测试仪的说明

454398 来源:网络整理 作者:网络整理 2019-12-06 15:09 次阅读

简介

如今,大多数数字万用表都具有用于测试二极管(有时是晶体管)的内置功能。该项目的目的是演示一种使用微控制器为二极管和双极结传输器(BJT)构建测试设备的简单方法。该测试算法基于一个简单的事实,即工作中的 PN结仅在一个方向上传导电流。此项目中使用了PIC16F688微控制器,该开关可切换二极管和晶体管PN结之间的偏置电压,并确定特定结是正常,开路还是短路。

理论

测试二极管的逻辑很简单。二极管是PN结,仅允许一个方向的电流传导。因此,好的二极管将仅在一个方向上传导电流。如果在两个方向上都工作,则表示二极管短路,而在两个方向上都工作时,则表示开路。该逻辑的电路实现如下所示。

基于微控制器的二极管和双极结晶体管测试仪的说明

通过意识到这一点,可以很容易地将此概念扩展为测试晶体管。晶体管由两个PN结组成:一个在基极和发射极之间(BE结),另一个在基极和集电极之间(BC结)。如果两个结仅在一个方向上传导,则晶体管正常,否则出现故障。我们还可以通过考虑电流传导的方向来确定晶体管的类型(PNP或NPN)。需要一个微控制器的三个I/O引脚来实现晶体管的测试算法。

晶体管的测试顺序如下。

将D2设置为高电平并读取D1和D3。如果D1为高电平,则BE结导通,否则不导通。如果D3为高电平,则BC结导通,否则不导通。

将D1设置为高电平并读取D2。如果D2为高电平,则EB结导通,否则为非。

将D3设置为高电平并读取D2。如果D2为高电平,则CB结导通,否则不导通。

现在,如果仅BE和BC结导通,则该晶体管为NPN型且工作正常。而且,如果仅EB和CB结导通,则该晶体管仍然正常,但晶体管类型为PNP。其他所有情况(例如EB和BE均导通,或BC和CB均不导通等)表明晶体管不佳。

电路图和说明

该项目的电路图非常简单。它具有两个用于输入的按钮开关,分别为选择和详细信息。按下“选择”按钮可以在二极管测试和晶体管测试之间进行选择,“详细信息”按钮仅在进行晶体管测试时才可用,并显示测试结果的详细信息,例如晶体管类型和结状态。测试晶体管的三个支路(E,B和C)通过1 K电阻接地,并且两个PN结将通过PIC16F688微控制器的RA0,RA1和RA2端口引脚进行测试。二极管的测试仅需要两个引脚,并且将使用E和C引脚。这就是为什么它们在电路图中具有备用标签D1和D2的原因。

电路在面包板上设置

软件

此项目的固件是使用MikroC编译器开发的。编程时,您必须非常小心三个测试引脚(RA0,RA1和RA2)的方向设置,因为它们在运行测试算法时会经常变化。在将任何测试引脚设置为高电平之前,必须确保将其他两个引脚定义为输入引脚,以免端口引脚之间出现任何电压冲突或短路。

/*

项目:二极管和晶体管测试仪

内部振荡器@ 4MHz,启用了MCLR,启用PWRT,关闭WDT

版权@ Rajendra Bhatt

2010年11月9日

*/

//LCD模块连接

sbit LCD_RS at RC4_bit;

位RC5_bit的LCD_EN;

位RC0_bit的LCD_D4;

位RC1_bit的LCD_D5;

sbit LCD_D6为RC2_bit;

sbit LCD_D7为RC3_bit;

sbit LCD_RS_Direction为TRISC4_bit;

sbit LCD_EN_Direction位于TRISC5_bit;

sbit LCD_D4_Direction位于TRISC0_bit;

sbit LCD_D5_Direction位于TRISC1_bit;

sbit LCD_D6_Direction at TRISC2_bit;

sbit LCD_D7_Direction at TRISC3_bit;

//结束LCD模块连接

sbit TestPin1 at RA0_bit;

sbit TestPin2 at RA1_bit;

sbit TestPin3 at RA2_bit;

sbit RA4_bit的详细信息;

sbit SelectButton在RA5_bit;

//定义消息

char message1 [] =“二极管测试仪”;

char message2 [] =“ BJT Tes ter”;

char message3 [] =“结果:”;

char message4 [] =“短”;

char message5 [] =“打开”;

char message6 [] =“良好”;

char message7 [] =“ BJT是”;

char * type =“ xxx”;

char * BE_Info =“ xxxxx”;

char * BC_Info =“ xxxxx”;

unsigned int select,test1,test2,update_select,detail_select;

unsigned int BE_Junc,BC_Junc,EB_Junc,CB_Junc;

void debounce_delay(void){

Delay_ms(200);

}

void main(){

ANSEL = 0b00000000;//所有I/O引脚都配置为数字

CMCON0 = 0x07;//散售比较器

PORTC = 0;

PORTA = 0;

TRISC = 0b00000000;//PORTC所有输出

TRISA = 0b00111000;//PORTA的所有输出,RA3除外(仅I/P)

Lcd_Init();//初始化LCD

Lcd_Cmd(_LCD_CLEAR);//清除显示

Lcd_Cmd(_LCD_CURSOR_OFF);//光标关闭

Lcd_Out(1,2,message1);//在第1行中写message1

select = 0;

test1 = 0;

test2 = 0;

update_select = 1;

detail_select = 0;

做{

if(!SelectButton){

debounce_delay() ;

update_select = 1;

开关(选择){

case 0:select = 1;

break;

case 1:select = 0;

break;

}//案例结束

}

if(select == 0){//二极管测试仪

if(update_select){

Lcd_Cmd(_LCD_CLEAR);

Lcd_Out(1,2,message1);

Lcd_Out(2,2,message3);

update_select = 0;

}

TRISA = 0b0 0110100;//RA0 O/P,RA2 I/P

TestPin1 = 1;

test1 = TestPin3;//读取RA2上的I/P

TestPin1 = 0;

TRISA = 0b00110001;//RA0 I/P,RA2 O/P

TestPin3 = 1;

test2 = TestPin1;

TestPin3 = 0;

if((test1 == 1)&&(test2 == 1)){

Lcd_Out(2,10,message4);

}

if((test1 == 1)&&(test2 == 0)){

Lcd_Out(2, 10,message6);

}

if((test1 == 0)&&(test2 == 1)) {

Lcd_Out(2,10,message6);

}

if((test1 == 0)&&(test2 == 0)){

Lcd_Out(2,10,message5);

}

}//结束if(select == 0)

if(select &&!detail_select){//晶体管测试仪

if(update_select){

Lcd_Cmd(_LCD_CLEAR);

Lcd_Out(1,2 ,message2);

update_select = 0;

}

//测试BE NPN

的BC和BC交界处TRISA = 0b00110101;//RA0,RA2 I/P,RA1 O/P

TestPin2 = 1;

BE_Junc = TestPin1;//读取RA0处的I/P

BC_Junc = TestPin3;//在RA2处读取I/P

TestPin2 = 0;

//测试PNP的EB和CB结点

TRISA = 0b00110110;//RA0 O/P,RA1/RA2 I/P

TestPin1 = 1;

EB_Junc = TestPin2;

TestPin1 = 0;

TRISA = 0b00110011;//RA0 O/P,RA1/RA2 I/P

TestPin3 = 1;

CB_Junc = TestPin2;

TestPin3 = 0;

if( BE_Junc && BC_Junc &&!EB_Junc &&!CB_Junc){

Lcd_Out(2,2,message3);

Lcd_Out( 2,10,message6);

type =“ NPN”;

BE_info =“ Good”;

BC_info =“好”;

}

else

if(!BE_Junc &&!BC_Junc && EB_Junc && CB_Junc){

Lcd_Out(2,2,message3);

Lcd_Out(2,10,message6);

type =“ PNP”;

BE_info =“良好”;

BC_info =“良好”;

}

其他{

Lcd_Out(2,2,message3);

Lcd_Out( 2,10,“ Bad”);

type =“ Bad”;

}

}

if(select &&!Detail){

debounce_delay();

开关(detail_select){

情况0:detail_select = 1;

break;

情况1:detail_select = 0;

break;

}//案例结束

update_select = 1;

}

if(detail_select && update_select){

//测试BE结是否打开

if(!BE_Junc &&!EB_Junc){

BE_info =“打开”;

}

//测试BC结是否打开

if(!BC_Junc &&!CB_Junc ){

BC_info =“打开“;

}

//测试BE Junction short

if(BE_Junc && EB_Junc){

BE_info =“ Short”;

}

//测试BC结短路

if(BC_Junc && CB_Junc){

BC_info =“ Short”;

}

Lcd_Cmd(_LCD_CLEAR);

Lcd_Out(1,1,“ Type:”);

Lcd_Out(1,7,type);

Lcd_Out(2,1,“ BE:”);

Lcd_Out(2,4,BE_info);

Lcd_Out(2,9,“ BC:”);

Lcd_Out(2,12,BC_info);

update_select = 0;

}////如果(detail_select)

}结束,则while(1);

}

下载源代码和十六进制文件

输出

下面是我在测试各种输入条件时为二极管和BJT测试仪拍摄的照片。

其余图片

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6806

    浏览量

    147601
  • 二极管
    +关注

    关注

    144

    文章

    9007

    浏览量

    161311
  • 测试仪
    +关注

    关注

    6

    文章

    3204

    浏览量

    53789
收藏 人收藏

    评论

    相关推荐

    二极管作用及型号

    如图所示,有没有合适的二极管型号推荐啊?这个一定需要吗?
    发表于 03-25 22:09

    SP1T引脚二极管开关PULSAR

    在 40 MHz 至 18 GHz。SP1T引脚二极管开关的时间控制器为 100 ms,额定输入功率为 200 mW (23 dBm)。大部分型号规格的典型性能为 1.6:1 或更高效的 VSWR 及其
    发表于 02-05 11:01

    二极管篇】二极管特性丨直流、交流、电流、转换时间

    。 反向恢复时间 存储时间和转换时间之和称为反向恢复时间。它是二极管将外加电流信号从反向泄漏电流提升到恒定状态值的10%所需的时间。PN结二极管的反向恢复时间值通常为微秒量级。 广泛使用的小信号二极管整流
    发表于 01-25 18:01

    结晶体管的工作原理是什么?

    常用的半导体元件还有利用一个PN结构成的具有负阻特性的器件一单结晶体管,请问这个单结晶体管是什么?能够实现负阻特性?
    发表于 01-21 13:25

    DT2040隧道二极管探测HEROTEK

    HEROTEK隧道二极管探测是一种晶体二极管,其电流值是通过隧道效应的主要电流分量。隧道二极管检测器具有优越的电源开关性能、效率更高、工作频率高,但普遍存在热稳定性差的问题。DT20
    发表于 01-10 09:23

    二极管,三极管丝印的对应型号

    1.请教各位贴片二极管丝印6S/3N(90度)、6S/31(90度)(封装SOD-123),这两种二极管具体型号是什么? 2.请教各位贴片三极管丝印M51、7002K、 7P1、 B123(封装都是SOT23)这四款
    发表于 10-08 11:30

    二极管反向恢复速度怎么测试

    二极管是单向导通,那么反向恢复时间是什么,需要怎么测试
    发表于 09-27 07:51

    如何判断二极管的正负极

    判断二极管的正负极有以下几种方法: 对于普通二极管,可以看管体表面,有白线的一端为负极。 对于发光二极管,引脚长的为正极,短的为负极。 如果引脚被剪得一样长了,发光二极管管体内部金属
    发表于 09-06 17:39

    二极管电流方向

      二极管的电流方向是从正极流向负极。   就是从二极管PN结的P区流向N区,在电路图中,二极管“三角形”所指示的方向就是它的正向电流方向。发光二极管的电流方向与电路的电流方向是一致的
    发表于 09-06 17:37

    不同类型的晶体管及其功能

    及其应用。 什么是晶体管 晶体管是电子设备。它是通过p型和n型半导体制成的。当半导体放置在相同类型半导体之间的中心时,这种排列称为晶体管。我们可以说晶体管是两个
    发表于 08-02 12:26

    晶体管二极管极管晶体管mosigbt区别及工作原理

    二极管
    YS YYDS
    发布于 :2023年06月29日 18:52:36

    二极管的工作原理-PN结二极管

    二极管
    YS YYDS
    发布于 :2023年06月25日 22:03:23

    二极管发电

    二极管
    YS YYDS
    发布于 :2023年06月08日 20:51:37

    TEA2208T为什么有4个二极管的位置没有放置?

    客户有评估板。想知道为什么有 4 个二极管的位置没有放置。用户指南 UM11348 v2.2 2020 年 10 月指出“当需要对有源桥进行 MOSFET 引脚开路测试时,为每个有源桥 MOSFET 添加一个并联二极管”。有人可
    发表于 05-12 08:20

    结晶体管随着电容的充电放电是如何形成自激振荡脉冲的?

    结晶体管随着电容的充电放电是如何形成自激振荡脉冲的?
    发表于 04-26 15:07