8255 控制端口
在 8255 中,有两种类型的命令字或控制字可用。它们是:
模式定义控制字和
端口 C 位设置/复位控制字。
这两个都只写入控制端口。从微处理器的角度来看,只有一个 8 位控制端口,当 CS*=0,WR*=0,A1=1 和 A0=1 时被选中。但是如果我们考虑 8255 的架构,内部有两个控制端口,一个用于模式定义控制,另一个用于端口 C 位设置/复位控制。如果控制端口的 MS 位 = 1,则控制端口的内容被锁存到模式定义控制端口中。如果控制端口的 MS 位 = 0,则控制端口的内容被锁存到端口 C 位设置/复位控制端口中。这可以从下图看出。
现在让我们讨论模式定义控制字。下图描述了这一点:
下表描述了所有这些位的含义和用途:
位 0 (PClI) | 1 = 端口 C 下部 (PC3-0) 作为输入 0 = 端口 C 下部 (PC3-0) 作为输出 |
位 1 (PBI) | 1 = 端口 B 作为输入 0 = 端口 B 作为输出 |
位 2 (MB) | 1 = 端口 B 在模式 1 0 = 端口 B 在模式 0 |
位 3 (PCuI) | 1 = 端口 C 上部 (PC7-4) 作为输入 0 = 端口 C 上部 (PC7-4) 作为输出 |
位 4 (PAI) | 1 = 端口 A 作为输入 0 = 端口 A 作为输出 |
位 6, 5 | 0 0 = 端口 A 在模式 0 |
(MA2,MA1) | 0 1 = 端口 A 在模式 1 1 0 = 端口 A 在模式 2 1 1 = 端口 A 在模式 2 |
位 7 | 必须为 1,表示它是模式定义控制。 |
现在让我们讨论端口 C 位设置/复位控制字。下图描述了这一点:
下表描述了所有这些位的含义和用途:
位 0 (S/R*) | 1 = 设置由位 3、2 和 1 选择的端口 C 位 0 = 复位由位 3、2 和 1 选择的端口 C 位 |
位 3, 2, 1 (SB2, 1, 0) | 000 = 选择端口 C 的位 0 001 = 选择端口 C 的位 1 010 = 选择端口 C 的位 2 011 = 选择端口 C 的位 3 100 = 选择端口 C 的位 4 101 = 选择端口 C 的位 5 110 = 选择端口 C 的位 6 111 = 选择端口 C 的位 7 |
位 6, 5, 4 | 无关紧要。通常加载为 000 |
位 7 | 0 表示它是端口 C 位设置/复位控制 |
广告