例6-8 8255A端口A接了8个发光二极管,PC7接一个开关。要求检测开关状态,若开关打开(高电平),则8个发光二极管全亮(高电平);若开关按下(低电平),则8个发光二极管每个亮1s,循环点亮。设8255A端口地址为60H~63H。
解:CPU与开关、8个发光二极管等外设传输数据采用无条件传送方式。因此,将8255A的端口A设为方式0输出,端口C上半部为输入,端口B及端口C下半部不使用。由此得到8255A的方式选择控制字为10001000=88H。
参考程序:
其中DIS为延时1s子程序。此外,按键的去抖动由硬件电路实现,程序中可不考虑此问题。
例6-9 利用8255A作为打印机、纸带读入机的接口。
打印机的两个控制、状态信号如下::数据选通信号,输入低电平有效。有效时,通知打印机接收数据线上的数据。可作为8255A输出给外设的选通信号。
BUSY:打印机“忙”信号,输出,高电平有效。有效时,表示打印机忙(正在输出数据),不能接收新数据。
纸带读入机上也有两个控制、状态信号::纸带机驱动信号,有效时驱动纸带读入机前进一步,并读入一个字符。可作为8255A输出给外设的启动信号。
DATA READY:数据准备就绪信号,输出。有效时,表示纸带读入机已经准备好输入了。(www.xing528.com)
解:8255A选用方式0查询输入、输出方式,设置端口A为打印机接口,选用PC6、PC2作联络线。端口B为纸带读入机接口,选用PC4、PC0作联络线,连接如图6-21所示。
8255A片选由74LS138产生,由图6-21所示的连接确定8255A的4个端口地址是:98H、9AH、9CH、9EH。根据上述设置,8255A的方式控制字为
图6-21 8255A与打印机、纸带读入机接口框图
编制的程序分三个部分:主程序实现对8255A的初始化和分别调用打印机驱动程序及纸带读入机驱动程序;打印机驱动程序完成输出一个字符(字符在CL中);纸带读入机完成输入一个字符(字符在CH中)。程序如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。