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

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

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

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

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

微机原理习题答案9章docx

第9章定时/计数器8253应用设计

1.下列地址哪些能够分配给8253/8254的计数器0?

为什么?

(23H、54H、97H、51H、

FCH、59H)

解:

因为己经约定釆用A2,A1作为8253的内部地址线,而且计数器0的地址为00,所

以在题中所给的地址中只有51H,59H的A2和A]同时为0,即:

A2A1=00.

2.如果计数器0设定为方式0,GATE0=l,CLK0=lMHz,时常数为N=1000,请画出

OUTO的波形。

如果计数器1设定为方式1,其它参数与计数器0相同,画出OUT1的

波形。

WR

CI.K0

1]111

Illi

(;A1EO

11111

-111111

11111

IlliIlli1111

()1TO

N11003|999|998|997|

I2I>10iwniFFPfcJJ

3.编程实现:

将8253计数器0设置成方式4,并置时常数10000,然后处于等待状态,直

到CE的内容W1000后再向下执行。

解:

MOVAL.00111000B

;设置计数器0的常数

OUTDX,AL

MOVDX,COUNTA

MOVAX,10000

OUTDX,AL

XCHGAL,AH

OUTDX,AL

MOVAL,OH

OUTDX,AL

MOVDX,COUNTA;读入CE

INAL,DX

MOVAH,AL

INAL,DX

XCHGAL,AH

CMPAXJ000;判别CE当前大小

JAL1

4.利用8253nf以实现确定时间的延迟,编程实现延时10秒的程序段(设可以使用的基准时钟为lMHz)o

解:

本题使用计数器0和计数器1,并且计数器0的输出OUTO作为计数器1的时钟输入CLK1.

程序如下:

MOV

DX,COUNTD

;写计数器0方式控制字

MOV

AL,00110I00B

OUT

DX,AL

MOV

DX,COUNTA

MOV

AX,10000

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

OUT

DX,AL

XCHG

AL,AH

OUT

DX,AL

MOV

DX,COUNTD

;写计数器1方式控制字

MOV

AL,01110000B

OUT

DX,AL

MOV

DX,COUNTB

MOV

AX,999;

分频得到0.1Hz吋钟频率。

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

9

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

OUTDX,AL

XCHGAL,AH

OUT

DX,AL

L1:

;延吋

MOV

DX,COUNTD

;当前CE的内容锁存到OL

MOV

AL,01000000B

OUT

DX,AL

MOV

DX,COUNTB

IN

AL,DX

MOV

AH,AL

IN

AL,DX

XCHG

AL,AH

CMP

AX,999

JNA

LI

;延吋结束,则继续执行,否则,跳到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,要求在OUTO输出周期为20微秒的方波,在OUT1输出周期为200微秒,其屮每周期为负的时间是180微秒的信号。

请编写8253的初始化程序。

解:

OUTO输出为20微妙方波,可用方式三直接产生,OUT1输11!

波形与书中例9.2类似,可用其屮思想产生此信号。

如果允许增加外部器件,也可在例9.1的基础上,将OUT端信号通过与非门取反,这样即可产生题目要求信号。

本例利用例9」思想解答

D—D,

CLKo

RD

GATEo

WR

OUTo

Ai

Intel

CLKi

Ao

X253

GATEi

OUTi

CLKj

GATE?

rs

our:

1MIIZ

・W

IMHZ

♦SV

MOVDX,287H;写计数器0控制方式字

MOVAL,00()l()ll()B

OUTDX,AL

MOVDX,284H

MOVAL,20

OURDX,AL

MOVDX,287

:

写计数器0时常数

;写计数器2控制方式字

MOVAL,10010110B

OUTDX,AL

MOVDX,286H

MOVAL,200

OUTDX,AL

;写计数器2吋常数

MOVDX,287H

MOVAL,01010010B

OUTDX,AL

MOVDX,285H

MOVAL,9

OUTDX,AL

:

写计数器1控制方式字

;写计数器1时常数

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

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

B)在OUTO变高Z前在GATEO端加一负脉冲信号;

 

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

D)以上全是。

解:

D

A:

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

B:

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

C:

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

