微机原理习题答案9章Word下载.docx

上传人:b****5 文档编号:19805338 上传时间:2023-01-10 格式:DOCX 页数:133 大小:416.88KB
下载 相关 举报
微机原理习题答案9章Word下载.docx_第1页
第1页 / 共133页
微机原理习题答案9章Word下载.docx_第2页
第2页 / 共133页
微机原理习题答案9章Word下载.docx_第3页
第3页 / 共133页
微机原理习题答案9章Word下载.docx_第4页
第4页 / 共133页
微机原理习题答案9章Word下载.docx_第5页
第5页 / 共133页
点击查看更多>>
下载资源
资源描述

微机原理习题答案9章Word下载.docx

《微机原理习题答案9章Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理习题答案9章Word下载.docx(133页珍藏版)》请在冰豆网上搜索。

微机原理习题答案9章Word下载.docx

MOVAX,10000;

写计数器0时常数,分频得到100Hz时钟频率

XCHGAL,AH

MOVDX,COUNTD;

写计数器1方式控制字

MOVAL,01110000B

MOVDX,COUNTB

MOVAX,999;

分频得到0.1Hz时钟频率。

(在方式0下,时常数为N时,

OUT输出的低电平宽度为N+1).

L1:

延时

当前CE的内容锁存到OL

MOVAL,01000000B

MOVDX,COUNTB

INAL,DX

MOVAH,AL

CMPAX,999

JNAL1;

延时结束,则继续执行,否则,跳到L1,继续延时

….

5.比较8254方式0与方式4、方式1与方式5的区别?

方式0与方式4

方式0OUT端计数过程中为低,计数值减为0时,输出变高

方式4OUT端计数过程中为高,计数值减为0时输出宽度为1个CLK的负脉冲

方式1与方式5

方式1OUT端输出宽度为n个CLK的低电平,计数值减为0时,输出为高

方式5OUT端计数过程中为高,计数值减为0时输出宽度为1个CLK的负脉冲

6.在8088最小系统中,8253的端口地址为284H~287H。

系统提供的时钟为1MHz,要求在OUT0输出周期为20微秒的方波,在OUT1输出周期为200微秒,其中每周期为负的时间是180微秒的信号。

请编写8253的初始化程序。

MOVDX,287H;

写计数器0控制方式字

MOVAL,00010110B

MOVDX,284H;

写计数器0时常数

MOVAL,20

OURDX,AL

MOVDX,287;

写计数器2控制方式字

MOVAL,10010110B

MOVDX,286H;

写计数器2时常数

MOVAL,200

MOVDX,287H

MOVAL,01010010B;

写计数器1控制方式字

MOVDX,285H

MOVAL,9;

写计数器1时常数

7.通过8253计数器0的方式0产生中断请求信号,现需要延迟产生中断的时刻,可采用:

A)在OUT0变高之前重置初值;

B)在OUT0变高之前在GATE0端加一负脉冲信号;

C)降低加在CLK0端的信号频率;

D)以上全是。

D

A:

方式0下,在OUT0变高之前重置初值,将在下一个CLK的下降沿使时常数从CR读入CE并重新计数。

B:

在OUT0变高之前在GATE0端加一负脉冲信号可以延时一个时钟周期,达到延时的目的。

C:

降低加在CLK0端的信号频率,可以增大时钟周期,达到延长OUT0端低电平的时间。

(注:

A中,如果重置的初值为1,则不会达到延时的效果)

8.已知8254计数器0的端口地址为40H,控制字寄存器的端口地址为43H,计数时钟频率为2MHz,利用这一通道设计当计数到0时发出中断请求信号,其程序段如下,则中断请求信号的周期是32.7675ms。

MOVAL,00110010B

OUT43H,AL

MOVAL,0FFH

OUT40H,AL

9.若8254芯片可使用的8086端口地址为D0D0H~D0DFH,试画出系统设计连接图。

设加到8254上的时钟信号为2MHz,

(1)利用计数器0~2分别产生下列三种信号:

1周期为10us的对称方波

2每1s产生一个负脉冲

310s后产生一个负脉冲

每种情况下,说明8254如何连接并编写包括初始化在内的程序段。

(2)希望利用8086通过一专用接口控制8253的GATE端,当CPU使GATE有效开始,20us后在计数器0的OUT端产生一个正脉冲,试设计完成此要求的硬件和软件。

(1)选用D0D0H~D0DFH中的偶地址DODO,DOD2,DOD4,DOD6为基本地址作为8254的端口地址,设8086工作在最小方式下。

