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

发布时间 : 星期六 文章单片微型计算机原理及应用 课后习题答案 山东理工更新完毕开始阅读

在偶地址),试比较两个数的大小,把大数存放在4000H、4001H单元中。

MOV MOVX MOV INC MOVX MOV MOV MOVX MOV INC MOVX MOV CLR MOV SUBB MOV SUBB JNC MOV MOV SJMP L1: MOV MOV L2: MOV MOVX INC MOV MOVX

RET

DPTR,#2000H A,@DPTR 20H,A DPTR A,@DPTR 21H,A

DPTR,#3000H A,@DPTR 30H,A DPTR A,@DPTR 31H,A C

A,21H A,31H A,20H A,30H L1 A,20H B,21H L2 A,30H B,31H

DPTR,#4000H @DPTR,A DPTR A,B

@DPTR,A

第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) D6 D5 D4 D3 D2 D1 D0 EA _— _— ES ET1 EX1 ET0 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置位的。

联系合同范文客服:xxxxx#qq.com(#替换为@)