标题: 中断不懂 [打印本页]

作者: qq573547910    时间: 2012-2-29 22:04
标题: 中断不懂
中断部分怎么弄的  麻烦详细讲解。。。。。
作者: 青苹果    时间: 2012-3-1 09:09
有没有看一下相关书籍?
作者: ahshmj    时间: 2012-3-1 12:09

51单片机的中断有:外部中断2个,定时器/计数器 中断2个(8051或类似)3个(8052或类似),串口一个,都有对应的中断向量,也就是当某一个中断发生时,单片机会把其他的程序暂停一下,转到这个中断的对应的地址(向量)来执行程序。执行完中断处理子程序以后(到RETI)再回到之前暂停的地方继续进行之前的工作。(当然:单片机在响应这个中断之前所做的工作,在有些情况下是不能被中断的,要等这些情况处理完以后才行)

但是51单片机给每一个中断所留的间隔只有8个字节,一般是写不完中断处理程序的(也可以说是中断服务程序),所以大都是在这里写上一个跳转指令,跳到你自己写的中断处理程序的标号处。  

中断程序结束处有一语句是必须的:RETI

 

下面是例子。用不到的中断可以不用写。也可以注释掉。

 

 

 

;******************初始化***********************
              ORG     0000H               ;上电或复位时,单片机从这里开始执行程序
              JMP      MAIN

 

              ORG     0003H
              JMP     INT12887             ;外部中断0发生中断时,从这里开始执行程序
           

 

              ORG     000BH
              JMP     TIMER0               ;定时器/计数器0发生中断时,从这里开始执行程序

 

              ORG     0013H
              JMP     INTnnn               ;外部中断1发生中断时,从这里开始执行程序

 

              ORG     001BH
              JMP     TIMER1              ;定时器/计数器1发生中断时,从这里开始执行程序

 

              ORG     0023H
              JMP     S_INIT               ;串口中断发生中断时,从这里开始执行程序

 

              ORG     002BH
              JMP     TIMER2               ;定时器/计数器2发生中断时,从这里开始执行程序

                                             

              ORG     0030H             ;

;*********************主程序*********************
MAIN:

[此贴子已经被作者于2012-3-1 12:17:29编辑过]

作者: qq573547910    时间: 2012-3-1 22:32
先道谢。。。。学习了。。
作者: 雪中梅花    时间: 2014-6-6 15:58
谢谢版主学习了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1