微机原理接口实验:8255并行接口实验,让K0~K7控制发光二极管L0~L7的状态。8255接口芯片非常重要的,使用非常简单,在以后的实验会经常使用到。
实验内容:8255接口芯片非常重编写一个基本输入输出程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求:数据灯的显示随开关动态变化。要的,使用非常简单,在以后的实验会经常使用到。
实验的目的:了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。并学会如何使用8255并行开关让K0~K7控制发光二极管L0~L7的状态。
设定:8255PA、PC口为输入、PB作输出(均为方式0)
MOV DPTR, #0FF2BH ;假设命令口地址FF2BH
MOV A, #10011001B ;命令字
MOVX @DPTR, A
……
忘了问了,你的8255的地址,是不是FF2BH?
线路不一样,地址有可能不一样。
#include<reg51h>
#include<absacch>
#define COM8255 XBYTE[0x7fff] //命令字地址
#define PA8255 XBYTE[0x7ffc] //PA口地址
#define PB8255 XBYTE[0x7ffd] //PB口地址
void delay(unsigned int ms)
{
unsigned char i;
while(ms--)
for(i=0;i<123;i++);
}
void main()
{
COM8255=0x82; //方式0,A口输出,PB口输入
while(1)
{
if(PB8255==0xff)
{
PA8255=0xff;
delay(500);
PA8255=0x00;
delay(500);
}
else
PA8255=PB8255; //PB口开关断和通控制PA口LED亮和灭
}
}
若设定8255A的C口上半部方式0输入,C口下半部方式0输出,
可以将C口视作二个独立的4位I/O端口。
从C口上半部读入的数据由PC7~PC4引脚的电平高低所决定,与PC3~PC0无关;
若向下半部PC3~PC0输出数据,对PC7~PC4状态无影响。
编写初始化程序,要先写控制字,所以先假设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芯片
8255工作方式命令字为:10010000B,
即:A口方式0输入,B口方式0输出,C口方式0输出,
设微机系统中,8255端口地址是:80H~83H
80x86汇编程序如下:
MOV AL,101000B ; AL←方式命令字
OUT 83H, AL ; 方式命令字→控制口,8255初始化
IN AL, 80H ; AL←读入A口数据
NOT AL ; 将AL内容各位取反
OUT 81H, AL ; AL的数据输出→B口
以上就是关于微机原理8255并行接口实验怎么让K0控制L7全部的内容,包括:微机原理8255并行接口实验怎么让K0控制L7、单片机控制8255按键控制8个发光二极管程序编程、以8255的B口为输入,A口为输出,输入与输出分别用开关及发光二极管代表,要求:当输入不全为0时,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)