单片机IO.ppt
第11讲 I/O口的扩展,I/O扩展主要内容,I/O扩展(I)可编程I/O芯片8255A的扩展可编程I/O芯片8155H的扩展I/O扩展(II)简单的扩展电路利用串口对并行口的扩展计数器芯片8253的扩展及应用,I/O扩展的概述,原因:MCS-51单片机本身提供的口线不多(P1、P3)方法:MCS-51单片机将外扩I/O和外部数据存储器统一编址,用户可以把一部分外部数据存储器的空间(64k)作为I/O地址,通过MOVX指令完成对外扩口的输入输出。实现:采用专门的外围接口芯片8155,8255等 采用一般的TTL芯片74LS377,74LS373等,可编程并行I/O芯片8255A,引脚及结构介绍3个8位并行口PA、PB、PC。PC可分为高4位与低4位D0D7数据端口A,B两组控制电路,双向三态数据接口控制总线接口复位控制RESET,高电平有效,8255A的端口,8255端口选择,8255A端口选择表,可编程并行I/O芯片8255A,8255A的三种工作方式方式0基本输入输出方式1选通输入输出方式2双向传送(仅PA口)8255A的工作方式由控制字选择,8255A控制字,工作方式选择控制字,C口按位置位/复位控制字,8255A控制字,端口C按位置位/复位控制字,8255A工作方式0(基本I/O方式),两个8位端口和两个4位端口任一个端口都可以输入输出输出锁存而输入不锁存数据无条件传送,不需要状态端口,8255A接口应用举例,8255A与8031接口电路,8255A接口应用举例1,8255A的端口方式设置,设端口A为方式0输出,端口B为方式0输入,端口C(上半部)PC7PC4输入,端口C(下半部)PC3PC0输出。依照8255A控制字定义有 控制字=10001010B=8AH程序代码如下:MOVDPTR,#0FF7FH;8255A芯片控制口地址送入MOVA,#8AH;方式控制字送入AMOVXDPTR,A;方式控制字送入8255A控制字寄存器,8255A控制字,确定地址的原则:未使用到的片选地址线置1,8255A接口应用举例2,当口A、B工作于非方式0时,要使用到一些C口线,对于这些口不要进行置位、清零操作。,对端口C的置位/复位。先将C口的PC5置“1”,然后将其置“0”MOVDPTR,#0FF7FH;8255A芯片控制口地址MOVA,#0BH;方式控制字送入AMOVXDPTR,A;方式控制字送入8255APC5=1MOVA,#0AH;方式控制字送入AMOVXDPTR,A;方式控制字送入8255A,PC5=0,端口C按位置位/复位控制字,关于8255A的使用,一般让8255A工作于方式0,此时MCS-51相当于多了3个I/O口,其中一个(C口)既可以按字节操作,又可以按位操作。在使用方式1、方式2时,一定要注意对C口控制时序的理解,而且一定要接支持这种时序的外设,例如打印机等。通常8255A可以由方式1、方式2实现的控制,也可以由方式0实现。,简单I/O口的扩展,简单I/O口的扩展主要由74系列的电路进行扩展;在许多情况下,有些开关量或并行数据需直接输出或输入。经常用8D锁存器和三态驱动门等进行扩展。(74LS377、74LS273、74LS244等),74LS377作为输出口,功能说明:74LS377是8D锁存器,20个管脚,8个输入(D0D7)、8个输出(Q0Q7)、一个片选CE、一个锁存端(CP)上升沿有效,另外,还有电源、地。,74LS377扩展为输出口,74LS377作为输出口,试确定其地址,CE接P2.7;CP接WR,377的输入端接8031的数据口,输出端接8个发光二极管。地址:7FFFHMov dptr,#7fffhMov a,#00hMovx dptr,a,74LS273作为输出口,功能说明:74LS273是8D锁存器,20个管脚,8个输入(D0D7)、8个输出(Q0Q7)、一个清零端(CLR)、一个锁存端(CLK)上升沿有效,另外,还有电源、地。,74LS273作为输出口,地址:8000HMov dptr,#8000hMov a,#00hMovx dptr,a,74LS244作为输入口,功能说明:74LS244是8个三态线驱动器,20个管脚,2个4输入端(1A11A4)、(2A12A4);2个4输出端(1Y11Y4)、(2Y12Y4),两个控制端1G、2G(低电平有效,否则三态输出),另外,还有电源、地。,74LS244作为输入口,74LS244作为输入口,试确定其地址,1G、2G均接P2.6、RD的或门输出端;244的输出端接8031的数据口,输入端接8个按键。地址:BFFFH mov dptr,#0bfffh movx a,dptr,D0,D1,D2,D3,提示:,使用TTL芯片扩展8051单片机的I/O口,实际使用中应用很多,要注意加深理解。选择芯片时,用为输入的,TTL芯片必须具有三态输出。用为输出的,一般选用具有锁存功能的TTL芯片,但有时也选用具有三态输出的芯片,要看具体电路的功能。,END,