北大“接口技术”上机类型题目及答案(1)
各位自考的同伴们,这里是接口上机考试的各种类型题,只要你把这些题吃透了,我想北大的接口上机考试你们就可以放心了,我把这些题的答案也给出来了,供大家参考,每条程序都调试并连接在实验箱运行过,而且输出结果全部正确。题目如下:
1.从键盘上输入0~9,通过8255方式0,A口输出,输出在数码管上显示相应数字(即我在键盘上输入5,则在数码管上显示5)。
2.8255方式0,A口输入,输入的数高4位不变低4位取反,在8255的C口输出,有键按下返回DOS,无键按下继续执行。
3.8255方式0,C口低4位输入数据取反,在8255的C口高4位输出,有键按下返回DOS,无键按下继续执行。
4.8255方式0,A口输入,C口输出。如果A口输入的数大于等于128,从C口输出80H;否则将输入的数高4位不变低4位取反从C口输出,有键按下返回DOS,无键按下继续执行。
5.8255方式0,A口输入C口输出,如果A口的PA7输入为0,则L5、L2灯亮,PA7 为1,则L7、L0灯亮,有键按下返回DOS,无键按下继续执行。
6.8255方式0,A口输出C口输入,C口输入高2为位取反低6位不变,用键盘控制程序,有键按下返回DOS,无键按下程序继续执行。
7.8255方式0,A口输出到LED灯上,让灯按顺序从左到右移动显示,每显示一个灯延时一秒在显示下一个灯,有键按下返回DOS,无键按下继续执行。
8.8255方式0,C口输入0~Fh,A口输出在数码管上显示和计算机显示器显示相应数, 有键按下返回DOS,无键按下继续执行。
9.8255方式0,C口输入0~Fh,A口输出在数码管上显示对应数,计算机显示器显示该数加1, 有键按下返回DOS,无键按下继续执行。(在计算机显示器上即输入0显示1,输入F时显示G)。
10.8253通道0方式0,计数值为Fh,手动逐个输入脉冲,从计算机显示器上显示对应的数。
11.8253通道0方式0,从8255C口读入计数值,手动逐个输入脉冲,从A口输出在数码管显示其值。
12.8253通道1方式1(硬件可重触发),计数值0Fh,用8255A口输出在数码管显示值,有键按下返回DOS,无键按下继续执行。
13.8253通道1方式0,计数值为0Fh,手动逐个输入脉冲,用8255C口输出在数码管显示其值,并在计算机显示器显示,但计算机上显示顺序为0~F递增。
1. 从键盘上输入0~9,通过8255方式0,A口输出,输出在数码管上显示相应数字(即我在键盘上输入5,则在数码管上显示5)。
data segment
num1 db 'please input a number(0-9):',0dh,0ah,'$'
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,28bh
mov al,80h
out dx,al
l1: call crlf
lea dx,num1
mov ah,09h
int 21h
mov ah,01h
int 21h
cmp al,'0'
jb exit
cmp al,'9'
ja exit
sub al,30h
lea bx,led
xlat
mov dx,288h
out dx,al
jmp l1
exit: mov ah,4ch
int 21h
crlf proc near
mov dl,0dh
mov ah,02h
int 21h
mov dl,0ah
mov ah,02h
int 21h
ret
crlf endp
code ends
end start
2. 8255方式0,A口输入,输入的数高4位不变低4位取反,在8255的C口输出,有键按下返回DOS,无键按下继续执行。
code segment
assume cs:code
start: mov dx,28bh
mov al,90h
out dx,al
l1: mov dx,288h
in al,dx
xor al,0fh
mov dx,28ah
out dx,al
mov ah,1
int 16h
jz l1
mov ah,4ch
int 21h
code ends
end start
3. 8255方式0,C口低4位输入数据取反,在8255的C口高4位输出,有键按下返回DOS,无键按下继续执行。
code segment
assume cs:code
start: mov dx,28bh
mov al,81h
out dx,al
l1: mov dx,28ah
in al,dx
mov cl,4
shl al,cl
xor al,0f0h
mov dx,28ah
out dx,al
mov ah,1
int 16h
jz l1
mov ah,4ch
int 21h
code ends
4. 8255方式0,A口输入,C口输出。如果A口输入的数大于等于128,从C口输出80H;否则将输入的数高4位不变低4位取反从C口输出,有键按下返回DOS,无键按下继续执行。
code segment
assume cs:code
start: mov dx,28bh
mov al,90h
out dx,al
l3: mov dx,288h
in al,dx
cmp al,80h
jae l1
xor al,0fh
mov dx,28ah
out dx,al
l2: mov ah,1
int 16h
jz l3
mov ah,4ch
int 21h
l1: mov al,80h
mov dx,28ah
out dx,al
jmp l2
code ends
end start