8255问答题Word下载.docx
《8255问答题Word下载.docx》由会员分享,可在线阅读,更多相关《8255问答题Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
MOVAL,0AH
5、(5分)设8255A芯片的端口地址为300H~303H,要求A组与B组工作于方式0。
其中:
端口A是输入口,端口B是输出口,端口C的高4位为输出口,低4位为输入口,试编制初始化程序。
MOVDX,303H
MOVAL,91H
OUTDX,AL
6、(5分)设8255的接口地址范围为03F8H~03FBH,A组B组均工作在方式0,A口作为数据输出口,C口低4位作为控制信号输入口,其它端口未使用,编写初始化程序。
MOVDX,03FBH
MOVAL,81H
7、(5分)若把一个十六进制数82装入8255A的控制寄存器后,端口A、端口B、端口C操作方式,输入/输出配置是什么?
8、8255A的方式选择字和置位/复位字应写到哪个端口?
8255A怎样区分这2个控制字?
答:
8255A有两类控制字:
第一类为方式选择字,用于定义各端口的工作方式;
第二类置位/复位控制字,实现对C口的某一位进行置位/复位操作。
都写到控制端口,通过D7对2者进行区别。
D7=0,表示置位/复位控制字;
D7=1,表示方式选择字。
9、端口A的操作方式2,端口B的操作方式0(输入),控制字以及端口状态
10、端口A的操作方式2,端口B的操作方式1(输出)
11、8255各端口可以工作在几种工作方式下?
当端口A工作在方式2时,端口B和C工作在什么方式下?
8255各端口均可工作在方式0和方式1,而A端口还可以工作在方式2下。
当A端口工作在方式2下,端口B可以工作在方式0或方式1,端口C剩余端口只能工作在方式0。
12、下图中,把PPI14的端口A设置为输出端口,而将端口B和端口C设置为输入端口,且将三个端口设置为操作方式0,试编写一个程序段,使其拥有端口B和端口C的数据输入功能,计算出C-B,计算结果在端口A上输出。
MOVAL,0BH
OUT3EH,AL
INAL,36H
MOVBL,AL
INAL,3AH
SUBAL,BL
OUT32H,AL
13、(指令填空或功能说明)
微机A用于发送数据的程序段
MOVAX,0300H
MOVES,AX
MOVBX,0
MOVCX,3FFH
MOVDX,303H
MOVAL,10100000B
OUTDX,AL
MOVAL,00001001B
MOVDX,0300H
MOVAL,ES:
[BX]
INCBX
DECCX
LOOP0:
MOVDX,0302H
LOOP1:
INAL,DX
ANDAL,08H
JZLOOP1
MOVDX,0300H
JNZLOOP0
微机B接收数据的程序段:
MOVAX,0400H
MOVCX,3FFH
MOVAL,10011000B
MOVDX,302H
MOVAL,00000001B
ANDAL,10H
JNZLOOP1
MOVES:
[BX],AL
MOVAL,0
NOP
MOVAL,01H
14、8088CPU与8255A构成打印机接口,其电路原理图如下图,要求编写程序实现采用查询方法判断打印机状态,在打印机不忙(BUSY=0),将内存DATA中的10个字符送到打印机打印,并向打印机发送一个脉冲(STB),通知打印机数据已送出。
DATASEGMENT
TABDB’1234567890’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEABX,TAB
MOVCX,10
MOVAL,81H
OUT9BH,AL
MOVAH,0
LP0:
MOVAL,00001111B
LP1:
INAL,9AH
TESTAL,0
JNZLP1
MOVAL,[BX]
OUT98H,AL
MOVAL,00001110B
INCBX
LOOPLP0
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
15、下图为8088系统中有8255A实现开关控制LED灯亮灭的接口电路。
开关闭合,灯亮;
A、B端口都工作在方式0。
试问:
①8255A的口地址是多少?
②编写程序实现功能,在所有开关打开时退出程序。
(写出源程序或填空或LED灯变为共阳级或开关打开则灯亮。
)
CODESEGMENT
CODE
MOVAL,82H
MOVDX,313H
OUTDX,AL
LP:
MOVDX,311H
INAL,DX
ANDAL,0FH
JZLP0
MOVDX,310H
NOTAL
JMPLP
16、如下图,8255A的PA口通过反相器后接至1位共阴极七段数码管的字型端,数码管的公共端接地。
PB口接4个开关。
如何编程实现读入开关状态,在数码管上显示相应的字符。
如输入1010,则数码管显示“A”。
设CPU为8088。
TABDB3FH,06H,5BH,4FH
DB66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH
DB39H,56H,79H,71H
LEABX,TAB
MOVDX,297H;
为什么地址是297H,请从74LS138说明和8255方式控制字地址?
MOVDX,295H
ANDAL,0FH
XLAT
MOVDX,294H
NOTAL
MOVAH,0BH
INT21H;
读键盘状态
CMPAL,0
JZLP;
AL=0表示无键盘按下
;
说明如果要显示“6”/“3”,PB3…PB0数值是什么,开关状态是什么,送到共阴极七段数码管的字型端数值是什么,PA7…PA0数值是什么?
17、请说明8255方式1下A口/B口工作在输出/输入下,工作过程,引脚有效电平,输入输出方向?
(给出引脚与C口连接情况)如果设置INTEA或INTEB如何设置?
18、根据接口电路编制相应的程序,要求CPU为8088,用8255A构成3个LED发光管循环发亮,口地址为180H~183H,
为什么地址是180H~183H,请从74LS138说明
MOVDX,183H
LP1:
MOVAL,00000001B
LP2:
MOVDX,180H
MOVCX,8FFFH
LP3:
MOVAH,0BH
INT21H
CMPAL,0
JZLP4
LOOPLP3
SHLAL,1
CMPAL,00001000B
JNZLP2
JMPLP1
;
请问LED灯显示是从上向下显示还是从下向上显示,如果改变显示方向,如何修改程序,哪些部分要替换掉,替换成什么?
LP4:
MOVAH,4CH
18、
•MOVDL,0FCH;
读8255的A口地址
•INAL,DX;
读转换结果
•INT3;
设置断点
19、
Stacksegmentstack
Dw64dup(?
)
Stackends
Codesegment
Assumecs:
code
Start:
moval,82h
out63h,al
a1:
inal,61h
out60h,al
jmpa1
codeends
endstart
20、
cli
Moval,086h
out63h,al
Moval,05h
pushds
Movax,0000h
Movds,ax
Movax,offsetirq7
Addax,2000h
Movsi,003ch
Mov[si],ax
Movsi,003eh
Mov[si],ax
popds
inal,21h
andal,7fh
out21h,al
sti
jmpa1
irq7:
out60h,al
inal,20h
out20h,al
iret