中断执行流程
5个中断请求源
中断请求标志寄存器
TCON寄存器–定时器/计数器控制寄存器
定时器/计数器的控制寄存器,字节地址为88H。可位寻址
寄存器地址88H,位寻址8FH~88H
位地址 | 8F | 8E | 8D | 8C | 8B | 8A | 89 | 88 |
---|---|---|---|---|---|---|---|---|
位符号 | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
TCON各位功能如下:
- TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1。
当启动T0/T1计数后,T0/T1从初值开始加1计数,当计数计满产生溢出时,由硬件使TF0/TF1置1,并向CPU申请中断,CPU相应中断后,该标志位由硬件自动清0
当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。
- TR0(TR1)——定时器运行控制位
当TR0(TR1)=0 停止定时器/计数器工
当TR0(TR1)=1 启动定时器/计数器工作
TR1,TR0与中断系统无关,仅与定时器/计数器T1、T0有关
- IE0(IE1)–外部中断请求0(1)的中断请求标志位。
IT1 = 0,在每个机器周期对INT1引脚进行采样,若为低电平,则IE1 = 1,否则IE1 = 0
IT1 = 1,当某一个机器周期采样到 INT1引脚从高电平跳变为低电平,IE1 = 1,此时标识外部中断0正在向CPU申请中断,CPU响应中断转向中断服务程序后,由硬件将IE1清0
- IT0(IT1)——外部中断请求信号方式控制位
当IT0(IT1)=1 跳沿方式(高到低的负跳变有效)
当IT0(IT1)=0 电平方式(低电平有效)此位由软件置1或清0。
SCON寄存器–串行口寄存器
串行口寄存器,字节地址为98H,可位寻址
SCON有关位功能如下:
**RI:**接收中断标志位,数据接收结束时,CPU将一个字节的数据写入串行口的发送缓冲器SBUF,就启动一帧串行数据的发送。硬件会使标志位会自动置1,需要通过程序将其置0
**TI:**发送中断标志位,数据发送结束时,标志位会自动置1,需要通过程序将其置0
IE寄存器–中断允许寄存器
中断允许寄存器,IE的字节地址为A8H,可位寻址
IE中各位的功能如下:(0为禁止,1为允许)
- **EA:**中断允许总开关控制位
- ET2:定时器/计数器T2的中断允许位
- **ES: **串行口中断允许位
- **ET1:**定时器/计数器T1的溢出中断允许位
- **ET0:**定时器/计数器T0的溢出中断允许位
- **EX1:**外部中断1中断允许位
- **EX0:**外部中断0中断允许位
EA为中断总开关,使用任何一个中断源都必须使EA置1,
IP寄存器–中断优先级寄存器
中断优先级寄存器,字节地址B8H,可位寻址
IP中各位的功能如下:(0为低级,1为高级)
- PT2:定时器T2的中断优先级控制位
- **PS:**串行口中断优先级控制位
- PT1:定时器T1的中断优先级控制位
- PT0:定时器T0的中断优先级控制位
- **PX1:**外部中断1中断优先级控制位
- **PX0:**外部中断0的中断优先级控制位