(注:

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

8.己知8254计数器0的端口地址为4011,控制字寄存器的端口地址为4311,计数时钟频率

为2MIk,利用这一通道设计当计数到0时发出中断请求信号,其程序段如下,则中断

请求信号的周期是32.7675ms。

MOVAL,00110010B

OUT43H,AL

MOVAL,OFFH

OUT40H,AL

OUT40H,AL

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

设加

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

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

周期为10us的对称方波

每Is产生一个负脉冲

10s后产生一个负脉冲

每种情况下,

说明8254如何连接并编写包扌舌初始化在内的程序段。

(2)希望利用8086通过一专用接口控制8253的GATE端,当CPU使GATE有效开始,

20us后在计数器0的OUT端产生一个正脉冲,试设计完成此要求的硬件和软件。

解:

(1)选用DODOH~DODFH中的偶地址DODO,D0D2,D0D4,D0D6为基本地址作为8254的端口

地址,设80861作在最小方式下。

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

计数器0输入端加2MHz的吋钟信号,GATEo加+5V电压,输出OUTo信号为周期

为lOps的对称方波。

初始化代码:

MOVDX,0D0D6H;写计数器0工作方式

MOVAL,00010I10B

OUTDX,AL

MOVDX,0D0D0H;写计数器0时常数

MOVAL,20

OUTDX,AL

②CLKo加2MHz的始终信号,GATEo,GATEi加+5V电压,OUTo输出加到CLK1做时钟信号,OUT1输11!

为每Is产生一个负脉冲。

MOVDX,0D0D6H

MOVAL,00010110B

OUTDX,AL

MOVDX,0D0D0H

MOVAL,100

OUTDX,AL

MOVDX,0D0D6H

MOVAUOlllOlOOB

;写计数器0的工作方式

;写计数器0的吋常数

;写计数器1的工作方式

初始代码:

OUTDX,AL

MOVDX,0D0D2H

:

写计数器1的时常数

MOVAX,20000

OUTDX,AL

XCHGAL,AH

OUTDX,AL

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

初始代码:

MOVDX,0D0D6H

;写计数器0的工作方式

MOVAL,00110110B

OUTDX,AL

MOVDX,0D0D0H

:

写计数器0的时常数

MOVAX,1000

OUTDX,AL

XCHGAL,AH

OUTDX,AL

MOVDX,0D0D6H

;写计数器2的工作方式

MOVALJ0111000B

OUTDX,AL

MOVDX,0D0D4H

;写计数器2的时常数

MOVAX,20000

OUTDX,AL

XCHGAL,AH

OUTDX,AL

1)选用地址DODO,DOD2,DOD4,DOD6为8253的端口地址,D0D8为GATE端口地址,

该端口采用74LS373,8253用方式4,在OUT输出端加非门实现脉冲功能。

接口电路如图:

初始代码为:

MOVAL,0

OUTDX,AL

MOVAU00011000B

OUTDX,AL

MOVAL,40

OUTDX,AL

MOVDX,0D0D8H

OUTDX,AL

;使GATE变高有效

MOVALJ

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

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

解:

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

65536/0.5*10飞s=131ms

采用方式0即:

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

为:

10*60*0.5*106二3*109.

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

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

连接方式为:

把0.5MHz的时钟频率接到计数器0的CLK0,然后把计数器0的0UT0接到计数器1的CLKlo这样计数器1的0UT1端输出的就是10分钟产生一次的定时屮断。

11.

°7"D0

8088

■rd

CPU

WR

最小

Al

方式

A0

系统

总线

10/M

A9

Al

AO

―►译码

:

k电路

图9.26织布机控制系统

cs

Intel

8253

A2

RD

WR

U0

CLK0

01T0

GATEO

织布机系统

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

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

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

 

解:

(1)

MOV

DX,83H

MOV

AL,00010100B

OUT

DX,AL

MOV

DX,80H

MOV

AL,100

OUT

DX,AL

将计数器1的输出OUT1信号作为计数器2的时钟输入CLK2,计数器1的时钟输

入为系统提供1MHZ的信号

MOV

DX,83H

MOV

AL,01110100B

OUT

DX,AL

MOV

DX,81H

MOV

AX,1000

OUT

DX,AL

XCHG

AL,AH

MOV

DX,AL

MOV

DX,83H

MOV

ALJ0010110B

OUT

DX,AL

