好文档 - 专业文书写作范文服务资料分享网站

单片微型计算机原理及应用_课后习题答案

天下 分享 时间: 加入收藏 我要投稿 点赞

第6章 MCS?51系列单片机中断系统与定时

器/计数器

1.什么是中断源?MCS?51单片机有哪些中断源?各有什么特点? 能引起中断的原因称为中断源。

MCS?51单片机的5个中断源分为两种类型:一类是外部中断源,包括INT0和INT1;另一类是内部中断源,包括两个定时器/计数器(T0和T1)的溢出中断和串行口的发送/接收中断。 (1)外部中断

MCS?51单片机提供了两个外部中断请求INT0和INT1,它们的中断请求信号有效方式分为电平触发和脉冲触发两种。电平方式是低电平有效,脉冲方式为负跳变触发有效。

CPU在每个机器周期的S5P2检测INT0和INT1上的信号。对于电平方式,只要检测到低电平信号即为有效申请;对于脉冲方式,则需要比较两次检测到的信号,才能确定中断请求信号是否有效。中断请求信号高低电平的状态都应至少维持一个机器周期,以确保电平变化能被单片机检测到。 (2)内部中断

MCS?51单片机内部有TF0、TF1、TI、RI,分别为定时器/计数器溢出中断和串行口的发送/接收中断的中断源。

当中断源有中断请求时,相应的中断源的中断请求标志置位。外部中断0、外部中断1、定时器/计数器0溢出中断、定时器/计数器1溢出中断和串行口的发送/接收中断的中断请求标志分别为IE0、IE1、TF0、TF1、TI或RI。IE0、IE1、TF0、TF1在特殊功能寄存器TCON中,TI或RI在特殊功能寄存器SCON中。

2.试编写外部中断1为跳沿触发方式的中断初始化程序。

SETB IT1

SETB EA SETB EX1

3.试编写一段对中断系统初始化的程序,允许外部中断0、外部中断1、定时器/计数器T0溢出中断、串行口中断,且使定时器/计数器T0溢出中断为高优先级中断。

SETB SETB SETB SETB SETB SETB

EA EX0 EX1 ET0 ES PT0

4.在MCS?51单片机中,外部中断有哪两种触发方式?如何加以区分?

MCS?51单片机提供了两个外部中断请求INT0和INT1,它们的中断请求信号有效方式分为电平触发和脉冲触发两种。电平方式是低电平有效,脉冲方式为负跳变触发有效。

CPU在每个机器周期的S5P2检测INT0和INT1上的信号。对于电平方式,只要检测到低电平信号即为有效申请;对于脉冲方式,则需要比较两次检测到的信号,才能确定中断请求信号是否有效。中断请求信号高低电平的状态都应至少维持一个机器周期,以确保电平变化能被单片机检测到。

5.MCS?51单片机能提供几个中断优先级?各个中断源优先级如何确定?在同一优先级中各个中断源的优先级如何确定?

两个中断优先级。通过IP寄存器进行确定。

在同一优先级中,各个中断源的优先级:外部中断0、定时器/计数器T0、外部中断1、定时器/计数器T1、串行口。

6.中断允许寄存器IE各位的定义是什么?

IE是中断允许控制寄存器,CPU对中断系统的所有中断及某个中断源的“允许”与“禁止”都是由它来控制的。IE中断允许寄存器格式如下:

D7 IE (A8H) EA D6 _— D5 _— D4 ES D3 ET1 D2 EX1 D1 ET0 D0 EX0

寄存器中用于控制中断的共有6位,实现中断管理,其作用如下:

EA为中断允许总控制位。EA = 1时,CPU开放中断;EA = 0时,CPU屏蔽所有中断请求。

ES、ET1、EX1、ET0、EX0为对应的串行口中断、定时器/计数器1中断、外部中断1中断、定时器/计数器0中断、外部中断0中断的中断允许位。对应位为1时,允许其中断,对应位为0时,禁止其中断。

7.为何要在程序的首地址安排一条跳转到主程序的指令?在响应中断过程中为什么要保护现场?应怎样保护?

因为主程序的入口地址是0000H单元,而0003H单元式外部中断0的中断服务程序入口地址,主程序需要躲开该地址。

为了使在中断服务程序响应完毕后能正确地返回中断的地方。 在响应中断的时间,CPU自动地将要返回的地址压入堆栈保护。

8.MCS?51单片机若要把外部中断源扩充为6个,可采用哪些方法?如何确定它们的优先级?

可以由两种方法:参看例题6-4和例题6-5.

对于第一种方法,在查询时先查询那个中断源,那个中断源的优先级最高。

对于第二种方法,先判断哪个中断源,哪个中断源的中断优先级高。

9.子程序和中断服务程序有何异同?子程序返回指令RET和中断返回指令RETI能相互替代吗?

子程序是有固定的调用位置的,而中断服务程序没有固定的调用位置。

不能用RET指令代替RETI指令,因为用RET指令虽然也能控制PC返回原来中断的地方,但RET指令没有清零中断优先级状态触发器的功能,中断控制系统也会认为中断仍在进行,其后果是同级的中断请求将不被响应。所以,中断服务程序结束时必须使用RETI指令。

10.MCS?51单片机各中断标志是如何产生的?又如何清除?

在中断请求被响应前,中断源发出的中断请求是由CPU锁存在特殊功能寄存器TCON和SCON的相应中断标志位中的。一旦某个中断请求得到响应,CPU必须把它的相应标志位复位成0状态,否则MCS?51单片机就会因中断未能得到及时撤除而重复响应同一中断请求,这是绝对不允许的。

