微机接口复习Word格式.doc
《微机接口复习Word格式.doc》由会员分享,可在线阅读,更多相关《微机接口复习Word格式.doc(12页珍藏版)》请在冰豆网上搜索。
在8086CPU系统中,设某中断源的中断类型码为08H,中断向量为0100:
1000H,则相应的中断向量存储地址为20H从该地址开始,连续4个存储单元的内容依次为00H,10H,00H,01H。
CPU寻址外设主要有直接寻址和DX间接寻址两种方式,8086/8采用直接寻址方式。
判断:
8086CPU一个总线周期只能交换一个字节数据。
(×
)因为:
在读取存储器或io端口时,即可以按字进行访问,也可以按字节进行访问
8086的外设硬件中断包含非屏蔽中断和可屏蔽中断两类,他们都受CPU内部的中断允许标志IF的控制(×
非屏蔽中断不受IF控制。
问答题:
8088系统采用向量中断,其中断服务程序首地址如何形成?
由中断向量号得到存储相应中断向量服务程序的物理地址,在地址对应的内存单元中,低字是中断服务程序的偏移地址,高字是中断服务程序的段地址。
由中断服务程序的偏移地址和段地址就得到了中断服务程序的首地址。
8088CPU从功能上来说可分为哪两部分,每部分的作用是什么,为什么这样分比不分时计算机效率提高了。
BIU,总线接口单元,该单元管理着8088与系统总线的接口,负责CPU对存储器和外设进行访问。
EU,执行单元,负责指令的译码、执行和数据的运算。
CPU最频繁的操作是取指,通过指令预取,节省了CPU大量的取指等待时间,提高了工作效率,这就是最简单的指令流水线技术。
简述8088中物理地址的形成原理。
8088CPU将1MB存储器空间分为许多逻辑段来管理,每个段最大限制为64KB,而且只能从模16地址开始一个逻辑段。
这样,每个存储器单元还可以用“段基地址:
段内偏移地址”表达其准确的物理位置。
段基地址X16+偏移地址就得到了20位物理地址。
简述8088的两种组态。
最小组态模式:
当MN/MX*接收高电平时,8088工作在最小组态模式。
此时,可用它构成小规模的应用系统。
在最小组态模式下,系统信号线由8088单独形成。
最大组态模式:
当MN/MX*接收低电平时,8088工作在最大组态模式。
此时,可用它构成较大规模的应用系统。
在最大组态模式下,系统信号线由8088和总线控制器8288共同形成。
编程及分析题:
无
8253
8253有3个通道,每个通道有6种工作方式。
8253定时计数器的计数通道,若采用十进制计数,其计数范围是(0000-9999
),最大计数值为
(10000)。
已知加在8253上的外部计数时钟频率为1MHz,在不增加硬件芯片的情况下,要使8253产生周期为1S的对称方波,请说明如何实现。
CLK0连外部信号,通道0采用工作方式3,计数初值为1000,十进制,将OUT0连到CLK1,通道1采用工作方式3,计数初值为1000,十进制,OUT1输出即周期为1S的方波.
简述8253的六种工作方式:
1)方式0:
计数结束中断*
2)方式1:
可编程单稳脉冲
3)方式2:
频率发生器(分频器)*
4)方式3:
方波发生器*
5)方式4:
软件触发选通信号
6)方式5:
硬件触发选通信号
设8253A的4个端口地址为08F4H~08F7H,计数器0的CLK0输入时钟频率为1000×
103Hz,在某一外部事件发生后(事件发生后信号为持续高电平),要求延迟1ms后产生中断。
(共8分)
1)采用十进制计数,试计算计数初值,并给出计算步骤。
(3分)
2)确定其工作方式,编写其初始化程序。
(3分)(提示:
外部事件信号作为8253计数器0的门控信号)
3)如果要求输出为连续方波,应该工作在什么方式?
正常输出方波时,门控信号应该怎样?
(2分)
(1)1000×
10^3/1000=10^3HZ即周期为1/10^3=1ms,所以计数初值为1000
(2)工作方式为方式0
Movdx,08f7h
Moval,00110001b;
计数器0,先高后低,方式0,十进制
Outdx,al
Movdx,08f4h
Movax,1000H ;
计数初值1000
Moval,ah
(3)应该工作在方式3,正常输出方波时,门控信号应该始终为高电平。
8253四个端口地址为40H,41H,42H,43H。
若将通道0工作于方式0,计数值为十进制数4950,通道2工作于方式3,用于输出一个500HZ的信号(假设8253通道2的输入信号时钟频率为1MHZ),写出相应的主要程序段。
(以下为8253控制字)
D7 D6| D5 D4 | D3 D2 D1 | D0
计数器 | 读/写格式 | 工作方式 | 数制
00__计数器0 | 00__计数器锁存 | 000__方式0| 0__二进制
01__计数器1 | 01__只读/写高8位 | 001__方式1| 1__BCD
10__计数器2 | 10__只读/写低8位 | X10__方式2 |
| 11__先写低8位,后写高8位 | X11__方式3 |
movdx,43h movdx,43h
moval,00110001b;
控制字 moval,10110111b
outdx,al outdx,al
movdx,40h movdx,42h
movax,4950 ;
通道0计数初值 movax,2000(1M约等于10^6)
outdx,al outdx,al
moval,ah moval,ah
8253四个端口地址为84H,85H,86H,87H。
若通道0的输入时钟信号频率为1MHz,要求此8253产生频率为1Hz的方波信号,请说明如何实现并写出相应的主要程序段。
由1MHZ产生1HZ的方波,则需采用方式3,计数初值为1M/1=1000*1000。
采用双通道,两次的计数初值都设为1000即可。
Movdx,87h moval,01110111b;
写入控制字
Moval,00110111b;
写入控制字 outdx,al
Outdx,al movdx,85h
Movdx,84h movax,1000 ;
计数器1计数初值
Movax,1000 ;
计数器0计数初值 outdx,al
outdx,al moval,ah
moval,ah outdx,al
outdx,al
movdx,87h
假设8253端口地址为60H~63H,通道1的OUT1引脚与8259A的IR1引脚相连,CLK1引脚输入随机的脉冲信号,每输入一个脉冲,说明外部设备发生一次异常。
(1)试分析如下程序片段的功能
(2)说明其设置的工作方式。
(8分)
8253方式控制字格式提示如下:
计数器选择(D7,D6) 读写格式(D5,D4)
工作方式(D3~D1) 数制(D0)
程序片段如下:
MOV
AL,50H(通道1工作在方式0,只读写低字节,以二进制计数)为什么是50H……
OUT
63H,AL(控制字写入控制端口)
AL,10(设置通道1计数初值)
61H,AL(写入通道1计数初值)
已知加在8253上的外部计数时钟频率为1MHz,在不增加硬件芯片的情况下,要使8253产生周期为1S的对称方波,请说明如何实现?
(7分)
已知8253CLK0为10KHZ的时钟信号,要求OUT0每隔10ms输出一个脉冲。
8253的端口地址为80H-83H(用3-8线译码器进行地址译码)要求:
(1)画出电路连接示意图
(2)8253通道0选择那种工作方式,并确定初值
(3)写出初始化程序(以下为8253控制字)
| 11__先写低8位,后写高8位 | X11__方式3
自动中断方式,这种中断结束方式是最简单的方