MOV

DX,82H

MOV

ALJ00

OUT

DX,AL

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

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

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

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

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

解:

用两个计数器,计数器0的CLK接待测信号,GATE接半周期为10s的高电平信号,

OUT接8259,同时取反接计数器1的GATE端。

计数器1的CLK接系统时钟,半周

期为T0。

在这样的逻辑电路下,计数器0的功能是记录待测信号的脉冲数N0,计

数器1的功能是记录在相同时间里系统时钟信号的脉冲数N1。

根据T=N1*TO/NO

可计算出待测信号的周期。

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

端口声明:

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

器地址,COUNT为373地址

程序如下:

MOV

DX,COUNTD

;计数器1初始化

MOV

AU01110000B

OUT

DX,AL

MOV

DX,COUNTB

OUT

DX,AL

MOV

DX,COUNTB

MOV

AL,0

OUT

DX,AL

MOV

DX,COUNTD

;计数器0初始化

MOV

AL,00010000B

OUT

DX,AL

MOV

DX,COUNTA

MOV

AL,0

OUT

DX,AL

OUT

DX,AL

STI

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

PUSHAX

pushbx

PUSHCX

PUSHDX

MOVDX,COUNTD

MOVAL,OOOOOOOOB

OUTDX,AL

MOVDX,COUNTA

INAL,DX

XCHGAL,AH

INAL,DX

XCHGAL,AH

NEGAX

INCAX

MOVBX,AX

MOVDX,COUNTD

MOVAL,OOO1OOOOB

OUTDX,AL

MOVDX,COUNTB

INAL,DX

XCHGAL,All

INAL,DX

XCHGAL,AH

NEGAX

INCAX

MOVCX,TO

MULCX

DIVBX

MOVSER,AX

POPDX

POPex

POPBX

POPAX

IRET

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

对于

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

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

对于

(2)题,可用周期法。

逻辑电路图如下:

程序如下:

MOVDX,COUNTD

MOVAL,00110100B

OUTDX,AL

MOVDX,COUNTA

MOVAL,0

OUTDX,AL

OUTDX,AL

STI

PUSHAX

PUSHBX

PUSI

IDX

MOV

DX,COUNTD

MOV

AL,00000000B

OUT

DX,AL

MOV

DX,COUNTA

IN/

\L,DX

XCHGAL,AH

INAL,DX

XCHGAL,AH

NEG

AX

INC

AX

MOV

BX,AX

MOV

DX,OOOFH

MOV

AX,4240H

DIV

BX

MOV

SFR,AX

POP

DX

POP

BX

POP

AX

IRET

(4)如图设计接口,计数器1用来记录在50个脉冲所用吋间,50个信号脉冲最多用1/0.8*50(约为63us)由于计数器1用1MHzCLK,故其计数个数N即为Nus,所以当N>63时,则有低电平间隔计入,须重新计数。

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

程序如下:

MOVDX,COUNTD

MOVAL,OOH

OUTDX,AL

MOVDX,COUNTD

MOVAL,00010000B

OUTDX,AL

MOVDX,COUNTA

MOVAL,50

OUTDX,AL

MOVDX,COUNTD

MOVAL,0111OOOOB

OUTDX,AL

MOVCOUNTB

MOVAL,0

OUTDX,AL

OUTDX,AL

L2:

MOVDX,COUNT;给GATEO和GATE1高电平,开始计数

MOVAL,81H

OUTDX,AL

MOV

DX,COUNTD

MOV

AL,00000000B

OUT

DX,AL

MOV

DX,COUNTA

INAL,DX

MOV

DX,COUNTA

INAL,DX

AND

AL,AL

JNZ

Li

MOV

DX,COUNT

MOV

AL,OOH

OUT

DX,AL

MOV

DX,COUNTD

MOV

AL,01000000B

OUT

DX,AL

MOV

DX,COUNTB

INAL,DX

XCHGAL,AH

INAL,DX

XCHGAL,All

NEG

AX

LI:

NOP

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

:

若计完则暂停计数

;读计数器1结果

INCAX

CMPAX,70H

JAL2

MOVBL,AL

MOVAL,50

DIVBL

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

MOVFREC,AL

 

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

当前位置:首页 > 医药卫生 > 基础医学

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

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