问一道关于《微机原理与接口技术的题》的题,请高手帮忙解答下, 一个8086系统中,采用8255A芯片,令8255

2024-10-28 02:27:00
推荐回答(3个)
回答1:

#include
#include
#include"ApiEx.h"
#pragma comment(lib,"ApiEx.lib")

void main()
{
BYTE data;

printf("Press any key to begin!\n\n");
getch();
printf("Press any key to exit!\n");
if(!Startup())
{
printf("Error!\n");
return;
}
PortWriteByte(0xF6,0x031); //
PortWriteByte(0xF0,0x10);//
while(!kbhit())
{
PortReadByte(0xF0,&data);
printf("%d\n",data);
}
Cleanup();
}
这个是我用c写的,程序查询方式。接线就是cs接地址译码,A0-A7接LED,B0-B7接开关。

回答2:

代码部分
PORT_A EQU F0H
PORT_B EQU F2H
PORT_C EQU F4H
PORT_CT EQU F6H
STACK SEGMENT PARA 'STACK'
SA DW 100 DUP(?)
TOP EQU LENGTH SA
STACK ENDS
CODE SEGMENT PARA 'CODE'
ASSUME CS:CODE,SS:STACK
MAIN PROC FAR
MOV AX,STACK
MOV SS,STACK
MOV AH,10010000B;A口接键盘,B口接LED,选择共阳极接法
OUT PORT_CT,AH
CHECK_PRESS: IN AH,PORT_A;
CMP AH,0FFH
JE CHECK_PRESS
MOV CX,16EAH
DELAY: LOOP DELAY
IN AH,PORT_A
CMP AH,0FFH
JE CHECK_PRESS
OUT_PORTB: OUT PORT_B,AH
IN AH,PORT_A
CMP AH,0FFH
JNE OUT_PORTB
JMP CHECK_PRESS
MOV AH,4CH
INT 21H
MAIN ENDP
CODE ENDS
END
关于接线的问题,8255的A1A2两个引脚应该和8086的A1A2(空出A0)地址线相连接,CS引脚和地址译码电路相连接,这个数电内容,A口和键盘的连接选择是阳极连接,按键按下接地的这种方式,B口的共阳极连接方式,你要是想用共阴极,B口每个中间加上反向就好了,程序要改,不过不难。其他的引脚对应接就可以了

回答3:

8255