一、填空题
(1)8255A的工作方式有基本型输入/输出方式、方式_____和方式_____。
(2)若要可编程并行芯片8255A的三个端口均作为输入口,则其方式选择控制字应为________。
(3)8255A工作于方式1输入时,通过____信号表示端口已经准备好向CPU输入数据。
解答:
(1)方式1(选通输入输出方式)方式2(双向选通输入输出方式)
(2)9B
(3)INTR
二、选择题
(1)8255A中既可作数据输入/输出端口,又可提供控制信息,状态信息的端口是( )。
A)B口 B)A口 C)ABC端口均可以 D)C口
(2)设8255A的方式选择控制字为9BH,其含义是( )。
A)A、B、C口全为输出 B)A、B、C口全为输入
C)A、B口为方式0且输出 D)以上都不对
(3)8255A的PA口工作于方式2时,PB口不能工作与( )。
A)方式0 B)方式1
C)方式2 D)任何方式
(4)8255A的地址线A1、A0分别接8086的A2、A1,8086芯片的A0参与8255A的片选译码,接到74LS138的G2A。该接口芯片初始化指令为OUT 8EH,AL,则8255A的PA口地址为( )。
A)8BH B)88H C)89H D)8AH
(6)8255A接口芯片的控制信号,不属于工作方式1输入的联络信号是( )。
A) STB B)OBF C)IBF D)INTR
解答:
(1) D
(2 ) B
(3)B
(4) B
(6)B
三、简答题
1、可编程并行接口芯片8255A的编程命令有哪两个?试分别说明他们的作用及其命令格式中每位的含义是什么?
解答:
答:(1)方式控制字
各位含义如图1,图2
(2)PC口按位置位/复位控制字
四、补充题
第九章 8255方式0编程(1、2中选1个做作业)
1、编写一个跑马灯程序(要求有硬件简图、程序清单注释,程序运行结果)
2、编写一个将K0---K7的数据输入,并以十六进制的形式显示到CRT的程序(要求有硬件简图、程序清单注释,程序运行结果)
解答:
第九章 8255方式0编程(1、2中选1个做作业)
1、编写一个跑马灯程序(要求有硬件简图、程序清单注释,程序运行结果)
解答:硬件全图
硬件简图
程序清单:
o8255a equ 288h
io8255b equ 28bh
code segment
assume cs:code
start: mov dx,io8255b ;初始化,A口要设置为输出,
mov al,8bh
out dx,al
mov al,1 ;初始值为1
output: mov dx,o8255a ;将al中的内容输出到dx所指定的端口,点亮对应的灯
out dx,al
rol al,1 ;循环左移
call delay ;调用延时子程序,控制流水灯的速度以便于观察
mov bl,al
mov dl,0ffh ;判断是否有按键
mov ah,06h
int 21h
mov al,bl
jz output
mov ah,4ch
int 21h
delay proc near
mov dx,100
thr: mov cx,0
two: loop two
dec dx
jne thr
ret
delay endp
code ends
end start
2、编写一个将K0---K7的数据输入,并以十六进制的形式显示到CRT的程序(要求有硬件简图、程序清单注释,程序运行结果)
解答:硬件全图
硬件简图
代码:
;*******************************;
;* 十六进制数输出到屏幕 *;
;*******************************;
io8255b equ 28bh
i8255c equ 28ah
code segment
assume cs:code
start: mov dx,io8255b ;初始化,C口要设置为输入
mov al,8bh
out dx,al
input: mov dx,i8255c
in al,dx ;输入K0-K7
mov bl,al
mov cl,4 ;每次循环右移动4位,先处理高4位
shr al,cl
;
cmp al,0ah
jb next ;AL内容>=A,加37H
add al,7h
next: add al,30h ;否则,加30H
mov dl,al ;输出字符的ASCII码送DL
mov ah,2 ;02H号DOS功能调用
int 21h
mov al,bl
and al,0fh ;屏蔽高4位,再先处理低4位
cmp al,0ah
jb next1 ;AL内容>=A,加37H
add al,7h
next1: add al,30h ;否则,加30H
mov dl,al ;输出字符的ASCII码送DL
mov ah,2 ;02H号DOS功能调用
int 21h
mov dl,0ffh ;判断是否有按键
mov ah,06h
int 21h
jz input
mov ah,4ch
int 21h
code ends
end start