微机原理及单片机应用技术第8章 80C51的中断与定时计数器
合集下载
80c51单片机定时器计数器工作原理

80c51单片机定时器计数器工作原理80C51单片机是一种常用的微控制器,其定时器/计数器(Timer/Counter)是实现定时和计数功能的重要组件。
以下简要介绍80C51单片机定时器/计数器的工作原理:1. 结构:定时器/计数器由一个16位的加法器构成,可以自动加0xFFFF(即65535)。
定时器/计数器的输入时钟可以来自系统时钟或外部时钟源。
2. 工作模式:定时模式:当定时器/计数器的输入时钟源驱动加法器不断计数时,可以在达到一定时间后产生中断或产生其他操作。
计数模式:当外部事件(如电平变化)发生时,定时器/计数器的输入引脚可以接收信号,使加法器产生一个增量,从而计数外部事件发生的次数。
3. 定时常数:在定时模式下,定时常数(即定时时间)由预分频器和定时器/计数器的初值共同决定。
例如,如果预分频器设置为1,定时器/计数器的初值为X,那么实际的定时时间 = (65535 - X) 预分频系数输入时钟周期。
在计数模式下,定时常数由外部事件发生的时间间隔决定。
4. 溢出和中断:当加法器达到65535(即0xFFFF)时,会产生溢出,并触发中断或其他操作。
中断处理程序可以用于执行特定的任务或重置定时器/计数器的值。
5. 控制寄存器:定时器/计数器的操作可以通过设置相关的控制寄存器来控制,如启动/停止定时器、设置预分频系数等。
6. 应用:定时器/计数器在许多应用中都很有用,如时间延迟、频率测量、事件计数等。
为了充分利用80C51单片机的定时器/计数器功能,通常需要根据实际应用需求配置和控制相应的寄存器,并编写适当的软件来处理定时器和计数器的操作。
中断系统与定时计数器基本概念与应用

中断系统和定时计数器基 本概念和应用
5.1.2 中断源和中断控制寄存器
⒈ 中断源
中断源是指能发出中断请求,引起中断的 装置或事件。
80C51单片机的中断源共有5个,其中2个为 外部中断源,3个为内部中断源:
⑴ INT0:外部中断0,中断请求信号由P3.2输入。 ⑵ INT1:外部中断1,中断请求信号由P3.3输入。 ⑶ T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。 ⑷ T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。 ⑸ 串行中断:包括串行接收中断RI和串行发送中断TI。
5.1.1 中断概述
⒈ 什么叫中断?
CPU暂时中止其正在执行的程序,转去执行请求中断的 那个外设或事件的服务程序,等处理完毕后再返回执行 原来中止的程序, 叫做中断。
⒉ 为什么要设置中断?
⑴ 提高CPU工作效率 ⑵ 具有实时处理功能 ⑶ 具有故障处理功能 ⑷ 实现分时操作
中断功能强弱是计算机性能优劣
功能
D7 D6 D5 —— — —— —
—— —
D4 D3 D2 ——— ———
———
D1 TI 99H 串行发送 中断标志
D0 RI 98H 串行接收 中断标志
① TI —— 串行口发送中断请求标志 ② RI —— 串行口接收中断请求标志
中断系统和定时计数器基 本概念和应用
⑵ 中断允许控制寄存器IE
的重要标志
中断系统和定时计数器基 本概念和应用
中断涉及的几个环节 ①中断源 ②中断申请 ③开放中断 ④保护现场 ⑤中断服务 ⑥恢复现场 ⑦中断返回
中断系统和定时计数器基 本概念和应用
CPU识别中断申请的依据: CPU 在每个机器周期的S5P2期间,会自动
5.1.2 中断源和中断控制寄存器
⒈ 中断源
中断源是指能发出中断请求,引起中断的 装置或事件。
80C51单片机的中断源共有5个,其中2个为 外部中断源,3个为内部中断源:
⑴ INT0:外部中断0,中断请求信号由P3.2输入。 ⑵ INT1:外部中断1,中断请求信号由P3.3输入。 ⑶ T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。 ⑷ T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。 ⑸ 串行中断:包括串行接收中断RI和串行发送中断TI。
5.1.1 中断概述
⒈ 什么叫中断?
CPU暂时中止其正在执行的程序,转去执行请求中断的 那个外设或事件的服务程序,等处理完毕后再返回执行 原来中止的程序, 叫做中断。
⒉ 为什么要设置中断?
⑴ 提高CPU工作效率 ⑵ 具有实时处理功能 ⑶ 具有故障处理功能 ⑷ 实现分时操作
中断功能强弱是计算机性能优劣
功能
D7 D6 D5 —— — —— —
—— —
D4 D3 D2 ——— ———
———
D1 TI 99H 串行发送 中断标志
D0 RI 98H 串行接收 中断标志
① TI —— 串行口发送中断请求标志 ② RI —— 串行口接收中断请求标志
中断系统和定时计数器基 本概念和应用
⑵ 中断允许控制寄存器IE
的重要标志
中断系统和定时计数器基 本概念和应用
中断涉及的几个环节 ①中断源 ②中断申请 ③开放中断 ④保护现场 ⑤中断服务 ⑥恢复现场 ⑦中断返回
中断系统和定时计数器基 本概念和应用
CPU识别中断申请的依据: CPU 在每个机器周期的S5P2期间,会自动
80C51的定时计数器原理与应用

