第五章中断系统及定时计数器(可编辑修改word版)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章中断系统及定时/计数器参考答案

1、80C51 有几个中断源?各中断标志是如何产生的?又是如何复位的?CPU

响应各中断时,其中断地址入口是多少?

答:80C51 有 5 个中断源,具体的名称、产生方式、复位方式和中断入口地址如下:

(1)INT0(P302), 外部中断0 请求信号输入引脚。当CPU 检测到P3.2 引脚出现有效的中断信号时,中断标志IE0(TCON.1)置一,向CPU

申请中断,中断入口地址为0003H。可由IT0(TCON.0)选择其为

低电平有效还是下降沿有效。当IT0=0 时,中断标志在CPU 响应中

断时不能自动清零,只能撤除INT0 引脚的低电平,IE0 才清零;当

ITO=1 时,由硬件自动清除IE0 标志。

(2)INT1(P3.3), 外部中断1 请求信号输入引脚。当CPU 检测到P3.3 引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置一,向

CPU 申请中断,入口地址为000BH。可由IT1(TCON.2)选择其为

低电平有效还是下降沿有效,中断标志复位清零与INTO 类同。

(3)TF0(TCON.5), 片内定时/计数器T0 溢出中断请求标志。当定时/计数器T0 发生溢出时,置位TF0,并向CPU 申请中断,入口地址为

0013H。CPU 响应中断时,TF0 自动清零。

(4)TF1(TCON.7), 片内定时/计数器T1 溢出中断请求标志。当定时/计数器T1 发生溢出时,置位TF1,并向CPU 申请中断,入口地址为001

BH。CPU 响应中断时,TF1 自动清零。

(5)RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口收完一帧串行数据时置位RI 或当串行口发送完一帧串行数据时置位TI, 向

CPU 申请中断,入口地址为0023H。RI 和TI 必须由软件清除。

2、某系统有三个外部中断源1、2、3,当某一中断源变低电平时便要求CPU

处理,它们的优先处理次序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H,试编写主程序及中断服务程序(转至相应的入口即可)。

答:ORG 0000H

LJMP BOOT

ORG 0003H

LJMP INT3

ORG 000BH

LJMP INT2

ORG 0013H

LJMP INT1

ORG 001BH

RETI

BOOT:ACALL INT0_0 ;中断启动程序

ACALL T0_0

ACALL INT1_0

SETB EA

SJMP $

INT0_0:CLR IT0 ;设置为低电平触发方式

SETB EX0

RET

T0_0: MOV TMOD,#06H ;设置为工作方式2,模式为外部计数,GATE=0

MOV TH0,#0FFH

MOV TL0,#0FFH

SETB TR0

SETB ET0

RET

INT1_0:CLR IT1

SETB EX1

RET

ORG 2000H

INT1:NOP

RETI

ORG 2100H

INT2:NOP

RETI

ORG 2200H

INT3:NOP

RETI

3、外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的

中断过程有何不同?怎样设定?

答:以外部中断INT0 为例,设IT0=0 时,INT0 为电平触发方式,设IT0=1 时,INT0 为边沿触发方式。

两者产生中断的不同点:

在电平触发方式下,CPU 响应中断时,不能自动清除IE0 标志。也就是

说,IE0 状态完全由INT0 状态决定。所以,在中断返回前必须撤除

INT0 引脚的低电平。

在边沿触发方式下,CPU 响应中断时,能由硬件自动清除IE0 标志。4、定时/计数器工作于定时和计数方式时有何异同点?

答:定时/计数器工作在定时模式时,加 1 计数器是对内部机器周期计数,计数值乘以机器周期就是定时时间。工作在计数器模式时,外部事件计数

脉冲由T0(P3.4)或T1(P3.5)引脚输入到计数器。

5、定时/计数器的4 种工作方式各有何特点?

答:定时/计数器的四种工作方式的特点:

方式0:13 位定时/计数器。因为只有13 位有效,所以计数范围为

1~8192

方式1:16 位定时/计数器。计数范围为1~65535

方式2:8 位自动重装定时/计数器。TH0 为8 位初值寄存器,当TL0

计满溢出时,由硬件使TF0 置1,向CPU 发出中断请求,并将TH0

中的计数初值自动送入TL0。TL0 从初值重新进行加1 计数。周而复

始,直至TR0=0 才会停止。这样就省去了用户软件中重装常数的程

序,特别适合于用作较精确的脉冲信号发生器。

方式3:T0 分成两个独立的8 位定时/计数器;T2 在此方式停止计数。

6、要求定时/计数器的运行控制完全由TR1、TR0 确定和完全由INT 0 、

INT1高低电平控制时,其初始化编程应作何处理?

答:定时/计数器的运行完全由TR0 和TR1 控制的初始化程序如下:MOV TOMD,#044H ;GATE=0,模式为定时,工作方式 2 或者MOV TOMD,#O66H ;GATE=0,模式为计数,工作方式 2

等等。

定时/计数器的运行完全由INT0 和INT1 控制的初始化程序如下:

MOV TOMD,#0AAH ;GATE=1,模式为定时,工作方式2

SETB TR0

SETB TR1 ;消除TR0、TR1 的控制,定时/计数器的运行完全由INT0 和INT1 控制

或者

MOV TOMD,#0EEH ;GATE=1,模式为计数,工作方式2

SETB TR0

SETB TR1 等等

7、当定时/计数器T0 用作方式3 时,定时/计数器T1 可以工作在何种方式下?

如何控制T1 的开启和关闭?

答:当定时/计数器T0 用作方式3 时,定时/计数器T1 可以工作在方式0,方式 1 或方式 3 下。若要关闭T1,只需将T2 设为方式 3 即可。

8、利用定时/计数器T0 从P1.0 输出周期为1s,脉冲为20ms 的正脉冲信号,

晶振12MHz。试设计程序。

答:设计程序如下:

ORG 0000H

SJMP BOOT

ORG 000BH

LJMP ET0_0

BOOT:MOV TMOD,#01H ;置T0 为定时方式1

MOV TL0,#0DFH

MOV TH0,#0B1H ;X=65535-20000 , 延时20ms,N=20000

SETB P1.0

SETB TR0

SETB EA

SETB ET0

HERE:NOP

SJMP HERE

相关文档
最新文档