一、8255是干什么的
8255是一块芯片,用于管理CPU与外设之间数据的输入和输出。
二、8255可以怎么管理输入输出
8255有三个端口:A口,B口和C口。它们的长度都是8位的。都可以用作数据的输入或输出。
8255有三种工作方式来管理输入输出:方式0、方式1和方式2
三、8255怎么玩
初始化:通过向芯片输入不同的控制字从而确定8255的工作方式。
初始化设置好一端(设置控制台ABC口 10010000 存好 63H)

1、若8255的A口为方式0,输入,B口为方式1输出,C口高四位为输入,低四位为输出,且对C口PC3复位,A口的地址为60H,试写出初始化程序。
10011100(A口为方式0,输入,B口为方式1输出,C口高四位为输入,低四位为输出)
00000110(C口PC3复位)
60H A口 61H B口 62H C口 63H控制字端口 (A口的地址为60H)
MOV AL 10011100
OUT 63H,AL ; 8255控制字端口地址63H ;工作方式控制字10011100;送到控制字端口63H
MOV AL 00000110
OUT 63H,AL ;
初始化(存一下) 到 地址(超了存一下);求值 IN AL 地址(超了存一下)
2、假设当前8255的端口地址为60H-63H,请编程用2种方法实现将C口的PC5清零,PC1置1,注意不能修改其他位
00001010(PC5清零) (清零:PC5置0,其余1)
00000011(PC1置1) (置1:PC1置1,其余0)
MOV AL 00001010 | IN AL,62H;获取C口值
OUT 63H,AL | AND AL,11011111
MOV AL,00000011 | OR AL,00000010
OUT 63H,AL | OUT 62H,AL
3、要求使用8255作为接口,采集一组开关K0-K7的状态,然后通过一组发光二极管L0-L7显示出来,假设端口地址为200H-203H,请问该题目如何设计以及对应的程序段。
A口开关 B口小灯
10010000(工作方式A方式0输入 外设控制小灯,其余不用管)
MOV DX,203H(地址超了255,存一下)
MOV AL,10010000(初始化)
OUT DX,AL(初始化到地址)
MOV DX, 200H(A口地址存一下)
IN AL,DX(获得A口的值)
MOV DX,201H(设置小灯B口)
OUT DX,AL(输出到小灯)
网友评论