8085微处理器中的I/O写(IOW)机器周期
OUT 25H指令的最后三个时钟周期是IOW机器周期的示例。IOW机器周期的波形如下图所示
需要注意的是,在IOW机器周期中,W和Z寄存器具有相同的8位端口地址。当我们使用8755(2K×8 EPROM和两个8位端口)和8155(256×8 RAM、3个输入输出端口和14位定时器)时,地址在A15-8和AD7-0上的重复也具有一定的优势。除了8085处理器外,我们还可以仅使用这两个芯片来构成一个基于8085的微型计算机。此外,除了需要最小芯片微型计算机配置的情况外,这些芯片在如今并不受欢迎。
寄存器对WZ中的16位值作为地址在IOW机器周期中发出。还需要注意的是,在IOW机器周期中,只有累加器的内容作为数据发送到寻址的输出端口。在8085中,我们只在执行OUT a8指令的过程中遇到IOW机器周期。
示例:在8085指令集中,OUT是一个助记符,表示将累加器的内容输出到一个输出端口,其8位地址在指令中指示为a8。它在内存中占用2个字节。第一个字节指定操作码,下一个字节提供8位端口地址。
助记符,操作数 | 操作码(十六进制) | 字节数 |
---|---|---|
OUT 端口地址 | D3 | 2 |
OUT F0H是此类型指令的一个示例。下面用一个示例显示了执行此指令的结果。
| 之前 | 之后 |
---|---|---|
(A) | ABH | ABH |
输出端口F0H | 任意值 | ABH |
OUT指令是唯一可以将累加器内容发送到输出端口的指令。连接地址为F0H的输出端口的可能的芯片选择电路如下面的图所示。
由于端口地址为F0H,因此从A7到A0的位应具有位模式
A7 A6 A5 A4 A3 A2 A1 A0 = 1 1 1 1 0 0 0 0,其中WR* = 0,IO/M* = 1
所有这些位将通过一个与非门产生输出逻辑1作为芯片选择(CS),因此输出端口芯片被选中。因此,当8085发出地址为F0H、IO/M*为1和WR*为0时,芯片将响应。换句话说,我们认为它具有输出端口号F0H。
请注意,可以使用地址F0H的输入端口和具有相同地址F0H的输出端口。当8085发出地址为EFH和IO/M*为1时,根据RD*和WR*信号状态值选择其中一个。因此,可以有总共256个输入端口和总共256个输出端口。
地址 | 十六进制代码 | 助记符 | 注释 |
---|---|---|---|
2000 | D3 | OUT F0H | 累加器内容将发送到端口地址F0H |
2001 | F0 | | F0H作为端口地址 |
执行此指令OUT F0H的时序图如下所示 -
总结:因此,此指令OUT需要2个字节、3个机器周期(操作码获取、内存读取、I/O写入)和10个T状态才能执行,如时序图所示。