[BLOCKQUOTE] 第四节 外部8255A接口电路的扩展 MCS-51系统可以扩展的外部I/O接口电路有: 可编程的并行接口电路、定时计数器、串行通信接口电路以及数模转换器和模数转换器等。对MCS-51系统扩展外部I/O接口电路需要注意的问题是: 外部数据存储器和外部I/O接口电路采用统一编址设计,共同使用MOVX指令控制存取。 1.8255A可编程并行接口电路 (1)内部结构简介: 在主机界面上: 数据总线缓冲器:通过8位数据线与CPU交换控制和数据信息。 读写控制逻辑模块:接收来自CPU的相关控制信号,控制8255A电路的存取操作。 在外设界面上: 8位并行端口PA: 通过编程可以分别设置成单向输出、单向输入或者分时输入输出。PA端口输出具有锁存和缓冲的功能,输入具有锁存功能。 8位并行端口PB:通过编程可以分别设置成单向输出和单向输入。PB端口输出具有锁存和缓冲的功能,输入具有缓冲功能。 8位并行端口PC: PC端口输出具有锁存和缓冲的功能,输入具有锁存功能。PC端口还可以分为高4位PC7~4和低4位PC3~0两个独立部分。PC端口可否独立控制取决于PA端口和PB端口的工作方式。
图9.9 PA端口的输出锁存和缓冲、输入锁存结构
图9.10 PB端口的输出锁存和缓冲、输入缓冲结构 (2)外部电气引脚配置与功能: 所有I/O接口电路芯片都分为主机界面和外设界面。主机界面与CPU连接。外设界面与外部电路连接。 I/O接口电路的电气引脚也有两个界面之分。 主机界面上的电气引脚 数据总线D7~D0:8255A与CPU交换控制和数据信息的路径。 片选输入控制线CS:来自I/O地址译码电路,低有效。 读出控制RD和写入控制WR:来自CPU的读写输出控制信号,低有效。 地址输入线A1、A0:来自地址锁存器输出,用于寻址内部PA端口、PB端口、PC端口和命令端口之一。 复位控制输入线RESET:8255A电路与CPU同步复位。复位后内部4个端口清0,外设界面上的24条I/O引脚呈现高阻状态,8255A电路与外部设备断开。 外设界面上的电气引脚 PA7~0:PA端口的8位I/O引脚,传送方向由编程决定。 PB7~0:PB端口的8位I/O引脚,传送方向由编程决定。 PC7~0:PC端口的8位I/O引脚,传送方向由编程决定。PC端口还可以一分为二:PC7~4和PC3~0 。
(3)8255A并行接口的编程操作。 8255A并行接口的编程操作分为: 写入8255A 命令字, 用于设置8255A电路的工作模式与传送方向。写入PC端口操作字,用于设置PC端口的位输入或输出状态。 8255A的命令字格式与功能,如图9.11。
图9.11 8255A 命令字格式 功能说明:
D0 PC3~PC0方向设置 0 输出方向 1 输入方向 D1 PB端口方向设置 0 输出方向 1 输入方向 D2 PB端口工作模式 0 直接式输入或者输出(模式0) 1 选通式输入或者输出(模式1) D3 PC7~PC4方向设置 0 输出方向 1 输入方向 D4 PA端口方向设置 0 输出方向 1 输入方向 D6 D5 PA端口工作模式 0 0 直接式输入或者输出(模式0) 0 1 选通式输入或者输出(模式1) 1 X 选通式分时输入输出(模式2) D7 8255A软件字的特征位 0 PC端口操作字 1 8255A命令字 8255A的PC端口操作字格式与功能
图9.12 8255A PC 端口操作字格式 功能说明: D3 D2 D1 指定PCi位线 0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7
D0 电平状态 0 PCi低电平 1 PCi高电平 D7=0,操作字特征位。 注意:8255A的命令字和PC端口操作字都是写入到芯片中的命令端口,它们通过各自的特征位区别。 2.MCS-51系统与8255A电路的接口设计 MSC-51系统与8255A电路的接口设计如图9.13所示。
图9.13 MCS-51系统与8255A电路的接口 接口设计说明: ①74138的控制逻辑参考本章第二节的图9.2.3。Y7输出有效时,A15A14A13=111。 ②本接口逻辑是地址不完全译码设计。8255A电路可以使用的4个端口地址分别是:0E000H、0E001H、0E002H和0E003H。 ③8255A接口电路编程操作举例: MOV DPTR,#0E003H;指向8255命令端口 MOV A,#80H; 命令字:PA、PB和PC端口直接输出 MOVX @DPTR,A; 写入命令 DEC DPL; 指向PA端口0E000H DEC DPL; DEC DPL; MOVX @DPTR,A; 数据写入PA端口 INC DPL; 指向8255命令端口 INC DPL; INC DPL; MOV A,#9; PC端口操作字 MOVX @DPTR,A; PC4输出高电平 3.8255A并行接口的工作模式 8255A并行接口电路内部的PA端口具有3种传送模式可供选用。 PB端口具有2种传送模式可供选用。PC端口的传送模式取决于PA端口和PB端口的传送模式。 (1)传送模式0。 模式0的功能特点: ·是直接控制输入或输出传送。不需要查询和中断控制。 ·PA、PB和PC端口都可以编程设置为模式0传送。 ·PA、PB、PC7~PC4、PC3~PC0这4个端口最多有16种输入输出组合。 模式0传送在计算机系统中很多有实际应用的例子。例如在PC系统中,8255A并行接口电路的PA端口被设置成模式0输入, 接收键盘输入的按键扫描码。 又如在非编码键盘的扫描控制系统中,8255A并行接口电路的PA端口被设置成模式0输出,PB端口被设置成模式0输入, 以便进行按键的扫描识别。 另外,在半导体数码管显示控制电路中,通常设置8255A并行接口电路的PA和PB端口为模式0输出,分别进行位控制和段控制。 (2)传送模式1。 模式1的功能特点: ·是采用查询或者中断控制的输入或输出传送。 ·PA端口编程为模式1传送后,要占用PC端口的部分资源。 ·PB端口编程为模式1传送后,也要占用PC端口的部分资源。 ·PC端口的剩余资源仍然可以独立操作。 PA端口模式1输入传送的逻辑结构,如图9.14所示。
图9.14 PA端口模式1输入传送的逻辑结构 功能说明: ①-STB是选通输入信号,来自外设电路,低有效表示数据已经打入PA端口锁存器。 ②IBF是输入缓冲器满信号,由8255电路输出,高有效表示PA端口数据尚未被CPU读取,不能再接收新数据。 当IBF返回低电平,表示输入缓冲器空,可以接收新数据。IBF信号由-STB选通信号激活,随CPU的读控制信号-RD的撤消而失效。 ③INTR是中断请求信号,输出到主机电路,要求CPU读取PA端口数据。INTR信号也可以作为查询信号使用。 ④INTR信号能否激活, 受到8255电路内部的中断允许触发器INTE的控制。 INTE=1, 允许激活INTR信号。 INTE=0,禁止激活INTR信号。中断允许触发器INTE的置位控制如下: MOV DPTR,#0E003H;指向8255命令端口 MOV A,#1001B; PC4置1,允许激活PA端口的INTR信号 MOVX @DPTR,A; 写入PC端口操作字 MOV A,#101B; PC2置1,允许激活PB端口的INTR信号 MOVX @DPTR,A; 写入PC端口操作字 ⑤PB端口设置为模式1输入时,分别占用PC0(INTR)、PC1(IBF)和PC2(-STB)。 ⑥PC端口还剩余的PC7和PC6,可以编程为两位输入或者输出,也可以单独进行位操作。 PA端口模式1输出传送的逻辑结构,如图9.15所示。
图9.15 PA端口模式1输出传送的逻辑结构 功能说明: ①-OBF是输出缓冲器满信号,由8255电路输出,低有效表示PA端口数据已经准备就绪,可供外设电路读取。 ②-ACK是输入响应信号,来自外设电路,低有效表示外设电路已经读取PA端口的数据。-ACK信号由-OBF信号激活。当-ACK信号生效后,-OBF信号返回高电平撤销。 当CPU把数据写入PA端口后,随着写控制信号-WR的撤销,-OBF信号再次自动激活。 ③INTR 是中断请求信号, 输出到主机电路, 表示 PA 端口已经空闲,要求CPU再次写入数据。INTR信号也可以作为查询信号使用。 ④INTR信号能否激活, 受到8255电路内部的中断允许触发器INTE的控制。但是,改用PC6来控制是否激活INTR信号。中断允许触发器INTE的置位控制如下: MOV DPTR,#0E003H;指向8255命令端口 MOV A,#1101B; PC6置1,允许激活PA端口的INTR信号 MOVX @DPTR,A; 写入PC端口操作字 MOV A,#101B; PC2置1,允许激活PB端口的INTR信号 MOVX @DPTR,A; 写入PC端口操作字。 ⑤PB端口设置为模式1输出时,分别占用PC0(INTR)、PC1(-OBF)和PC2(-ACK)。 ⑥PC端口还剩余的PC5和PC4,可以编程为两位输入或者输出,也可以单独进行位操作。 (3)传送模式2 只有PA端口可以编程设置为模式2传送。这是采用中断或者查询控制的分时输入和输出的双向传送方式。其接口逻辑特点如图9.16所示。
图9.16 接口逻辑特点 模式 2传送的工作原理结合模式 1的输入和输出原理来分析和理解。CPU响应模式2的中断请求后,还要测试-OBF信号和IBF信号,以便确定是输出中断还是输入中断。 [/BLOCKQUOTE] |