以下内容参考郭天祥的书籍:

esp01 寄存器_置位

esp01 寄存器_置位_02

EA:全局中断允许位,要想打开任何中断,EA都必须为1.然后再允许某个特定的中断。
ES:串行口中断允许。ES=1时,串口接收或者发送完成数据以后会引起中断(TI=1,或者RI=1)
ET1:定时计数器1中断允许。ET1=1时,当定时计数器1计数满,溢出后引起中断,可在中断函数中处理定时器。
EX1:外部中断1允许位。EX=1时,外部条边沿(或者电平)中断信号来后,会引起外部中断,可在外部中断函数中处理事件。
ET0/EX0功能跟上面一样,只是换了个定时器或者外部中断。

 

esp01 寄存器_置位_03

esp01 寄存器_高优先级中断_04

PS串行口中断优先级控制位。PS=1设定串行口为高优先级中断;PS=0为低优先级中断。 

PT1T1中断优先级控制位。PT1=1设定定时器T1为高优先级中断;PT1=0为低优先级中断。

PX1外部中断1优先级控制位。PX1=1设定定时器外部中断1为高优先级中断;PX1=0为低优先级中断。

PT0T0中断优先级控制位。PT0=1设定定时器T0为高优先级中断;PT0=0为低优先级中断。

PX0外部中断0优先级控制位。PX0=1设定定时器外部中断0为高优先级中断;PX0=0为低优先级中断。

例:设有如下要求,将T0、外中断1设为高优先级,其它为低优先级,求IP的值。 

IP的首3位没用,可任意取值,设为000,后面根据要求写就可以了因此,最终,IP的值就是06H。

在上例中,如果5个中断请求同时发生,求中断响应的次序。 

响应次序为:定时器0->外中断1->外中断0->实时器1->串行中断。

esp01 寄存器_置位_05

esp01 寄存器_高优先级中断_06

esp01 寄存器_esp01 寄存器_07

  其中低四位定义定时器/计数器T0,高四位定义定时器/计数器T1,各位的说明:
  Ⅰ,GATE——门控制。
  ●GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。
  当INT0引脚为高电平时TR0置位,启动定时器T0;
  当INT1引脚为高电平时TR1置位,启动定时器T1。
  ●GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。
  Ⅱ,C/T——功能选择位
  C/T=0时为定时功能,C/T=1时为计数功能。
  置位时选择计数功能,清零时选择定时功能。
  Ⅲ,M0、M1——方式选择功能
  由于有2位,因此有4种工作方式
================================================================= 
  M1M0 工作方式 计数器模式 TMOD(设置定时器模式)                                                                 ==
  0 0 方式0 13位计数器 TMOD=0x00                                ==
  0 1 方式1 16位计数器 TMOD=0x01                                ==
  1 0 方式2 自动重装8位计数器 TMOD=0x02                            ==
  1 1 方式3 T0分为2个8位独立计数器,T1为无中断重装8位计数器 TMOD=0x03            ==

================================================================= 

esp01 寄存器_esp01 寄存器_08

=============================================================================================

TF1       TCON.7        8FH       定时器1溢出标志;当定时器/计数器发生溢出时由硬件置位;该位  可以用软件清零,当CPU转向中断服务程序时该位被自动清零,要注意的是,                                                                             如果使用定时器中断,那么改位不用人为操作,但是是用软件的话,查询到该位置1后,就需要用软件清0.
                                                                                         
TR1       TCON.6        8EH      定时器1运行控制,由软件置位和清零,分别可以启动和停止定时/计数器1,当GATE=1,且INT1=1时,TR1=1启动定时器。当GATE=0,                                                   TR1=1启动定时器。   

                                                                                           
TF0        TCON.5       8DH       定时器0标志
TR0        TCON.4       8CH       定时器0运行控制
IE1         TCON.3       8BH       外部中断1的中断标志,当探测到外部中断1时由硬件置位,当转入中断服务    程序后用软件清零
                                                                                        
IT1         TCON.2       8AH       外部中断1控制位,其置位和清零由软件设置,分别对应着外部中断1的下降沿触发和低电平触发

 

当IT1=1,为电平触发方式,每个机器周期的S5P2采样INT1引脚,若INT1脚为低电平,则置1,否则IE1清0。

当IT1=0,INT1为跳变延触发方式,当第一个周期采样到INT1位低电平时,则IE1=1,表示外部中断1正在向CPU申请中断。当CPU响应中断,转向中断服务程序时,该位由硬件清0.
                                                                                            
IE0         TCON.1       89H       外部中断0的中断标志
IT0         TCON.0       88H       外部中断0控制位

=============================================================================================

可以通过TMOD寄存器中的M1M0来进行工作方式的选择

esp01 寄存器_高优先级中断_09