MCS?51单片机的51子系列有5个中断源,但实际上只分属于三种中断类型。这三种类型是:外部中断、定时器/计数器溢出中断和串行口中断。对于这三种中断类型的中断请求,其撤除方法是不同的。

(1)定时器/计数器溢出中断请求的撤除

TF0和TF1是定时器/计数器溢出中断标志位,它们因定时器/计数器溢出中断请求的输入而置位,因定时器/计数器溢出中断得到响应而自动复位成0状态。因此定时器/计数器溢出中断源的中断请求是自动撤除的,用户根本不必专门为它们撤除。 (2)串行口中断请求的撤除

TI和RI是串行口中断的标志位,中断系统不能自动将它们撤除,这是因为MCS?51进入串行口中断服务程序后常需要对它们进行检测,以测定串行口发生了接收中断还是发送中断。为了防止CPU再次响应这类中断,用户应在中断服务程序的适当位置处通过指令将它们撤除:

CLR TI

CLR RI

(3)外部中断的撤除

;撤除发送中断 ;撤除接收中断

外部中断请求有两种触发方式:电平触发和脉冲触发。对于这两种不同的中断触发方式,MCS?51单片机撤除它们的中断请求的方法是不相同的。

在脉冲触发方式下,外部中断标志IE0和IE1是依靠CPU两次检测INT0和INT1上的触发电平状态而设置的。因此,芯片设计者使CPU在响应中断时自动复位IE0或IE1,就可撤除INT0或INT1上的中断请求,因为外部中断源在中断服务程序时是不可能再在INT0或INT1上产生负边沿而使相应的中断标志IE0或IE1置位的。

在电平触发方式下,外部中断标志IE0和IE1是依靠CPU检测INT0和INT1上的低电平而置位的。尽管CPU响应中断时相应中断标志IE0或IE1,能自动复位成“0”状态,但若外部中断源不能及时撤除它在INT0或INT1上的低电平,就会再次使已经变“0”的中断标志IE0或IE1置位,这是绝对不允许的。因此电平触发型外部中断请求的撤除必须使INT0或INT1上的低电平随着其中断被CPU响应而变为高电平。一种可供采用的电平型外部中断的撤除电路如图所示。

由图可见,当外部中断源产生中断请求时,D触发器复位成“0”状态,Q端的低电平被送到INT0,该低电平被8051检测后就使中断标志IE0置1。8051响应INT0上的中断请求可转入INT0中断服务程序执行,故可以在中断服务程序开

INT08051 P1.0 Q D SD CP 1 外部中断信号 头安排如下程序来使INT0上的电平变高:

=

INSVR:SETB P1.0 CLR P1.0 CLR IE0 ··· END

8051执行上述程序就可在 P1.0上产生一个宽度为两个机器周期的负脉冲。在该负脉冲作用下,D触发器被置位成1状态,INT0上的电平也因此而变高,从而撤除了其上的中断请求。

11.设MCS?51单片机时钟为12MHz,利用定时器T0编程令P1.0引脚输出2ms的矩形波程序,要求占空系数为1:2(高电平时间短)。

ORG LJMP ORG LJMP ORG MAIN: MOV MOV MOV MOV MOV SETB SETB SETB L1: SJMP ;中断服务程序

T0INT:MOV MOV INC CJNE

0000H MAIN 000BH T0INT 0030H SP,#60H R7,#0

TMOD,#01H TH0,#0FDH TL0,#66H EA ET0 TR0 L1

TH0,#0FDH TL0,#66H R7

R7,#1,LL1

;初始化

;定时666微妙

;重载初始值

CLR P1.0 SJMP LLEND

LL1: CJNE R7,#3,LLEND SETB P1.0 MOV R7,#00H LLEND:RETI

12.如果MCS?51单片机系统的晶振频率为12MHz,分别指出定时器/计数器方式1和方式2的最长定时时间。

方式1:65536微妙; 方式2:256微妙

13.MCS?51单片机P1端口上,经驱动接有8支发光二极管,若外部晶振频率为6MHz,试编写程序,使这8支发光管每隔2s循环发光(要求用T1定时)。

ORG 0000H LJMP MAIN ORG 001BH LJMP T1INT ORG 0030H MAIN: MOV SP,#70H MOV TMOD,#10H ;T1方式1 MOV TH1,#3CH ;定时100ms MOV TL1,#0B0H MOV A,#11111110B MOV R7,#20 ;100ms*20=2S SETB EA SETB ET1 SETB TR1 SJMP $ T1INT: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R7,L1 MOV R7,#20 MOV P1,A RL A L1: RETI 14.设MCS?51单片机的晶振频率为12MHz,要求在P1.0输出周期是200ms的方波,试编写程序。

ORG LJMP ORG LJMP ORG MAIN: MOV MOV MOV MOV MOV SETB SETB SETB SJMP T1INT: MOV

0000H

MAIN 001BH T1INT 0030H SP,#70H TMOD,#10H TH1,#3CH TL1,#0B0H R7,#2 EA ET1 TR1 $

TH1,#3CH

;T1方式1 ;定时50ms ;50ms*2=100ms

单片微型计算机原理及应用_课后习题答案

第6章MCS?51系列单片机中断系统与定时器/计数器1.什么是中断源?MCS?51单片机有哪些中断源?各有什么特点?能引起中断的原因称为中断源。MCS?51单片机的5个中断源分为两种类型:一类是外部中断源,包括INT0和INT1;另一类是内部中断源,包括两个定时器/计数器(T0和T1)的溢出中断和串行口的发送/接收中断。(
推荐度:
点击下载文档文档为doc格式
6x5804fykd5uqa87qzsz8c83h0epg60165a
领取福利

微信扫码领取福利

微信扫码分享