AT89S51中断系统结构


    AT89S51的中断系统结构示意图如下图所示。由图可见,AT89S51的中断系统有5个中断请求源(简称中断源),两个中断优先级,可实现两级中断服务程序嵌套。每一个中断源可以用软件独立地控制为允许中断或关中断状态,每一个中断源的中断优先级别均可用软件来设置。
850  
  中断请求源
  
  由上图可见,AT89S51中断系统共有5个中断请求源,它们是:
  
  (1)INTO:外部中断请求0,中断请求信号由INTO(的反)引脚输入,中断请求标志为IEO。
  
  (2)INT1:外部中断请求1,中断请求信号由INT1(的反)引脚输入,中断请求标志为IE1。
  
  (3)定时器/计数器TO计数溢出发出的中断请求,中断请求标志为TFO。
  
  (4)定时器/计数器Tl计数溢出发出的中断请求,中断请求标志为TF1。
  
  (5)串行口中断请求,中断请求标志为发送中断TI或接收中断RI。
  
  中断请求标志寄存器
  
  5个中断请求源的中断请求标志分别由特殊功能寄存器TCON和SCON的相应位锁存(如上图所示)。
  
  1.TCON寄存器
  
  TCON为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。该寄存器中既包括了定时器/计数器TO和Tl的溢出中断请求标志位TFO和TF1,也包括了两个外部中断请求的标志位IE1与IEO,此外还包括了两个外部中断请求源的中断触发方式选择位。特殊功能寄存器TCON的格式如下图所示。
  
  TCON寄存器中与中断系统有关的各标志位的功能如下:
  860
  (1) TF1:片内定时器/计数器Tl的溢出中断请求标志位。
  
  当启动Tl计数后,定时器/计数器Tl从初值开始加1计数,当最高位产生溢出时,由硬件使TF1置l,向CPU申请中断。CPU响应TF1中断时,TF1标志由硬件自动清0,TF1也可由软件清0。
  
  (2) TFO:片内定时器/计数器TO的溢出中断请求标志位,功能与TF1类似。
  
  (3) IEl:外部中断请求1的中断请求标志位。
  
  (4) IEO:外部中断请求O的中断请求标志位,其功能与IE1类似。
  
  (5) IT1:选择外部中断请求1为跳沿触发方式还是触发方式。
  
  ITl=0,为电平触发方式,加到引脚INT1(的反)上的外部中断请求输入信号为低电平有效,并把IE1置1。转向中断服务程序时,则由硬件自动把IE1清0。
  
  ITl=1,为跳沿触发方式,加到引脚INT1(的反)上的外部中断请求输入信号电平从高到低的负跳变有效,并把IE1置l。转向中断服务程序时,则由硬件自动把IE1清0。
  
  (6) ITO:选择外部中断请求0为跳沿触发方式还是电平触发方式,其意义与IT1类似。
  
  当AT89S51复位后,TCON被清0,5个中断源的中断请求标志均为O。
  
  TR1(D6位)、TRO(D4位)这2位与中断系统无关,仅与定时器/计数器Tl和TO有关。
  
  2.SCON寄存器
  
  SCON为串行口控制寄存器,字节地址为98H,可位寻址。SCON的低2位锁存串行口的发送中断和接收中断的中断请求标志TI和RI,其格式如下图所示。
  861
  SCON中各标志位的功能如下:
  
  (1) TI:串行口的发送中断请求标志位。CPU将一个字节的数据写入串行口的发送SBUF时,就启动1帧串行数据的发送,每发送完1帧串行数据后,硬件使TI自动置1。CPU响应串行口发送中断时,并不清除TI中断请求标志,TI标志必须在中断服务程序中用指令对其清O。
  
  (2) RI:串行口的接收中断请求标志位。在串行口接收完一个串行数据帧,硬件自动使RI中断请求标志置1。CPU在响应串行口接收中断时,RI标志并不清0,必须在中断服务程序中用指令对RI清O。