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端多为输出端)。
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芯片
6.微机原理及应用8255A 1,写出各端口地址2,编写初始化程序
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
7.芯片8259的初始化程序怎么写
中断控制器8259A的初始化尤为复杂,他的控制字、方式字相对于8253 8255要多。就给你一道例题吧。
某微机系统使用主、从两片8259A管理中断,从片中断请求INT与主片的IR2连接。设主片工作于特殊完全嵌套、非缓冲和非自动结束方式,中断类型号为40H,端口地址为20H和21H。从片工作于完全嵌套、非缓冲和非自动结束方式,中断类型号为70H,端口地址为80H和81H。试编写主片和从片的初始化程序。
根据题意,写出ICW1, ICW2, ICW3和ICW4的格式,按图6.21的顺序写入。编写初始化程序如下:
;主片8259A的初始化程序如下:
MOV AL, 00010001B ; 级联, 边沿触发, 需要写ICW4
OUT 20H, AL ; 写ICW1
MOV AL, 01000000B ; 中断类型号40H
OUT 21H, AL ; 写ICW2
MOV AL, 00000100B ; 主片的IR2引脚接从片
OUT 21H, AL ; 写ICW3
MOV AL, 00010001B ; 特殊完全嵌套、非缓冲、自动结束
OUT 21H, AL ; 写ICW4
;从片8259A初始化程序如下:
MOV AL, 00010001B ; 级联, 边沿触发, 需要写ICW4
OUT 80H, AL ; 写ICW1
MOV AL, 01110000B ; 中断类型号70H
OUT 81H, AL ; 写ICW2
MOV AL, 00000010B ; 接主片的IR2引脚
OUT 81H, AL ; 写ICW3
MOV AL, 00000001B ; 完全嵌套、非缓冲、非自动结束
OUT 81H, AL ; 写ICW4建议楼主多看看课本,理解里面控制字方式字的格式,多看看例题。
转载请注明出处育才学习网 » 8255初始化程序怎么写