第十五页,编辑于星期三:四点 十二分。
ORG 0000H
LJMP MAIN ORG 000BH
;跳转到主程序
;T0的中断入口地址
LJMP DVT0
;转向中断服务程序
ORG 0100H
MAIN:MOV TMOD,#01H ;置T0工作于方式1
MOV TH0,#0D8H
;装入计数初值
MOV TL0,#0F0H
方式,低四位用于T0,高四位用于T1。其格式如下:
第五页,编辑于星期三:四点 十二分。
GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或 TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软 件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能 启动定时/计数器工作。即此时定时器的启动条件,加上了或引脚
中断引脚上正脉冲的宽度。
第九页,编辑于星期三:四点 十二分。
二、方式1
方式1的计数位数是16位,由TL0作为低8位、TH0作 为高8位,组成了16位加1计数器 。
TCON
申请 中断
TF1 D7
TR1
溢出
TF0
TH0 TL0
TR0
8位 8位
D0
1 0 &
≥1
T0引脚
机器周期 1
INT0引脚
TMOD
1 M0 D0 0 M1
5、定时/计数器的4种工作方式各有何特点? 6、要求定时/计数器的运行控制完全由TR1、TR0确定和完全由、 高低电平控制时,其初始化编程应作何处理?
第十七页,编辑于星期三:四点 十二分。
7、当定时/计数器T0用作方式3时,定时/计数器T1可以工作在何种
方式下?如何控制T1的开启和关闭?
ORG 0000H
LJMP MAIN ORG 000BH
;跳转到主程序
;T0的中断入口地址
LJMP DVT0
;转向中断服务程序
ORG 0100H
MAIN:MOV TMOD,#01H ;置T0工作于方式1
MOV TH0,#0D8H
;装入计数初值
MOV TL0,#0F0H
方式,低四位用于T0,高四位用于T1。其格式如下:
第五页,编辑于星期三:四点 十二分。
GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或 TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软 件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能 启动定时/计数器工作。即此时定时器的启动条件,加上了或引脚
中断引脚上正脉冲的宽度。
第九页,编辑于星期三:四点 十二分。
二、方式1
方式1的计数位数是16位,由TL0作为低8位、TH0作 为高8位,组成了16位加1计数器 。
TCON
申请 中断
TF1 D7
TR1
溢出
TF0
TH0 TL0
TR0
8位 8位
D0
1 0 &
≥1
T0引脚
机器周期 1
INT0引脚
TMOD
1 M0 D0 0 M1
5、定时/计数器的4种工作方式各有何特点? 6、要求定时/计数器的运行控制完全由TR1、TR0确定和完全由、 高低电平控制时,其初始化编程应作何处理?
第十七页,编辑于星期三:四点 十二分。
7、当定时/计数器T0用作方式3时,定时/计数器T1可以工作在何种
方式下?如何控制T1的开启和关闭?
80C51中断系统和定时器堪称经典必看

