编写初始化程序,要先写控制字,所以先假设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芯片
#include "reg51.h"#include "absacc.h"
#define COM XBYTE[0x7FFF]//8255A 控制口地址
#define PA XBYTE[0x7CFF] //8255A A口地址
#define PB XBYTE[0x7DFF] //8255A B口地址
上面就是初始化 后面比如 你要在pa口 输出0x80那就
PA=0x80
那个地址的算法
假设P0口连接D7~D0,P2.1、P2.0连接A1A0,P2.7连接
,那地址就应该是:
A口:0111110011111111 即7CFF
B口:0111110111111111 即7DFF
C口:0111111011111111 即7EFF
控制寄存器:0111111111111111 即7FFF
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
这是对应的地址
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)