1、如下图所示。对事件的整个处理过程,称如下图所示。对事件的整个处理过程,称为为中断处理中断处理(或中断服务或中断服务)。)。举个例子:举个例子:小强和小明在下象棋。眼看小强快招架小强和小明在下象棋。眼看小强快招架不住了,这时小明的不住了,这时小明的GF来了,非要小明陪来了,非要小明陪她逛街买衣服。于是小明同小强商量,先把她逛街买衣服。于是小明同小强商量,先把棋盘封了,等买完衣服后继续战斗。晚上小棋盘封了,等买完衣服后继续战斗。晚上小明和小强回到棋盘前,轻而易举将小强击败。明和小强回到棋盘前,轻而易举将小强击败。买衣服这段插曲并未改变小明必胜的结局。买衣服这段插曲并未改变小明必胜的结局。这就是整个
2、中断过程。我们来看看中断过程这就是整个中断过程。我们来看看中断过程是如何发生的:是如何发生的:1、中断请求:小明的、中断请求:小明的GF要他逛街;要他逛街;2、中断响应:小明准备放下棋局陪、中断响应:小明准备放下棋局陪GF逛街;逛街;3、现场保护:先把棋盘封了;、现场保护:先把棋盘封了;4、中断处理:小明陪、中断处理:小明陪GF逛街买衣服;逛街买衣服;5、恢复现场:把棋盘解封;、恢复现场:把棋盘解封;6、中断返回:继续战斗。中断返回:继续战斗。此例中,小明的此例中,小明的GF就是就是“中断源中断源”,如果小明把,如果小明把棋移到密室中下,不让他的棋移到密室中下,不让他的GF打扰,就叫打扰,就叫
3、“中断中断屏蔽屏蔽”。89c51中断系统的结构中断系统的结构89c51单片机的中断系统有单片机的中断系统有5个中断请求源,个中断请求源,两个中断优先级,每一个中断源可以用软件两个中断优先级,每一个中断源可以用软件独立地控制为允许中断或关中断状态,每一独立地控制为允许中断或关中断状态,每一个中断源的中断级别均可用软件来设置。个中断源的中断级别均可用软件来设置。如下图所示:如下图所示:51单片机的中断源单片机的中断源中断源中断源中断入口地址中断入口地址 中断级别中断级别中断名中断名外部中断00003H最高interrupt 0定时器0中断000BHinterrupt 1外部中断10013Hinte
4、rrupt 2定时器1中断001BHinterrupt 3串口中断0023H最低interrupt 4 响应中断请求的条件响应中断请求的条件 一个中断请求被响应,需满足以下必要条件:一个中断请求被响应,需满足以下必要条件:(1)IE寄存器中的中断总允许位寄存器中的中断总允许位EA=1。(2)该中断源发出中断请求,即该中断源)该中断源发出中断请求,即该中断源对应的中断请求标志为对应的中断请求标志为“1”。(3)该中断源的中断允许位)该中断源的中断允许位=1,即该中断,即该中断没有被屏蔽。没有被屏蔽。(4)无同级或更高级中断正在被服务。)无同级或更高级中断正在被服务。1.定时器定时器/计数器的结构
5、及工作原理计数器的结构及工作原理 加法计数器是计满溢出时才申请中断加法计数器是计满溢出时才申请中断,所以在给计数器所以在给计数器赋初值时赋初值时,不能直接输入所需的计数值不能直接输入所需的计数值,而应输入的是计数而应输入的是计数器计数的最大值与这一计数值的差值器计数的最大值与这一计数值的差值,设最大值为设最大值为 M,计数计数值为值为 N,初值为初值为 X,则则 X的计算方法如下的计算方法如下:计数状态计数状态:X=MN 定时状态定时状态:X=M定时时间定时时间/Tcy 而而 Tcy=12晶振频率晶振频率 2.方式和控制寄存器方式和控制寄存器一、一、定时器定时器/计数器的方式寄存器计数器的方式
6、寄存器TMOD GATE C/TM1M0GATEC/TM1M0T1T0TMOD 89H TMOD各位定义 1.M1M0工作方式控制位工作方式控制位 表表 1 工作方式选择表工作方式选择表 M1 M0 方式方式说说 明明0 0013 位定时器位定时器(TH的的 8 位和位和TL的低的低 5 位)位)0 1116 位定时器位定时器/计数器计数器 1 02自动重装入初值的自动重装入初值的 8 位计数器位计数器 1 13 T0 分成两个独立的分成两个独立的 8 位计数器位计数器,T1 在方式在方式 3 时停时停止工作止工作 2.C/T 定时器方式或计数器方式选择位定时器方式或计数器方式选择位 若若C/
7、T=1时时,为计数器方式为计数器方式;C/T =0时时,为定时器方式为定时器方式。3.GATE 定时器定时器/计数器运行门控标志位计数器运行门控标志位 当当GATE=1时时,只有只有INT0(或或INT1)引脚为高电平且引脚为高电平且TR0(或或TR1)置置 1 时时,相应的定时器相应的定时器/计数器才被选通工作计数器才被选通工作,这这时可用于测量在时可用于测量在INTx端出现的正脉冲的宽度。若端出现的正脉冲的宽度。若GATE=0,则只要则只要 TR0(或或 TR1)置置 1,定时器定时器 /计数器就被选通计数器就被选通,而不而不管管 INT0(或或 INT1)的电平是高还是低。的电平是高还是
8、低。TF0、TF1分别是定时器分别是定时器/计数器计数器T0、T1 的溢出标志位的溢出标志位,加法计数器计满溢出时置加法计数器计满溢出时置1,申请中断申请中断,在中断响应后自动复在中断响应后自动复 0。TF产生的中断申请是否被接受产生的中断申请是否被接受,还需要由中断是否开放还需要由中断是否开放来决定。来决定。TR1、TR0 分别是定时器分别是定时器/计数器计数器T1、T0 的运行控制的运行控制位位,通过软件置通过软件置 1 后后,定时器定时器/计数器才开始工作计数器才开始工作,在系统复位在系统复位时被清时被清 0。TF1 TR1 TF0 TR0 IE1IT1IE0IT0TCON 88H 二、
9、二、定时器定时器/计数器控制寄存器计数器控制寄存器TCON3.工作方式工作方式 一、一、方式方式1 二、方式二、方式 2 方式方式1的应用的应用 方式方式 1 与方式与方式 0 基本相同基本相同,只是方式只是方式 1 改用了改用了 16 位计数器。位计数器。要求定时周期较长时要求定时周期较长时,13 位计数器不够用位计数器不够用,可改用可改用 16 位计数器。位计数器。方式方式2的应用的应用 方式方式 2 是定时器自动重装载的操作方式是定时器自动重装载的操作方式,在这种方式下在这种方式下,定定时器时器 0 和和 1 的工作是相同的的工作是相同的,它的工作过程与方式它的工作过程与方式 0、方式方式 1 基本相同基本相同,只不过在溢出的同时只不过在溢出的同时,将将 8 位二进制初值自动重装载位二进制初值自动重装载,即在中断服务子程序中即在中断服务子程序中,不需要编程送初值。定时器不需要编程送初值。定时器 T1 工作在工作在方式方式 2 时时,可直接用作串行口波特率发生器可直接用作串行口波特率发生器,