北大自考微机接口上机题.docx
《北大自考微机接口上机题.docx》由会员分享,可在线阅读,更多相关《北大自考微机接口上机题.docx(44页珍藏版)》请在冰豆网上搜索。
北大自考微机接口上机题
8255A c口低四位输入,a口输出到数码段,当pc0=0时,a口输出是加一循环(0~f),pc0=1时,a口输出是减一循环(f~0),输出时延一秒钟,有键按下就退出...
datasegment
led db71h,79h,3fh,39h,7fh,77h,67h,7fh
db07h,7ch,6dh,6eh,4fh,5bh,06h,3fh
countdb0(定义循环初始值为零)
dataends
codesegment
assume cs:
code,ds:
data
start:
movax,data
movds,ax
movdx,28bh
moval,81h
outdx,al(8255初始化)
input:
movdx,28ah
inal,dx
andal,0fh
andal,01h(判断pc0)
jz a1
moval,count
andal,0fh(要屏蔽高四位,以免超过15后出乱码)
leabx,led
xlat
movdx,288h
outdx,al
calldelay(延迟子程序老师会给出)
deccount
movah,1
int16h
jzinput(判断是否有键按下,无则继续判断pc0)
jmpa2(有则返回dos)
a1:
moval,count
andal,0fh
leabx,led
xlat
movdx,288h
outdx,al
calldelay
inccount
movah,1
int16h
jzinput
a2:
movah,4ch
int21h
delayprocnear
.
.
.
delayendp
codeends
endstart
这道题难在寄存器的使用不能冲突,我就是因为一个bl的使用弄的头都大了,还好最后做出来了!
庆幸!
!
我是那天考试第一个出来的!
3月24号上午考试题
今天上午的接口题,感觉还可以!
8255的Pc0=0时,A口输出接到L0--L7的信号灯上。
要求L0---L7隔一个亮一个。
(亮灭亮灭亮灭亮灭)每过一秒让灯左移一位。
其实就是。
(灭亮灭亮灭亮灭亮)延迟程序老师给出。
当Pc0=1时,要求L0--L7每隔两个亮两个(灭灭亮亮灭灭亮亮),每过一秒让灯左移2位,其实就是(亮亮灭灭亮亮灭灭)。
没有键按下循环显示,有键按下返回DOS!
其实只要大家把题意给弄明白就好办了。
3月25号下午接口题
8255的PA0=0时,C口输出接到L0--L7的信号灯上。
要求L0---L7隔一个亮一个。
(亮灭亮灭亮灭亮灭)每过一秒让灯左移一位,循环显示。
其实就是。
(灭亮灭亮灭亮灭亮)延迟程序老师给出。
当PA0=1时,要求L0--L7每隔两个亮两个(灭灭亮亮灭灭亮亮),每过幻肴玫谱笠?
位,也循环显示。
其实就是(亮亮灭灭亮亮灭灭)。
没有键按下循环显示,有键按下返回DOS!
9月6日上午题
8255A c口低四位输入,a口输出到数码段,当pc0=0时,a口输出是加一循环(0~f),pc0=1时,a口输出是减一循环(f~0),输出时延一秒钟,有键按下就退出...
datasegment
led db71h,79h,3fh,39h,7fh,77h,67h,7fh
db07h,7ch,6dh,6eh,4fh,5bh,06h,3fh
countdb0(定义循环初始值为零)
dataends
codesegment
assume cs:
code,ds:
data
start:
movax,data
movds,ax
movdx,28bh
moval,81h
outdx,al(8255初始化)
input:
movdx,28ah
inal,dx
andal,0fh
andal,01h(判断pc0)
jz a1
moval,count
andal,0fh(要屏蔽高四位,以免超过15后出乱码)
leabx,led
xlat
movdx,288h
outdx,al
calldelay(延迟子程序老师会给出)
deccount
movah,1
int16h
jzinput(判断是否有键按下,无则继续判断pc0)
jmpa2(有则返回dos)
a1:
moval,count
andal,0fh
leabx,led
xlat
movdx,288h
outdx,al
calldelay
inccount
movah,1
int16h
jzinput
a2:
movah,4ch
int21h
delayprocnear
.
.
.
delayendp
codeends
endstart
9月7日上午考题
8255方式0,从C口输入一个数最大值为0FFH,再检测C0输入的数据,如为1,则+1,从A口输出,如为0,则—1从A口输出,延时一秒,有键按下则退出
codesegment
assumecs:
code
start:
moval,89h
movdx,28bh
outdx,al
movdx,28ah
inal,dx
movbl,al
movcl,al
l:
movdx,28ah
inal,dx
testal,1
jza
incbl
moval,bl
jmpb
a:
deccl
moval,cl
b:
movdx,288h
outdx.al
movah,16h
int21h
jzl
movah,4ch
int21h
delayprocnear
.
.
.
dalayendp
codeends
endstart
9月7号下午考题
8253clk0输入1MHZ脉冲,OUT1输出1HZ到8255C囗,若PC0=1,则PA囗输出11001100,
若PC0=0,则PA囗输出00110011。
不难吧!
我二十分钟就搞定了。
答案太长了,我给出一部分吧。
初始化部分
l1:
mov dx,281h
inal,dx
movdx,28ah
outdx,al
movdx,28ah
inal,dx
testal,01
jzl2
movdx,288h
moval,cch
outdx,al
jmpl3
l2:
movdx,288h
moval,33h
outdx,al
l3:
movah.01h
int16h
jzl1
movah,4ch
int21h
9月8日接口上午题
8253方式0,通道1,计数初值来自8255A口低四位,将计数结果从8255C口显示至七段数码管,并从8255A口高四位输出到指示灯高四位,键盘有键按下返回DOS,否则继续执行.
9月10日下午考题
8253通道1方式0,记数初值3,out1输出到pa0口,8255方式0,a口输入,c口输出到LED灯上,当PA0=0时,01010101-10101010循环,当PA0=1时,00110011-11001100循环,有键按下返回DOS.
9月11号上午的考题
8253性质通道1方式0,手动输入单脉冲,out1给8255的pa0,8255a口输入c口输出给8个指示灯。
当pa0=0的时候指示灯每隔一个亮,且间隔一秒
当pa0=1的时候指示灯每隔两个亮,且间隔一秒
9月13日北大上机接口考题
这几天北大上机考试都开始了,这几天考的接口上机考题都有一些难度,至少比上次考的难些!
今天下午的考题是:
8255的A口交替输出AAh和55h,时间间隔为1秒。
当8253方式0输入三个单脉冲事终止。
8253为通道1。
12.21下午2:
40-5:
40的考试题
用8253,1通道,0方式,初值0FH,用8255A的PC口接7段数码管(LE0-LE7,面包版上的7个等)显示。
大概意思就是8253记数器记的内容用8255的PC口输出。
12月22日中午接口上机考题
8255:
方式0,C口高四位输入,A低四位输出
8253:
计数器0,方式0,从C口读入计数器初值,手动逐个输入单脉冲,并在A口显示其值。
codesegment
assume cs:
code(A口:
280h,B口:
281h)
start:
mov dx,283h
out dx,00001000h
loop:
in al,282h
mov cl,4
shr al,cl
out 280h,al
mov ah,1
int 16h
je loop
mov ah,4ch
int 21h
codesegment
end start
12月23日上午接口实践题
编一个程序,用8255从C口的低四位输入,求反后从C口的高四位输出.
答案:
codesegment
start:
movdx,28bh ;控制口地址
moval,81h ;1000001=81H
outdx,al
inout:
movdx,28ah ;从C口地址输入
in al,dx
notal ;这一段就是考试最容易变化的
andal,0fh
movcl,4
rolal,cl
movdx,28ah ;从C口输出
outdx,al
movah,1
int16h
jz inout ;无键按下则继续循环
movah,4ch
int21h
code ends
end start
23日中午的接口上机题
题目:
编程8255,从A口输入,高四位不变,低四位求返,从C口输出
另要求在卷子上写出方式自,接线图,与练习部分不同的程序
方式字:
10010000
接线图:
A口接K口做输入,C口接LED做输出
程序如下:
codesegment
assumecs:
code
start:
movdx,28bh
moval,90h
outdx,al
inout:
movdx,288h
inal,dx
xoral,0fh
movdx,28ah
outdx,al
.... (其余与练习部分一致)
codeends
endstart
上机主要考8255,8253
把8255,8253的初始化部分理解透了(书上有),就很简单了,有练习,老师带着大家先做1小时,这时有问题可以及时问,老师态度很和蔼,好像是研究生.练习题与北大出的上机介绍的书上的一模一样,事先把题理解一下,到时可以在真实环境下做一下.
北大接口(新考法!
!
)
这次上机主要是两个板子的结合考法,希望各位同学好好看看书!
22号,中午试题
8253,通道0,方式0,初始值从8255的C口输入,8255的PC口高四位输入,PA口输出到LED
我考的是8253的一通道在0方式下计数计数初始值为0fh用单脉冲控制
在显示器上回显计数值
并在显示芯片c口输出 以0~~f显示
完成以上及格
附加题是使显示顺序以0~~f递增因为计数器是减一计数
23号下机题
8253选用通道1,方式1硬件可重触发单稳态,计数初值0Fh,用8255A口输出到7段LED显示屏,CLK1接单脉冲,OUT1接逻辑笔,GATE1接K7开关
8255方式字1000xxxx=80H,端口288-28BH
8253方式字01010010=52H,端口280-283H
DATASEGMENT
LEDDB(7段LED显示码,具体数字我记不清了,在考试时会给出的)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,28BH
MOVAL,80H
OUTDX,AL;对8255初始化
MOVDX,283H
MOVAL,52H
OUTDX,AL;8253初始化
MOVDX,281H
MOVAL,0FH
OUTDX,AL;读计数初值
INOUT:
MOVDX,281H
IN AL,DX
ANDAL,0FH
LEABX,LED
XLAT
MOVDX,288H
OUTDX,AL
MOVAH,1
INT16H
JZINOUT;若无键盘输入则继续
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
12月24日下午考题!
(下午14点20这一场)
从8255的A口输入、C口输出,如果A口输入的数大于或等于128,从C口输出80H,否则将输入数字高四位不变,低四位求反,从C口输出!
唉,一个小错让我折了,希望大家比我强,能取得好成绩!
!
!
2003年12月24号上午8:
00-11:
00点的接口实验题
从8255的c口低4位输入数据,然后取反从c口高4位输出,
有键按下就返回dos,没有键按下就继续循环从c口输入输出数据。
26号中午上机题
用计数器/定时器8253,通道1,方式0,计数器初值为0fh,手动单脉冲控制从8255a口输出到数码器,以递增的顺序显示0~f。
要求:
写出控制方式字,初值和连线图。
26号上午8:
00-11:
00接口上机
题目:
8255的A口接发光二级管,使发光二级管的L0-----L7循环依次发光,且每个灯亮持续一秒钟(须用延时一秒的子程序,老师会写在黑板上),若键盘有键按下则退出,返回DOS
我做的参考答案:
⑴、方式控制字为10000000B=80H
⑵、连线图(略)
⑶、程序:
CODE SEGMENT
ASSUMECS:
CODE
START:
MOVDX,28BH
MOVAL,80H
OUTDX,AL
MOVDX,288H
LOP:
MOVBL,01H
INOUT:
CMPBL,0
JZ LOP
MOVAL,BL
OUTDX,AL
CALLDELAY
SHLBL,1
MOVAH,1
INT16H
JZ INOUT
MOVAH,4CH
INT21H
CODE ENDS
ENDSTART
注:
①延时子程序老师会给出,我这里就没写,有兴趣的同学可以自己翻翻书,书上有的;②解释一下为什么要用BL来传递要显示的数,而不直接用AL:
因为INT
16H这条指令的作用是看是否有键按下,所以可能用了AL来存放按下的键的ASCII码(就像INT
21H的二号调用放到AL一样),再执行CMP
AL,0无键按,则AL为0,有键按就非0了。
由此改了AL的值,直接用AL放数会错的!
!
!
!
!
我当时想破了脑袋,差点没气死:
)
祝后面考的同学考好!
!
!
!
!
!
题目:
把一个1mhz的脉冲通过两次分频转换成1hz的方波。
(通道0、通道1、通道2、控制字地址分别为280h,281h,282h,283h)
答案:
codesegment
assumecs:
code
start:
movdx,283h
outdx,00110111b;选中通道0,工作在3方式下,对bcd码自减
movdx,280h
moval,0h
outdx,al
moval,10h