標(biāo)題: 中斷不懂 [打印本頁(yè)]

作者: qq573547910    時(shí)間: 2012-2-29 22:04
標(biāo)題: 中斷不懂
中斷部分怎么弄的  麻煩詳細(xì)講解。。。。。
作者: 青蘋果    時(shí)間: 2012-3-1 09:09
有沒(méi)有看一下相關(guān)書籍?
作者: ahshmj    時(shí)間: 2012-3-1 12:09

51單片機(jī)的中斷有:外部中斷2個(gè),定時(shí)器/計(jì)數(shù)器 中斷2個(gè)(8051或類似)3個(gè)(8052或類似),串口一個(gè),都有對(duì)應(yīng)的中斷向量,也就是當(dāng)某一個(gè)中斷發(fā)生時(shí),單片機(jī)會(huì)把其他的程序暫停一下,轉(zhuǎn)到這個(gè)中斷的對(duì)應(yīng)的地址(向量)來(lái)執(zhí)行程序。執(zhí)行完中斷處理子程序以后(到RETI)再回到之前暫停的地方繼續(xù)進(jìn)行之前的工作。(當(dāng)然:?jiǎn)纹瑱C(jī)在響應(yīng)這個(gè)中斷之前所做的工作,在有些情況下是不能被中斷的,要等這些情況處理完以后才行)

但是51單片機(jī)給每一個(gè)中斷所留的間隔只有8個(gè)字節(jié),一般是寫不完中斷處理程序的(也可以說(shuō)是中斷服務(wù)程序),所以大都是在這里寫上一個(gè)跳轉(zhuǎn)指令,跳到你自己寫的中斷處理程序的標(biāo)號(hào)處。  

中斷程序結(jié)束處有一語(yǔ)句是必須的:RETI

 

下面是例子。用不到的中斷可以不用寫。也可以注釋掉。

 

 

 

;******************初始化***********************
              ORG     0000H               ;上電或復(fù)位時(shí),單片機(jī)從這里開(kāi)始執(zhí)行程序
              JMP      MAIN

 

              ORG     0003H
              JMP     INT12887             ;外部中斷0發(fā)生中斷時(shí),從這里開(kāi)始執(zhí)行程序
           

 

              ORG     000BH
              JMP     TIMER0               ;定時(shí)器/計(jì)數(shù)器0發(fā)生中斷時(shí),從這里開(kāi)始執(zhí)行程序

 

              ORG     0013H
              JMP     INTnnn               ;外部中斷1發(fā)生中斷時(shí),從這里開(kāi)始執(zhí)行程序

 

              ORG     001BH
              JMP     TIMER1              ;定時(shí)器/計(jì)數(shù)器1發(fā)生中斷時(shí),從這里開(kāi)始執(zhí)行程序

 

              ORG     0023H
              JMP     S_INIT               ;串口中斷發(fā)生中斷時(shí),從這里開(kāi)始執(zhí)行程序

 

              ORG     002BH
              JMP     TIMER2               ;定時(shí)器/計(jì)數(shù)器2發(fā)生中斷時(shí),從這里開(kāi)始執(zhí)行程序

                                             

              ORG     0030H             ;

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

[此貼子已經(jīng)被作者于2012-3-1 12:17:29編輯過(guò)]

作者: qq573547910    時(shí)間: 2012-3-1 22:32
先道謝。。。。學(xué)習(xí)了。。
作者: 雪中梅花    時(shí)間: 2014-6-6 15:58
謝謝版主學(xué)習(xí)了。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1