基于单片机的TTL集成电路芯片测试仪的设计0309221318Word文档格式.docx
- 文档编号:18458740
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:32
- 大小:1.72MB
基于单片机的TTL集成电路芯片测试仪的设计0309221318Word文档格式.docx
《基于单片机的TTL集成电路芯片测试仪的设计0309221318Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的TTL集成电路芯片测试仪的设计0309221318Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
总结..21
致谢..22
参考文献..23
附录..24
附录A源程序24
附录B元件清单35
36
附录C整体电路图-
1系统总体方案
在数字集成电路的设计、制造和应用阶段,不可避免地会出现故障,为了保证数字集成电路工作的可靠性,需要对其进行必要的测试。
设计门电路自动测试仪目的在于能够方便检测数字集成芯片的好坏。
然而,由于常用的TTL系列芯片种类繁多,不同型号的数字集成芯片其逻辑功能不同、引脚排列不同、甚至哪些引脚作为输入,哪些引脚作为输出都不固定,也
就是说,某个型号的集成芯片的其中一只引脚是输入脚,而另一个型号的集成芯片
的同一只引脚却可能是输出脚了。
在进行硬件电路设计时,必须要有这样的接口电
路:
和集成芯片引脚连接的检测端口既可作为输入,又可作为输出。
正由于上述原因,本方案设计一套数字集成电路测试装置,能够实现对指定几种14脚常见的74系列数字电路测试。
芯片有74LS00、74LS04、74LS20、74LS74、74LS86。
对数字系统进行测试基本方法是:
从数字集成电路的原始输入端施加若干输入
矢量作为激励信号,观察由此产生的输出响应,并与预期的正确结果进行比较,一
致则表示芯片完好,不一致则表示芯片有故障。
因此判断一个集成电路芯片是否存
在故障,可用该芯片被检测出来的功能是否同设计规范的功能一致来判断。
要让测
试结果直观明了,就需设计一个显示模块显示对应测试结果,在此系统中我选用8位
数码管来显示芯片型号和两个发光二极管显示测试结果。
此外,由于集成芯片的型
号不同,为了提高测试的效率,还需设计一个独立按键模块用于输入检测芯片的型
号,方便操作。
综合以上所涉及的几个问题,完整的门电路自动测试仪应包括按键输入模块,显示模块,芯片测试插座模块,结合单片机最小系统来加以控制。
在确立硬件结构的基础上,结合软件完成。
软件部分主要由数据检测程序和显示驱动程序,以及按键子程序三大部分组成。
在设计过程中,首先使用Protel和Hoteus仿真软件作为开发平台来进行硬件电路的设计,并运用软件KeiluVision编写程序完成系统的仿真实现,结合
软、硬件完成系统的整体调试。
2系统硬件电路设计
2.1硬件系统电路原理框图
该测试系统的原理框图如下图1所示
图1测试仪原理框图
此次所设计的数字集成电路检测系统由单片机控制单元,独立按键输入单元,
信号检测单元,数码管显示单元和电源供电单元组成。
2.2硬件系统电路各模块设计
221MCS-52单片机最小系统
MCS-52单片机内部主要由CPU,存储器,可编程I/O口,定时器/计数器,串行口,中断控制系统,时钟电路等组成。
52系列单片机应用广泛,成本低,控制应用等电路成熟。
此系统中,我选择单片机AT89C52最小系统进行控制,,它的
PO、P1、P2、P3端口是准双向I/O口:
既可作为输入口,又可作为输出口,为信号的检测控制奠定了重要的基础。
其连接如图2所示。
AT84C52
图2AT89C52单片机最小系统
单片机在电路中起到控制整个系统的作用,无论是信号检测,还是数码管显示,
都通过编程完成控制。
2.2.2独立按键模块
采用独立按键的优点是控制程序和硬件电路都很简单,缺点是如果每个按键都
要占用一个I/O口,当按键较多时占用I/O口较多。
但考虑到本次设计只需要三个按键:
检测型号键、复位键、自动检测键。
因此在实际的测试中分别对应
P3.0\P3.1\P3.2通过按键查询就可以简单的起到控制输入的目的。
值得注意的是,在用单片机对按键处理的时候涉及到了一个重要的过程,那就
是按键的去抖动。
当用手按下一个键时,按键并不会立刻稳定地接通,在释放一个
键时,也不会立刻断开。
因而在闭合和断开的瞬间都会伴随着一连串的抖动。
抖动
的持续时间随按键材料和操作员而异,不过通常总是不5-10ms。
这种抖动对于单片
机来说是完全可以感觉到的,所以必须消除抖动。
通常有两种方法可以消除抖动,
一种是硬件方法,需要硬件电路,另一种是软件方法,用软件方法可以很容易地解
决抖动问题,只需通过延迟10ms来等待抖动消失这之后,在读入按编码值。
所以,我们采用软件消抖法。
独立按键电路如图3所示。
图3独立按键与单片机连接图
2.2.3芯片测试模块
结合单片机的I/O口使用情况,以及设计的局限,在该系统中我选用了16脚
的通用IC紧锁座作为芯片测试插座,能够测试14脚以下的常用数字集成芯片。
根
据AT89C52中P0口与P2口的特点,本设计采用AT89C52的P1口和P2口连接测试芯片接口,单片机的P0口的P0.0—P0.7,P2口中的P2.0—P2.5共14条通用I/O线和检测插座构成了检测电路,其中,P2口中P2.7用于控制14管脚电源地转换,因为规则芯片的右上脚都为电源(Vcc),左下脚都为地(GND)。
测试插座优先考虑14脚的通用测试情况。
单片机与测试插座之间的连接如图4所示。
图4单片机与测试插座连接图
在单片机与紧锁座之间需串接470Q(或510Q)的电阻。
串接电阻目是对
AT89C5起限流保护作用,假设,P2.0输出高电平,此时,测试芯片又为非门,那么将引起灌电流现象,致使P2.0口线上电流非常大,对AT89C5有害。
2.2.4显示模块
(1)数码管显示模块
在系统中,由于系统的独立按键模块和测试插座模块已经使用了单片机的
P1,P2和P3口,只剩下一组I/O口可供选择。
74HC573是8数据锁存器。
主要用于数码管、按键等的控制,至此,我选用一块芯片74HC573直接控制8位数码管。
有
效的节省了单片机的I/O口的使用,极大地简化了硬件电路。
由5片芯片74HC573和4个7段共阴极数码管构成了显示电路,用于向用户提供按键输入信息及输出检
测结果等。
通过单片机的三个I/O口来控制信号输入。
74HC57与AT89C5单片机的硬件连接如图6所示,74HC57锁存器的数据输入端连接单片机的P0口,P0口同时加了上拉电阻,数码管中的C1,C2,C3,C4是它们的位选端。
图674HC573驱动8位数码
(2)发光二极管显示模块
为了使测试结果直观明了,分别在单片机的两个I/O口P3.6和P3.7分别串接两
分别显示芯片好坏两种状态,发光二极管与单片机连接图个红、绿色发光二极管
连接图如图7所示。
图7发光LED指示灯与单片机连接图
2.2.5电源供电模块
在该设计系统中,所需电压都为直流5V,它由电源变压器,桥式整流电路(4个二极管D1〜D4构成),滤皮电容,防止自激电容和一只固定式三端稳压器(LM7805)极为简捷方便地搭成的,为了保证输入LM7805电压的稳定性,在7805之前我使用一只7812保证电流稳定输入12V。
如图8所示,220V交流电通过电源变压器变换成交流低压,再经过桥式整流电路BR和滤波电容C6的整流和滤波,在固定式三端稳压器LM781和LM7805勺Vin和GN两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化),此直流电压经过LM781和LM7805勺稳压和C4,C5的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。
图8220V转5V直流电源连接图
LM780用来给单片机等其它芯片供电,整流电路后的C6为滤波电容,容量较大,输出端电容C4C5主要是抑制高频干扰,此外还在两个稳压块中加散热片。
3系统软件设计
软件设计包括主程序模块,按键控制模块,芯片信号检测模块和数码管显示模块等,下面将逐一介绍各个模块的详细设计过程。
由于测试芯片种类繁多,在进行程
序设计时首先需要分析常用数字集成芯片的一些规律,便于编程控制。
TTL7係列作
为两大主流集成芯片,地位和作用极其重要,基于此,接下来就对测试对象中的常
用系列数字集成电路进行分析。
3.1测试对象TTL74系列芯片简介
TTL电路以双极型晶体管为开关元件,所以又称双极型集成电路,74系列的工作
环境温度规定为O-70C,电源电压的工作范围为5V士5%。
此外,为满足用户在提高工作速度和降低功耗这两方面的要求,继TTL7454系列
之后,又相继研制和生产了74H系列、74S系列、74LS系列、74AS系列和74ALS系列,以及54H系列、54S系到、54LS系列、54ASS列和54ALS系列,就像74系列和54系列的区别那样,它们之间的区别也仅在于工作环境温度与电源电压工作范围不同。
据于设计的
局限及考虑到程序的繁琐,表1列举了14脚以内的要测试TTL74芯片,本设计中只实现对指定几种14脚常见的74系列数字电路测试。
芯片有
74LS0074LS0474LS2074LS7474LS86
表1TTL74系列芯片列表(14脚以内)
序号
品种代号
类别名称
特征
引脚数
1
7400
四2输入与非门
14
2
7404
六反相器
3
7420
二4输入与非门
4
7474
二3输入或非门
OCOD
5
7486
四2输入异或门
OC
3.2测试原理
对于逻辑芯片的检测,我们主要实现检测芯片逻辑功能好坏亦或是确定芯片的
型号,由于主控单元采用AT89C5单片机,其I/O与TTL电平完全兼容,因而直接由单片机对芯片插座的引脚进行扫描,由于是固定的14脚芯片,为了编程方便,使芯片
测试引脚1~7分别为P1.0~P1.6,引脚14~8分别为P2.0~P2.6。
实现了通过单片机输出
端口模拟芯片的各种输入状态,并通过单片机读回芯片的输出结果,通过与芯片真
值表的比较即可判断芯片逻辑功能的好坏的目的。
在进行芯片扫描时,必须先将芯
片的输出引脚I/O置为高电平,然后对芯片的输入引脚进行各种状态的扫描,通过单片机读回芯片的输出,再依据芯片的真值表对其输出进相比较,不一致则说明芯片
的逻辑功能发生错误,断定芯片为坏的,若芯片的输出与真值表完全相符,则说明
芯片的逻辑功能正确,可以判断为好芯片。
然后再依据所检测的结果,通过单片机对芯片的逻辑功能加以详细测试,并对结果加以显示。
在自动检测的时候,为了提
高准确度,我们编写了程序,采用对同一端口两次输入再两次读回其状态的比较方
法,来对芯片好坏进行准确测试,继而返回正确的芯片型号。
此次在测试过程中我选用7400来进行系统的调试。
其中,7400为四2输入与非门,在编写测试程序时,主要从以下思路入手:
首先,根据测试插座与单片机的各I/O口连接情况,分别送给测试芯片各引脚送值。
送值的时候是将所有可能出现的各种逻辑情况进行组合送入至芯片输入端,而输出端都给它置1,并根据真值表推断出预期的正确结果先存于寄存器中,送值结束后,读取芯片输出端的值,判断输出是否与预期的值相符,若一致则继续判断另一组输入逻辑值的情况,直至每一组都完
是坏的。
当然,
成后对各组结果相与,逻辑为真则表示芯片是好的,若为假表示芯片在测试时若遇其中一组的逻辑为假,则直接判断出芯片是坏的
3.3程序流程图
流程图如图9所示。
显禾0000程序初始化
F
b
图9程序流程图
3.4模块程序关键代码
3.4.1主程序在主程序中,需要完成对各状态的初始化,如单片机引脚,寄存器的初始化、
74HC573空制数码管显示的初始化、按键扫描,信号检测等工作。
主程序将根据检测
芯片的型号,按键的输入提示分别完成信号的测试比较、结果显示等不同的操作。
关键代码如下所示:
intmain()//主程序
{
reset();
//初始化
while
(1)//不停扫描按键
keyscan();
}
return0;
//结束程序
3.4.2独立按键扫描程序
在按键控制时采用了全扫描方式,这种方式是直接在主程序中插入按键扫描子
程序,主程序每执行一次则按键检测子程序被执行一次,对按键进行检测一次。
如
没有按键按下,则跳过键识别,直接执行主程序;
如果有键按下,则通过按键扫描
子程序识别按键,得到按键的编码值,然后根据编码值进行相应的处理,处理完成
在回到主程序执行。
另外我们采用软件消抖法,具体代码如下所示:
voidkeyscan(void)//键盘扫描函数
{inti;
unsignedcharoutput1,output2;
if(key1==0)//按键1的子程序
delayms(10);
//延时10ms
if(key1==0)
while(key1==0);
//等待按键释放
k=detect();
display(name[k]);
}if(key2==o)//按键2的子程序
{delayms(10);
if(key2==0)
(
while(key2==0);
ledR=1;
//灭绿led灯
ledG=1;
//灭红led灯display(0);
//数码管显示为0000
}if(key3==0)//按键3的子程序
if(key3==0)
{while(key3==0);
//等待按键释放k=detect();
//调用检测芯片型号子程序delayms(100);
if(k==0)//检测芯片好坏{
for(i=0;
i<
4;
i++)
{input1=LS00[i][0];
input2=LS00[i][1];
delayms(500);
output1=input1&
0x3f;
output2=input2&
if(output1!
=LS00[i][2]||output2!
=LS00[i][3]){
ledR=0;
time=0;
break;
if(output1==LS00[i][2]&
&
output2==LS00[i][3])
time++;
if(time==4)
ledG=0;
display(name[0]);
if(k==1)
2;
input1=LS04[i][0];
input2=LS04[i][1];
output1=input1&
output2=input2&
=LS04[i][2]||output2!
=LS04[i][3]){
ledR=0;
}if(output1==LS04[i][2]&
output2==LS04[i][3]){
if(time==2)
time=0;
if(k==2)
16;
{input1=LS20[i][0];
input2=LS20[i][1];
delayms(500);
if(output1!
=LS20[i][2]||output2!
=LS20[i][3]){
//点亮红ledtime=0;
}if(output1==LS20[i][2]&
output2==LS20[i][3]){
if(time==16)
//点亮绿leddisplay(name[k]);
//显示芯片型号time=0;
if(k==4)
input1=LS86[i][0];
input2=LS86[i][1];
=LS86[i][2]||output2!
=LS86[i][3])
{ledR=0;
break;
if(output1==LS86[i][2]&
output2==LS86[i][3])
3.4.374HC573控制数码管显示程序
每个数码对应一个位选端。
单片机可以控制锁存器的锁存端,进而控制锁存
的数据输出,这种分时控制的方法便可方便地控制任意数码管显示任意数字。
在这
里我们把数码管的显示部分写成了一个带参数的函数,以便以后调用,另外我们把
这个要显示的参数分离成4个一位数。
voiddisplay(uintnamex)//数码管显示子程序
ucharqian,bai,shi,ge;
qian=namex/1000;
//千位,把一个4位数分离后分别送数码管显示
bai=namex%1000/100;
//百位
shi=namex%100/10;
//十位
ge=namex%10;
〃个位
dula1=1;
P0=table[qian];
//送段选数据
dula1=0;
P0=0xff;
//送位选数据前关闭所有显示
//延时500msdula2=1;
P0=table[bai];
dula2=0;
dula3=1;
P0=table[shi];
dula3=0;
dula4=1;
P0=table[ge];
dula4=0;
wela=1;
P0=0xc0;
wela=0;
while
(1)
if(key1==0)break;
if(key2==0)break;
3.4.4信号检测程序在信号检测部分,我们只对指定的74系列门电路芯片进行功能测试(完好/损
坏),如74LSO074LS0474LS2074LS86并且能够自动检测指定的几种74系列
门电路的型号。
程序设计中需要考虑到芯片的引脚识别,芯片型号的检测程序如下:
unsignedchardetect(void)//14脚芯片识别函数
unsignedchari,output1,output2;
//7474的检测
P1=0xff;
//初始化测试端口
P2=0xff;
input1=0x3b;
input2=0x39;
delayms(100);
input1=0x3f;
//上升沿input2=0x3d;
delayms(100);
if(output1==0x1f&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 TTL 集成电路 芯片 测试仪 设计 0309221318