8254端口地址译码电路如下图:

①计数器0输入端加2MHz的时钟信号,GATE0加+5V电压,输出OUT0信号为周期为10µ

s的对称方波。

初始化代码:

MOVDX,0D0D6H;

写计数器0工作方式

MOVDX,0D0D0H;

②CLK0加2MHz的始终信号,GATE0,GATE1加+5V电压,OUT0输出加到CLK1做时钟信号,OUT1输出为每1s产生一个负脉冲。

初始代码:

MOVDX,0D0D6H;

写计数器0的工作方式

写计数器0的时常数

MOVAL,100

写计数器1的工作方式

MOVAL,01110100B

MOVDX,0D0D2H;

写计数器1的时常数

MOVAX,20000

③CLK0加2MHz的始终信号,GATE0,GATE1加+5V电压,OUT0输出加到CLK2做时钟信号,OUT2输出为10s后产生一个负脉冲。

MOVAL,00110110B

MOVAX,1000

写计数器2的工作方式

MOVAL,10111000B

MOVDX,0D0D4H;

写计数器2的时常数

1)选用地址D0D0,DOD2,DOD4,DOD6为8253的端口地址,D0D8为GATE端口地址,该端口采用74LS373,8253用方式4,在OUT输出端加非门实现脉冲功能。

接口电路如图:

初始代码为:

MOVDX,0D0D8H;

GATE初始化

MOVAL,0

MOVAL,00011000B

MOVDX,0D0D0H;

MOVAL,40

MOVDX,0D0D8H

MOVAL,1

OUTDX,AL;

使GATE变高有效

 

10.若加到8254上的时钟频率为0.5MHz,则一个计数器的最长定时时间是多少?

若要求10分钟产生一次定时中断,试提出解决方案。

一个计数器的最长定时时间应该是置入时常数0时,此时定时时间为:

65536/0.5*10^6s=131ms

采用方式0即:

计数达到终值时中断来10分钟产生一次定时中断,此时时常数CR为:

10*60*0.5*10^6=3*10^9.

由于一个计数器最多分频65536,所以至少得使用2个计数器。

我们采用计数器0和计数器1.计数器0的时常数CR0为60000,计数器1的时常数CR1为50000.

连接方式为:

把0.5MHz的时钟频率接到计数器0的CLK0,然后把计数器0的OUT0接到计数器1的CLK1。

这样计数器1的OUT1端输出的就是10分钟产生一次的定时中断。

11.织布机控制系统如图9.26所示,已知织布机每织1米发出一个正脉冲,每织100米要求接收到一脉冲,去触发剪裁设备把布剪开。

(1)设8253的端口地址为80H~83H,编写对8253初始化程序。

(2)假定系统提供的信号频率为1MHz,希望利用8253的其余通道产生0.1秒的周期信号,编写初始化程序。

图9.26织布机控制系统

(1)

MOVDX,83H

MOVAL,00010100B

OUTDX,AL

MOVDX,80H

MOVAL,100

(2)

将计数器1的输出OUT1信号作为计数器2的时钟输入CLK2,计数器1的时钟输入为系统提供1MHZ的信号

MOVDX,83H

MOVAL,01110100B

MOVDX,81H

MOVDX,AL

MOVDX,82H

12.在IBMPC系统中根据下列不同条件设计接口逻辑,利用8253完成对外部脉冲信号重复频率的测量。

(1)被测脉冲信号的重复频率在10~1000Hz范围内。

(2)被测脉冲信号的重复频率在0.5~1.5Hz范围内。

(3)被测脉冲信号重复频率在10~100Hz范围内。

(4)被测是间歇脉冲信号,每次有信号时有100个脉冲,重复频率为0.8~1.2MHz,间歇频率大约每秒15次,要求测有信号时的脉冲重复频率。

用两个计数器,计数器0的CLK接待测信号,GATE接半周期为10s的高电平信号,OUT接8259,同时取反接计数器1的GATE端。

计数器1的CLK接系统时钟,半周期为T0。

在这样的逻辑电路下,计数器0的功能是记录待测信号的脉冲数N0,计数器1的功能是记录在相同时间里系统时钟信号的脉冲数N1。

根据T=N1*T0/N0可计算出待测信号的周期。

S(t)是待测信号,S’(t)为给定的周期大于10s的高电平信号。

端口声明:

COUNTA为计数器0的地址,COUNTB为计数器2的地址,COUNTD为控制器地址,COUNT为373地址

MOVDX,COUNTD;

计数器1初始化

MOVAL,01110000B

MOVDX,COUNTB