两个16位可编程的定时/计数器:T0和T1,都能定时和对外部 事件进行计数。
此外,T1还可以作为串行接口的波特率发生器。 4. 如何理解定时和计数的概念?
单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数; 定时器:是对单片机内部的标准时钟(fosc/12)脉冲进行计数。
4.2 定时器/计数器
4.1 中断系统
4.1.3 中断控制 1.中断允许寄存器IE
例:同时打开外部中断0和串行口中断,可设置为: 方法1:MOV IE,#10010001B 方法2:SETB EA
SETB ES SETB EX0 方法3:ORL IE,#10010001B
4.1 中断系统
4.1.3 中断控制 2.中断优先级寄存器IP 功能:
TMOD和TCON,定时/计数器T0、T1就由它们来控制: TMOD用于设置工作方式; TCON用于控制其启动、停止和中断申请。
1.定时器工作方式寄存器TMOD TMOD用于设置T0和T1的工作方式,字节地址为89H,不能按
位寻址。其格式和各位的含义如下:
4.2 定时器/计数器
4.2.4 定时器/计数器控制
理解中断概念能正确描绘单片机中断响应过程熟记80c51单片机的5个中断源及其中断入口地址能按要求正确设置特殊功能寄存器ieiptconscon和tmod熟悉中断优先控制的方法能正确描绘定时计数器的4种工作方式重点掌握方式1方式2的应用学会定时计数初值的计算能读懂教材中的控制实例学会编写同等难度的中断定时计数程序第2章单片机的指令系统第四章80c51中断系统和定时器4
4.2 定时器/计数器
4.2 定时器/计数器
4.2.4 定时器/计数器控制
4.2 定时器/计数器
此外,T1还可以作为串行接口的波特率发生器。 4. 如何理解定时和计数的概念?
单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数; 定时器:是对单片机内部的标准时钟(fosc/12)脉冲进行计数。
4.2 定时器/计数器
4.1 中断系统
4.1.3 中断控制 1.中断允许寄存器IE
例:同时打开外部中断0和串行口中断,可设置为: 方法1:MOV IE,#10010001B 方法2:SETB EA
SETB ES SETB EX0 方法3:ORL IE,#10010001B
4.1 中断系统
4.1.3 中断控制 2.中断优先级寄存器IP 功能:
TMOD和TCON,定时/计数器T0、T1就由它们来控制: TMOD用于设置工作方式; TCON用于控制其启动、停止和中断申请。
1.定时器工作方式寄存器TMOD TMOD用于设置T0和T1的工作方式,字节地址为89H,不能按
位寻址。其格式和各位的含义如下:
4.2 定时器/计数器
4.2.4 定时器/计数器控制
理解中断概念能正确描绘单片机中断响应过程熟记80c51单片机的5个中断源及其中断入口地址能按要求正确设置特殊功能寄存器ieiptconscon和tmod熟悉中断优先控制的方法能正确描绘定时计数器的4种工作方式重点掌握方式1方式2的应用学会定时计数初值的计算能读懂教材中的控制实例学会编写同等难度的中断定时计数程序第2章单片机的指令系统第四章80c51中断系统和定时器4
4.2 定时器/计数器
4.2 定时器/计数器
4.2.4 定时器/计数器控制
4.2 定时器/计数器
第5章80C51的中断系统及定时计数器(2)定时计数器概要

