❶ 8255芯片的初始化字
D7 D6 D5 D4 D3 D2 D1 D0
D7:特征位 D6D5:A组方式00=方式0 ,01=方式1,1X=方式2
D4: A口0=输出,1=输入 D3:C口C7~C4 0=输出,1=输入D2:B组方式0=方式0,1=方式1
D1: B口0=输出,1=输入D0:C口C3~C0 0=输出,1=输入
D7位为“1”时,为方式选择控制字的标识位。
D6、D5位决定A端口的工作方式。
D4位决定A端口工作在输入还是输出方式。
D3位决定C端口高4位PC7~PC4是作为输入端口,还是作为输出端口。
D2位用来选择B端口的工作方式。
D1位决定B端口作为输入还是输出端口。
D0位决定C端口低4位PC3~PC0作出为输入,还是输出。 在8255A芯片初始化时,C端口置1/置0控制字可以单独设置C端口的某一位为0或某一位为1。控制字的D7位为“0”时,是C端口置1/置0控制字中的标识位,这个控制字只对C口起作用,任何一位都可以通过按位置位/复位控制字来设置。
注意:对C口的置位/复位控制不是把控制字送到C口,而是由控制口决定各位的状态,是把控制字送到控制口 3种工作方式可用软件编程对控制口设置来指定。三种基本的工作方式为: 方式0-基本的输入输出,方式1-选通输入输出方式, 方式2-双向传送方式。
1) 工作方式0(基本输入输出方式)
功能:方式0不使用联络信号,也不使用中断,A口和B口可定义为输入或输出口,C口分成两个部分(高四位和低四位),C口的两个部分也可分别定义为输入或输出。在方式0,所有口输出均有锁存,输入只有缓冲,无锁存,C口还具有按位将其各位清0或置1的功能。常用于与外设无条件的数据传送或接收外设的数据。
2) 工作方式1(选通输入输出方式)
A口借用C口的一些信号线用作控制和状态信号,组成A组,B口借用C口的一些信号线用作控制和状态信号,组成B组。在方式1下,C口的某些位被占用。
方式1的输出:当A口工作于方式1且用作输出口时,C口的PC7线用作输出缓冲器满OBF信号,PC6用作外设收到数据后的响应信号ACK,PC3用作中断请求输出信号线INTR。
当B口工作于方式l且用作输出口时,C口的PC1线用作输出缓冲器满OBF信号,PC2用作外设收到数据后的响应信号ACK,PC0用作中断请求输出信号线INTR。
3) 工作方式2 (双向输入输出方式)
功能:方式2是A组独有的工作方式。外设既能在A口的8条引线上发送数据,又能接收数据。此方式也是借用C口的5条信号线作控制和状态线,A口的输入和输出均带有锁存。
❷ 试编写初始化程序,设8255A的端口A工作在方式0输入,B口工作在方式0输出,使PC5端
编写初始化程序,要先写控制字,所以先假设8255A的端口A、端口B和控制字寄存器的端口地址分别为20H、21H和22H,那么初始化程序为:MOV DX,023H;MOV AL,10010000B;OUT DX,AL······(其中控制字为:10010000B,PC端多为输出端)。
8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字。
其中,方式控制字用于设置端口A,B,C的工作方式和数据传送方向,置位/复位控制字用于设置C口的PC7~PC0中某一条口线PCi(i=0~7)的电平,两个控制字公用一个端口地址。
8255A具有3种基本的工作方式,在对8255A进行初始化编程时,应向控制字寄存器 写入方式选择控制字,用来规定8255A各端口的工作方式。
这3种基本工作方式是:
1、方式0——基本输入输出方式:适用于不需要用应答信号的简单输入输出场合,这种方式端口A和B可作为8位的端口,端口C的高4位和低4位可作为两个4位的端口;
2、方式1——选通输入输出方式:端口A和B作为数据口,均可工作于输入或输出方式,端口C的6根线用来产生或接受联络信号。
3、方式2——双向总线I/O方式:只有端口A可以工作于这种方式,端口A工作于方式2 时,端口C的5位(PC3~PC7)作A口的联络控制信号。
参考资料来源:网络-8255A芯片
❸ 8255A的端口地址为260H~263H,编写对8255A初始化的程序段
8255方式控制字:
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 1 1 1 0 1 b = 0BDh
;;8255A初始化80x86微机汇编序:
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START: MOV AL, 0BDh ;AL←方式控制字
MOV DX, 263h ;DX←8255控制口地址
OUT DX, AL ;方式控制字→8255控制口
......
CODE ENDS
END START