微机原理及单片机应用技术第8章 80C51的中断与定时计数器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 ┆ ┆
• 外中断0:0003H • 定时器0:000BH • 外中断1:0013H • 定时器1:001BH • 串口 : 0023H
8.2 80C51单片机中断处理过程
8.2.1 中断响应条件和时间 中断响应条件
有中断请求 相应的中断允许位为1 CPU开中断(即EA=1)
遇下面情况之一将不被响应(此间中断条件失效,中断丢失)
正在处理同级或高级中断 当前查询周期不是所执行指令的最后一个机器周期 正在执行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
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
2021/1/15
7
中断优先级遵循的原则
几个中断同时申请,先响应高级的中断 正进行的中断服务,同级或低级中断不能对其 中断,但可以被高级中断所中断。
为此,中断系统内设有对应高、低2个优先级状 态触发器(用户不能寻址)。
状态触发器的复位由中断返回指令RETI控制。
2021/1/15
8
中断服务程序入口地址和优先级
注意
不能用RET代替RETI 中断服务程序中PUSH和POP必须成对使用
2021/1/15
14
P1.7
D7
┆
┆
┆
┆
P1.0
D0
80C51
P3.0
CLK
VCC D
74LS74
程序如下:
INT0
Q
CLK
ORG 0000H
START:LJMP MAIN ;跳转到主程序
ORG 0003H
LJMP INTO ;转到中断服务程序
中断 ε
有效
标志查询
保护断点,长调用至入口
中断服务
中断响应至少需要3个完整的机器周期(3~8个)!
受阻时要附加3~5个机器周期(无同级或高级中断正进行)
查询周期不是当前指令的最后机器周期(如MUL,+3) 查询周期恰逢RETI类指令(且后跟MUL指令+5)
2021/1/15
11
8.2.2 中断响应过程
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)
微机原理及单片机应用技术第8章 80C51的中断与定时计数器
8.1 80C51单片机的中断系统
5.1.1 80C51中断系统的结构
中断的概念
与子程序调用相似 但有本质的区别
CPU进行工作A时发生了事件B,请求CPU马上处理 CPU暂时中断当前工作A,转去处理事件B 事件B处理完后,回到工作A被中断的地方继续处理A工作
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
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 ……
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
主程序A 断点
……
响应
返回
RETI 中断服务程序B
中断源 中断请求 中断服务 中断返回 中断系统
2021/1/15
2
注意 中断与子程序调用的不同点
● 子程序调用是固定的,专用指令,位置固定。 ● 中断的执行是随机的,没有调用指令,任何位置。
中断工作方式的优点: 1)外设与CPU可并行工作
CPU与多个外设同时工作,互不干扰 2)实现了实时处理、实时控制
ORG 000BH ;没有用定时器0中断,在此放一条RETI ;万一 “不小心”产生了中断,
RETI ; 也不会有太大的后果。
ORG 0030H MAIN:…… ;主程序开始
8.2.3 中断返回
中断服务程序最后指令必须是RETI,其功能:
将断点从堆栈弹送PC,CPU从原断点继续执行 将相应优先级状态触发器清0,恢复原来工作状态
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、串口。
CPU响应中断过程
将相应优先级状态触发器置1(阻断后来同级或低级中断 ) 执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC ) 执行中断服务程序
编写中断服务程序注意
中断服务程序入口存放指令LJMP或AJMP 现场保护与现场恢复
2021/1/15
12
ORG 0000H LJMP MAIN
ORG 0003H LJMP INT0 ;转外中断0