本文共 2016 字,大约阅读时间需要 6 分钟。
本节书摘来异步社区《51单片机应用开发从入门到精通》一书中的第2章,第2.7节,作者:张华杰 ,更多章节内容可以访问云栖社区“异步社区”公众号查看
51单片机应用开发从入门到精通
中断系统结构如图2-6所示,从图可见,中断控制的实质是对4个特殊功能寄存器TCON、SCON、IE和IP进行管理和控制。只要按照人们的要求对这些寄存器的相应位进行设置(存入0或1,一般设置1为开通),就能完成对中断的有效管理和控制。1.IE的格式及位的含义
寄存器IE的地址为A8H,作用是控制各中断源的开放与关闭。它实行两级控制,IE中有个总的控制位EA,当EA = 0时,屏蔽所有的中断请求;而当EA = 1时,CPU开放总中断。各个中断源的请求是否被开放,还要看IE中各个中断源自己的中断允许控制位的状态。IE的格式及各位的含义如图2-7所示。
EA:中断允许总控制位。EA = 0时,中断总禁止,关闭所有中断;EA = 1,中断总允许。中断总允许后各中断的禁止或允许则由中断源的中断允许控制位进行设置。它们之间的关系类似于电表控制盘上的总开关及各户的分开关一样。
EX0:外部中断0(INT0)允许控制位。EX0 = 0时,禁止外部中断0中断;EX0 = 1时,允许外部中断0中断。EX1:外部中断1(INT1)允许控制位,其功能与EX0类同。ET0:定时器/计数器T0的溢出中断允许控制位。ET0 = 0时,禁止定时器/计数器T0中断;ET0 = 1时,允许定时器/计数器T0中断。ET1:定时器/计数器T1的溢出中断允许控制位,其功能与ET0类同。ES:串行中断允许控制位。ES = 0时,禁止串行中断;ES = 1时,允许串行中断。2.IE的设置举例假如程序需要使用外部中断0(INT0),只要将寄存器IE的外部中断允许控制位和中断允许总控制位设置为1即可,可通过下面的语句来实现:MOV IE, #10000001B ;INT0中断开通```####2.7.2 中断优先级控制寄存器IP1.IP的格式及位的含义寄存器IP的地址为B8H,作用是控制中断的优先级,其格式及各位的含义如图2-8所示。PX0:外部中断0优先级设置位。PX1:外部中断1优先级设置位。PT0:定时器/计数器中断0优先级设置位。PT1:定时器/计数器中断1优先级设置位。PS:串行中断优先级设置位。中断优先级只分高与低两个级别,各位为0时,为低优先级;各位为1时,为高优先级。2.IP的设置举例假如程序需要使外部中断0为高优先级,只要将IP的第一位设置为1即可,可通过下面的语句来实现:
MOV IP, #00000001B ;INT0中断优先`
(2)如果一个中断请求已被响应,则同级的其他中断响应被禁止。
(3)如果同级的多个中断请求同时出现,则按次序从高到低依次为:外部中断0、定时/计数中断0、外部中断1、定时/计数中断1、串行中断。
1.TCON的格式及位的含义
寄存器TCON的地址为88H。TCON既有定时器/计数器的控制功能,又有中断控制功能。其中,与中断有关的控制位共6位,其格式及各位的含义如图2-9所示。IT0:选择外部中断INT0的中断触发方式,IT0 = 0时采用电平触发方式;IT0 = 1时采用脉冲触发方式。
IT1:选择外部中断INT1的中断触发方式,其功能与IT0类同。IE0:外部中断INT0的中断请求标志位。当检测到INT0引脚有中断请求信号时,此位由硬件置1;在中断响应完成后转向中断处理子程序时,再由硬件自动清0。IE1:外部中断INT1的中断请求标志位,其功能与IE0类似。TF0:片内定时器/计数器0溢出中断请求标志位。当定时器/计数器0溢出发生时,此位由硬件置1;在中断响应完成后转向中断处理子程序时,再由硬件自动清0。TF1:片内定时器/计数器1溢出中断请求标志位,其功能与TF0类同。2.TCON的设置举例从上面寄存器各位的含意可以看出,在对寄存器TCON的设置上只要注意设置触发方式即可。例如,程序需要使用外部中断INT0,并采用电平触发方式。此时只要将TCON的第一位设置为0即可,通过下面语句来实现:
MOV TCON, #00000000B ;设置INT0为电平触发```####2.7.4 串行口控制寄存器SCON寄存器SCON的地址为98H,其中与中断有关的控制位共两位,其格式及各位的含义如图2-10所示。TI:串行口发送中断请求标志位。当发送完一帧串行数据后,由硬件置1;在转向中断处理程序后,用软件清0。
转载地址:http://ezmja.baihongyu.com/