ORG LJMP ORG LJMP ORG MAIN:MOV MOV MOV SETB SETB SETB SJMP
2018/11/2
数数源程序的 数数中断的四 四要素 要素
0000H MAIN 000BH DVT0 0100H TMOD,#01H ;置T0方式1 TH0,#0D8H;装入计数初值 TL0,#0F0H ET0 ;T0开中断 EA ;CPU开中断 TR0 ;启动T0 $ ;等待中断
求计数初值X: N=24 X=256-24=232=E8H 应将E8H送入TH0和TL0中
2018/11/2
20
主程序
ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0100H 中断服务程序 MAIN:MOV TMOD,#06H ;置T0计数方式2 MOV TH0,#0E8H;装入计数初值 DVT0:SETB P1.0 MOV TL0,#0E8H NOP SETB ET0 ;T0开中断 NOP SETB EA ;CPU开中断 CLR P1.0 SETB TR0 ;启动T0 RETI SJMP $ ;等待中断 END
2018/11/2 21
定时应用
系统时钟为6MHz时,各种方式下的最长定时的计算: 由最长定时=2n×Tcp
,而Tcp=
2s
方式0最长可定时16.384ms; 方式1最长可定时131.072ms; 方式2最长可定时512s。 晶振为12 MHz时,Tcy为1µS。最长可定时65ms 定时时间较小时(小于65ms)。可直接采用方式1完成定 时任务。 两种方式对溢出作出反应:查询、中断
计数范围:1~65536
计数初值要分成2个字节分别送入TH0、TL0
13
2018/11/2
2018/11/2
数数源程序的 数数中断的四 四要素 要素
0000H MAIN 000BH DVT0 0100H TMOD,#01H ;置T0方式1 TH0,#0D8H;装入计数初值 TL0,#0F0H ET0 ;T0开中断 EA ;CPU开中断 TR0 ;启动T0 $ ;等待中断
求计数初值X: N=24 X=256-24=232=E8H 应将E8H送入TH0和TL0中
2018/11/2
20
主程序
ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0100H 中断服务程序 MAIN:MOV TMOD,#06H ;置T0计数方式2 MOV TH0,#0E8H;装入计数初值 DVT0:SETB P1.0 MOV TL0,#0E8H NOP SETB ET0 ;T0开中断 NOP SETB EA ;CPU开中断 CLR P1.0 SETB TR0 ;启动T0 RETI SJMP $ ;等待中断 END
2018/11/2 21
定时应用
系统时钟为6MHz时,各种方式下的最长定时的计算: 由最长定时=2n×Tcp
,而Tcp=
2s
方式0最长可定时16.384ms; 方式1最长可定时131.072ms; 方式2最长可定时512s。 晶振为12 MHz时,Tcy为1µS。最长可定时65ms 定时时间较小时(小于65ms)。可直接采用方式1完成定 时任务。 两种方式对溢出作出反应:查询、中断
计数范围:1~65536
计数初值要分成2个字节分别送入TH0、TL0
13
2018/11/2
80C51单片机的中断与定时PPT

