LASER310计算机上有两个插口。一个是存贮器扩展插口,用来配接磁盘机,扩展RAM板;另一个是外部设备插口(简称外设插口),用于配接与LASER310计算机相配的打印机,游戏棒等。本文向大家介绍一个简单的与外设插口相配的输入输出接口电路。通过这个接口电路可以接收各种外部设备的信号,如:按钮开关,光电管,触点温度计等送来的信号,再配以各种程序就能成为一台智能化的计数器、计时器、频率计等测试仪器。下面先介绍插口所接各信号线的功能及接口电路要用到的集成电路。
插口信号线如图1所示,从插口信号图上可以看出,这些接线可分为三类:

1.数据总线它包括八根性质相同的信号线(D\(_{0}\)~D7)。这八根线都是从CPU上直接连过来的,它是计算机与外设之间互相传递数据的通道,所以它又叫八位双向数据总线。D\(_{0}\)~D7八根线上的电平分别代表着二进制八位数各位的数值(高电平为1,低电平为0,计算机中规定高于2.8V为高电平,低于0.8V为低电平)。当计算机向外输出数据时,计算机根据它要输出的数据控制这八根线上的电压(这个过程称为写)。外设根据这八根线电平的高低即可知道计算机向它输送的数据是什么,反之,计算机需要从外设输入数据时,则将数据总线的控制权交给外设,计算机从数据总线上读取从外设传输过来的数据(这个过程叫读)。
2.地址总线Z80CPU共有16根地址线A\(_{0}\)15。但Z80CPU的输人、输出只和256个外设打交道,这只需要用八根地址线(2\(^{8}\)=256)所以在这个插口上只连A\(_{0}\)7这8根地址线。地址总线是单向总线,受CPU控制。当计算机要从外设读人数据或向外设传送数据时,这八根线上的电平所表示的数据,即为计算机指定的外设地址,地址范围是0~255。
从上述两条总线的叙述中可以看到,当计算机与外设打交道时,在地址总线上指定是哪一个外设,并在数据总线上确定数据的流向是输入还是输出。但这时外设还不知道计算机要干什么,需要计算机将地址告诉外设。这就是下面要讲到的第三条总线。
3.控制总线Z80CPU的控制总线共有13根,与本文所述接口有关的只有三根RD-(读),WR-(写),IORQ-(输入/输出请求)。这三根信号线的输出都可以是高电平、低电平或呈现一种不对被接设备产生影响的高阻态,称为三态输出。
当IORQ-与RD-同时为低电平时,表示计算机要从A\(_{0}\)7所指外设中读取(输入)数据,而当IORQ-与WR-同时为低电平时,表示计算机要向A\(_{0}\)7所指外设输出数据。由于在IORQ-为低电平时,计算机的工作状态非写即读,所以也可以用WR-的高电平代替RD-的低电平信号,因此,在应用中我们不用RD-信号,而只用IORQ-和WR-两根控制线。
三种常用数字集成电路
74LS244三态缓冲器,引出脚如图2所示。该芯片的八个输出端分为两组:1Y\(_{1}\)~1Y4和2Y\(_{1}\)~2Y4,它们分别受1G-和2G-控制。两组的工作原理一样。当1G-为高电平输入时,1Y\(_{1}\)~1Y4各输出端呈现高阻状态,对其负载不产生任何影响,而当1G-为低电平时,1Y\(_{1}\)~1Y4各输出端的电平与它们各自相对应的输入端1A\(_{1}\)4上的电平相同。另一组的功能与此相同。当把1G-和2G-连起来,给它们以高电平或低电平时,则可控制这八个输出端呈高阻状态或与各自输入端的电平相同。74LS244用作向计算机输入数据的接口。

