微机原理大题.docx
《微机原理大题.docx》由会员分享,可在线阅读,更多相关《微机原理大题.docx(16页珍藏版)》请在冰豆网上搜索。
微机原理大题
1.请给出下图中138译码器的所有译码输出引脚对应的地址范围。
2.写出下图中138译码器指定引脚译码输出的地址范围。
3.利用全地址译码将6264芯片接在IA-32的系统总线上,其所占地址范围为0BE000H~0BFFFFH,画出连接电路图。
7.下图示例了无条件输入输出接口电路,编程实现当开关闭合时,相应的LED灯将点亮,并
调用延时子程序DELAY保持一定时间(假设延时子程序DELAY已经编写,直接调用)。
wutiaojianproc
movdx,8000h
inal,dx
notal
outdx,al
calldelay
wutiaojianendp
8.下图示例了无条件输入输出接口电路,编程实现让L7点亮(其它LED灯灭)一段时间后,
L0点亮(其它LED灯灭),持续时间可调用延时子程序DELAY。
wuproc
movdx,8000h
inal,80h
outdx,al
calldelay
inal,1
outdx,al
wuendp
1.利用扬声器控制原理,编写一个简易乐器程序。
P263例题,习题8.7当按下1~8数字键时,分别发出连续的中音1~7和高音i(对应频率依次为524Hz,588Hz,660Hz,698Hz,784Hz,880Hz,988Hz和1048Hz);
当按下其他键时暂停发音;
当按下ESC键(ASCII码为1BH),程序返回操作系统。
;数据段
tabledw2277,2138,1808,1709,1522,1356,1208,1139;对应中音1~7和高音i的定时器记数值
;代码段
moval,0b6h;设置定时器2工作方式
out43h,al
again:
callreadc;等待按键
cmpal,'1';判断是否为数字1~8
jbnext
cmpal,'8'janext
subal,30h;1~8的ASCII码转换为二进制数
subal,1;再减1,将数字1~8变为0~7,以便查表
xorah,ah
shlax,1;乘以2
movbx,ax;记数值表是16位数据,无法采用xlat指令
movax,table[bx];取出对应的记数值
out42h,al;设置定时器2的记数值
moval,ah
out42h,al
inal,61h;打开扬声器声音
oral,03h;使D1D0=PB1PB0=11B,其他位不变
out61h,al
jmpagain;连续发声,直到按下另一个键
next:
pushax
inal,61h;不是数字1~8,则关闭扬声器声音
andal,0fch;使D1D0=PB1PB0=00b,其他位不变
out61h,al
popax
cmpal,1bh;判断是否为ESC键(对应ASCII码1bh)
jneagain;不是ESC,继续;否则程序执行结束
2.下图是用8255端口B方式0与打印机接口连接示意图及各引脚间时序关系,编程实现该功能。
P271例题,习题8.10设端口地址为200H~203H,203H为控制端口!
控制字:
10000001,B口、C口高4位输出,C口低4位输人
Init8255proc
movdx,203h;控制端口地址为203H
moval,10000001b;方式控制字
outdx,al;B口方式0输出,口A任意;C口上半部输出、下半部输入
moval,00001111b;端口C复位置位控制字
outdx,al;使PC7=1,即置STORE*=1
Init8255endp
3.下图是用8255端口A方式1与打印机接口连接示意图及各引脚间时序关系,编程实现该功能。
设端口地址为200H~203H,203H为控制端口!
控制字:
10100000,A口方式1输出,其余不关心,禁止中断。
Init8255proc
movdx,203h;控制端口地址为203H
moval,10100000b;方式控制字
outdx,al;A口方式1输出
moval,00001100b;C口位控制字使PC6=0,禁止中断
outdx,al
Init8255endp
4.下图是用8255端口B方式1与打印机接口连接示意图及各引脚间时序关系,编程实现该功能。
设端口地址为200H~203H,203H为控制端口!
movdx,0fffeh
moval,84houtdx,al
moval,04h;使INTEB(PC2)为0,禁止中断
outdx,al
movcx,counter;打印字节数送CX
movbx,offsetbuffer;取字符串首地址
callprints;调用打印子程序
printsproc
pushax;保护寄存器
pushdx
print1:
moval,[bx];取一个数据
movdx,0fffah
outdx,al;从端口B输出
movdx,0fffch
print2:
inal,dx
testal,02h;检测(PC1)为1否?
jzprint2
incbx
loopprint1
popdx
popax
ret
printsendp
5.如图所示,8253的端口地址为90H~93H。
要求8253的通道0产生周期为100µs的对称方波,8253的通道1产生周期为1S的对称方波。
完成如下任务:
1.在该图的基础上画出完成指定功能的线路连接(译码电路的设计可略去)。
2.分别写出通道0和通道1的控制字,并求出它们的计数初值。
3.编写完成指定功能的8253初始化程序子程序INIT8253。
通道0的控制字:
00110110B初值是200
moval,00110110B
out93h,al
movax,200
out90h,al
moval,ah
out90h,al
通道1的控制字:
01110110B初值是10000
moval,01110110B
out93h,al
movax,10000
out91h,al
moval,ah
out91h,al
6.下图是8255与8088/86系统总线的连接原理图,要求A口.B口和C口的低4位定义为输出;C口的高4位定义为输入。
请完成系列任务:
1.A口、B口、C口和控制端口的地址分别是:
2.方式控制字是:
3.写出完成指定功能的8255初始化的程序片段。
端口地址:
380h—383h
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
1
1
1
0
0
0
0
0
0
0
380
Init8255proc
movdx,383H
moval,B
outdx,al
movdx,380h
outdx,al
Init8255endp
7.下图是某PC系列微机应用系统以8255A作为接口,采集一组开关S7~S0的状态,然后它通过一组发光二极管LED7~LED0显示出来,(Si闭合,对应LEDi亮;Si断开,对应IEDi灭)。
已知8255A的A.B两组均工作在方式0。
(1)写出8255A的四个端口地址;
(2)写出8255A的工作方式控制字;(3)编写实现数据采集与显示的子程序App8255。
端口地址:
320h—323h
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
1
1
0
0
1
0
0
0
0
0
320
App8255proc
movdx,323h
outdx,al
moval,10000010B
outdx,al
App8255endp
8.下图是某PC系列微机应用系统以8255A作为接口,采集一组开关S7~S0的状态,然后它通过一组发光二极管LED7~LED0显示出来,(Si闭合,对应LEDi亮;Si断开,对应IEDi灭)。
已知8255A的A.B两组均工作在方式0。
(1)写出8255A的四个端口地址;
(2)写出8255A的工作方式控制字;(3)编写实现数据采集与显示的子程序App8255。
端口地址:
188h—191h
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
0
1
1
0
0
0
1
0
0
0
188
App8255proc
movdx,191h
moval,10010000B
outdx,al
nog
outdx,al
App8255endp
9.如图所示,利用8253的3个计数器输出out,分别产生周期为100µs的对称方波.周期为1s的负窄脉冲和周期为10s的对称方波(8353方式控制字如图所示)试按上述要求分别编写8253的初始化程序。
计数器1:
moval,00110110B
out93h,al
movax,200
out90h,al
moval,ah
out90h,al
计数器2:
moval,01110110B
out93h,al
movax,10000
out90h,al
moval,ah
out90h,al
计数器3:
moval,00011010B
out93h,al
movax,100000
out90h,al
moval,ah
out90h,al
10.有一个控制系统,有4个控制点,分别由4个对应的输入端控制,现用8255的端口C模拟实现该系统的控制,如图所示(A15~A10按0处理)。
开关K0~K3打开则对应发光二极管L0~L3亮,表示该控制点运行正常;开关闭合则对应发光二极管不亮,说明该控制点出现故障,编写8255的初始化程序和控制程序。
(假设A口~控制口地址分别为60H~63H)63H为控制端口!
;写入方式字
moval,10000001b;=81Hmovdx,63H;控制口地址outdx,al
;加入下一段更好,使L0~L3全亮
moval,0fh
movdx,62H;端口C地址
outdx,al
;控制程序段
movdx,62H;端口C地址
inal,dx;读入PC0~PC3
movcl,4
shlal,cl;左移4位outdx,al;控制PC4~PC7
11.如下图所示,8253的端口地址为90H~93H。
要求8253的通道0产生周期为500µs的负的窄脉冲,8253的通道1产生周期为2S的对称方波。
完成如下任务:
1.在该图的基础上画出完成指定功能的线路连接(译码电路的设计可略去)。
2.分别写出通道0和通道1的控制字,并求出它们的计数初值。
3.编写完成指定功能的8253初始化程序子程序INIT8253。
12.试按如下要求分别编写8253的初始化程序,已知8253的计数器0~2和控制字I/O地址依次为204H~207H。
①使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。
②使计数器0工作在方式1,按BCD码计数,计数值为3000。
③使计数器2工作在方式2,计数值为02F0H。
计数器0初始化:
movdx,103H
moval,01010000B
outdx,al
movdx,100h
moval,128
outdx,al
计数器1初始化:
movdx,103H
moval,00110011B
outdx,al
movdx,101H
movax,3000
outdx,al
moval,ah
outdx,al
计数器2初始化:
movdx,103H
moval,10110100B
outdx,al
movdx,102H
movax,02F0H
outdx,al
moval,ah
outdx,al
13.试按如下要求分别编写8253的初始化程序,已知8253的计数器0~2和控制字I/O地址依次为204H~207H。
①使计数器0工作在方式0,仅用8位二进制计数,计数初值为200。
②使计数器1工作在方式2,按BCD码计数,计数值为1234。
③使计数器2工作在方式3,计数值为1234H。
计数器0初始化:
movdx,103H
moval,00010000B
outdx,al
movdx,100h
moval,200
outdx,al
计数器1初始化:
movdx,103H
moval,01110101B
outdx,al
movdx,101H
movax,1234H
outdx,al
moval,ah
outdx,al
计数器2初始化:
movdx,103H
moval,10110110B
outdx,al
movdx,102H
movax,1234H
outdx,al
moval,ah
outdx,al
14.有一个控制系统,有4个控制点,分别由4个对应的输入端控制,现用8255的端口C模拟实现该系统的控制,如图所示(A15~A10按0处理)。
开关K0~K3打开则对应发光二极管L0~L3亮,表示该控制点运行正常;开关闭合则对应发光二极管不亮,说明该控制点出现故障,编写8255的初始化程序和控制程序。
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
1
1
1
0
0
0
0
0
0
0
380
15.下图是用8255端口A方式0与打印机接口连接示意图及各引脚间时序关系,编程实现该功能。
设端口地址为200H~203H,203H为控制端口!