(b)外中断的两种信号触发方式(通过有关控制位定义) 电平方式:低电平有效 脉冲方式:脉冲下降沿有效,高低电平状态都应至少维持一个
机器周期。
(2)定时中断 定时中断是为满足定时或计数的需要设置的。80C51单片机
共有2个定时器/计数器中断源,即T0和T1。 定时器/计数器内部的计数结构对脉冲信号进行计数,当计
(c)ET0、ET1:定时器/计数器中断允许控制位 ET0、ET1=0,禁止定时(或计数)中断; ET0、ET1=1,允许定时(或计数)中断;
(d)ES:串行中断允许控制位 ES=0,禁止串行中断; ES=1,允许串行中断;
注意:
1)80C51单片机复位后(与I中E)断=控00制H,有即关中的断控系制统位处共于有禁5位止:状态
6单片机的中断与定时系统615中断请求的撤消中断响应后tcon或scon中的中断请求标志应及时清除否则就意味着中断请求依然存在弄不好就会造成中断的重复查询和响应因此必须在中断响应后及时清除中断请求信号即将中断请求标志位清0
第5章 80C51单片机的中断与定时
教学基本要求: (1)了解单片机系统有关中断的概念; (2)了解单片机定时器/计数器的功能; (3)熟悉与中断控制有关的控制寄存器的功能及用法; (4)熟悉与定时/计数控制有关的控制寄存器功能及用法; (5)掌握单片机中断系统的应用方法; (6)掌握单片机定时器/计数器的应用方法; 教学重点: (1)单片机中断系统的中断服务流程; (2)单片机定时器/计数器的工作方式0、2; 教学难点: (1)中断采样、中断查询、中断响应、中断撤消
对于电平方式的外中断请求,采样为高→IE0(IE1)→0, 为低→IE0(IE1)→1;
对于脉冲方式外中断请求,采样先高后低→IE0(IE1)→1 ;否则IE0(IE1)→0。
机器周期。
(2)定时中断 定时中断是为满足定时或计数的需要设置的。80C51单片机
共有2个定时器/计数器中断源,即T0和T1。 定时器/计数器内部的计数结构对脉冲信号进行计数,当计
(c)ET0、ET1:定时器/计数器中断允许控制位 ET0、ET1=0,禁止定时(或计数)中断; ET0、ET1=1,允许定时(或计数)中断;
(d)ES:串行中断允许控制位 ES=0,禁止串行中断; ES=1,允许串行中断;
注意:
1)80C51单片机复位后(与I中E)断=控00制H,有即关中的断控系制统位处共于有禁5位止:状态
6单片机的中断与定时系统615中断请求的撤消中断响应后tcon或scon中的中断请求标志应及时清除否则就意味着中断请求依然存在弄不好就会造成中断的重复查询和响应因此必须在中断响应后及时清除中断请求信号即将中断请求标志位清0
第5章 80C51单片机的中断与定时
教学基本要求: (1)了解单片机系统有关中断的概念; (2)了解单片机定时器/计数器的功能; (3)熟悉与中断控制有关的控制寄存器的功能及用法; (4)熟悉与定时/计数控制有关的控制寄存器功能及用法; (5)掌握单片机中断系统的应用方法; (6)掌握单片机定时器/计数器的应用方法; 教学重点: (1)单片机中断系统的中断服务流程; (2)单片机定时器/计数器的工作方式0、2; 教学难点: (1)中断采样、中断查询、中断响应、中断撤消
对于电平方式的外中断请求,采样为高→IE0(IE1)→0, 为低→IE0(IE1)→1;
对于脉冲方式外中断请求,采样先高后低→IE0(IE1)→1 ;否则IE0(IE1)→0。
80C51单片机的定时计数器

返回
2,模式1 :16位计数器模式(以T1为例).
启动控制 震荡器 1/12 C/T=0
T1 引脚 TR1 GATE INT1
C/T=1
16位加1计数器
TL1
TH1
(8位)
(8位)
TF1 中断
注:计数器在每个机器周期采样一次从T1引脚进入的外部计数脉冲,由于检 测到一次从高到低的负跳变需要两个机器周期,所以外部计数脉冲的频率应
T0 引脚 TR0 GATE INT0
Fosc/12 TR1
C/T=1
控制
TL0
TF0 中断
TH0
TF1 中断
模式3定时器T0的结构图
模式3时T0(TH0,TL0)及T1的各自特点: 1 TH0计数脉冲来自内部fosc,所以它只能处于”定时”方式; 2 TH0分别借用了定时器T1的TR1和TF1为自己服务,使TH0能象
设置TMOD 设置计数器初值
重装计数器初值
开中断 启动计数 主程序流程图
口线求反 RETI
中断处理子程序流程图
(1)主程序设计 初始化指令段 采用定时器中断方式工作。包括定时器初始化和中断系统初 始化,主要是对寄存器IP、IE、TCON、TMOD的相应位进行 正确的设置,并将计数初值送入定时器中。 其他工作程序 任意指令段,本例中用一条转至自身的短跳转指令来代替。 (2)中断服务子程序设计 中断服务子程序除了完成所要求的产生方波的工作之外,还 要注意将计数初值重新装入定时器。
小于fosc/24
对外部输入信号的要求,图中,Tcy为机器周期。
对外部计数输入信号的要求
13
3,模式2 : 8位自动重装初值模式
由TL1做计数器,TH1做初值寄存器, 工作前TL1,TH1分别预置相同的初值 TL1计数时, 当产生溢出置位TF1的同时, 将TH1中的初值自动重装入TL1。 TL1继续计数,此模式主要用于做串行口波特率发生器。
80C51的中断系统及定时计数器

