基于STC15单片机逻辑IC检测器的设计与实现
2017-12-12车沛强冯志斌
车沛强, 冯志斌
(福建师范大学 闽南科技学院,福建 泉州 362332)
基于STC15单片机逻辑IC检测器的设计与实现
车沛强, 冯志斌
(福建师范大学 闽南科技学院,福建 泉州 362332)
利用逻辑电平的输入输出非“0”即“1”的特点,采用51单片机,将其I/O口与逻辑芯片全部引脚相连,根据逻辑芯片的功能及真值表,使与逻辑芯片输入端相连的I/O口,输出相应的逻辑电平,然后通过与逻辑芯片输出相连的I/O口,获取其相应的输出电平,再与真值表相比对,得出此逻辑芯片的功能好坏。选用增强型的51单片机,具有推挽的功能,能使其I/O口在输出“1”或“0”时,可以流出或流入更大的电流,因此可直接用推挽模式的I/O口,给逻辑芯片提供电源,简化了电路设计的难度。显示部分,选用分辨率较高的中文液晶12864,能使操作使用更加直观明了,同时因其是点阵式液晶,可加入显示芯片管脚图的功能,进一步方便了使用者。
逻辑电平; 单片机; 真值表; 芯片检测; 12864液晶
0 引 言
实验是数字电子技术教学与实践的一个重要环节,数字芯片则是实验的核心[1]。芯片逻辑功能的好坏直接影响了电路功能的实现。在各高校数字电于实验室里,学生的每个实验都要用到逻辑芯片。学生实验前,因是沿用上组学生用过后的芯片,所以得先用最原始的方法确认芯片的好坏。具体做法是:使用实验箱,查看该芯片管脚定义图,然后逐一无误地接上每一根导线。接下来,依据真值表,逐一测试芯片的每一项逻辑功能是否正常。在耗费大量的时间与精力以确认芯片无误后,才能开始实验。此方法太繁琐,费时费力,影响教学。若芯片的类型与数量众多,此问题则更为严重。另外,芯片因长期轮流使用,其表面标明其型号的字迹,已模糊不清,难以识别,即使其功能是正常的,也导致无法使用,造成浪费。
本文的目的在于,去除繁琐的检测过程,无需借助其他器件,仅需安放好芯片后,通过按下少量按键(1~4个)就能快速地检测出芯片功能的好坏与型号,并采用中文液晶作显示,能起到更好的显示效果,同时提供查阅芯片管脚图的功能。
1 原理分析
在二值逻辑中,变量取值不是1就是0,没有第三种可能。而且这里的0和1并不表示数值的大小,它们所代表的是两种不同的逻辑状态[2]。TTL逻辑芯片,输入输出信号就两种状态,不是逻辑“1”,就是逻辑“0”。51单片机的双向I/O口,完全兼容TTL电平[3],可输出“1”,也可输出“0”,并且可以检测某个I/O口接收的是“1”还是“0”。所以利用51单片机的I/O口,与逻辑芯片的所有输入、输出端一一相连,按照逻辑芯片的真值表,通过编程,使单片机的I/O口输出不同的逻辑电平至待测芯片的输入端,然后检测待测芯片的输出信号,与真值表比对,从而得出待测芯片的好坏。将所需检测的所有逻辑芯片的真值表,编写成程序烧录到单片机后,就能实现检测的功能。检测的速度,可快至毫秒级别。
本设计采用STC15[4]系列增强单片机,其I/O口,新增强推挽模式,选择强推挽模式,每个口的输出电流可达到20 mA[5]。因此,可将待测芯片的电源引脚,也直接在单片机的I/O口上,并设置为推挽模式,给芯片提供电源。
2 设计方案
2.1方案要求
(1) 能手动选取某个型号的芯片检测程序进行检测。
(2) 单片机复位后,能停留在是否运行上次选择的芯片型号的检测程序界面。此举能提高相同型号芯片的检测效率。
(3) 加入“自动”检测模式,即不用选择型号,按下“自动”按键后,能直接识别功能完好的芯片,显示其型号。
(4) 能显示每个芯片的管脚图。
2.2硬件设计
(1) 选用STC15系列单片机作主控。增强型8051CPU,1T,单时钟/机器周期,速度比普通8051快8~12倍[6]。高达60 KB片内Flash程序存储器[7],能够存储更多型号的检测程序。
(2) 待测芯片用20P的IC锁紧座来安放,即检测芯片的针脚数包括20P、18P、16P、14P等的芯片。
(3) 使用4个按键完成所有的功能。
(4) 显示采用LCD12864中文液晶屏,能直观引导使用者操作,并加入芯片管脚图显示功能。
(5) 设计一个烧录接口,实现程序的烧录及调试程序使用。
所需单片机I/O口数量计算:以上硬件占用I/O口经计算后得知,需要37个。本设计选取STC15F2K60S2,此款MCU有38个I/O口,符合要求。
单片机时钟频率的选择:STC15是1T的高速单片机,但受限于LCD12864响应时长及不同逻辑门电路从信号输入到稳定输出需要一定的时间[8],本设计采用22.118 4 MHz无分频至16分频的可变时钟频率,在保证了检测准确性的同时,也极大地缩小了检测的时间。硬件原理图如图1所示。
图1 硬件原理图
图1中的单片机I/O口,仅与烧写器连接的I/O口,限定为P31、P30,其他都没有限定(其中与LCD12864液晶连接的DB0-DB7的8个I/O口,应选用某P口完整的8个I/O口,如P0、P1、P2等,方便程序的编写),可以在制作电路设计PCB时,根据走线的需要,具体定下来。
3 编程思路
3.1程序的流程
(1) 首先把所需检测的每个芯片的检测程序,独立写成一个函数。对于集成多个门电路的芯片,每个门电路功能的好坏,也要求能分别显示出来。
(2) 通过4个按键,依据屏幕显示的引导,可具体选取某个检测程序来检测。
(3) 在使用“自动”检测功能时,把不同型号芯片的每个检测程序都执行过去,期间遇到某个(也仅有一个)型号芯片的检测程序检测出结果正确,显示出该型号的信息。若每个检测程序都检测错误,则显示芯片损坏的信息。这种采用逐一比较的方法,检测时间较长,故在运行每个检测程序时,一旦遇到其中一项的真值表不对时,通过编程,立即跳过本程序后面的真值表验证,直接跳往下一个检测程序。此举可极大地缩小使用“自动”功能时的检测时间。
(4) 要实现在复位后,单片机能运行上一次选择的检测程序的方法:利用单片机内部的E2PROM[9]。
程序流程如图2所示。
图2 程序流程图
3.2检测芯片的编程
以检测型号为74LS00的芯片为例,说明下编程的做法。74LS00是一个具有两输入、一输出,且内部集成了4个相同与非门电路的芯片。其管脚图[10]与真值表,如图3与图4所示。
图3 74LS00管脚图
图4 真值表
因为芯片的每个管脚,包括电源管脚,都分别与单片机的I/O口一一相连。进入本检测函数时:
(1) 首先把与74LS00第7脚、第14脚连接的I/O口,设置为推挽模式,同时将与第7脚相连的I/O口,设置输出为低电平,与第14脚相连的I/O口,设置输出为高电平。至此,完成芯片电源脚的设置。
(2) 依据真值表,共4个检测项目。把与每个门电路两个输入端相连的I/O口,设置输出为00,01,10,11这4种状态,同时通过与输出端连接的I/O口,分别读取这4种状态下,各个输出端的电平高低状况。若检测到输出分别是1,1,1,0,则结果全部满足真值表,说明此芯片是良好的。若其中某个状态不符合,则表明芯片是损坏的,具体为内部对应的门电路是损坏的。
其他型号的芯片检测程序,可依照上述的步骤,先设置好芯片的电源脚,再依据其真值表的所有测试选项,写出相应的检测程序,然后获取对应的输出,与真值表逐一比对,最终得出检测结果。
3.3128×64点阵式液晶
点阵式LCD不仅可以显示字符、数字,还可以显示图形、曲线及汉字,并能够实现多种动画显示效果,使人机界面更加友好,使用操作更加灵活方便[11]。
12864液晶使用ST920控制器,5V电源驱动,带背光,内置8192个16x16点阵、128个字符(8x16点阵)及64x256点阵显示RAM(GDRAM)[12]。
液晶绘图显示坐标如图5所示。
图5 液晶绘图显示坐标
12864液晶可看做是两个1602液晶[13]纵向拼接的结果,所以分上半屏与下半屏。上半屏与下半屏的垂直地址皆为0x80+0x00至0x80+0x1F,每个半屏都是32个地址。水平地址,上半屏的地址为0x80+00至0x80+0x07,下半屏的地址为0x88+00至0x88+0x07,各有8个地址。
举例,比如想点亮屏幕的第一行与最后一行,做法是:① 关闭绘图显示功能;② 先写第一行的垂直地址,地址为0x80+0x00;③ 再写此行的水平地址,地址为0x80+0x00;④ 写入16个字节的数据,因是点亮,所以数据都是0xFF(水平每个地址,需写入两个字节[14]);⑤ 写最后一行的垂直地址,地址为0x80+0x1F;⑥ 写此行的水平地址,地址为0x88+0x00;⑦ 写入16个字节的数据,因是点亮,所以数据都是0xFF;⑧ 打开绘图显示功能[15]。
通过以上步骤,在液晶屏的第一行与最后一行,会显示两条宽高为128×1像素的线条。
了解了以上的知识点后,想要显示芯片的管脚图,可以使用简单的画图软件比如Windows自带的画图板来绘制。打开画图板,把画板调整为128×64像素。然后利用工具,画出每个芯片的管脚图,保存为BMP格式的图片。再利用取字模软件,打开此图片,期间可再次修改图片直至满意为止,然后取模。最后将取模后的数据,复制至编程软件里使用。图6所示为画图板工具绘制的74LS00芯片管脚图。
图6 画图板工具绘制的管脚图
3.4编程时的注意事项
(1) 单片机上电复位后,与20P锁紧座相连的所有I/O口,全部设置为弱上拉模式,防止损坏单片机。
(2) 运行某个芯片检测程序后,若检测出芯片是损坏的,得取消I/O口的推挽模式,防止因故障的芯片可能造成过大的电流流入或流出单片机,造成单片机的损坏。
(3) 使用“自动”模式检测芯片时,当切换到另一个检测程序时,也得注意设置取消上个检测程序IO的推挽模式,以更好地保护单片机。
4 结 语
针对高校数电实验室,学生使用繁琐的方法检测逻辑芯片功能是否正常这一现象,提出了本设计[16]。本设计较好地解决了这一问题,具有使用简单(仅需按动1至4个按键)、操作直观明了(中文菜单引导)、快速检测(检测时长毫秒级别)、制作成本低廉、电路小巧方便携带或集成等特点,同时加入芯片管脚图显示的功能,更加方便了使用者。适用于高校的学生、实验管理人员或质检单位等人群。
[1] 孙 航,李 耀,马利业.数电实验常用芯片检测指示仪简析[J].山西科技,2010(4):42-43.
[2] 余孟尝.数字电子技术基础简明教程[M].北京:高等教育出版社,2006: 2.
[3] 刘 潇.一种数字电子实验常用芯片检测指示仪的研究[J].电脑开发与应用,2013(10):66-67.
[4] 徐爱钧.STC15增强型8051单片机C语言编程与应用[M].北京:电子工业出版社,2014.
[5] 姚伟鹏,刘安枕,孙 帅.基于STC15系列单片机的游戏机设计与实现[J].西安航空学院学报,2016(1):65.
[6] 晶宏科技.TC15系列单片机器件手册[EB/OL].http://www.stcmcu.com/datasheet/stc/STC-AD-PDF/STC15.pdf.
[7] 李志远,刘小平,张南宾,等.边练边学51单片机:基于STC15系列[M].北京: 北京航空航天大学出版社, 2016.
[8] 冯 雪.对组合逻辑电路中竞争与险象的分析[J].黑龙江科技信息,2013(16):84
[9] 百度文库.51单片机EEPROM的读写[EB/OL].http://wenku.baidu.com/view/6ad55dfdb9d528ea80c7791d.html?re=view.
[10] Texas instruments inc.The Data Sheet of sn74ls00[EB/OL].[2003-10-1].http:/ /www.ti.com.cn/product/cn/sn74ls00.
[11] 白 云,石 岩.基于SPCE061A单片机的MGLS12864液晶显示模块的应用设计[J].现代电子技术,2012(13):166.
[12] 郭天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009:42-43.
[13] 于志赣,刘国平,张旭斌.液晶LCD1602模块的应用[J].机电技术,2009(3):21-23
[14] 胡洪坡,梁书剑,张爱民,等.基于ST7920的12864液晶的使用方法研究[J].山西电子技术,2011(6):82-83.
[15] 深圳飞阳公司.J12864中文字库型液晶模块使用说明书.
[16] 车沛强.一种改进型逻辑芯片检测器:中国.ZL 201520921615.8[P].2016-06-01.
·名人名言·
天才的最基本的特性之一——是独创性或独立性,其次是它具有思想的普遍性和深度,最后是这思想与理想对当代历史的影响,天才永远以其创造开拓新的、未之前闻,或无人预料的现实世界。
——别林斯基
DesignandImplementationofLogicICDetectorBasedonSTC15MCU
CHEPeiqiang,FENGZhibin
(Min’nan Science and Technology Institute,Fujian Normal University,Quanzhou 362332,Fujian, China)
By using the input/output logic level of "0" or "1", I/O outputs and logic chip pins of the 51 single-chip microcomputer are linked together.According to its function and the logic truth table, logic chip input is connected to the I/O port, the corresponding logic level is outputted, and then connecting the I/O port with the output logic chip, the corresponding output level is obtained.Comparing with the truth table, it can be concluded that the function of the logic chip is good or bad.The enhanced 51 MCU has the function of push pull model, hence, it can provide power for logic chip, and thus simplifies the complexity of the circuit design.For the display section, we choose the high resolution of LCD 12864, which can make the operation more intuitive and clear.Because of the dot-matrix LCD, the function of the chip pin diagram can be added, it will be further convenient for the user.
logic level; microcomputer; truth table; chip detection; 12864 liquid crystal
TN 431.2
A
1006-7167(2017)10-0100-04
2017-01-09
福建省教育厅中青年教师教育科研项目(JAT160674)
车沛强(1977-),男,福建南安人,实验师,主要研究方向:电子技术与单片机的应用。Tel.:13600720170; E-mail:116225194@qq.com