<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PIC16F87X單片機中斷系統應用須關(guān)注的問(wèn)題

PIC16F87X單片機中斷系統應用須關(guān)注的問(wèn)題

作者: 時(shí)間:2012-04-10 來(lái)源:網(wǎng)絡(luò ) 收藏

三、 相關(guān)的寄存器

功能有關(guān)的特殊功能寄存器共有5個(gè):控制寄存器INTCON、第1外圍設備中斷標志寄存器PIR1、第1 外圍設備中斷屏蔽寄存器(又稱(chēng)中斷使能寄存器)PIE1、第2外圍設備中斷標志寄存器PIR2和第2外圍設備中斷屏蔽寄存器PIE2。如表2所列,5個(gè)寄存器中共有40位,其中使用了30位。分別與圖1中的中斷邏輯電路的輸入邏輯信號成嚴格對應關(guān)系,也與邏輯表達式成嚴格對應關(guān)系。這5個(gè)寄存器都具有在 RAM數據存儲器中統一編碼的地址。也就是說(shuō),PIC可以把這5個(gè)特殊寄存器當作普通寄存器單元來(lái)訪(fǎng)問(wèn)(即讀出或寫(xiě)入操作)。這樣有利于減少指令集的指令類(lèi)型和指令數量,也便于學(xué)習、記憶和編程。

33.jpg

四、 中斷的處理

復位后,由硬件自動(dòng)對全局中斷屏蔽位進(jìn)行設置GIE=0,將屏蔽所有的中斷源。中斷返回指令“RETFIE” 執行后,也由硬件自動(dòng)對總屏蔽位進(jìn)行設置GIE=1,重新開(kāi)放所有的中斷源。不論各種中斷屏蔽位和全局中斷屏蔽位GIE處于何種狀態(tài)(是開(kāi)放還是禁止),當某一中斷源的中斷條件滿(mǎn)足時(shí),都會(huì )發(fā)出中斷請求,相應的中斷標志位都會(huì )被置位(=1)。但是,是否能夠得到CPU的響應,則要根據該中斷源所涉及到的中斷屏蔽位的狀態(tài)而定。CPU響應中斷后,由硬件自動(dòng)對全局中斷屏蔽位進(jìn)行清零(GIE=0),屏蔽所有的中斷源,以免發(fā)生重復中斷響應,然后,由硬件自動(dòng)把當前的程序計數器PC值(即程序斷點(diǎn)地址)壓入堆棧(實(shí)際為硬件堆棧),并且把PC寄存器置以中斷向量地址(0004H),從而轉向并開(kāi)始執行中斷服務(wù)程序。進(jìn)入中斷服務(wù)程序后,程序中必須安排指令,檢查發(fā)出請求的中斷源(如果同時(shí)開(kāi)放多個(gè)中斷源的話(huà))。這可以通過(guò)檢查各個(gè)中斷源的標志位來(lái)實(shí)現。一旦確定出發(fā)出申請的中斷源,就用軟件把該中斷源的標志位人為地清零,否則,執行中斷返回指令“RETFIE”。重開(kāi)中斷后,由于中斷標志位仍為“1”而引起 CPU重復響應同一個(gè)中斷請求。中斷服務(wù)程序的末尾必須放置1條中斷返回指令“RETFIE”。執行該條指令后,不僅可以重開(kāi)中斷,而且還可以由硬件自動(dòng)將保留在堆棧頂部的斷點(diǎn)地址彈出,并放回到程序計數器PC中,使CPU返回和繼續執行被中斷的主程序。

1 中斷的延時(shí)響應和延時(shí)處理

1次中斷過(guò)程,從中斷源發(fā)出請求到得到CPU的響應必然存在一定的延遲時(shí)間。各個(gè)相關(guān)信號的時(shí)序圖如圖2所示。

34.jpg



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>