80C51的中断系统有5个中断源(8052有6个),2个优 先级,可实现二级中断嵌套 。
中断源 外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI或TI)
2019/12/24
8
1、外部中断0(P3.2),可由IT0(TCON.0)选择其 为低电平有效还是下降沿有效。当CPU检测到P3.2 引脚上出现有效的中断信号时,中断标志 IE0(TCON.1)置1,向CPU申请中断。
5个中断源、2个优先级
TCON
IE
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
TI
≥1
SCON
ES 1
2019/12/24
23
IP
PX0 1 0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
编写中断服务程序注意
中断服务程序入口存放指令LJMP或AJMP 现场保护与现场恢复
2019/12/24
26
中断服务子程序: INITT0:PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中断源服务 POP PSW POP DPL POP DPH POP ACC RETI
2019/12/24
2019/12/24
9
4、TF1(TCON.7),片内定时/计数器T1溢出中 断请求标志。当定时/计数器T1发生溢出时,置位 TF1,并向CPU申请中断。
5、RI(SCON.0)或TI(SCON.1),串行口中断请 求标志。当串行口接收完一帧串行数据时置位RI 或当串行口发送完一帧串行数据时置位TI,向CPU 申请中断。
中断源 外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI或TI)
2019/12/24
8
1、外部中断0(P3.2),可由IT0(TCON.0)选择其 为低电平有效还是下降沿有效。当CPU检测到P3.2 引脚上出现有效的中断信号时,中断标志 IE0(TCON.1)置1,向CPU申请中断。
5个中断源、2个优先级
TCON
IE
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
TI
≥1
SCON
ES 1
2019/12/24
23
IP
PX0 1 0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
编写中断服务程序注意
中断服务程序入口存放指令LJMP或AJMP 现场保护与现场恢复
2019/12/24
26
中断服务子程序: INITT0:PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中断源服务 POP PSW POP DPL POP DPH POP ACC RETI
2019/12/24
2019/12/24
9
4、TF1(TCON.7),片内定时/计数器T1溢出中 断请求标志。当定时/计数器T1发生溢出时,置位 TF1,并向CPU申请中断。
5、RI(SCON.0)或TI(SCON.1),串行口中断请 求标志。当串行口接收完一帧串行数据时置位RI 或当串行口发送完一帧串行数据时置位TI,向CPU 申请中断。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主程序A 断点
……
响应
返回
RETI 中断服务程序B
中断源 中断请求 中断服务 中断返回 中断系统
2021/1/15
2
注意 中断与子程序调用的不同点
● 子程序调用是固定的,专用指令,位置固定。 ● 中断的执行是随机的,没有调用指令,任何位置。
中断工作方式的优点: 1)外设与CPU可并行工作
CPU与多个外设同时工作,互不干扰 2)实现了实时处理、实时控制
• 外中断0:0003H • 定时器0:000BH • 外中断1:0013H • 定时器1:001BH • 串口 : 0023H
8.2 80C51单片机中断处理过程
8.2.1 中断响应条件和时间 中断响应条件
有中断请求 相应的中断允许位为1 CPU开中断(即EA=1)
遇下面情况之一将不被响应(此间中断条件失效,中断丢失)
6
中断优先级控制
中断优先级由IP控制(1,高级;0,低级)
76543210
IP
PS PT1 PX1 PT0 PX0 字节地址:B8H
PX0:外中断0优先级 PT0:T0中断优先级 PX1:外中断1优先级
PT1:T1中断优先级 PS :串口中断优先级
同一优先级的自然顺序: 自高至低:INT0、TO、INT1、T1、串口。
2021/1/15
5
中断允许控制
中断源的开放和屏蔽由IE控制(1,开放;0,禁止)
76543210
IE EA
ES ET1 EX1 ET0 EX0 字节地址:A8H
EX0:外中断0允许 ET0:T0中断允许 EX1:外中断1允许
ET1:T1中断允许 ES :串口中断允许 EA :CPU中断允许
2021/1/15
NOP
NOP
SETB P3.0
MOV P1,#0FFH ;置P1口为输入
MOV A,P1
;输入数据
MOVX @DPTR,A ;存入数据存储器
INC DPTR
;修改数据指针,指向下一个单元
……
POP ACC
;恢复现场
POP PSW
RETI
8.2.4 中断程序举例
【例5-1】单外部中断源示例
P1.7 ┆ ┆
注意
不能用RET代替RETI 中断服务程序中PUSH和POP必须成对使用
2021/1/1514Fra bibliotekP1.7
D7
┆
┆
┆
┆
P1.0
D0
80C51
P3.0
CLK
VCC D
74LS74
程序如下:
INT0
Q
CLK
ORG 0000H
START:LJMP MAIN ;跳转到主程序
ORG 0003H
LJMP INTO ;转到中断服务程序
CPU响应中断过程
将相应优先级状态触发器置1(阻断后来同级或低级中断 ) 执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC ) 执行中断服务程序
编写中断服务程序注意
中断服务程序入口存放指令LJMP或AJMP 现场保护与现场恢复
2021/1/15
12
ORG 0000H LJMP MAIN
ORG 0003H LJMP INT0 ;转外中断0
正在处理同级或高级中断 当前查询周期不是所执行指令的最后一个机器周期 正在执行RETI或访问IE或IP 的指令
2021/1/15
10
中断响应时间
M1
M2
M3
M4
M5
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6
中断 ε
有效
标志查询
保护断点,长调用至入口
中断服务
中断响应至少需要3个完整的机器周期(3~8个)!
受阻时要附加3~5个机器周期(无同级或高级中断正进行)
查询周期不是当前指令的最后机器周期(如MUL,+3) 查询周期恰逢RETI类指令(且后跟MUL指令+5)
2021/1/15
11
8.2.2 中断响应过程
微机原理及单片机应用技术第8章 80C51的中断与定时计数器
8.1 80C51单片机的中断系统
5.1.1 80C51中断系统的结构
中断的概念
与子程序调用相似 但有本质的区别
CPU进行工作A时发生了事件B,请求CPU马上处理 CPU暂时中断当前工作A,转去处理事件B 事件B处理完后,回到工作A被中断的地方继续处理A工作
ORG 000BH ;没有用定时器0中断,在此放一条RETI ;万一 “不小心”产生了中断,
RETI ; 也不会有太大的后果。
ORG 0030H MAIN:…… ;主程序开始
8.2.3 中断返回
中断服务程序最后指令必须是RETI,其功能:
将断点从堆栈弹送PC,CPU从原断点继续执行 将相应优先级状态触发器清0,恢复原来工作状态
P1.0
80C51
P3.0
INT0
D7 ┆ ┆ D0
CLK
VCC D
74LS74
Q
CLK
主程序:
ORG 0000H START:LJMP MAIN
ORG 0003H LJMP INTO ORG 0030H MAIN:CLR IT0 ;电平 SETB EA SETB EX0 MOV DPTR,#1000H ……
ORG 0030H ;主程序
MAIN:CLR IT0 ;设为电平触发方式
SETB EA
; CPU开放中断
SETB EX0 ;允许Int0中断
MOV DPTR,#1000H ;设置数据区地址指针
ORG 0200H ; 中断服务程序
INT0:PUSH PSW
;保护现场
PUSH ACC
CLR P3.0
;由P3.0输出0
CPU能及时处理外部信息,如数据采集,监控 3)能及时处理随机故障
8.1.1 80C51中断系统的结构
5个中断源、2个优先级
TCON
IE
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
TI
≥1
2021/1/15
7
中断优先级遵循的原则
几个中断同时申请,先响应高级的中断 正进行的中断服务,同级或低级中断不能对其 中断,但可以被高级中断所中断。
为此,中断系统内设有对应高、低2个优先级状 态触发器(用户不能寻址)。
状态触发器的复位由中断返回指令RETI控制。
2021/1/15
8
中断服务程序入口地址和优先级
SCON
ES 1
IP
PX0 1 0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
2021/1/15
硬件查询
自
高
然
级
1
优
先
级 中断入口
中断源
自
低
0
然
级
优
先
级 中断入口
中断源
4
8.1.2 80C51的中断源
中断源
外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI或TI)