由于单片机接口有限,4bit的二进制行号和8bit的列显示数据都是从通用1/O口Pi输出的。其中列显示数据可以通过74LS165的PL*为低锁存到其并行输人端。但是,4/16译码器74LS154不具备锁存功能,所以行号需要专门的锁存器74LS373。有了锁存器就需要锁存器的打人信号。同样由于单片机的接口有限,通过后面的叙述可以知道,所有无冲突的控制口都已经用完,锁存器的打人信号只能另外想办法解决。解决的思路是利用单片机的无效写操作,通过地址译码产生的信号来打人锁存器。单片机的EPROM地址在0000H-1FFFH之间,向这个地址范围的写操作是无效的。使用一片74LS 154 4/16译码器,对地址线低4bit进行译码,可以在写OOOOH-OOOFH单元时产生译码输出。我们可以定义写OOOOH单元为行号锁存器的打人信号。
区分上下部分的控制信号
上下部分的控制,在时间上先准备上半部分某行的各列数据,然后再准备下半部分同名行各列数据,准备好后一起打人列锁存器,并同时选通上下两部分的同名行。由于上下两部分的列数据是串行安排的,所以在74LS165并人串出移位寄存器上不会发生矛盾。如图2.3.7所示,采用单片机控制输出口TO作为上下部分控制信号,当TO为0时,选通上半部分,为1时选通下半部分。用上下部分选通信号TO(以及它的非)和串行数据移位时钟T1在74LS08与门上相与,分别生上下部分的SRCLK信号。当上下部分的列数据全部移位操作完成之后,采用单片机控制口INTO发出各列显示驱动器74LS595的RCLK信号,将准备好的列显示数据打人相应的输出锁存器。然后给出行号,选通当前行进行显示。四、清屏信号清屏信号利用向地址OOOIH写这一无效操作,通过74LS154的相应译码输出端送出清屏信号。