MOVAL,O

计数器0初始化

MOVAL,00010000B

STI

读两计数器的计数,并进行计算的中断服务子程序:

PUSHAX

PUSHBX

PUSHCX

PUSHDX

MOVDX,COUNTD

MOVAL,00000000B

INAL,DX

NEGAX

INCAX

MOVBX,AX

MOVCX,T0

MULCX

DIVBX

MOVSFR,AX

POPDX

POPCX

POPBX

POPAX

IRET

SFR中保存结果即为待测信号的周期。

对于

(1)题,10*10不小于100,10*1000不大于65535,可以用计数法。

同理(3)也可用此方法。

对于

(2)题,可用周期法。

逻辑电路图如下:

MOVAL,00110100B

MOVAL,00000000B

MOVDX,000FH

MOVAX,4240H

(4)如图设计接口,计数器1用来记录在50个脉冲所用时间,50个信号脉冲最多用1/0.8*50(约为63us)由于计数器1用1MHzCLK,故其计数个数N即为Nus,所以当N>

63时,则有低电平间隔计入,须重新计数。

当N>

63时,则计算得待测频率。

MOVAL,00H

MOVAL,00010000B

MOVAL,50

MOVAL,01110000B

MOVCOUNTB

L2:

MOVDX,COUNT;

给GATE0和GATE1高电平,开始计数

MOVAL,81H

NOP

ANDAL,AL;

判断是否计完50个脉冲,若未计完继续等待

JNZL1

MOVDX,COUNT

MOVAL,00H;

若计完则暂停计数

读计数器1结果

CMPAX,70H;

当AL大于70,则有间歇计入,重新测试

JAL2

MOVBL,AL

MOVAL,50;

计算频率

DIVBL

MOVFREC,AL

全国高等学校“十 

一五”重点规划教材

现代微型计算机原理

与接口技术教程

(习题解答)

主编:

杨文显

副主编:

杨晶鑫

编著:

黄春华胡建人宓双

清华大学出版社

习题一

1.8086CPU由哪几个部件构成?

它们的主要功能各是什么?

8086CPU由指令执行部件EU和总线接口部件BIU两个部份组成。

指令执行部件主要功能是执行指令。

总线接口部件的主要功能是完成访问存储器或I/O端口的操作:

•形成访问存储器的物理地址;

•访问存储器取得指令并暂存到指令队列中等待执行;

•访问存储器或I/O端口以读取操作数参与EU运算,或存放运算结果。

2.什么是逻辑地址?

什么是物理地址?

它们各自如何表示?

如何转换?

程序中使用的存储器地址称为逻辑地址,由16位“段基址”和16位“偏移地址”(段内地址)组成。

段基址表示一个段的起始地址的高16位。

偏移地址表示段内的一个单元距离段开始位置的距离。

访问存储器的实际地址称为物理地址,用20位二进制表示。

将两个16位二进制表示的逻辑地址错位相加,可以得到20位的物理地址:

物理地址=段基址×

16+偏移地址

在32位CPU的保护模式下,“逻辑地址”的表示产生了一些变化,请参考第8章的相关内容。

3.什么是“堆栈”?

它有什么用处?

在使用上有什么特点?

堆栈是内存中的一块存储区,用来存放专用数据。

例如,调用子程序时的入口参数、返回地址等,这些数据都按照“先进后出”的规则进行存取。

SS存放堆栈段的段基址,SP存放当前堆栈栈顶的偏移地址。

数据进出堆栈要使用专门的堆栈操作指令,SP的值在执行堆栈操作指令时根据规则自动地进行修改。

4.

设X=36H,Y=78H,进行X+Y和X-Y运算后FLAGS寄存器各状态标志位各是什么?

5.按照传输方向和电气特性划分,CPU引脚信号有几种类型?

各适用于什么场合?

CPU引脚传输的信号按照传输方向划分,有以下几种类型:

输出:

信号从CPU向外部传送;

输入:

信号从外部送入CPU;

双向:

信号有时从外部送入CPU,有时从CPU向外部传送。

双向信号主要用于数据信号的传输;

输出信号用于传输地址信号和一些控制信号;

输入信号主要用于传输外部的状态信号(例如READY)和请求(中断、DMA)信号。

按照信号的电器特性划分,有以下几种类型:

一般信号:

用来传输数据/地址信号时,高电平表示“1”,低电平表示“0”;

用来表示正逻辑的控制/状态信号时,“1”表示有效,“0”表示信号无效;

用来表示负逻辑的控制/状态信号时,“0”表示有效,“1”表示信号无效。

