事實上中斷是有效使用MCU的最基本方法之一?,F(xiàn)在用一個類比來說明事情如何在沒有中斷的情況下工作:如果你正在煮雞蛋,并且想在10分鐘內(nèi)將它們從爐子上取下來,那么一種方法是不時檢查時鐘以確??纯磿r間是否到了。
MCS 51 單片機有 5 個(8052 有 6 個) 中斷源,為了使每個中斷源都能獨立地被允許 或禁止 ,以便用戶能靈活使用,它在每個中斷信號的通道中設(shè)置了一個中斷屏蔽觸發(fā)器。只有該觸發(fā)器無效,它所對應(yīng)的中斷請求信號才能進入 CPU ,即此類型中斷開放。否則,即使其對應(yīng)的中斷標(biāo)志位置 1 ,CPU 也不會響應(yīng)中斷 ,即此類型中斷被屏蔽了。同時 CPU 內(nèi)還設(shè)置了一個中斷允許觸發(fā)器,它控制 CPU 能否響應(yīng)中斷。
幾個中斷請求可能同時出現(xiàn),但中斷系統(tǒng)只能按一定的次序來響應(yīng)和處理??勺钕缺豁憫?yīng)的中斷具有最高優(yōu)先權(quán),按優(yōu)先級別順序進行處理。優(yōu)先權(quán)高低是由中斷部件的中斷排隊線路確定的。
CPU響應(yīng)中斷時,首先把當(dāng)前指令的下一條指令(就是中斷返回后將要執(zhí)行的指令)的地址送入堆棧,然后根據(jù)中斷標(biāo)記,將相應(yīng)的中斷入口地址送入PC,PC是程序指針,CPU取指令就根據(jù)PC中的值,PC中是什么值,就會到什么地
MCS-51的中斷響應(yīng)過程:1、中斷響應(yīng)的條件:講到這兒,我們依然對于計算機響應(yīng)中斷感到神奇,我們?nèi)四茼憫?yīng)外界的事件,是因為我們有多種“傳感器“――眼、耳能接受不一樣的信息,計算機是如何做到這點的呢?其實說
某系統(tǒng)有3個外部中斷源1、2、3,當(dāng)某一中斷源變?yōu)榈碗娖綍r,便要求CPU進行處理,它們的優(yōu)先處理次序由高到低依次為3、2、1,中斷處理程序的入口地址分別為1000H,1100H,1200H。試編寫主程序及中斷服務(wù)程序(轉(zhuǎn)至相應(yīng)
單片機一旦響應(yīng)中斷請求,就由硬件完成以下功能:(1) 根據(jù)響應(yīng)的中斷源的中斷優(yōu)先級,使相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器置1;(2) 執(zhí)行硬件中斷服務(wù)子程序調(diào)用,并把當(dāng)前程序計數(shù)器PC的內(nèi)容壓入堆棧,保護斷點,尋找中斷源;(
講到這兒,我們依然對于計算機響應(yīng)中斷感到神奇,我們?nèi)丝梢皂憫?yīng)外界的事件,是因為我們有多種“傳感器“――眼、耳可以接受不同的信息,計算機是如何做到這點的呢?其實說穿了,一點都不希奇,MCS51工作時,在每個機