微机原理考试大题
1. 一台8位微机系统(CPU 为8086)需扩展RAM 为2K ×8
位,选用Intel 2114(1K ×4位),地址空间从0000H 开始。试画出存储器结构图,并写出各芯片的存储分配范围。 需4片2114,结构图如下:
2. 参看IBM -PC/XT的基本ROM 图,写出分配给ROM 的地址
解:首先只有当G1=1, G 2A=G2B=0时,3-8译码器才能进行译码,因此首先可以确定:A 19=1,A18=1;然后根据C 、B 、A 对输出的CS 0-7进行译码.
对于ROM 而言,采用的是32K 存储单元*8位的芯片,即该芯片的存储容量为32K, 译码引脚为CS 7,因此其内部寻址需要用到
15根地址线,为A 0至A 14;而A 15-17应为111,所以ROM 的地址范围为:F8000H-FFFFFH ;
而对于RAM 而言,采用的是8K*8位的芯片,即该芯片的存储容量为8K, 译码引脚为CS 6, 因此其寻址需要用到13根地址线,为A 0-12, 而A 15-17应为110,所以RAM 的地址范围为: F0000H-F1FFFH ;
所以:CS 6输出的地址范围是:F8000H —FFFFFH (即ROM 地址范围) CS 7输出的地址范围是:F0000H —F1FFFH (即ROM 地址范围)
3 已知一个存储器接口电路,求该存储系统的地址范围。例如
地址范围为
F8000H-F8FFFH 。
4.用4K ×4的EPROM 存储器芯片组成一个16K ×8的只读存储器。试问: (1)该只读存储器的数据线和地址线的位数;(2)根据题意需要多少个4K ×4的EPROM 芯片; (3)画出此存储器的组成框图。
(1)该存储器有14位地址线和8位数据线。(计4分)
(2)共需总芯片数为8片。(计2分) (3)组成框图如下图所示:(计4分)
5已知现有RAM 芯片的容量为4K ×4位,该芯片有数据、地址线,片选信号线CS 和读写控制线WR , 存储器的地址空间如图所示,请完成如下操作:(1)这种RAM 芯片搭成图中所示的地址空间,需几块这样的芯片?共分几个芯片组?该RAM 有几根地址线?几根数据线?
(2)设地址线为20根,数据线为8根,将这些芯片按图所示的地址空间进行RAM 扩展,请画出其扩展连线图。
RAM1#存储空间范围为: 0000H ~1FFFH, 容量为:2×212B=2×4KB
AM2#存储空间范围为:6000H ~6FFFH, 容量为:1×212B=4KB 所需的芯片数=6
每两个芯片为一组,共分为3个芯片组,该RAM 有12根地址
线,4根数据线。
1 8253CLK0的时钟频率为2MHZ 。
(1)要求利用3—8译码器以及8086CPU 的地址线,设计8253的4个通道地址,并在下面图中画出连线。(注:未用的地址线用1表示)
(2)若要周期性地产生5ms 的定时中断(方式2),试编写初始化程序片段。
(1)根据学生实际连线确定答案
(2)使用8253 0通道方式2 BCD码计数选择先低后高读写方式 可得控制字为:35H ,计数初值为10000。 初始化编程如下: MOV AL, 35H OUT PORTCTRL, AL MOV AX,10000 OUT PORTT0, AL MOV AL, AH OUT PORTT0,AL
2 定时器/计数器8253A 的控制字格式为:
端口号为50H--53H ,若使计数器1工作在方式5,计数初值为2008H ,以二进制方式计数。试进行初始化编程。
MOV AL, 01111010B
OUT 53H, AL MOV AL, 08H OUT 51H, AL MOV AL, 20H
OUT 51H, AL
3
设8253三个计数器的端口地址为201H 、202H 、203H ,控制寄存器端口地址204H 。
试编写初始化程序实现:使计数器0,工作在方式1,按BCD 码计数,计数值为5080H.
其中:8253的控制字格式为:D 0: 计数方式选择; 0 二进制,1 BCD 制;D 1- D3工作方式选择:000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5;D 4- D5读写方式选择:00 锁存 01 只读写低位字节 10 只读写高位字节 11 先读写低位字节,再读写高位字节;D 6- D7计数器选择:00:计数器001:计数器1 10:计数器2; 首先确定8253控制字为00110011B=33H
MOV DX, 204H MOV AL, 33H OUT DX, AL MOV DX, 201H MOV AL, 80H
OUT DX, AL
MOV AH, 50H; 或MOV AL, 50H OUT DX, AH; 或MOV DX, AL 4
参看8253方式3的波形图,分析其工作过程
答:①CUP 输出控制字CW =16H ,指定它的工作方式; ②CPU 向它写入计数初值LSB =4;
③装入计数值后开始计数,一个CLK 使计数值减2; ④当计数到0时,使输出改变状态。同时重装这个计数值,开始新的计数。
5利用8253周期性地每隔20ms 产生一次中断, 试选择工作方式和参数, 并编出相应的定时程序。
选择工作方式0, 若CLK 为2MHz, 则计数初值为40000. CS8253 EQU XXH „
MOV AL,00110000B
OUT CS8253+3,AL MOV AX,40000 OUT CS8253,AL MOV AL,AH OUT CS8253,AL STI „
TIMEINT PROC FAR PUSH AX „
MOV AX,40000 OUT CS8253,AL MOV AL,AH OUT CS8253,AL STI „ POP AX IRET
TIMEINT ENDP
1. 如下图所示,PC 系列微机应用系统以8255A 作为接口,采集一组开关S 0~S 7的状态,然后它通过一组发光二极管LED 0~LED 7显示出来,(S i 闭合,对应LED i 亮;S i 断开,对应LED i 灭),电路
连接如图所示。已知8255A 的A 、B 两组均工作在方式0。 (1)写出8255A 的四个端口地址(注:A 0用0表示,其余未用的地址线用1表示) ;(3分)
(2)写出8255A 的工作方式控制字(注:未用的位用0表示) ;(2分)
(3)编写程序完成上面的要求;(5分)
(1)8255A 的四个端口地址分别为0FFD0H, 0FFD2H, 0FFD4H, 0FFD6H (3分)
(2)8255A 的工作方式控制字为82H (2分)(3)编程如下:(5分)
MOV AL, 82H
MOV DX, 0FFD6H OUT DX, AL MOV DX, 0FFD2H
IN AL, DX NOT AL
MOV DX, 0FFD0H
OUT DX, AL
2. 打印机通过8255A 与某个8位CPU 总线连接的电路原理图如下,请回答以下问题
1写出8255A 各端口地址(2分) 2编写8255的初始化程序(5分)
3简述通过8255A 送字符给打印机的工作过程(3分)
解(1)8255A 占用的端口地址为94H-97H (2)8255A 的初始化程序代码如下: MOV AL, 10000001B OUT 97H, AL
MOV AL, 0FH
OUT 97H, AL
(3)主机通过255A 向打印机送字符的工作过程如下 •读打印机“忙”状态(读PC0)
•测试打印机是否“忙”?(判断PC=1?)
•若“忙”转1(PC0=1则转1)
•通过PA 口输出打印字符
通过PC7输出选通脉冲,通知打印机打印
3. 下图是8255A 并行打印机接口电路图,通过接口CPU 采用查询方式将存放在BUF 缓冲区的1000个字符送去打印。设已知8255A 的口地址为54H ~57H 。
写出8255A 的工作方式控制字。(注:未用的位用0表示) ; 按要求写出程序流程图。
完成上述要求的程序编写。
11
(1)8255A 的工作方式控制字为81H
(2)程序流程图如下:
(3)编程如下:
MOV AL, 81H
OUT 57H, AL
MOV AL, 0DH
OUT 57H, AL
MOV CX, 1000
LEA SI, BUF
GG1: IN AL, 56H TEST AL, 02H
JNZ GG1
MOV AL, [SI] OUT 54H, AL
MOV AL, 0CH
OUT 57H,AL
12
NOP NOP MOV AL, 0DH
OUT 57H, AL
INC SI LOOP GG1
13