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

    文章

    8249

    浏览量

    162371
  • 二极管
    +关注

    关注

    149

    文章

    10309

    浏览量

    176459
  • 测试仪
    +关注

    关注

    6

    文章

    4148

    浏览量

    60822
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    二极管的妙用

    ,也没有晶体管那样的“红毯待遇”。当人们惊叹于这个元件时,通常也是在谈论像耿氏二极管或隧道二极管这样的奇特发明,而这两者在现实生活中几乎都遇不到。今天,让我们向“
    的头像 发表于 11-26 07:35 427次阅读
    <b class='flag-5'>二极管</b>的妙用

    如何用合科泰MOS做一个高性能理想二极管控制器

    损耗,影响系统效率。理想二极管控制器正是解决这一问题的创新方案,而MOS则是实现这一技术的核心器件。 理想二极管控制器的工作原理 理想
    的头像 发表于 09-29 10:05 1.7w次阅读
    如何用合科泰MOS<b class='flag-5'>管</b>做一个高性能理想<b class='flag-5'>二极管</b><b class='flag-5'>控制器</b>?

    输出二极管选取(可下载)

    有关二极管选取一般从一下几点着手一、根据二极管应用的开关速度来选取不同类型的二极管、根据输出的电流来选取二极管的电流范围三、通过计算来确定
    发表于 03-04 14:02 0次下载

    二极管晶体管的比较分析

    在现代电子技术中,二极管晶体管是两种不可或缺的半导体器件。它们在电路设计中有着广泛的应用,从简单的信号处理到复杂的集成电路。 二极管 二极管是一种两端器件,其主要功能是允许电流单向流
    的头像 发表于 02-07 09:50 1424次阅读

    如何测试二极管是否工作正常

    在电子电路中,二极管是一种基础且重要的组件。它们用于整流交流电、保护电路免受反向电压损害、以及在数字电路中作为开关使用。 二极管的基本原理 在开始测试之前,了解二极管的工作原理是有帮助
    的头像 发表于 02-07 09:43 1499次阅读

    Zener二极管的作用与应用

    Zener二极管的作用 Zener二极管的主要作用是提供稳定的电压参考。在正常的二极管中,电流只能从阳极流向阴极,而在Zener二极管中,当反向电压达到或超过Zener电压时,电流可以
    的头像 发表于 02-07 09:38 1827次阅读

    如何辨别共阴二极管与共阳二极管

    在电子领域中,二极管作为一种基础且重要的电子元件,被广泛应用于各类电路中。其中,共阴二极管与共阳二极管在外观上极为相似,然而其内部结构和工作特性却存在差异。
    的头像 发表于 02-05 17:35 4830次阅读

    如何测试整流二极管性能

    整流二极管是电子电路中不可或缺的组件,它们在电源、信号处理和电源管理等领域扮演着重要角色。为了确保整流二极管的性能和可靠性,必须进行一系列的性能测试。 整流二极管的基本原理 在开始
    的头像 发表于 01-15 09:30 2095次阅读

    整流二极管与稳压二极管的区别

    在现代电子技术中,半导体二极管是不可或缺的基础元件之一。它们以其独特的单向导电特性,在各种电路中发挥着重要作用。整流二极管和稳压二极管是两种常见的二极管类型,它们虽然都属于
    的头像 发表于 01-14 18:11 2482次阅读

    TVS二极管与稳压二极管的主要区别

    在电子电路中,TVS(二极管瞬态抑制二极管)和稳压二极管(又称齐纳二极管)都是常用的保护元件,它们各自的作用和应用场景有所不同。尽管这两种二极管
    的头像 发表于 12-30 10:26 2853次阅读
    TVS<b class='flag-5'>二极管</b>与稳压<b class='flag-5'>二极管</b>的主要区别

    开关二极管的最大极限参数

    开关二极管,顾名思义,主要用于电路的开关控制。它的工作原理基于二极管的单向导电性。当二极管正向偏置(即阳极接电源正极,阴极接电源负极)时,二极管
    的头像 发表于 12-25 13:54 1407次阅读

    稳压二极管是什么?有什么用处?

    稳压二极管 直插玻璃稳压二极管 稳压二极管介绍 稳压二极管(Zener Diode)是一种具有特殊特性的二极管,它在反向工作状态下能够维持恒
    的头像 发表于 12-17 13:54 3568次阅读
    稳压<b class='flag-5'>二极管</b>是什么?有什么用处?

    如何测试稳压二极管性能 稳压二极管对电路稳定性的影响

    利用半导体材料的击穿特性来维持电压稳定的器件。当电压达到稳压二极管的击穿电压时,它会突然导通,吸收多余的电压,从而保护电路不受过高电压的影响。 测试稳压二极管性能的方法 1. 外观检查 首先,对稳压
    的头像 发表于 12-13 16:30 3513次阅读

    稳压二极管故障排除方法 稳压二极管的主要参数

    : 稳压二极管故障排除方法 外观检查 : 检查稳压二极管的封装是否有损坏,如裂纹、烧痕等。 检查引脚是否弯曲或断裂。 万用表检测 : 使用万用表的二极管测试功能,测量稳压
    的头像 发表于 12-13 16:27 2808次阅读

    如何测试肖特基二极管性能 肖特基二极管功率损耗分析

    。 测量正向电压降,如果测试结果显示一个正向电压值(如0.2V~0.7V之间,具体数值取决于二极管型号),则说明二极管正常。如果显示为无穷大或开路,则可能
    的头像 发表于 12-13 16:18 2597次阅读