至此,我们已经先后把Z80 CPU连接到了TC5517和Z80 PIO上,这两次连接都使用了地址总线引脚A0和A1。如果仅仅这样连接,就会导致一个问题,当地址的最后两位是00、01、10和11时,CPU就无法区分访问的是TC5517中的存储单元,还是Z80 PIO中的寄存器了。 Z80 CPU上的MREQ(即Memory Request,内存请求)引脚和IORQ(即I/O Request,I/O请求)引脚解决了这个问题。当Z80 CPU和内存之间有数据输入输出时,MREQ引脚上的值是0,反之则是1。当Z80 CPU和I/O之间有数据输入输出时,IORQ引脚上的值是0,反之则是1。 若把TC5517的CE(即Chip Enable,选通芯片)引脚设成0,则TC5517在电路中被激活,若设成1则从电路中隔离,因为此时TC5517进入了高阻抗状态,所以即便它上面的引脚已经接入了电路也不会接收任何电信号。在Z80 PIO中,则是通过将CE引脚和IORQ引脚同时设为0或1,来达到与TC5517的CE引脚相同的效果。若同时设为0,则Z80 PIO在电路中被激活,若同时设为1则从电路中隔离(之所以使用两个引脚是因为这样更适合使用了多个I/O的情况)。 按照上面的讲解,下面需要把Z80 CPU的MREQ引脚连接到TC5517的CE引脚上。然后把Z80 CPU的IORQ引脚连接到Z80 PIO的CE引脚和IORQ引脚上。请诸位先用红铅笔把这些引脚分别连接起来吧。 对内存和I/O而言,还必须要分清CPU是要输入数据还是输出数据。为此就要用到Z80 CPU的RD引脚(即Read,表示输入,为0时执行输入操作)和WR引脚(即Write,表示输出,为0时执行输出操作)了。请把这两个引脚与TC5517上同名的引脚连接起来。Z80 PIO虽然只有RD引脚,但由于数字IC引脚上的值要么是0要么是1,所以只用1个RD引脚也能区分是输入还是输出,0的话是输入,1的话就是输出(如表2.2所示)。