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