三态信号:

除了高电平、低电平两种状态之外,CPU内部还可以通过一个大的电阻阻断内外信号的传送,CPU内部的状态与外部相互隔离,也称为“悬浮态”。

CPU放弃总线控制权,允许其他设备使用总线时,将相关信号置为“悬浮态”。

6.8086CPU以最小模式工作,现需要读取内存中首地址为20031H的一个字,如何执行总线读周期?

请具体分析。

为了读取内存中首地址为20031H的一个字,需要执行二个总线读周期。

第一个总线周期读取20031H字节内容,进行的操作如下。

T1状态:

=1,指出CPU是从内存读取数据。

随后CPU从地址/状态复用线(A19/S6~A16/S3)和地址/数据复用线(AD15~AD0)上发出读取存储器的20位地址20031H。

为了锁存地址,CPU在T1状态从ALE引脚输出一个正脉冲作为地址锁存信号。

由于需要读取高8位数据线上的数据(奇地址),

=0。

为了控制总线收发器8286接受数据,

T2状态:

地址信息撤消,地址/数据线AD15~AD0进入高阻态,读信号

开始变为低电平(有效),

=0,用来开放总线收发器8286。

T3状态:

CPU检测READY引脚信号。

若READY为高电平(有效)时,表示存储器或I/O端口已经准备好数据,CPU在T3状态结束时读取该数据。

若READY为低电平,则表示系统中挂接的存储器或外设不能如期送出数据,要求CPU在T3和T4状态之间插入1个或几个等待状态Tw。

TW状态:

进入TW状态后,CPU在每个TW状态的前沿(下降沿)采样READY信号,若为低电平,则继续插入等待状态TW。

若READY信号变为高电平,表示数据已出现在数据总线上,CPU从AD15~AD0读取数据。

T4状态:

在T3(TW)和T4状态交界的下降沿处,CPU对数据总线上的数据进行采样,完成读取数据的操作。

第二个总线周期读取地址为20032H字节的内容。

CPU发出的信号与第一个周期类似,区别在于T1状态CPU发出存储器地址为20032H,由于只需要读取低8位数据线上的数据(偶地址),

=1。

在CPU内部,从20031H读入的低位字节和从20032H读入的高位字节被拼装成一个字。

7.8086CPU有几种工作方式?

各有什么特点?

8086/8088CPU有两种工作模式:

最大工作模式和最小工作模式。

所谓最小工作模式,是指系统中只有一个8086/8088处理器,所有的总线控制信号都由8086/8088CPU直接产生,构成系统所需的总线控制逻辑部件最少,最小工作模式因此得名。

最小模式也称单处理器模式。

最大模式下,系统内可以有一个以上的处理器,除了8086/8088作为“中央处理器”之外,还可以配置用于数值计算的8087“数值协处理器”、用于I/O管理的“I/O协处理器”8089。

各个处理器发往总线的命令统一送往“总线控制器”,由它“仲裁”后发出。

CPU两种工作模式由

引脚决定,

接高电平,CPU工作在最小模式;

接地,CPU工作在最大模式。

8.分析8086CPU两个中断输入引脚的区别,以及各自的使用场合。

INTR用于输入可屏蔽中断请求信号,电平触发,高电平有效。

中断允许标志IF=1时才能响应INTR上的中断请求。

NMI用于输入不可屏蔽中断请求信号,上升沿触发,不受中断允许标志的限制。

CPU一旦测试到NMI请求有效,当前指令执行完后自动转去执行类型2的中断服务程序。

NMI引脚用于连接CPU外部的紧急中断请求,例如内存校验错,电源掉电报警等。

INTR引脚用于连接一般外部设备的中断请求。

9.什么是时钟周期、总线周期、指令周期?

它们的时间长短取决于哪些因素?

时钟周期:

CPU连接的系统主时钟CLK一个周期的时间。

CLK信号频率越高,时钟周期越短。

总线周期:

CPU通过外部总线对存储器或I/O端口进行一次读/写操作的过程称为总线周期。

8086CPU总线周期一般由四个时钟周期组成,存储器/IO设备(接口)速度不能满足CPU要求时,可以增加一个或多个时钟周期。

指令周期:

CPU执行一条指令的时间(包括取指令和执行该指令所需的全部时间)称为指令周期。

指令周期的时间主要取决于主时钟的频率和指令的复杂程度,它也受到存储器或IO设备接口工作速度的影响。

10.在一次最小模式总线读周期中,8086CPU先后发出了哪些信号?

各有

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1