首页 理论教育 使用8255A控制,实现微型计算机原理

使用8255A控制,实现微型计算机原理

时间:2023-11-03 理论教育 版权反馈
【摘要】:为了控制各端口的工作,8255A提供了两种控制字用来实现初始化和控制功能,这两个控制字分别称作初始化控制字和C口置0/置1控制字。在8255A正常工作之前,必须对8255A进行初始化。首先,程序必须通过写入一个方式选择控制字来确定8255A各端口的工作方式和传输方向。8255A与微处理器或总线的连接方式可以由图8-9表示。A1、A0连接到总线的A1、A0,代表8255A占用的是I/O空间中连续的4个端口地址。

使用8255A控制,实现微型计算机原理

为了控制各端口的工作,8255A提供了两种控制字用来实现初始化和控制功能,这两个控制字分别称作初始化控制字和C口置0/置1控制字。控制字必须写入控制字寄存器,该寄存器是一个只写寄存器,对该寄存器的读操作是被禁止的。

(1)方式选择控制字(见图8-7)

978-7-111-46342-9-Chapter08-43.jpg

图8-7 8255A方式选择控制字

当写入控制字寄存器的字节最高位为1时,代表此控制字为方式选择控制字。方式选择控制字用于选择三个端口的工作方式和传输方向(输入还是输出)。8255A的三个端口在工作方式的选择上是不同的,端口A可以选择方式0、方式1和方式2,端口B可以选择方式0和方式1,而端口C只能选择方式0。当端口A选择方式1或方式2,或者端口B选择方式1时,端口C的某些位会被占用,这时端口C的其余位仍然按照方式选择控制字所规定的方式输入或输出。由于端口C只能工作在方式0,方式选择控制字中不需要对C口的工作方式进行选择,而只需规定其数据传输的方向是输入还是输出,和端口A、B不同,端口C在输入/输出的选择上更灵活,其高4位和低4位可以互相独立地以不同的输入/输出方式工作,其数据传输方向可以相同,也可以不同。不管哪一种情况,IN/OUT指令访问端口C的时候总是把端口C当做一个整体对其进行读/写操作。

(2)C口置0/置1控制字(见图8-8)

当写入控制字寄存器的字节最高位为0时,代表此控制字为C口置0/置1控制字。该控制字的作用是对C口的某个单一比特位置0或置1而不影响其他比特位。在PCi被设置为输出时,这个控制字可以被用于单独操纵C口的某一条输出线的电平而不影响其他输出线,这对于某些特定的应用场景非常有用。另外,当A口工作于方式1或方式2,或者B口工作于方式1时,C口置0/置1控制字还被用于设置其中断屏蔽位(PC3和PC0)。

需要注意的是,C口置0/置1控制字虽然作用于C口,但是这个控制字应该被写入到控制字寄存器而不是C口的数据寄存器。(www.xing528.com)

在8255A正常工作之前,必须对8255A进行初始化。这个初始化过程可以通过向控制字寄存器写入一系列控制字实现。首先,程序必须通过写入一个方式选择控制字来确定8255A各端口的工作方式和传输方向(输入还是输出)。如果端口A工作在方式1或方式2,或者端口2工作于方式1,则必须使用C口置0/置1控制字来设置PC3或PC0,从而允许或禁止确定对应的端口中断请求。为了保证初始化过程不被打断,一般情况下在初始化之前CPU都要用CLI命令关中断,而在初始化完成之后再用STI命令开中断。初始化完成后,CPU就可以使用IN和OUT命令来操作8255A的几个端口,完成输入/输出了。

8255A与微处理器或总线的连接方式可以由图8-9表示。

978-7-111-46342-9-Chapter08-44.jpg

图8-8 8255A C口置0/置1控制字

978-7-111-46342-9-Chapter08-45.jpg

图8-9 8255A与系统总线(ISA)的连接

其中,RD与WR连接到系统总线上的IOR和IOW,以保证8255A占用的是系统的I/O空间。端口地址译码电路可以用门电路或者译码器组成,用来确定8255A占用I/O空间的那一部分。A1、A0连接到总线的A1、A0,代表8255A占用的是I/O空间中连续的4个端口地址。有时,A1、A0连接到总线的其他地址线,如A2、A1,这时8255A所使用的4个端口地址将不再连续。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