7.3.2.1 I/O口扩展芯片分类
MCS-51单片机应用系统中I/O口扩展用芯片主要有采用TTL/CMOS锁存器、缓冲器电路芯片和采用可编程的I/O接口芯片两大类。其中:可编程的I/O口芯片选用Intel公司的芯片,其接口最为简捷可靠,如8255、8155等;采用TTL或CMOS锁存器、三态门电路作为I/O扩展芯片是单片机应用系统中经常采用的方法;这些I/O口扩展用芯片具有体积小、成本低、配置灵活的特点。一般在扩展8位输入或输出口时十分方便。在实际应用中,根据芯片特点及输入、输出量的特征,应选择合适的扩展芯片。
7.3.2.2 简单的I/O接口扩展
在MCS-51单片机应用系统中,采用TTL或CMOS锁存器、三态门芯片,通过P0口可以扩展各种类型的简单输入/输出口。P0口是系统的数据总线口,通过P0口扩展I/O口时,P0口只能分时使用,故输出时接口应有锁存功能;输入时,视数据是常态还是暂态的不同,接口应能三态缓冲,或锁存选通。不论是锁存器,还是三态门芯片,都只具有数据线和锁存允许及输出允许控制线,而无地址线和片选信号线。而扩展一个I/O口,相当于一个片外存储单元。CPU对I/O口的访问,要以确定的地址,用MOVX指令来进行。
1.采用锁存器扩展输出接口
在单片机扩展中常用的锁存器有74LS273、Intel 8282、74LS373和74LS377等,其中前3种前面已介绍。
图7-32为74LS377的引脚、功能表和扩展输出口电路。74LS377为带有输出允许控制的8D触发器。D0~D7为8个D触发器的D输入端;Q0~Q7是8个D触发器的Q输出端;时钟脉冲输入端CLK,上升沿触发,8D共用;为输出允许端,低电平有效。当端为低电平,且CLK端有正脉冲时,在正脉冲的上升沿,D端信号被锁存,从相应的Q端输出。
图7-32 74LS377的引脚、功能表和扩展输出口电路
【例7-7】 在图7-32(c)中,74LS377的CLK与相连,作为写(输出)控制端;与单片机的地址选择线P2.7相连,作为寻址端。如此连接的输出口地址是P2.7=0的任何16位地址。7FFFH可作为该口地址。对该口的输出操作如下:
MOV DPTR,#7FFFH ;使DPTR指向74LS377输出口(www.xing528.com)
MOV A,#data ;输出的数据要通过累加器A传送
MOVX @DPTR,A ;向74LS377扩展口输出数据
2.采用带三态缓冲门的锁存器扩展输入接口
下面介绍采用带三态缓冲门的锁存器74LS373扩展输入口。
【例7-8】 图7-33为采用74LS373扩展的输入口电路。图中,74LS373的G_来锁存外部暂态数据,并与单片机的外部中断相连,而单片机的地址选择线P2.7与相或后与74LS373的相连,作为寻址端。如此连接的输出口地址是P2.6=0的任何16位地址,BFFFH可作为该口地址。
下面采用中断方式编程实现把从74LS373输入的数据存入单片机的内部RAM从60H开始的单元中。
中断系统初始化程序:
中断服务程序:
图7-33 采用74LS373扩展输入口电路
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。