新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51手記之標(biāo)準(zhǔn)51(三)

51手記之標(biāo)準(zhǔn)51(三)

作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
51手記標(biāo)準(zhǔn)51---中斷系統(tǒng)
MCS51提供5個(gè)中斷源,每個(gè)中斷源有2個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)兩級(jí)中斷服務(wù)程序嵌套;優(yōu)先級(jí)相同的中斷服務(wù)程序不會(huì)發(fā)生嵌套。
1.中斷源
包括兩個(gè)外部中斷、兩個(gè)定時(shí)器溢出中斷和一個(gè)串行口中斷。
1)外部中斷源:
MCS51有兩條外部中斷請(qǐng)求輸入線,允許外部中斷源以低電平或負(fù)邊沿兩種中斷觸發(fā)方式來(lái)輸入中斷請(qǐng)求信號(hào)
中斷請(qǐng)求標(biāo)志位IE0、IE1,
控制寄存器:TCON
2)定時(shí)器溢出中斷源:
屬于內(nèi)部中斷,8031內(nèi)部有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,受內(nèi)部定時(shí)脈沖(主脈沖經(jīng)12分頻后)或T0/T1引腳上輸入的外部定時(shí)脈沖控制。定時(shí)器T0/T1在定時(shí)脈沖作用下從全“1”變?yōu)槿?ldquo;0”時(shí)可以自動(dòng)向CPU提出溢出中斷請(qǐng)求,以表明定時(shí)器T0或T1的定時(shí)時(shí)間已到。定時(shí)器T0/T1的定時(shí)時(shí)間可由用戶通過程序設(shè)定,以便CPU在定時(shí)器溢出中斷服務(wù)程序內(nèi)進(jìn)行計(jì)時(shí)。
3)串行口中斷源:
屬于內(nèi)部中斷,串行口中斷分為串行口發(fā)送中斷和串行口接收中斷兩種。在串行口進(jìn)行發(fā)送/接收數(shù)據(jù)時(shí),每當(dāng)串行口發(fā)送/接收完一組串行數(shù)據(jù)時(shí),串行口電路自動(dòng)使串行口控制寄存器SCON中的RI葳TI中斷標(biāo)志位置位,并自動(dòng)向CPU發(fā)出串行口中斷,CPU響應(yīng)串行口中斷后便立即轉(zhuǎn)入串行口中斷服務(wù)程序執(zhí)行。
2.中斷控制
CPU對(duì)中斷源的開放和屏蔽,以及每個(gè)中斷源是否被允許中斷,都受中斷允許寄存器IE控制。每個(gè)中斷源優(yōu)先級(jí)的設(shè)定,則由中斷優(yōu)先級(jí)寄存器IP控制。
8031內(nèi)部中斷系統(tǒng)對(duì)各中斷源中斷優(yōu)先級(jí)有一個(gè)統(tǒng)一的規(guī)定,各中斷源按規(guī)定從高到低的排列順序?yàn)椋?/div> 外部中斷0→ 定時(shí)器中斷T0→ 外部中斷1 →定時(shí)器中斷T1→ 串行口中斷
3.中斷響應(yīng)
CPU在每個(gè)機(jī)器周期的S5P2期間采樣中斷標(biāo)志,在下一個(gè)機(jī)器周期的S6期間按先后順序查詢中斷標(biāo)志。在查詢到某一中斷標(biāo)志為1時(shí),則在下一個(gè)機(jī)器周期S1期間按優(yōu)先級(jí)別進(jìn)行中斷處理。中斷系統(tǒng)通過硬件生成長(zhǎng)調(diào)用指令LCALL,將程序轉(zhuǎn)移到中斷入口地址單元,執(zhí)行相應(yīng)的中斷服務(wù)程序。
響應(yīng)中斷時(shí),CPU先置位優(yōu)先級(jí)狀態(tài)觸發(fā)器,接著再執(zhí)行由硬件產(chǎn)生的長(zhǎng)調(diào)用指令LCALL。該指令將程序計(jì)數(shù)器PC的內(nèi)容壓入堆棧保護(hù)起來(lái)。但對(duì)諸如PSW、累加器A等寄存器并不保護(hù)(需要時(shí)可由軟件保護(hù))。然后將對(duì)應(yīng)的中斷入口地址裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)移到該中斷入口地址單元,去執(zhí)行中斷服務(wù)程序。
CPU響應(yīng)中斷請(qǐng)求后,在中斷返回(RETI指令)前,必須撤除請(qǐng)求,否則會(huì)錯(cuò)誤地再一次引起中斷響應(yīng)。


關(guān)鍵詞: 51手記標(biāo)準(zhǔn)5

評(píng)論


技術(shù)專區(qū)

關(guān)閉