74LS273是八D数据锁存器,引出脚如图3所示。该芯片的1D~8D为8个输入端,1Q一8Q为8个输出端,当加在CLOCK处的电平稳定在高或低电平不变时。不管输入是什么状态,输出端都保持原状态不变。只有当CLOCK处的电位从低电平跳变到高电平的一瞬间。(脉冲的上升沿),才将8个输出端的电位与各相对输入端电位一致,只要比CLOCK电平不再跳变,8个D触发器的输出端的电位就一直保持这个状态。74LS273用来作计算机的输出接口。

74LS138三——八译码器,引出脚如图4所示。该芯片1~6脚为输入端,Y\(_{0}\)~Y7为输出端。平时全部输出为高电平,只有当G2A和G\(_{2}\)B为低电平输入同时G1为高电平输入时,Y\(_{0}\)~Y7中才会有一个以低电平输出。Y\(_{0}\)~Y7中的哪一个输出,则由A、B、C这三个输入电平来决定(A、B、C是三位二进制码)。

接口电路工作原理
LASER310与外设交换信息的简单接口电路如图5所示,该电路用到了上面介绍的三种集成电路。74LS244用于数据输入,74LS273用于数据输出,74LS138用于控制译码,即根据计算机控制总线与地线上的信息,控制指令的输入和输出。在这里74LS138只用到了地址线的A\(_{7}\)4\(_{3}\)0的状态对接口的工作没有影响。计算机带上这个接口电路后,可以对8路输入的开关量进行检测,并向外输出8路开关量。可以在很多场合应用。

数据的输入 计算机运行下面程序后,即可从接口电路向计算机输入数据
10 A=INP(128)
20 FOR I=0 TO 7:J=7—I
30 B=2↑J:D(J)=0
40 IF B-A<0 THEN D(J)=1:A=A—B
50 NEXT I
当执行第10句时,计算机地址总线A\(_{7}\)0位出现地址10000000(128的二进制码),IORQ-变成低电平,WR-信号呈高电平,将这些送到74LS138的六个输入端时,74LS138的Y\(_{1}\)端呈现低电平,这一低电平信号送到74LS244的控制端1G、2G。在IG、2G为低电平的期间,74LS244的8个输出端脱离高阻态,各端电位与各自相应的输入端的电位一致。也就是说此时计算机数据总线上出现输入接口上外设送来的数据。这时计算机立即将数据总线上的数据读人,并赋值给变量A。第20句~50句是十进制~二进制转换程序。经过这个转换后数组D(0)~D(7)分别代表1N0~1N\(_{7}\)8个输入端的状态。
数据输出 计算机运行以下程序后将会输出数据
10 A=0
20 FORI=0 TO 7:B=2↑I
30 IF D(I)=1 THEN A=A+B
40 NEXT I
50 OUT 128 A
在程序中数组D(0)~D(7)中保存着准备从74LS273O\(_{0}\)~O7输出的数据,程序的10~40句将D(0)~D(7)中的八位二进制数转换为十进制数A。当执行第50句时,地址总线A\(_{7}\)0上出现地址10000000,数据总线D\(_{0}\)一D7上出现要输出的数据。IORQ-与WR-都是低电平,74LS138在地址与控制信号的作用下Y\(_{0}\)端出现一低电平脉冲。将这一脉冲送到74LS273的CLO-CK脚,在脉冲后沿的作用下将数据线上的数据锁存到74LS273的八个D触发器中,从O7~O\(_{0}\)八个输出端输出,这八个D触发器的输出状态一直保持下一个指令输出前不变。
制做注意事项
这个接口电路十分简单,芯片之间的连线不多,可用一小块敷铜板刻制。在接口板上焊接芯片的插座,接口板焊好后再插上芯片。跳线要尽量短。接口板与计算机插口之间的连线长度不要超过15cm。接口电路与计算机的连接最好能用排线插头,如果没有排线插头也可焊接。焊接时要拆开计算机,焊点要尽量靠里面一些,以免影响插接打印机等。焊接时铬铁要接地。(吴天宇)