版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第5 5章章: :中斷系統(tǒng)中斷系統(tǒng)第第5 5章章 目錄目錄n5.1 80C515.1 80C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng) 5.1.1 什么是中斷 5.1.2 80C51的中斷源 5.1.3 80C51的中斷控制 n5.2 5.2 中斷處理過程中斷處理過程 5.2.1 中斷響應(yīng) 5.2.2 中斷處理 5.2.3 中斷返回 5.2.4 中斷請(qǐng)求的撤除 n5.3 5.3 中斷服務(wù)子程序的設(shè)計(jì)中斷服務(wù)子程序的設(shè)計(jì) 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例 5.3.2 多個(gè)中斷源設(shè)計(jì)舉例5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.15.1.1什么是中斷什么是中斷1、中斷的
2、概念是指CPU正在處理某件事情的時(shí)候,外部發(fā)生了另一事件,請(qǐng)求CPU迅速去處理。CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事件,處理完以后,再回來繼續(xù)執(zhí)行被中止了的工作,這個(gè)過程稱為中斷。 計(jì)算機(jī)采用中斷技術(shù),具有以下優(yōu)點(diǎn):1)實(shí)性增強(qiáng)。CPU可以及時(shí)處理系統(tǒng)的隨機(jī)事件;2)可靠性提高。CPU能夠處理故障及掉電等突發(fā)事件;3)利用率提高。CPU可以分時(shí)地為多個(gè)I/O設(shè)備服務(wù)。5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.15.1.1什么是中斷什么是中斷5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.2 80C515.1.2 80C51的
3、中斷源的中斷源1、中斷源80C51有五個(gè)中斷源如下:(1)/INT0:外部中斷 0。采樣P3.2引腳的外部中斷請(qǐng)求。(2)/INT1:外部中斷1。采樣P3.3引腳的外部中斷請(qǐng)求。(3) 定時(shí)/計(jì)數(shù)器T0:計(jì)數(shù)溢出發(fā)生的中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為TF0。(4)定時(shí)/計(jì)數(shù)器T1:計(jì)數(shù)溢出發(fā)生的中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為TF1。(5)串行口中斷請(qǐng)求:串行口完成一幀數(shù)據(jù)的發(fā)送或接收時(shí)所發(fā)出的中斷請(qǐng)求,標(biāo)志位為TI或RI。每個(gè)中斷源對(duì)應(yīng)一個(gè)中斷標(biāo)志位,它們包含在特殊功能寄存器TCON和SCON中。5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.2 80C515.1.2 80C51
4、的中斷源的中斷源2、中斷請(qǐng)求標(biāo)志 TCON寄存器TCON寄存器是定時(shí)計(jì)數(shù)器T0和T1和的控制寄存器,它同時(shí)也用來鎖存T0和T1的溢出中斷申請(qǐng)信號(hào)TF0、TF1和外部中斷申請(qǐng)信號(hào)IE0、IE1,其字節(jié)地址為88H,可位尋址。TCON寄存器中與中斷有關(guān)的位如下所示: IT0IT0IE0IE0IT1IT1IE1IE1/TFOTFO/TF1TF1位符號(hào)位符號(hào)88H88H89H89H8AH8AH8BH8BH8CH8CH8DH8DH8EH8EH8FH8FH位地址位地址IT0IT0IE0IE0IT1IT1IE1IE1/TFOTFO/TF1TF1位符號(hào)位符號(hào)88H88H89H89H8AH8AH8BH8BH8C
5、H8CH8DH8DH8EH8EH8FH8FH位地址位地址5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.2 80C515.1.2 80C51的中斷源的中斷源TCON中各位的功能如下:(1)TF1:定時(shí)計(jì)數(shù)器1(T1) 的溢出中斷標(biāo)志位。當(dāng)T1從初值開始加1計(jì)數(shù)到產(chǎn)生溢出時(shí),由硬件使TF1置“1”, 直到CPU響應(yīng)中斷時(shí)由硬件復(fù)位。(2)TF0:定時(shí)計(jì)數(shù)器0(T0)的溢出中斷標(biāo)志位,與TF1類似。(3)IT1:觸發(fā)方式控制位。當(dāng)IT1=0時(shí),中斷系統(tǒng)為電平觸發(fā)方式,即加到引腳的外部中斷請(qǐng)求信號(hào)為低電平有效;當(dāng)IT1=1時(shí)中斷系統(tǒng)為邊沿觸發(fā)方式,即加到引腳的外部中斷請(qǐng)求
6、信號(hào)由高電平跳到低電平的負(fù)跳變有效。(4)IE1:外部中斷1 的中斷請(qǐng)求標(biāo)志。當(dāng)IT1=0(即電平觸發(fā)方式)時(shí),在每個(gè)機(jī)器周期的S5P2時(shí)刻采樣,若為低電平,則由硬件使IE1 置“1”,直到CPU響應(yīng)中斷時(shí)由硬件復(fù)位;當(dāng)IT1=1(即邊沿觸發(fā)方式)時(shí),若前一個(gè)機(jī)器周期采樣到為高電平,而后一個(gè)機(jī)器周期采樣到 為低電平,則由硬件使IE1置“1”,直到CPU響應(yīng)中斷時(shí)由硬件復(fù)位。(5)IT0:觸發(fā)方式控制位,與IT1類似。(6)IE0:外部中斷0的中斷請(qǐng)求標(biāo)志位,與IE1類似。5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.2 80C515.1.2 80C51的中斷源的中
7、斷源2、中斷請(qǐng)求標(biāo)志 SCON寄存器 SCON為串行口控制寄存器,字節(jié)地址為98H,可位尋址。SCON中的低2位用做串行口中斷標(biāo)志,其各位定義如下表所示:SCON中各位的功能如下:(1)RI:串行口接收中斷請(qǐng)求標(biāo)志位。在串行口工作方式0中,每當(dāng)接收到第8位數(shù)據(jù)時(shí)由硬件置位RI;在其他方式中,當(dāng)接收到停止位時(shí)由硬件置位RI。注意,當(dāng)CPU轉(zhuǎn)入串行口中斷服務(wù)程序的入口時(shí)沒有硬件復(fù)位RI,因此必須由編程人員用軟件復(fù)位(清零)RI。(2)TI:串行口發(fā)送中斷請(qǐng)求標(biāo)志位。在串行口工作方式0中,每當(dāng)發(fā)送完第8位數(shù)據(jù)時(shí),由硬件置位TI;在其他方式中,當(dāng)發(fā)送到停止位時(shí)置位TI。注意:TI也必須由軟件來復(fù)位。R
8、IRITITI/位符號(hào)位符號(hào)98H98H99H99H9AH9AH9BH9BH9CH9CH9DH9DH9EH9EH9FH9FH位地址位地址RIRITITI/位符號(hào)位符號(hào)98H98H99H99H9AH9AH9BH9BH9CH9CH9DH9DH9EH9EH9FH9FH位地址位地址5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C515.1.3 80C51的中斷控制的中斷控制1、中斷允許控制寄存器IE SCON寄存器 在80C51中斷系統(tǒng)中,中斷的允許或禁止是由片內(nèi)的中斷允許寄存器IE控制的。IE 寄存器的地址是A8H,可位尋址,位地址為A8HAFH。寄存器的內(nèi)容及
9、位地址如下:EX0EX0ET0ET0EX1ET1ES/EA位符號(hào)位符號(hào)A8HA8HA9HA9HAAHAAHABHABHACHACHADHADHAEHAEHAFHAFH位地址位地址EX0EX0ET0ET0EX1ET1ES/EA位符號(hào)位符號(hào)A8HA8HA9HA9HAAHAAHABHABHACHACHADHADHAEHAEHAFHAFH位地址位地址5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C515.1.3 80C51的中斷控制的中斷控制 SCON寄存器(1)EA:中斷允許總控制位。EA=O時(shí),表示CPU禁止所有中斷,即所有的中斷請(qǐng)求被屏蔽 ;EA=1時(shí),表示
10、CPU開放中斷,但每個(gè)中斷源的中斷請(qǐng)求是允許還是禁止,要由各自的允許位控制。(2)EXO(EX1):外部中斷允許控制位。EX0(EX1)=0,禁止外中斷;EXO(EX1)=1,允許外中斷。(3)ETO(ET1):定時(shí)計(jì)數(shù)器的中斷允許控制位。ETO(ET1)=0,禁止定時(shí)計(jì)數(shù)器中斷 ;ET0(ET1)=1,允許定時(shí)計(jì)數(shù)器中斷。(4)ES:串行中斷允許控制位。ES=O,禁止串行中斷;ES=1,允許串行中斷。 中斷允許寄存器中各相應(yīng)位的狀態(tài),可根據(jù)要求用指令置位或清零。EX0EX0ET0ET0EX1ET1ES/EA位符號(hào)位符號(hào)A8HA8HA9HA9HAAHAAHABHABHACHACHADHADHA
11、EHAEHAFHAFH位地址位地址EX0EX0ET0ET0EX1ET1ES/EA位符號(hào)位符號(hào)A8HA8HA9HA9HAAHAAHABHABHACHACHADHADHAEHAEHAFHAFH位地址位地址5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C515.1.3 80C51的中斷控制的中斷控制2、中斷優(yōu)先級(jí)控制寄存器IP IP寄存器地址B8H,可位尋址。位地址為B8HBFH。寄存器的內(nèi)容及位地址表示如下:PX0:外部中斷O優(yōu)先級(jí)設(shè)定位;PT0:定時(shí)器T0中斷優(yōu)先級(jí)設(shè)定位;PX1:外部中斷1優(yōu)先級(jí)設(shè)定位; PT1:定時(shí)器T1中斷優(yōu)先級(jí)設(shè)定位;PS:串行中斷優(yōu)
12、先級(jí)設(shè)定位。 以上某一控制位若被置零,則該中斷源被定義為低優(yōu)先級(jí);若被置1,則該中斷源被定義為高優(yōu)先級(jí)。中斷優(yōu)先級(jí)控制寄存器IP的各個(gè)控制位,都可以通過編程來置位或清零。單片機(jī)復(fù)位后,IP中各位均被清零。PX0PX0PT0PT0PX1PT1PS/位符號(hào)位符號(hào)B8HB8HB9HB9HBAHBAHBBHBBHBCHBCHBDHBDHBEHBEHBFHBFH位地址位地址PX0PX0PT0PT0PX1PT1PS/位符號(hào)位符號(hào)B8HB8HB9HB9HBAHBAHBBHBBHBCHBCHBDHBDHBEHBEHBFHBFH位地址位地址5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.
13、1.3 80C515.1.3 80C51的中斷控制的中斷控制2、中斷優(yōu)先級(jí)控制寄存器IP 中斷優(yōu)先級(jí)是為中斷嵌套服務(wù)的,80C51單片機(jī)中斷優(yōu)先級(jí)的控制原則是以下幾點(diǎn):(1)低優(yōu)先級(jí)中斷請(qǐng)求不能打斷高優(yōu)先級(jí)的中斷服務(wù)程序,但高優(yōu)先級(jí)中斷請(qǐng)求可以打斷低優(yōu)先級(jí)的中斷服務(wù)程序,從而實(shí)現(xiàn)中斷嵌套。 (2)一個(gè)中斷一旦得到響應(yīng),與它同級(jí)的中斷請(qǐng)求不能中斷它。(3)如果同級(jí)的多個(gè)中斷請(qǐng)求同時(shí)出現(xiàn),則按CPU的查詢次序確定哪個(gè)中斷請(qǐng)求被響應(yīng)。 其查詢次序?yàn)椋和獠恐袛郞定時(shí)計(jì)數(shù)器中斷0外部中斷1定時(shí)計(jì)數(shù)器中斷1串行中斷。5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C51
14、5.1.3 80C51的中斷控制的中斷控制【例5-1】若PS=1,PX0=0,串口的中斷服務(wù)程序正在被執(zhí)行,外有中斷請(qǐng)求出現(xiàn),則CPU會(huì)響應(yīng)外中斷0嗎,試說明原因?如果外部中斷0的服務(wù)程序正在被執(zhí)行,串口中斷請(qǐng)求出現(xiàn),CPU會(huì)響應(yīng)串口中斷嗎?如果兩者同時(shí)出現(xiàn)則先響應(yīng)哪個(gè)?解:不會(huì)。因?yàn)檎趫?zhí)行的串口中斷服務(wù)是高優(yōu)先級(jí)中斷服務(wù)程序,低級(jí)的外中斷0不能打斷高級(jí)的中斷服務(wù)程序。CPU會(huì)響應(yīng)串口的中斷服務(wù)程序。因?yàn)榇诘闹袛喾?wù)程序是高優(yōu)先級(jí),高級(jí)的中斷可以打斷正在被響應(yīng)的低級(jí)中斷服務(wù)程序。如果兩者同時(shí)出現(xiàn),CPU會(huì)響應(yīng)串口的中斷服務(wù)程序。因?yàn)閮蓚€(gè)不同優(yōu)先級(jí)的中斷請(qǐng)求同時(shí)出現(xiàn),一定是高優(yōu)先級(jí)的中斷服務(wù)
15、程序先被響應(yīng)。5.15.1 80C5180C51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)n5.1.3 80C515.1.3 80C51的中斷控制的中斷控制【例5-2】若PS=0,PX0=0,串口的中斷被響應(yīng)后,外中斷請(qǐng)求出現(xiàn),則CPU會(huì)響應(yīng)外中斷0嗎?反之呢?若兩者同時(shí)出現(xiàn)呢?解:不會(huì)。因?yàn)橥?jí)的中斷不能夠相互打斷。反之也不會(huì),理由同前。兩者同時(shí)出現(xiàn)則會(huì)先響應(yīng)外部中斷0,因?yàn)橥庵袛?的查詢次序在串口之前。5.25.2 中斷處理過程中斷處理過程中斷處理過程可分為中斷處理過程可分為3 3個(gè)階段個(gè)階段, ,即中斷響應(yīng)、中斷處理和中斷返回。即中斷響應(yīng)、中斷處理和中斷返回。n5.2.15.2.1中斷響應(yīng)中斷響應(yīng)
16、 中斷響應(yīng)是在滿足CPU的中斷響應(yīng)條件之后,CPU對(duì)中斷源中斷請(qǐng)求的回答。在這個(gè)階段,CPU要完成中斷服務(wù)程序以前的所有準(zhǔn)備工作,這些準(zhǔn)備工作是:保護(hù)斷點(diǎn)和把程序轉(zhuǎn)向中斷服務(wù)程序的入口地址。 計(jì)算機(jī)在運(yùn)行時(shí),并不是任何時(shí)刻都會(huì)去響應(yīng)中斷請(qǐng)求,而是在中斷響應(yīng)條件滿足之后才會(huì)響應(yīng)。1、CPU的中斷響應(yīng)條件 1)首先要由中斷源發(fā)出中斷申請(qǐng);2)中斷總允許位EA=1,即CPU允許所有中斷源申請(qǐng)中斷; 3)申請(qǐng)中斷的中斷源的中斷允許位為1,即此中斷源可以向CPU申請(qǐng)中斷。 以上是CPU響應(yīng)中斷的基本條件,若滿足上述條件,CPU一般會(huì)響應(yīng)中斷。5.25.2 中斷處理過程中斷處理過程n5.2.15.2.1中
17、斷響應(yīng)中斷響應(yīng)1、CPU的中斷響應(yīng)條件 如果有下列任何一種情況存在,則中斷響應(yīng)會(huì)受到阻斷。 CPU正在執(zhí)行一個(gè)同級(jí)或高一級(jí)的中斷服務(wù)程序;當(dāng)前的機(jī)器周期不是正在執(zhí)行指令的最后一個(gè)周期,即正在執(zhí)行的指令還未完成前,任何中斷請(qǐng)求都得不到響應(yīng);正在執(zhí)行的指令是返回指令或者對(duì)專用寄存器IE、IP進(jìn)行讀寫的指令,此時(shí),在執(zhí)行RETI或者讀寫IE或IP之后,不會(huì)馬上響應(yīng)中斷請(qǐng)求,至少再執(zhí)行一條其他指令之后才會(huì)響應(yīng)。 若存在上述任何一種情況,中斷查詢結(jié)果就被丟棄,否則,在緊接著的下一個(gè)機(jī)器周期,就會(huì)響應(yīng)中斷。在每個(gè)機(jī)器周期的S5P2期間,CPU對(duì)各中斷源采樣,并設(shè)置相應(yīng)的中斷標(biāo)志位。CPU在下一個(gè)機(jī)器周期S
18、6期間按優(yōu)先級(jí)順序查詢各中斷標(biāo)志,如查詢到某個(gè)中斷標(biāo)志為1,將在再下一個(gè)機(jī)器周期S1期間按優(yōu)先級(jí)進(jìn)行中斷處理。中斷查詢?cè)诿總€(gè)機(jī)器周期中反復(fù)執(zhí)行,如果中斷響應(yīng)的基本條件已滿足,但由于上述三條之一而未被及時(shí)響應(yīng),待上述封鎖條件被撤銷之后,中斷標(biāo)志卻也已消失了,則這次中斷申請(qǐng)就不會(huì)再被響應(yīng)。5.25.2 中斷處理過程中斷處理過程n5.2.15.2.1中斷響應(yīng)中斷響應(yīng)2、中斷響應(yīng)過程 如果中斷響應(yīng)條件滿足,且不存在中斷受阻的情況,則CPU將響應(yīng)中斷。此時(shí),中斷系統(tǒng)通過硬件生成長調(diào)用指令(LCALL),此指令將自動(dòng)把斷點(diǎn)地址壓入堆棧保護(hù)起來(但不保護(hù)狀態(tài)字寄存器PSW及其他寄存器內(nèi)容),然后將對(duì)應(yīng)的中斷
19、入口地址裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向該中斷入口地址,執(zhí)行中斷服務(wù)程序。 在80C51單片機(jī)中各中斷源及與之對(duì)應(yīng)的入口地址分配如下:表5-2 各中斷源及與之對(duì)應(yīng)的入口地址0023H串行口中斷001BH定時(shí)器T1中斷0013H外部中斷1000BH定時(shí)器T0中斷0003H外部中斷0入口地址入口地址中斷源中斷源0023H串行口中斷001BH定時(shí)器T1中斷0013H外部中斷1000BH定時(shí)器T0中斷0003H外部中斷0入口地址入口地址中斷源中斷源5.25.2 中斷處理過程中斷處理過程n5.2.15.2.1中斷響應(yīng)中斷響應(yīng)3、中斷響應(yīng)的時(shí)間 所謂中斷響應(yīng)時(shí)間,是從查詢到中斷請(qǐng)求標(biāo)志位開始到轉(zhuǎn)向中斷入口地
20、址所需的機(jī)器周期數(shù)。80C51單片機(jī)的最短響應(yīng)時(shí)間為3個(gè)機(jī)器周期。其中中斷請(qǐng)求標(biāo)志位查詢占一個(gè)機(jī)器周期,而這個(gè)機(jī)器周期又恰好是執(zhí)行指令的最后一個(gè)機(jī)器周期,在這個(gè)機(jī)器周期結(jié)束后,中 斷即被響應(yīng),產(chǎn)生LCALL指令。而執(zhí)行這條長調(diào)用指令需要兩個(gè)機(jī)器周期,這樣中斷響應(yīng)共經(jīng)歷了3個(gè)機(jī)器周期。 若中斷響應(yīng)被前面所述的3個(gè)情況所封鎖,將需要更長的響應(yīng)時(shí)間。若中斷標(biāo)志查詢時(shí),剛好開始執(zhí)行RET、RETI或訪問IE、IP的指令,則需要把當(dāng)前指令執(zhí)行完再繼續(xù)執(zhí)行一條指令后,才能進(jìn)行中斷響應(yīng)。執(zhí)行RET、RETI或訪問IE、IP指令最長需要兩個(gè)機(jī)器周期。而如果繼續(xù)執(zhí)行的那條指令恰好是MUL(乘)或DIV(除)指令
21、,則又需要4個(gè)機(jī)器周期,再加上執(zhí)行長調(diào)用LCALL所需要的兩個(gè)機(jī)器周期,從而形成了8個(gè)機(jī)器周期的最長響應(yīng)時(shí)間。 一般情況下,外中斷響應(yīng)時(shí)間都是大于3個(gè)機(jī)器周期而小于8個(gè)機(jī)器周期。當(dāng)然,如果出現(xiàn)同級(jí)或高級(jí)中斷正在響應(yīng)或服務(wù)中需等待的時(shí)候,那么響應(yīng)時(shí)間就無法計(jì)算了。5.25.2 中斷處理過程中斷處理過程n5.2.2 5.2.2 中斷處理中斷處理 3、中斷響應(yīng)的時(shí)間 中斷服務(wù)程序從入口地址開始執(zhí)行,直至遇到指令“RETI”為止,這個(gè)過程稱為中斷處理(又稱中斷服務(wù))。 中斷處理過程一般包括兩部分內(nèi)容,一是保護(hù)現(xiàn)場,二是處理中斷源的請(qǐng)求。 在編寫中斷服務(wù)程序時(shí)還需注意以下幾點(diǎn):(1)因?yàn)楦髦袛嗳肟诘刂分?/p>
22、間,只相隔8個(gè)字節(jié),一般的中斷服務(wù)程序是容納不下的,因而最常用的方法是在中斷入口地址單元處存放一條無條件轉(zhuǎn)移指令,這樣可使中斷服務(wù)程序靈活地安排在64KB程序存儲(chǔ)器的任何空間。(2)若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷源中斷,要先用軟件關(guān)閉CPU中斷,或禁止更高級(jí)中斷源的中斷,而在中斷返回前再開放中斷。(3)在保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場時(shí),為了不使現(xiàn)場數(shù)據(jù)受到破壞或者造成混亂,一般規(guī)定在保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場時(shí),CPU不響應(yīng)新的中斷請(qǐng)求。這就要求在編寫中斷服務(wù)程序時(shí),注意在保護(hù)現(xiàn)場之前要關(guān)中斷,在恢復(fù)現(xiàn)場之后開中斷。5.25.2 中斷處理過程中斷處理過程n5.2.3 5.2.3 中斷返回中斷返回 中
23、斷返回是指中斷處理完成后,計(jì)算機(jī)返回到斷點(diǎn),繼續(xù)執(zhí)行被中斷的主程序。中斷返回由專門的中斷返回指令RETI來實(shí)現(xiàn),該指令的功能是把斷點(diǎn)地址取出,送回到程序計(jì)數(shù)器PC中去。另外,它還通知中斷系統(tǒng)已完成中斷處理,將清除優(yōu)先級(jí)狀態(tài)觸發(fā)器。特別要注意不能用“RET”指令代替“RETI”指令。5.25.2 中斷處理過程中斷處理過程n5.2.4 5.2.4 中斷請(qǐng)求的撤除中斷請(qǐng)求的撤除 CPU響應(yīng)某中斷請(qǐng)求后,TCON或SCON中的中斷請(qǐng)求標(biāo)志應(yīng)及時(shí)清除,否則會(huì)引起另一次中斷。 1.對(duì)于定時(shí)器溢出中斷,CPU在響應(yīng)中斷后,就用硬件清除了有關(guān)的中斷請(qǐng)求標(biāo)志TF0或TF1,即中斷請(qǐng)求是自動(dòng)撤除的,無需編程人員處
24、理。 2.對(duì)于外部中斷請(qǐng)求的撤除分兩種方式:邊沿觸發(fā)的外部中斷,CPU在響應(yīng)中斷后,也是用硬件自動(dòng)清除有關(guān)的中斷請(qǐng)求標(biāo)志IE0或IE1,即中斷請(qǐng)求也是自動(dòng)撤除的,無需編程人員處理。 對(duì)于電平觸發(fā)的外部中斷,CPU響應(yīng)中斷后,雖然也是由硬件自動(dòng)清除中斷申請(qǐng)標(biāo)志IE0或IE1,但并不能徹底解決中斷請(qǐng)求的撤除問題。因?yàn)楸M管中斷標(biāo)志清除了,但是 或 引腳上的低電平信號(hào)可能會(huì)保持較長的時(shí)間,在下一個(gè)機(jī)器周期又會(huì)使IE0或IE1重新置1。為此應(yīng)該在外部中斷請(qǐng)求信號(hào)接到 或 引腳的連接電路上采取措施,才能及時(shí)撤除中斷請(qǐng)求信號(hào)(見例5-3)。 3.對(duì)于串行口中斷,CPU響應(yīng)中斷后,沒有用硬件清除TI、RI,故
25、這些中斷不能自動(dòng)撤除,編程人員必須在中斷服務(wù)程序中用軟件來清除。5.25.2 中斷處理過程中斷處理過程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例 【例5-3】單個(gè)外部中斷源示例。圖5-3為采用單個(gè)外部中斷源的數(shù)據(jù)采集系統(tǒng)示意圖。將P1口設(shè)置成數(shù)據(jù)輸入口,外圍設(shè)備每準(zhǔn)備好一個(gè)數(shù)據(jù)時(shí),發(fā)出一個(gè)選通信號(hào)(正脈沖)給CP,根據(jù)真值表5-3可知,Q 端將置高電平1, 端將向 輸入一個(gè)低電平中斷請(qǐng)求信號(hào),并且D觸發(fā)器將鎖存該信號(hào)。如前所述,采用電平觸發(fā)方式時(shí),外部中斷請(qǐng)求標(biāo)志IE0(或IE1)在CPU響應(yīng)中斷時(shí)隨然能被硬件自動(dòng)清除,但為防止引起多次中斷,必須要用硬件撤除輸入到 引腳的低
26、電平。撤除 引腳電平的方法是將P3.0線與D觸發(fā)器復(fù)位端 相連,只要在中斷服務(wù)程序中,自P3.0輸出一個(gè)負(fù)脈沖,就能使D觸發(fā)器Q端復(fù)位、 端置1,即 引腳將被接入高電平,從而徹底清除IE0標(biāo)志。5.25.2 中斷處理過程中斷處理過程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例 5.25.2 中斷處理過程中斷處理過程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例程序如下:程序如下: ORG 0000HSTART: LJMP MAIN ;跳轉(zhuǎn)到主程序 ORG 0003H LJMP INT0 ;轉(zhuǎn)向中斷服務(wù)程序 ORG 0200H ;主程序MAIN: CLR IT0
27、 ;設(shè) 為電平觸發(fā)方式 SETB EA ;CPU開放中斷 SETB EX0 ;允許 中斷 MOV DPTR,#1000H ;設(shè)置數(shù)據(jù)區(qū)地址指針 ORG 0200H ; 中斷服務(wù)程序INT0: PUSH PSW ;保護(hù)現(xiàn)場5.25.2 中斷處理過程中斷處理過程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例 PUSH ACC CLR P3.0 ;由P3.0輸出0 NOP NOP SETB P30 ;由P3.0輸出負(fù)脈沖,撤除 MOV P1,#0FFH ;將P1引腳作為數(shù)據(jù)輸入端的 準(zhǔn)備工作 MOV A,P1 ;輸入數(shù)據(jù) MOVX DPTR,A ;存入數(shù)據(jù)存儲(chǔ)器INC DPTR ;修
28、改數(shù)據(jù)指針,指向下一個(gè)單元 POP ACC ;恢復(fù)現(xiàn)場 POP PSW RETI ;中斷返回5.25.2 中斷處理過程中斷處理過程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例【例5-4】出租車計(jì)價(jià)器計(jì)程方法是車輪每運(yùn)轉(zhuǎn)一圈產(chǎn)生一個(gè)負(fù)脈沖,從外中斷INT0引腳輸入,行駛里程為輪胎周長運(yùn)轉(zhuǎn)圈數(shù),設(shè)輪胎周長為2m,試編程實(shí)時(shí)計(jì)算出租車行駛里程,數(shù)據(jù)存入32H、31H、30H中。 解:編程如下: ORG 0000H ;復(fù)位地址 LJMP START ;轉(zhuǎn)初始化 ORG 0003H ;中斷入口地址 LJMP INT0 ;轉(zhuǎn)中斷服務(wù)程序 ORG 0100H ;初始化程序首地址START:
29、 MOV SP,#60H ;置堆棧指針 SETB IT0 ;置邊沿觸發(fā)方式 MOV IP,#01H ;置高優(yōu)先級(jí) MOV IE,#81H ;開中斷 MOV 30H,#0 ;里程計(jì)數(shù)器清0 MOV 31H,#0 MOV 32H,#0 5.25.2 中斷處理過程中斷處理過程n5.3.1 5.3.1 單個(gè)中斷源設(shè)計(jì)舉例單個(gè)中斷源設(shè)計(jì)舉例 LJMP MAIN ;轉(zhuǎn)主程序,并等待中斷 ORG 0200H ;中斷服務(wù)子程序首地址INT0: PUSH Acc ;保護(hù)現(xiàn)場PUSH PSWMOV A,30H ;讀低8位計(jì)數(shù)器ADD A,#2 ;低8位計(jì)數(shù)器加2mMOV 30H,A ;回存CLR A ADDC A,31H ;中8位計(jì)數(shù)器加進(jìn)位MOV 31H,A ;回存CLR A ADDC A,32H ;高8位計(jì)數(shù)器加進(jìn)位MOV 32H,A ;回存 PUSH PSW ;恢復(fù)現(xiàn)場PUSH Acc RETI ;中斷返回5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度跨境電商平臺(tái)區(qū)域代理合同范本3篇
- 2024年生物醫(yī)藥企業(yè)股權(quán)收購合同匯編3篇
- 淘寶找建筑課程設(shè)計(jì)
- 專題03 閱讀理解之推理判斷題(練習(xí))(解析版)
- 煉鋼廠部門崗位職責(zé)說明書
- 機(jī)電工程施工組織設(shè)計(jì)
- (一)高標(biāo)準(zhǔn)農(nóng)田施工方案
- 油條配方課程設(shè)計(jì)
- 糖果罐子手工課程設(shè)計(jì)
- 算法課程設(shè)計(jì)總結(jié)
- 妊娠期肝內(nèi)膽汁淤積癥教學(xué)課件
- 【航空個(gè)性化服務(wù)淺析4700字(論文)】
- 保障農(nóng)民工工資支付條例全文及解讀課件
- 中國移動(dòng)全面預(yù)算管理
- 【部編】小高考:2021年江蘇普通高中學(xué)業(yè)水平測試歷史試卷
- 公路隧道建設(shè)施工技術(shù)規(guī)范學(xué)習(xí)考試題庫(400道)
- 新人教版七至九年級(jí)英語單詞表 漢譯英(含音標(biāo))
- 淺談事業(yè)單位固定資產(chǎn)的折舊本科學(xué)位論文
- 食堂管理制度大全
- 愛普生機(jī)器人中級(jí)培訓(xùn)資料
-
評(píng)論
0/150
提交評(píng)論