51单片机知识点梳理——中断

参考文章1
参考文章2(中断寄存器部分)
89C51的中断系统有5个中断源:外部中断0、定时器0、外部中断1、定时器1、串口中断(优先级依次递减);2个中断优先级:高优先级、低优先级。
89C51中断系统.png

  • 中断相关寄存器

    • 中断寄存器IE
      中断相关寄存器IE.jpg
      EA:中断总控制位。EA=1,CPU开放中断;EA=0,CPU禁止所有中断。
      ES:串行口中断控制位。ES=1,允许串行口中断;ES=0,屏蔽串行口中断。
      ET1:定时/计数器T1中断控制位。ET1=1,允许T1中断;ET1=0,禁止T1中断。
      EX1:外中断1中断控制位,EX1=1,允许外中断1中断;EX1=0,禁止外中断1中断。
      ET0:定时/计数器T0中断控制位。ET0=1,允许T0中断;ET0=0,禁止T0中断。
      EX0:外中断0中断控制位,EX0=1,允许外中断0中断;EX0=0,禁止外中断0中断。

    • 中断优先级控制寄存器IP
      中断优先级控制寄存器IP.jpg
      PS:串行口中断口优先级控制位。PS=1,串行口中断声明为高优先级中断;PS=0,串行口定义为低优先级中断。
      PT1:定时器1优先级控制位。PT1=1,声明定时器1为高优先级中断;PT1=0定义定时器1为低优先级中断。
      PX1:外中断1优先级控制位。PT1=1,声明外中断1为高优先级中断;PX1=0,定义外中断1为低优先级中断。
      PT0:定时器0优先级控制位。PT1=1,声明定时器0为高优先级中断;PT1=0,定义定时器0为低优先级中断。
      PX0:外中断0优先级控制位。PT1=1,声明外中断0为高优先级中断;PX1=0,定义外中断0为低优先级中断。

    • 定时器控制寄存器TCON
      定时器控制寄存器TCON.jpg
      其中,TF1、TR1、TF0和TR0位用于控制定时器/计数器;IE1、IT1、IE0和IT0位用于控制中断系统。
      TF1:定时器1溢出标志位。当定时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。 
      TR1:定时器1运行控制位。当GATE=1,且INT1为高电平时,TR1置“1”启动定时器1;当GATE=0,TR1置“1”启动定时器1。由软件清“0”关闭定时器1。
      TF0:定时器0溢出标志。其功能及操作情况同TF1。    
      TR0:定时器0运行控制位。其功能及操作情况同TR1。
      IE1:外部边沿触发中断1请求标志。其功能和操作类似于TF0。
      IT1:外部中断1类型控制位。通过软件设置或清除,用于控制外中断的触发信号类型。IT1=1,边沿触发。IT=0是电平触发。
      IE0:外部边沿触发中断0请求标志。其功能和操作类似于IE1。
      IT0:外部中断0类型控制位。通过软件设置或清除,用于控制外中断的触发信号类型。其功能和操作类似于IE1。

    • 定时器控制寄存器TMOD
      定时器控制寄存器TMOD.jpg
      GATE :定时操作开关控制位。若GATE=1,只有当INT0或INT1引脚为高电平,并且TCON中的TR0或TR1控制位为1时,计时/计数器0或1才开始工作。若GATE=0,则只要将TR0或TR1控制位设为1,计时/计数器0或1就开始工作。
      C/T :定时器或计数器功能的选择位。C/T=1时为计数器,通过外部引脚T0或T1输入计数脉冲。C/T=0时为定时器,由内部系统时钟提供计时工作脉冲。
      M1 、M0:T0、T1工作模式选择位
      TMOD工作模式选择.jpg

    • 串行通信控制寄存器SCON
      串行通信控制寄存器SCON.jpg
      SM0、SM1:串行口工作方式控制位

      串行口工作方式.png

      SM2:多机通信控制位。 多机通信工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃;当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。工作于方式0时,SM2必须为0。
      REN:允许接收位。REN用于控制数据接收的允许和禁止。REN=1时,允许接收;REN=0时,禁止接收。
      TB8:发送接收数据位8。在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。
      RB8:接收数据位8。在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。
      TI:发送中断标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。
      RI:接收中断标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。

  • 中断源
    中断源.png
  • 中断函数
void int0 () interrupt 0 using 1  //int0为函数名称,() interrupt为固定格式,0位中断号,using 1是指函数具体使用哪一组寄存器(可不写)。
{
   do anything that you want
}
  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值