8255练习题及答案DOC.docx
《8255练习题及答案DOC.docx》由会员分享,可在线阅读,更多相关《8255练习题及答案DOC.docx(16页珍藏版)》请在冰豆网上搜索。
8255练习题及答案DOC
8255练习题及答案
一、填空题
1、8255A端口C按位置位复位控制字的_________位用来指定要置位或复位的端口C1的具体位置。
答案:
D3、D2和D1
2、8255A端口C按位置位复位控制字中的________位决定对端口C的某一位置位或复位。
答案:
D0
3、8255A端口A工作在方式2时,使用端口C的________作为与CPU和外部设备的联络信号。
答案:
PC7~PC3
4、8255A的每个端口的数据寄存器的长度为____位。
答案:
8
5、Intel8255A是一个________________________接口芯片。
答案:
可编程的通用并行输入输出
6、了般I/O接口的编址方式可分为________________两种方式。
答案:
I/O接口单独编,与存储器统一编址
7、8255A的端口C按位置位复位控制字的_________位用来指定置位或复位的端口C的具体位置.
答案:
D3,D2和D1
8、8255A的端口C按位置位复位控制字中的________位决定对端口C的某一位置位或复位。
答案:
D0
9、8255A的端口A工作在方式2时,使用端口C的_________作为与CPU和外部设备的联络信号。
答案:
PC7~PC3
10、8255A与CPU连接时,地址线一般与CPU的地址总线的_________连接。
答案:
A0和Al
11、8255A控制字的最高位D7=_________时,表示该控制字为方式控制字。
答案:
1
12、8255A的端口A的工作方式是由方式控制字的____位决定。
答案:
D6和D5
13、8255A的端口B的工作方式由方式控制字的________位决定。
答案:
D2
14、8255A的端口C的按位置位复位功能是由控制字中的D7=______来决定的。
答案:
0
15、8255A内部具有_____个输入输出接口。
答案:
3
16、8255A内部具有_______个输入输出端口。
答案:
3
17、8255A的三个端口中只有端口____没有输入锁存功能。
答案:
C
18、Intel8255A是一个_________________接口芯片。
答案:
可编程的通用并行输入输出
19、8255A与CPU连接时,地址线一般与CPU的地址总线的__________连接。
答案:
A0和A1
20、8255A的三个端口中只有端口_____没有输入锁存功能。
答案:
C
21、8255A的每个端口的数据寄存器的长度为_______位。
答案:
8
22、8255A的端口B的工作方式是由方式控制字的________位决定。
答案:
D2
23、8255A的端口A的工作方式是由方式控制字的____位决定。
答案:
D6和D5
24、8255A的控制字的最高位D7=________时,表示该控制字为方式控制字。
答案:
1
25、8255是一种可编程的行接口芯片,其中有个位的并行输入/输出端口。
26、8255A的A组有种工作方式,B组有种工作方式。
27、设8255A控制寄存器端口地址为FFFEH,要把A口指定为方式2输出,
指定为输入,B口指定为方式1输入,
指定为输出,将下面初始化程序段补充完整。
MOVDX,
MOVAL,
二、选择题
1、当8086/8088访问100H端口时,采用()寻址方式.
A、直接B、立即C、寄存器间接D、相对
C
2、8086CPU在进行I/O写操作时,M/IO和DT/R必须是()
A、L,LB、L,HC、H,LD、H,H
B
3、某系统采用8255A并行I/O接口,初始化时CPU所访问的端口地址为0CBH,并设定为方式1输出,则A口的口地址应为()
A、0CBHB、0CAHC、0CHD、0EH
D
4、当并行接口芯片8255A被设定位方式1时,其功能相当于()
A、0线握手并行接口B、1线握手并行接口C、2线握手并行接口D、多线握手并行接口
C
5、Intel8255A使用了()个端口地址。
A、1B、2C、3D、4
D
三、判断题
1、8255工作在方式1的输出时,OBF信号表示输出缓冲器满信号。
()
2、给8255C口PC3按位置位字是06H。
()
3、8255AA口工作在方式1输入,B口工作在方式0输出的方式控制字是0011×00×B。
()
四、简答题
1、用8255A和8086CPU相连,若8255A片选信号由A10~A3产生,且A10~A3=1111100B,问A口、B口、C口和控制口地址分别是多少?
2、8255A有哪几种工作方式?
各用于什么场合?
端口A、端口B和端口C各可以工作于哪几种方式?
答:
8255A有3种基本的工作方式:
方式0——基本输入输出方式,适用于不需要用应答信号的简单输入输出场合;方式1——选通输入输出方式,适用于必须在联络信号控制下才能完成的I/O操作;方式2——双向总线I/O方式,适用于双向总线方式。
端口A可工作于:
方式0、1、2;
端口B可工作于:
方式0,1;
端口C可工作于:
方式0。
3、8254定时/计数器的定时与计数方式有什么区别?
8254在方式0工作时,各通道的CLK、GATE信号有什么作用?
各通道的控制字地址都相同,8254是怎样区分的?
解:
8254作为计数器和定时器使用时的区别:
(1)用途不同:
定时器用于产生连续的、周期恒定的信号;
计数器用于对输入脉冲进行计数。
(2)对CLK输入的信号要求不同:
用作定时器时,CLK输入的信号必须有相同的周期;
用作计数器时,允许CLK输入的信号没有固定的周期;
使用方式不同:
定时器方式下计数的过程周而往复,重复进行;
计数器方式下计数的过程只进行一次,除非重新初始化,或者用GATE重新触发;
(3)8254工作在方式0时,CLK端输入计数用的脉冲信号;GATE信号为高电平时,对CLK端输入的脉冲进行计数;GATE信号为低电平时,暂停计数;GATE信号重新为高电平后,恢复原先的计数。
(4)由8254的方式控制字中的D7、D6两位来选择计数通道。
4、8255A的方式0一般使用在什么场合?
在方式0时,如果使用应答信号进行联络,应该怎么办?
答案:
方式0的特点是只要WR,RD信号有效,就有数据传送,一般使用在可随时传送数据的场合.若使用应答信号进行联络,可用C口作为联络,对C口位操作,一般上C口用作选通(STB)线,下C口作状态输入(RDY)线.
5、当8255A工作在中断方式2时,CPU是如何来区分输入或输出的?
答案:
在输入,输出均允许中断的情况下,可在中断服务程序中查询状态字,判断OBF和IBF位的状态,来区分是输入中断还是输出中断,并采取相应操作.
6、8255各口设置如下:
A组与B组均工作于方式0,A口为数输入,B口为输出,C口高位部分为输出,低位部分为输入,A口地址设为40H.
(1)写出工作方式控制字
(2)对8255A初始化
(3)从A口输入数据,将其取反后从B口送出
答案:
(1)10010001B即91H
(2)MOVAL,91H;OUT43H,AL
(3)INAL,40H;NOTAL;OUT41H,AL
7、8255的功能作用是什么?
它有哪些工作方式?
答案:
8255是可编程的并行接口芯片,设有三个8位的数据输入/输出端口,共有三种工作方式:
方式0为基本的输入/输出方式;方式样为应答式输入/输出方式;方式2为应答式双向数据传送方式.
五、编程题
1、设8255端口地址为50H~56H中的偶地址,试画出微机系统与8255A和LS138译码器的接口图。
设端口A工作在方式0输入,端口B工作在方式1输出,允许B口中断,端口C输出,对8255初始化编程。
2、设8255端口地址为80H~86H中的偶地址,试画出8255与微机系统和LS138译码器的接口图。
设端口A工作在方式1输入,中断允许,端口B工作在方式0输出,端口C输出,对8255初始化编程。
74LS1388255
3.设8255A与8086CPU相连,8255A芯片A口工作在方式1输出,B口工作在方式0输入,禁止A口中断,8255A芯片A口、B口、C口、控制口地址分别为FFF8H、FFFAH、FFFCH、FFFEH,请写出初始化程序。
4、如下图所示,某8086微机系统中有一片8255A,其端口PA接一个8段LED显示器,开关设置的二进制信息由8255A的PB口输入,经过程序转换成对应的8段LED字形码后,由PA口输出,来点亮此LED。
要求:
1.根据图中的译码电路,写出8255A的四个端口地址;
2.试写出8255A的工作方式命令字和8086对8255A的初始化程序段;
5、如图B-1所示电路
(1)分析各端口地址;
(2)A口、B口工作在什么方式;
(3)写出8255A的初始化程序。
6、设8255A的A口、B口、C口和控制字寄存器的端口地址分别为80H,82H,84H和86H。
要求A口工作在方式0输出,B口工作在方式0输入,C口高四位输入,低四位输出,试编写8255A的初始化程序。
答:
MOVDX,86H;控制字端口地址
MOVAL,10001010B
OUTDX,AL;写控制字
7、8255A的方式选择控制字和C口按位控制字的端口地址是否一样,8255A怎样区分这两种控制字?
写出A端口作为基本输入,B端口作为基本输出的初始化程序。
解:
(1)8255A的方式选择控制字和C口按位控制字的端口地址一样,它们之间的区别在控制字的D7位(特征位)的值不同,8255A的方式选择控制字D7=1,而C口按位置位/复位控制字D7=0。
(2)初始化程序:
(设端口地址为,A口:
200H,B口:
201H,控制口:
203H)
MOVAL,90H
MOVDX,203H
OUTDX,AL
8、用8255A的A端口接8位二进制输入,B端口和C端口各接8只发光二极管显示二进制数。
编写一段程序,把A端口读入的数据送B端口显示,而C端口的各位则采用置0/置1的方式显示A端口的值。
解:
(设端口地址为,A口:
200H,B口:
201H,C口:
202H,控制口:
203H)
MOVAL,90H;8255A初始化:
MOVDX,203H;8255A各组方式0,A口输入
OUTDX,AL;B、C口输出
MOVDX,200H
INAL,DX;读A口输入值
MOVDX,201H
OUTDX,AL;送B口输出
MOVAH,AL;A口输入值转存在AH中
MOVDX,203H
MOVCX,08;CX置循环次数初值
MOVAL,00H;C端口置0/置1控制字初值
LPA:
ANDAL,0FEH;清除最低位
SHRAH,1;A端口一位转入CF
ADCAL,0;A端口一位从CF转入命令字
OUTDX,AL;A端口一位从送往C端口对应位
ADDAL,02H;形成下一个命令字
LOOPLPA;处理C端口下一位
9、将8255A用作两台计算机并行通信的接口电路,请画出采用查询式输入/输出方式工作的接口电路,并写出采用查询式输入/输出方式的程序。
解:
用两片8255作两台计算机8088_A与8088_B之间并行通信的接口电路,两片8255之间的连接如下图所示。
两片8255均在方式1、查询方式下工作。
(1)8088_A输出程序:
(8255_A的A口作为数据输出口,C口的PC0作为“数据输出选通”信号,负脉冲输出。
C口的PC6作为“应答”信号输入。
端口地址:
A口:
200H,C口:
202H,控制口:
203H)
DATASEGMENT
BufferDB“Thisisaexample.”,0DH,0AH,-1
DATAENDS
CODESEGMENT
START:
MOVAX,DATA
MOVDS,AX
LEABX,Buffer;输出缓冲区指针送BX
MOVDX,203H
MOVAL,0A0H;10100000B
;8255_A的方式选择字,A口工作在方式1、输出,C口低四位输出
OUTDX,AL
MOVAL,1
OUTDX,AL;将PC0置1
CALLDELAY;延时等待对方完成初始化
;A口查询方式输出
NEXT:
MOVDX,202H
INAL,DL
TESTAL,80H;判别
是否有效,PC7→
A
JZNEXT;数据尚未取走,等待
MOVDX,200H
MOVAL,[BX]
OUTDX,AL;输出一项数据
INCBX
MOVDX,203H
MOVAL,0
OUTDX,AL;
NOP
NOP
INCAL
OUTDX,AL;通过PC0向对方发选通信号
CMPBYTEPTR[BX-1],-1;判断输出是否完成
JNENEXT;未完成,继续
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
(2)8088_B输入程序:
(8255_B的A口作为输入,方式1,PC4作为“数据输入选通”信号,输入,负脉冲有效。
PC0为“应答”信号输出。
端口地址:
A口:
210H,C口:
212H,控制口:
213H)
DATASEGMENT
BufferDB80DUP(?
)
DATAENDS
;
CODESEGMENT
START:
MOVAX,DATA
MOVDS,AX
LEABX,Buffer;输入缓冲区指针送BX
MOVDX,213H
MOVAL,0B0H;10110000B
;8255_B的方式选择字,A口工作在方式1,输入,C口低四位输出。
OUTDX,AL
MOVAL,01H
OUTDX,AL;PC0置1,表示没有“应答”信号
CALLDELAY;延时等待对方状态就绪
;A口查询方式输入
AGA:
MOVDX,212H
INAL,DX
TESTAL,20H
JZAGA
;PC5(IBF)是否为1,不是,无数据输入,继续查询
MOVDX,210H
INAL,DX
MOV[BX],AL
MOVDX,212H
MOVAL,0
OUTDX,AL
INCBX
NOP
NOP
INCAL
OUTDX,AL;通过PC0向发送方发“应答”负脉冲
CMPBYTEPTR[BX-1],-1;数据接收完了吗?
JNEAGA;未完,继续
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
10、设计一个用8255A作为8个七段显示器的接口电路,并设计一个把内存地址为ADDRA的8个数字在这8个七段显示器上显示的程序。
解:
设8个七段显示器采用共阳接法,A口控制段的显示,B口控制位的显示。
端口地址A口:
200H,B口:
201H,控制口:
203H
DATASEGMENT
ADDRADB×,×,×,×,×,×,×,×
TABLEDB40H,4FH,24H,30H,19H
DB12H,02H,78H,00H,10H
DISPBITDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,80H;对8255A初始化,A,B端口方式0,输出
MOVDX,203H
OUTDX,AL
LEABX,TABLE;BX置为七段码表首地址
MOVDISPBIT,7FH;置位码初值为7FH:
011111111H,第一个亮
LEASI,ADDRA;SI置为显示缓冲区首地址
MOVCX,8;CX置为循环次数初值8
AGA:
MOVAL,0FFH
MOVDX,201H
OUTDX,AL;熄灭所有数码管
MOVAL,[SI];取出一个待显示数
XLAT;转换成七段码
MOVDX,200H
OUTDX,AL;送入段码端口
MOVAL,DISPBIT;
MOVDX,201H
OUTDX,AL;送当前位码,点亮一个数码管
RORDISPBIT,1;产生下一个位码
INCSI;修改指针,指向下一个待显示数据
CALLDELAY;延时
LOOPAGA;处理下一个数码管的显示
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART