自动化毕业设计论文-基于AVR微处理器的晶体管测试仪 (1).doc
基于AVR微处理器的晶体管测试仪摘 要本文设计了一个晶体管测试仪,该系统基于Atmel公司的8位AVR单片机ATmega328p,其内部集成了6通道10位ADC,用其中的三路ADC分别采样电压,采样结果送CPU处理后再送液晶显示器显示。系统采用的是具有较好的显示效果的黄绿屏LCD1602点阵图形液晶模块液晶显示器,。系统软件采用C语言在AVR Studio 4.0上编程,利用模块化的程序设计方法编写系统各模块程序,它具有功能稳定,精确度较高,易于功能扩展等特点。系统具备一键测量功能,能够自动识别二极管,三极管(包括MOSFET和JFET),电阻,电容,电感,识别后自动进入参数测量模式,最后将测量元器件的类型对应的管脚以及该元器件的相关参数通过液晶显示出来。关键词:晶体管参数测试;ATmega328p;LCD1602;自动测量 AbstractThe paper designs a simple Transistortester, this system based on ATmega 328p which contains six 10-bit-ADC. The three of six ADC are used to sample the voltage, and the result will be send to the display after processing of processor. This system used LCD1602 as the display, which has nice display effect. This system software is using C langue which developed on the environment of AVR Studio 4.0, and we utilize the modularization method of program design to make the system stable function and to be pronged to other function. This system can achieve all the measurement function with one key and automatically identify the diode, triode (including MOSFET and JFET), resistance, capacitance, inductance, it can be automatically enter the parameter measurement after the pattern recognition. Finally the type of pin and related parameters of the components will be display through the LCD1602. Key words: TransistorTester; ATmega328p; LCD1602; Automatic measurement目 录摘 要2Abstract3第1章 绪 论61.1 晶体管测试仪的意义61.2 晶体管测试仪的发展历程61.3 本次设计任务6第2章 硬件设计82.1 电源的设计82.2 控制器的设计92.2.1 ATmega328P控制器的简介92.2.2 控制器电路设计92.3 液晶显示介绍102.2.1 液晶LCD1602简介102.2.2 液晶接口电路设计112.4 制作的实物图122.4.1 实物的正面图122.4.2 实物的反面图13第3章 软件设计143.1半导体测量153.1.1 测量PNP三极管或者P沟道的MOSFET163.1.2测量NPN三极管或者N沟道的MOSFET183.1.3 二极管的测量193.1.4 晶体管测试流程图203.2 电阻测量223.2.1用680的电阻测量223.2.2 用470k的电阻测量243.3 电容测量263.3.1 电容放电263.3.2 大电容测量263.3.3 小电容的测量273.4 电感测量28第4章 数据测试以及结果分析304.1 电阻测量结果304.3 电容测量结果304.3 晶体管测量结果31第5章 总 结325.1 遇到的问题以及解决方法325.2 制作和调试晶体管测试仪325.3 系统的升级与改进33参考文献34致 谢35附 录36附录一:系统的硬件设计图36附录二:元器件测量图36附录三:程序源代码38第1章 绪 论 1.1 晶体管测试仪的意义在电子器件的历史上,晶体管的出现具有划时代的意义,促进了当今社会的飞速发展,它是所有现代电器的关键元器件。每一个电子爱好者都会遇到这样的问题,当你从PCB板上拆下来一个晶体管时,如果你能够识别并找到关于这个晶体管的资料那最好,但是大多数情况下我们不能马上找到相应的资料或者根本找不到与之相关的资料,如果用传统的方法去判断这是什么类型的晶体管,对应的管脚是怎样的,不但很困难,而且很费时间。它可能是NPN、PNP、N-或者是P-沟道的MOSFET等等。所以设计出来一种便携式晶体管测试仪对于我们快速判断晶体管类型和管脚非常有必要。因而设计一个仪器对其参数的测量具有十分重大的意义。1.2 晶体管测试仪的发展历程晶体管参数测试仪与其它电子测量仪器一样,也经历了全电子管式全晶体管式晶体管与集成电路混合式几个发展阶段。1964 年,我国第一台电子管式的半导体管特性图示仪J-T-l 型图示仪问世。70 年代初上海无线电二十一厂试制了QT2型晶体管式的图示仪,满足了半导体器件飞速发展的需要。80 年代初,以XJ4810型为主要代表的晶体管与集成电路混合式的半导体管特性图示仪问世。它采用了CMOS 数字电路、D/A 变换器代替传统的RC 充放电电路,使阶梯波质量有了质的飞跃;采用直流光电扫描,避免了容性电流干扰,使微电流测试范围由1A/div扩展到20nA/div。目前,晶体管测试仪正向数字化、智能化方向发展,具有LCD 显示、数字读出、光标测量的图示仪已经问世。数字技术、计算机技术、微电子技术大量应用于图示仪中,使它成为智能化,微型化的自动测量仪器。1.3 本次设计任务1 具备开机唤醒功能,自动电源关闭功能,接通电源后,必须按复位键唤醒单片机,过一段时间后没有测量,系统将自动关闭电源。2 支持电池供电,睡眠状态下的电流只有20nA3 自动检测并判断是二极管还是NPN和PNP三极管,N-或P-沟道MOSFET,JFET,等4 一键式操作,自动检测并判断所测元器件对应的管脚5 判断为二极管后测量并显示二极管的符号以及对应的管压降和阴阳电极以及管压降6 判断为三极管后测量并显示其电流放大倍数和基极与发射极之间的压降7 判断为MOSFET后测量并显示其门槛电压8 判断为电阻后测量并显示电阻符号以及电阻值,精度较高最大测量电阻值50M 9 判断为电容后测量并显示电容符号以及电容值10 判断为电感后测量并显示电阻的符号以及显示电感的值和该电感的电阻的值第2章 硬件设计2.1 电源的设计一个好的供电系统对于系统来说至关重要。该系统采用9V电池供电,具有低功耗,体积小,便于携带的特点,该供电系统通过程序控制有两种供电模式,正常工作模式和睡眠模式。系统睡眠状态下的电流只有20nA,充分体现了系统的低功耗,增加了电池的使用寿命。系统的电源设计部分如图2.1所示。图2.1 电源部分原理图9V的电源(电池供电)经过六角开关进来,当按键未按下时,由于单片机没有上电,单片机12管脚(PD6)电压为0V,三极管Q3(8050)截止,从而导致三极管Q1(8550)截止,回路中的电流大概只有20nA,所以发光二极管也不会亮;当按键按下时,9V电压经R7和R11到三极管Q4(8050),此时Q4导通,从而Q1导通,从而Q2(78L05)输出5V电压,单片机和液晶被供电,此时液晶变亮,单片机上电后将管脚12(PD6)上拉为5V输出,此时Q3被导通,当松开按键时,由于Q3的导通,Q1仍然可以继续导通,维持5V电源供电,经过一段时间后,如果单片机检测到没有测量信号输入,则将管脚12(PD6)拉低为0V输出,此时Q3截止,导致Q1截止,从而单片机和液晶同时断电,系统进入省电模式,再次唤醒系统只需按下复位按键,系统就可以重新被唤醒进入测量模式。2.2 控制器的设计控制器的选择对于整个系统来说是最重要的,它直接决定了系统的好坏。对于一个实用的系统来说,控制器不仅要能满足系统功能的需求,而且要稳定性强,价格便宜,在系统控制器选型时,首先考虑了意法半导体公司的STM32,但是由于这款控制器封装为贴片,考虑到实验室制版中相关设备的限制导致贴片型PCB板成功率低,后面选用了Atmel公司的ATmega328P作为控制器。 2.2.1 ATmega328P控制器的简介主要特性如下:(1) 8 位AVR 微处理器,性能高、功耗低的。(2) I/O 和封装:23个可编程的I/O 口,28引脚PDIP。(3) 超低功耗1. 正常模式:1 MHz, 1.8V, 25°C: 0.2 mA2. 掉电模式:1.8V, 0.1 A3. 省电模式:1.8V, 0.75 A(4) 先进的RISC 结构2. 拥有32 个8 位通用工作寄存器,全静态工作3. 工作于20 MHz 时性能高达20 MIPS4. 只需两个时钟周期的硬件乘法器(5) 外设特点1. 两个具有独立预分频器和比较器功能的8位定时器/计数器2. 一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器3. 具有独立振荡器的实时计数器RTC4. 六通道PWM,8路10 位ADC5. 可编程的串行USART,可工作于主机/ 从机模式的SPI 串行接口由以上特点可以看出:该控制器具有功耗低,性能高,外设丰富,双列直插分装(PDIP)的特点。系统采用电池供电需要低功耗;控制器内部具有独立震荡器的实时计数器RTC这样可以省去了外部添加晶振,双列直插的封装很好的解决了实验室对于贴片做板成功率低的问题,所以该控制器很好的符合该系统的要求。2.2.2 控制器电路设计控制器部分的原理图如图2.2所示,由图可知P3为测试的三个端口,测试时可以将待测元器件任意接在这三个接口即可。图中可以看出单片机的9号和10号管脚可以外接8MHz的晶振,但是没有接入因为由上面分析可以知道,单片机内部具有独立震荡器的实时计数器RTC可以提供系统工作时的时钟。这里对于R1到R6的阻值要求误差非常小才能很好的保证测量误差小,因为测量待测元器件的测量以R1到R6这些电阻为采样电阻。图中的ISP10为程序烧录接口,PD0到PD7为液晶控制接口。图2.2 控制器部分原理图2.3 液晶显示介绍液晶显示器的选择以显示清晰,价格便宜为标准。因为该系统需要显示的内容不多,所以考虑用LCD1602液晶显示,在购买器件时发现有两种一种是蓝屏的价格在5元左右,另一种是黄绿屏的价格在7元左右,考虑到黄绿屏的显示效果较好而且价格不是贵很多,所以系统选用了黄绿屏的LCD1602液晶显示器。2.2.1 液晶LCD1602简介LCD1602为字符型液晶显示模块,是一种专门用于显示字母、数字、符号等点阵式LCD液晶显示器,下面为长沙太阳人电子有限公司的黄绿屏LCD1602字符型液晶显示器,实物如图2.3所示。图2.3 黄绿屏LCD1602字符型液晶显示器实物图2.2.2 液晶接口电路设计液晶接口部分电路图如图2.4所示:图2.4 液晶LCD1602接口电路图对上面的图片接口进行整理可以得到AVR控制器的PD端口和相应的信号连线对应如下表2.1所示:表2.1 液晶与单片机端口连接液晶信号线AVR单片机引脚LCD-RSPD4LCD-ENPD5LCD-D4PD0LCD-D5PD1LCD-D6PD3LCD-D7PD42.4 制作的实物图2.4.1 实物的正面图图2.3 实物的正面图2.4.2 实物的反面图图2.4 实物的反面图系统整体原理图可参见见附录一第3章 软件设计ATmega单片机的I/O口的原理图如3.1所示,开关PUD独自控制ATmega单片机的I/O口是否上拉电阻输出,作为输出管脚时要断开开关DD,当作为输入时可以不管开关DD的状态,开关PORT通常用来决定输出的电平,但是也可以用来控制上拉电阻。因为开关PORT和开关DD不能同时改变,只能一个先变化一个后变化,所以上拉电阻可能会干扰到测量,因此一般会用开关PUD禁止上拉输出,这里的开关一般都是用寄存器控制的,电阻22和19.也只是近似值。图3.1 ATmega单片机I/O口简易图晶体管测试仪的三个外接测量口每一个都通过电阻或者直接和ATmega单片机的三个I/O口相连,其中一个外接测量口连接的示意图如图3.2所示,图3.2 其中一个测量端口的示意图每一个测量管脚都能被用作数字或者模拟输入,同时每一个测量管脚也都能作为输出,作为输出时可以直接连接到GND(0V)或者VCC(5V),或者也可以通过680或470k电阻连接到GND和VCC。所有可能的测量情况如表格3.1所示。其中,高电平可能是直接接到VCC或者也可以通过680电阻接到VCC。低电平可能是直接接地或者通过680电阻接地,测量端的管脚则作为输入通过470k的电阻接到VCC或者GND,也可能通过680的电阻接到VCC或者GND。表3.1 所有测量的情况序号管脚1管脚2管脚31高电平(H)低电平(L)测量端(T)2高电平(H)测量端(T)低电平(L)3测量端(T)低电平(L)高电平(L)4测量端(T)高电平(H)低电平(H)5低电平(L)测量端(T)高电平(H)6低电平(L)高电平(H)测量端(T)3.1半导体测量不妨设其中一个测试端口(设为H管脚)连接的是元器件的阳极,直接连在VCC上面,其他两个测试端口(设为L管脚和T管脚)连接的是元器件的阴极,通过680的电阻连接到GND。场效应管的类型取决于门级电压,保持上面状态5ms,在这段时间内用ATmega单片机内部的ADC(模数转换)读出L管脚的电压设为vCEs。然后让T管脚设置为输入状态(高阻状态)保持5ms,读出L管脚的电压设为lp_otr。接着让T管脚通过680的电阻接到VCC保持5ms,读出L管脚的电压设为lp2。如果lp2小于vCEs那么前面的假设成立,按照T管脚设置为输入状态再次测量L管脚的电压lp_otr。如果vCEs+100>lp_ort且vCEs>115那么可以确定该测量管为耗尽型,为了测量出耗尽型的其他参数,接下来将利用680的电阻将其连接到电源测量方法如图3.3所示。图3.3 N沟道JFET源极电流和门级与源极之间电压测量方法如果元器件没有电流在H管脚和L管脚之间,在T管脚没有检测到任何信号,详细的说明在3.1.1中,如果只能检测到电流,详细的说明在3.1.3中。3.1.1 测量PNP三极管或者P沟道的MOSFET第一种方法,用共集电极电路来测量PNP三极管的电流放大系数,测量原理图如图3.4所示,如果测量的基极电压(UB)大于9mV,则用680的电阻,参数电流放大系数hFE计算公式如下:(3.1)UE为发射极的电压(这里没有考虑电阻19和22之间的差别), 如果UB的值小于10mV,那么基极要用470k的电阻,这时电流放大系数计算公式如下:(3.2)图3.4 共集电极电路测量PNP三极管电流放大系数hFE第二种测量方法,用共发射极电路来测量PNP三极管的电流放大系数。测量元器件的阳极直接连在VCC上面,阴极则通过680的电阻接地,测量原理图如图3.5所示,当基极通过680电阻接地时,如果元器件的阴极电压大于3.4V,那么该元器件一定为PNP三极管或者是P沟道的FET。如果基极的电压大于0.97V时,那么该元器件一定为PNP。对于电流放大系数的测量,这时将基极的680电阻换成470k的电阻,电流放大系数计算公式如下:(3.3)图3.5 共发射极电路测量三极管电流放大系数hFE3.1.2测量NPN三极管或者N沟道的MOSFET共集电极电路测量NPN三极管的电流放大倍数的方法和测量PNP三极管的方法相同,第一次测量用让基极通过680的电阻VCC,如果基极的电压太低,则用470k的电阻。接着用共发射极电路来测量,测量原理如图3.6所示。图3.6 共发射极电路测量NPN三极管的电流放大系数hFE当基极通过680电阻接VCC时,如果集电极的电压低于1.6V,测量的元器件一定是NPN三极管或者N沟道的MOSFET。NPN三极管的基极电压和发射极的电压很接近,所以两者很容易辨别出来。共发射极电路的电流放大系数hFE计算公式如下: (3.4)3.1.3 二极管的测量如果在前面的测试中检测到了电流,那么测量的元器件可能是二极管。接上680的电阻后电压的范围应该是0.15V到4.64V之间。接上470k的电阻采样设为V1,接上680的电阻采样电压设为V2,那么V1的值应该是V2的8倍左右。3.1.4 晶体管测试流程图图3.7 晶体管测试流程图 第一部分,JFET和耗尽型MOSFET图3.8 晶体管测试流程图 第二部分,BJT和增强型MOSFET3.2 电阻测量每一个电阻同一个电流方向要以四种不同的方向测量四次,同时与之相反的电流方向也用同样的方法测量四次,相反方向测量是为了判别是不是电阻,如果正反方向测量的电阻值相差太大,那么就不是电阻。3.2.1用680的电阻测量用之前选择很准确的680的电阻来测量未知电阻Rx有两种方法,不妨设待测的电阻接在测试管脚1(TP1)和测试管脚3(TP3), 测量原理图如图3.10和图3.11所示图3.10 用680电阻测量方法一图3.11 用680电阻测量方法二如上图所示,左边为测试管脚1,右边为测试管脚3,右边测试管脚3连接到VCC,左边测试管脚1连接到GND,保证流经待测电阻Rx的电流方向相同。图3.7中电流通路为VCC-22电阻-PB4-680电阻-Rx电阻-PC0-19电阻-GND,在PC2端口采样。图3.8中电流通路为VCC-22电阻-PC2-Rx电阻-680电阻-PB0-19电阻-GND,在PC0端口采样。前后两次测量过程中流过电阻Rx的电流应该相同,因为从VCC到GND 之间的电阻值相等,但是由于680的电阻值位置不同所以采样的电压值不同。在两次不同的方法测量后可以得到采样电压值,经过计算可以得到Rx的值。如果待测电阻Rx的值相对680不是太大,理论上的电压倾斜度如图3.12所示,这里的电阻值的范围以对数形式表示。图3.12采用680的电阻用方法一和方法二的采样电压值将低电阻测量区放大后如图3.13所示,由图3.13可知,5V的参考电压下AD采样的精度至少要达到4.9mV,才能使电阻的测量精度低于2。但是ATmega单片机内置的ADC不能达到那么高的精度,因为参考电压太高并且ATmega单片机的ADC不是差分输入。计算后可知,采用680电阻测量时最高测量的电阻选为20k时能达到较为理想的精度(采用方法二测量20k的电阻时采样电压为169mV)。对于阻值较高的电阻的测量则要选用470k的电阻了。如果测量满足电阻情况,前后两次测量的平均值将作为Rx的值显示出来。图3.13 测量0到10理论采样电压值3.2.2 用470k的电阻测量下面两幅图3.14和3.15的测量流程和用680电阻测量流程相同,只是将680电阻用470k电阻替换。因为22与19的电阻相对470k的电阻很小,在计算Rx电阻时可以将其忽略。图3.14 用470k电阻测量方法三图3.15 用470k电阻测量方法四采用470k电阻的两种方法测量只有其中一个电压能够被采样到,因为回路中的电流太小。理论上的电压倾斜度如图3.16所示,这里的电阻范围也是以对数的形式表示。图中理论上的倾斜度达到了100M,但是实际上只能达到60M,超过60M将会被视为没有电阻连接。图3.16采用470k的电阻用方法三和方法四的采样电压值3.3 电容测量电容测量的原理是通过不同的电阻对电容的充电时间的不同来测量的。可以通过两种方法测量,方法一通过AD(模数转换)读出测量引脚的电压并与软件内部的电压值相匹配,匹配后停止充电并记录测量该电容充电所用的时间,根据充电的时间和充电时选用的电阻,来计算电容的值。方法二通过固定充电的时间,在达到时间后对测量引脚电压通过AD采样,根据AD采样的电压值和充电时的电阻值来计算电容的值。在Markus F.的软件版本中采用的是方法一,但是方法一有一定的缺陷,因为在Markus F.的软件版本中,时间的记录建立在一个循环程序上,用这个循环程序运行的次数乘以该程序运行所需的时间来得到AD采样的时间,但是这很难精确的记录电容充电所用的时间,因为有时运行不足一个循环程序的时间也将会算做一个来处理。所以我们这里采用方法二。3.3.1 电容放电在将电容连接到测试仪之前应该保证电容放电,软件在测试时也会对电容做放电处理,但是有时候电容太大,如果测试之前不放电,直接连在测试仪上可能会损坏单片机。3.3.2 大电容测量电容的一端连接在GND上,另一端通过680的电阻连接到VCC上保持10ms,之后充电的管脚设置为输入状态(高阻态)保证电容两端的电荷不被放掉,这时AD采样该充电管脚的电压,如果电压值没有达到最小电压300mV,那么增加充电时间,知道电压大于300mV。如果大约2S后还没有达到75mV,那么后面就没必要测量了,因为不可能达到300mV。图3.17显示了电容测量过程中的三个阶段。图3.17 大电容测量的三个阶段3.3.3 小电容的测量如果第一个10ms就将电容充满了,那么就要采用另一种测量方法了。ATmega单片机有一个内置的16位计数器,它能工作在满时钟状态下(1MHz或者是8MHz),这个计数器有一个特点就是能够通过外部事件计数,这些外部事件能够通过输出比较器建立,这些个比较器能比较任何ADC(模数转换)输入管脚和带隙基准,测量的简单示意图如图3.18所示。所以当电容放完电,准备好作为比较输入的测量引脚后,待测电容一端直接点在GND上,另一端通过470k的电阻连接到VCC,当待测电容开始充电时,将计数器从0开始计数。因为电容小,那么基本上在一个循环程序的时间内就可以完成,这么小的时间就可以通过内置的16位计数器来获得。原则上可以通过680的电阻来测量,但是因为如果比较器工作时ADC不能工作,不能得到计数器停止时电容两端充电的电压值,所以这里只能选择470k的电阻。图3.18 用比较器测量小电容的值3.4 电感测量当电阻值低于2100时,进入电感测量模块。测量的原理是基于电感两端的电流不能突变,增长的电流计算公式如下:(3.5)时间常数计算公式如下:(3.6)它和电感L成正比例关系,和电阻R成反比例关系,电流能够间接的通过电阻两端的压降得到。因为通过加入680电阻导致时间常数减小,因此对于小电感的值很难通过8MHz的时钟来测量。为了得到时间常数,680的电阻上的电压将通过模拟比较器来监视,如果680电阻的压降高于内部的参考电压,这将触发内置的16位计数器,同时打开电流开关。计数器将保存这次事件的状态。之后,计数器将将会被程序停止,并且所用的时间能够通过计数器得到。测量原理的示意图如图3.20所示。图3.19 用比较器测量电感电路中的最大电流Imax可以通过电源电压VCC和回路中的电阻来计算,计算公式如下:(3.7)所以电感L计算公式为: (3.8)为了测量较小的电感,如果测量的电阻值小于24,那么这里的680的电阻将从电流回路中去掉。只有输出电阻19将被用在测量过程中,这可能会导致回路中的电流很大,但是因为时间很短,所以不会损坏ATmega单片机。第4章 数据测试以及结果分析4.1 电阻测量结果表 4.1 电阻测量结果序号万用表测量值()测试仪测量值()误差(%)序号万用表测量值()测试仪测量值()误差(%)11.11.036.79210.310.51.90351.752.10.764100.6102.51.855151.6153.21.046196.81950.927238.0237.40.258298.0296.50.509459.1458.30.1710502.2500.90.2511681.5680.00.22121.172k1.171k0.08131.964k1.969k0.25143.8k3.698k2.75156.87k6.692k2.6169.14k8.957k2.041768.3k70.53k3.161898.9k101.0k2.0719146.7k146.0k0.4820196.3k195.4k0.4621301k300.2k0.2622380k378.5k0.3923628k626.8k0.1924994k991.9k0.21252.05M1.983M3.37264.98M4.865M2.36277.33M7.185M2.01289.71M9.418M3.10由表4.1中的数据可以看出,电阻值从1到20M的范围内,误差范围基本控制在3%以内,当测量680和470k附近的电阻时测量的误差比较小,当测量相对与680很小的电阻区(小于200),位于680和470k之间的电阻区(3k到100k之间),相对与470k很大的电阻区(大于2M)这三个区的电阻时误差较大,这是因为测量电阻时所用的相对采样电阻为680和470k两个档位,在选型时这两个电阻的值误差很小,而且当测量电阻和采样电阻阻值接近时,采样电压较大,所以采样精度好,这样保证了在测量接近这两个采样电阻时的测量精度。4.3 电容测量结果表4.2 电容测量的结果序号万用表测量值(nF)测试仪测量值(nF)误差(%)序号万用表测量值(nF)测试仪测量值(nF)误差(%)11.1861.0611.8825.96.59.2338.810.112.87410.412.013.33538.752.726.56691.5115.220.57747056016.0789.23(a) 陶瓷电容的测量序号万用表测量值(uF)测试仪测量值(uF)误差(%)序号万用表测量值(uF)测试仪测量值(uF)误差(%)12.132.8124.1924.235.6925.65319.621.17.109438.642.38.74596.5104.17.3006(b) 电解电容的测量由表4.2我们可以看出测量的误差比较大,这是因为该测试仪没有添加外部晶振,采用的是内部的RC震荡得到8MHz的时钟不是很精确,而电容的测量对于晶振要求非常严格,所以对于电容的测量得到的结果不是非常准确。如果要增加电容测量准确性,可以在ATmega单片机的9号和10号引脚添加一个8MHz的晶振,在程序中设置采用外部8MHz的晶振即可。4.3 晶体管测量结果(a) 二极管的测量表4.3 二极管测量结果二极管型号使用手册数据导通管压降测试数据导通管压降误差(%)IN4007650mV682mV4.92IN4148715mV728mV1.81发光二极管(红色)2V1.87V6.5发光二极管(绿色)2V1.86V7(b) 三极管的测量表4.4 三极管测量结果三极管型号使用手册数据测试数据误差(%)三极管管型电流放大倍数导通管压降Uf(mV)三极管管型电流放大倍数导通管压降Uf(mV)电流放大倍数导通管压降S8050 C NPN100-200700NPN106679正确3.0C8550 D PNP160-300600PNP208645正确7.5C9015 C PNP200-600600PNP265659正确9.8C9013 H NPN100-200625NPN194669正确7.0从上面表4.3中的数据可以看出,该测试仪能够识别并较为准确的测量二极管的管压降,从表4.4中的数据可以看出,该测试仪能够正确的识别三极管的管型,正确的测量出三极管的电流放大倍数和导通压降。因为实验室没有很好的仪器来测量电感的实际值,没有可比性,所以这里不列述电感测量数据及分析。第5章 总 结本文设计了一个基于Atmel公司的ATmega 328p单片机的晶体管测试仪。本系统设计主要包括两个方面:硬件电路设计和软件程序编写。其中设计步骤为:系统设计、模块化硬件设计、软件程序设计及调试、系统架构和系统调试。从本系统的数据测试以及数据分析可知,本系统很好地完成了系统的设计要求,部分指标甚至超过了系统设计要求。本系统设计涉及知识面广,系统概念强。通过此次系统设计,我对所学的模拟电子线路、数字电子线路、单片机原理等理论知识有了更深层次的认识。同时,在整个设计中使自己积累了许多设计实际工程方面的经验,为以后的学习工作打下了一定的基础。5.1 遇到的问题以及解决方法(a) 电源问题:按住按键时,液晶显示器变亮,但是松开按键时,液晶显示器熄灭。这可能是因为单片机没有供电或者是没有写入程序或者是发光二极管坏了,因为单片机供电后必须马上让管脚12(PD6)拉高接5V,这样才能保证Q1的继续导通,从而不会使按键松开后单片机和液晶被断电。(b) 液晶显示问题:情况一:液晶能够亮,有东西显示,但是显示的东西非常模糊看不清。检测液晶管脚3(VL)的电压,适当的调大电阻R12,这是因为液晶显示器的管脚3是用来调节显示的对比度的,电压越低对比度越高,调大电阻R12来减小对比度。情况二:液晶能够亮,但是没有显示任何信息。检测是否将液晶插反或者液晶的数据传输线出了问题,如果上述两者都不是,那么这可能是软件中用错了时钟。情况三:液晶只能显示部分信息。检查.epp文件是否下载到芯片的EEprom中,如果数据下载正确,检查下编程的时钟和熔丝的配置是否正确。情况四:测量的时间非常的长,并且电容测量的不准确。检查熔丝的配置中是否设置的8MHz的时钟而实际用的是1MHz的时钟。5.2 制作和调试晶体管测试仪按照附录一中的原理图我们可以在Altium Designer上面画出PCB板,找到对应的元器件焊接好即可完成硬件部分设计。但在选择元器件和调试电路的时候应该注意一下几点:(a) 电阻R1到R6的值对于测量至关重要,并且这些680和470k的电阻应该全部都测量的非常准确(误差范围为0.1%)。(b) 在焊接好电路后,检查每个元器件是否焊接正确是否存在虚焊等问题,在检查没有错误后,不接芯片和液晶显示器接通电源,复位按键按没有按下时,芯片和液晶显示器的电源引脚端的电压为0V,当按住复位按键时才有5V电压。如果没有错误,断电后装上芯片和液晶(小心芯片插反),重新连接电源,如果芯片已经编好了程序,按下复位按键,液晶显示器的背景灯应该被点亮,当你释放按键时,背景灯过一段时间后会熄灭。5.3 系统的升级与改进但是由于个人的工程经验的不足与理论知识的欠缺,本系统仍存在着一些不足之处,以后将从一下几个方面对系统进行改进:1. 增加更多的功能。2. 提高ADC的精度和抗干扰能力。3. 减少测量所用的时间。4. 提高测量的精度。5. 丰富文档内容。6. 增设保护模块7. 做出第二版,硬件部分增加8MHz的晶振来增加测量电容时的准确性。参考文献1 Markus Frejek AVR-Transistortester,. Embedded Projects Journal, 11. Ausgabe, 20112 Atmel Corporation 8-bit AVR with 8KBytes In-System Programmable Flash - ATmega8(L),.Manual, 2486Z-AVR-02/11, 20113 Atmel Corporation 8-bit AVR with 4/8/16/32KBytes In-System Programmable Flash - ATmega48 - ATmega328,. Manual, 8271D-AVR-05/11, 20114 Atmel Corporation Atmel AVR126: ADC of megaAVR in Single Ended Mode,. ApplicationNote, 8444A