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