8255初始化程序怎么写

1.8255的初始化程序是什么1、地址确定
因为A10A9A8A7A6A5A4A3=01010011,A2A1=11为控制字端口,A2A1=10为C口,A2A1=01为B口,A2A1=00为A口,A0为0,所以8255A地址范围为24CH~24FH 。
2、控制字确定
因为A口为方式0输出,B口为方式0输入,所以控制字为10000010B=82H
3、初始化程序
MOV AL,82H
MOV DX,24FH
OUT DX,AL
附8255知识:
8255是微机并行接口芯片 。
8255是可编程I/O口扩展芯片 。对8255输入不同的指令可改变I/O口的工作方式 。8255与单片机系统连接方式简单,工作方式由程序设定,图2为8255的引脚图 。
8255内部有4个寄存器:分别为寄存器A、B、C和控制寄存器 。A、B、C寄存器的数据就是引脚PA7~PA0、PB7~PB0、PC7~PC0上输入或输出的数据 。而控制寄存器的数据则表明PA、PB、PC的工作方式 。通过CS、A0、A1、RD和WR对4个寄存器进行操作 。
1)CS为低电平时选通8255;2)A1、A0为地址选通;3)RD和WR为读、写信号:RD为低、WR为高时为读方式,RD为高、WR为低时为写方式 。4)D0~D7为数据口 。
向控制寄存器写入不同的数据可以使8255工作在三种不同的方式下 。这里只介绍应用最多的方式0 。方式0下8255的PA、PB及PC口上半部分(PC7~PC4)和下半部分(PC3~PC0)中任何一个端口都可以设定为输入或输出,PC口还可以进行位操作 。控制寄存器各位的含义如图3所示 。SLPC-24中8255工作在方式0 。PA、PB为输入口、PC为输出口,对控制寄存器写入的数据为10010010B,即92H 。
2.怎样编写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
这是对应的地址
3.编写8255的初始化程序,初始地址为1000H 40H到43H;;A口作方式0输出,e68a84e8a2ad7a686964616f31333335346130B口作方式0输入,C口闲置
;;方式控制字 = 1000 0010b
;;微机汇编程序如下:
CODE SEGMENT
ASSUME CS:CODE
ORG 1000H
START: MOV AL, 10000010b ;AL←方式控制字
MOV DX, 43H ;DX←8255控制口地址
OUT DX, AL ;方式控制字→8255控制口
INPUT: MOV DX, 41H ;DX←B口地址
IN AL, DX ;从B口输入,数据存于AL
..
OUTPUT: MOV DX, 40H ;若开关状态有变化,DX←A口地址
OUT DX, AL ;AL的数值输出到A口

CODE ENDS
END START
4.8255可编程接口芯片怎么初始化举例说明如下:
设8255A-5芯片的端口地址为200H~203H,,需设置A端口是输入口,端口B是输出口,端口C为输出口 。分析说明A口B口的工作方式并编写初始化程序 。
答:
方式控制字 =1001000B,
A口方式0输入,B口方式0输出,C口方式0输出
初始化程序:
MOV DX, 203H ;8255控制口地址送入DX
MOV AL,101000B ;方式控制字送入AL
OUT DX, AL ;方式控制字从AL输出到8255控制口
5.试编写初始化程序,设8255A的端口A工作在方式0输入,B口工作在编写初始化程序,要先写控制字,所以先假设8255A的端口A、端口B和控制字寄存器的端口地址分别为20H、21H和22H,那么初始化程序为:MOV DX,023H;MOV AL,10010000B;OUT DX,AL······(其中控制字为:10010000B,PC端多为输出端) 。