版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章 單片機(jī)中斷系統(tǒng)5.1 中斷源5.2 中斷控制5.3 中斷過程5.3.1中斷請(qǐng)求5.3.2中斷響應(yīng)5.3.3中斷處理5.3.4中斷返回5.4 外部中斷源擴(kuò)展5.5 全自動(dòng)洗衣機(jī)“啟動(dòng)/暫停”控制Ptoteus仿真中斷概念中斷概念單片機(jī)正在處理某項(xiàng)事務(wù)(如執(zhí)行洗衣程序)的時(shí)候,系統(tǒng)發(fā)生了緊急事件(如衣物纏繞),需要處理;單片機(jī)暫停當(dāng)前正在處理的工作,而轉(zhuǎn)去處理這個(gè)緊急事件;待緊急事件處理完成后,再回到原來中斷的地方,繼續(xù)處理原來被中斷的事務(wù),這個(gè)過程稱作中斷。中斷過程中斷請(qǐng)求、中斷響應(yīng)、中斷處理、中斷返回中斷作用1.通過中斷系統(tǒng),單片機(jī)可以同時(shí)控制多個(gè)外設(shè)并行操作。2.通過中斷系統(tǒng),單片機(jī)
2、可以方便實(shí)現(xiàn)實(shí)時(shí)處理,及時(shí)處理隨機(jī)事件。3.通過中斷系統(tǒng),可以及時(shí)處理系統(tǒng)故障,如掉電、運(yùn)算溢出等5.1中斷源 能夠向CPU申請(qǐng)中斷的事件叫中斷源。外部中斷源INT0/INT1內(nèi)部中斷源T0/T1/串行口中斷矢量中斷源中斷標(biāo)志中斷矢量引腳優(yōu)先次序INT0外部中斷0IE00003HP3.2高低定時(shí)/計(jì)數(shù)器0中斷TF0000BHP3.4INT1外部中斷1IE10013HP3.3定時(shí)/計(jì)數(shù)器1中斷TF1001BHP3.5串行中斷TI/RI0023H5.2中斷控制 80518051單片機(jī)設(shè)有四個(gè)特殊功能寄存器:?jiǎn)纹瑱C(jī)設(shè)有四個(gè)特殊功能寄存器:定時(shí)控制寄存器定時(shí)控制寄存器TCONTCON串行控制寄存器串行
3、控制寄存器SCONSCON中斷屏蔽寄存器中斷屏蔽寄存器IEIE中斷優(yōu)先級(jí)寄存器中斷優(yōu)先級(jí)寄存器IP IP 1.1.定時(shí)控制寄存器定時(shí)控制寄存器TCON TCON TCONTCON的字節(jié)地址為的字節(jié)地址為88H88H,位地址為,位地址為88H8FH 88H8FH IT0/IT1IT0/IT1:外部中斷:外部中斷0/10/1請(qǐng)求觸發(fā)方式控制位。請(qǐng)求觸發(fā)方式控制位。1 1為脈沖觸發(fā),下降沿有效。為脈沖觸發(fā),下降沿有效。0 0為電為電平觸發(fā),低電平有效。平觸發(fā),低電平有效。IE0/IE1IE0/IE1:外中斷:外中斷/ /請(qǐng)求標(biāo)志位。當(dāng)請(qǐng)求標(biāo)志位。當(dāng)CPUCPU采樣到(采樣到(INT0/INT1INT
4、0/INT1)端出現(xiàn)有效中斷)端出現(xiàn)有效中斷請(qǐng)求時(shí),請(qǐng)求時(shí),IE0IE0(IE1IE1)位由硬件置)位由硬件置“1”1”。當(dāng)中斷響應(yīng),轉(zhuǎn)向中斷服務(wù)程序后,由硬。當(dāng)中斷響應(yīng),轉(zhuǎn)向中斷服務(wù)程序后,由硬件把件把IE0IE0(或(或IE1IE1)清零。)清零。 TR0/TR1TR0/TR1:定時(shí):定時(shí)/ /計(jì)數(shù)器運(yùn)行控制位。計(jì)數(shù)器運(yùn)行控制位。TF0/TF1TF0/TF1:定時(shí):定時(shí)/ /計(jì)數(shù)溢出標(biāo)志位。用于定時(shí)計(jì)數(shù)溢出標(biāo)志位。用于定時(shí)/ /計(jì)數(shù)器控制。計(jì)數(shù)器控制。 1INT 1INT0INT 0INTTCOND7D6D5D4D3D2D1D0位名稱TF1TR1TF0TR0IE1IT1IE0IT0位地址8
5、FH8EH8DH8CH8BH8AH89H88H功能 T1 中斷標(biāo)志T1啟動(dòng)控制T0中斷標(biāo)志T0啟動(dòng)控制中 斷標(biāo)志觸 發(fā)方式中斷標(biāo)志觸發(fā)方式電平中斷電平中斷單片機(jī)在每個(gè)機(jī)器周期的單片機(jī)在每個(gè)機(jī)器周期的S5P2S5P2檢查中斷源口線一次,檢查中斷源口線一次,檢測(cè)到低電平,即置位中斷請(qǐng)求標(biāo)志,向檢測(cè)到低電平,即置位中斷請(qǐng)求標(biāo)志,向CPUCPU請(qǐng)求中請(qǐng)求中斷。斷。中斷標(biāo)志寄存器不鎖存電平觸發(fā)中斷請(qǐng)求信號(hào)。單片機(jī)把每個(gè)機(jī)器周期的S5P2采樣到的外部中斷源口線的電平邏輯直接賦值到中斷標(biāo)志寄存器。但當(dāng)中斷請(qǐng)求被阻塞而沒有得到及時(shí)響應(yīng)時(shí),將被丟失。電平觸發(fā)中斷請(qǐng)求不能及時(shí)撤銷,將引起重復(fù)中斷電平觸發(fā)中斷請(qǐng)求不
6、能及時(shí)撤銷,將引起重復(fù)中斷 邊沿中斷邊沿中斷單片機(jī)在上一個(gè)機(jī)器周期檢測(cè)到中斷源口線為高電平,單片機(jī)在上一個(gè)機(jī)器周期檢測(cè)到中斷源口線為高電平,下一個(gè)機(jī)器周期檢測(cè)到低電平,即置位中斷標(biāo)志,請(qǐng)下一個(gè)機(jī)器周期檢測(cè)到低電平,即置位中斷標(biāo)志,請(qǐng)求中斷。求中斷。中斷標(biāo)志寄存器鎖存邊沿中斷請(qǐng)求。中斷口線上一個(gè)從高到低的跳變將記錄在標(biāo)志寄存器中,直到CPU響應(yīng)并轉(zhuǎn)向該中斷服務(wù)程序時(shí),由硬件自動(dòng)清除。因此因此當(dāng)當(dāng)CPUCPU正在執(zhí)行同級(jí)中斷(甚至是外部中斷本身)或正在執(zhí)行同級(jí)中斷(甚至是外部中斷本身)或高級(jí)中斷時(shí),產(chǎn)生的外部中斷(負(fù)跳變)同樣將被記高級(jí)中斷時(shí),產(chǎn)生的外部中斷(負(fù)跳變)同樣將被記錄在中斷標(biāo)志寄存器中
7、。錄在中斷標(biāo)志寄存器中。2.2.串行中斷控制寄存器串行中斷控制寄存器SCON SCON 串行控制寄存器串行控制寄存器SCONSCON的字節(jié)地址為的字節(jié)地址為98H98H,位地址為,位地址為98H-9FH98H-9FHTI: TI: 串行口發(fā)送中斷請(qǐng)求標(biāo)志位。當(dāng)發(fā)送完一幀串行數(shù)據(jù)后,由硬件置串行口發(fā)送中斷請(qǐng)求標(biāo)志位。當(dāng)發(fā)送完一幀串行數(shù)據(jù)后,由硬件置“1”1”;在中斷響應(yīng),轉(zhuǎn)向中斷服務(wù)程序后,接口硬件不能自動(dòng)將;在中斷響應(yīng),轉(zhuǎn)向中斷服務(wù)程序后,接口硬件不能自動(dòng)將TITI或或RIRI清清零,需用戶用軟件清零,來撤消中斷。中斷撤消必須在下一個(gè)中斷到來之零,需用戶用軟件清零,來撤消中斷。中斷撤消必須在下
8、一個(gè)中斷到來之前完成。前完成。 RIRI:串行口接收中斷請(qǐng)求標(biāo)志位。當(dāng)接收完一幀串行數(shù)據(jù)后,由硬件置:串行口接收中斷請(qǐng)求標(biāo)志位。當(dāng)接收完一幀串行數(shù)據(jù)后,由硬件置“1”1”;在中斷響應(yīng),轉(zhuǎn)向中斷服務(wù)程序后,需用軟件清;在中斷響應(yīng),轉(zhuǎn)向中斷服務(wù)程序后,需用軟件清“0”0”。串行中斷請(qǐng)。串行中斷請(qǐng)求由求由TITI和和RIRI的邏輯或得到。的邏輯或得到。 TCOND7D6D5D4D3D2D1D0位名稱SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能 方式選擇方式選擇多機(jī)通訊控制接收允許發(fā)送第9位接收第9位串行發(fā)送中斷串行接收中斷3.3.中斷屏蔽寄存
9、器中斷屏蔽寄存器IE IE 中斷屏蔽寄存器中斷屏蔽寄存器IEIE用于控制各中斷源的中斷開放或關(guān)閉。字節(jié)地址為用于控制各中斷源的中斷開放或關(guān)閉。字節(jié)地址為0A8H0A8H,位地,位地址為址為0A8H-0AFH 0A8H-0AFH EAEA:中斷允許總控位。:中斷允許總控位。EA=0EA=0,屏蔽所有的中斷請(qǐng)求;,屏蔽所有的中斷請(qǐng)求;EA=1EA=1,開放所有中斷請(qǐng)求。,開放所有中斷請(qǐng)求。EAEA的作用是使中斷允許形成兩級(jí)控制。的作用是使中斷允許形成兩級(jí)控制。ESES:串行口中斷允許位。:串行口中斷允許位。ES=0ES=0,禁止串行口中斷;,禁止串行口中斷;ES=1ES=1允許串行口中斷。允許串行
10、口中斷。ET1ET1:定時(shí)器:定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T1T1的溢出中斷允許位。的溢出中斷允許位。ET1=0ET1=0,禁止,禁止T1T1中斷;中斷;ET1=1ET1=1,允許,允許T1T1中斷。中斷。EX1EX1:外部中斷:外部中斷1()1()的中斷允許位。的中斷允許位。EX1=0EX1=0,禁止外部中斷,禁止外部中斷1 1中斷;中斷;EX1=1EX1=1,允許外,允許外部中斷部中斷1 1中斷。中斷。ET0ET0:定時(shí)器:定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0的溢出中斷允許位。的溢出中斷允許位。ET0=0ET0=0,禁止,禁止T0T0中斷;中斷;ET0=1ET0=1,允許,允許T0T0中斷。中斷。
11、EX0EX0:外部中斷:外部中斷0()0()的中斷允許位。的中斷允許位。EX0=0EX0=0,禁止外部中斷,禁止外部中斷0 0中斷;中斷;EX0=1EX0=1允許外部允許外部中斷中斷0 0中斷。中斷。 1INT0INTIED7D6D5D4D3D2D1D0位名稱EA ESET1EX1ET0EX0位地址AFH ACHABHAAHA9HA8H中斷源CPU 串口T1T04.4.中斷優(yōu)先級(jí)控制寄存器中斷優(yōu)先級(jí)控制寄存器IP IP MCS-51MCS-51單片機(jī)的中斷源可以設(shè)置為兩個(gè)優(yōu)先級(jí):高優(yōu)先級(jí)和低優(yōu)先級(jí),從而實(shí)現(xiàn)兩單片機(jī)的中斷源可以設(shè)置為兩個(gè)優(yōu)先級(jí):高優(yōu)先級(jí)和低優(yōu)先級(jí),從而實(shí)現(xiàn)兩級(jí)中斷嵌套。級(jí)中斷嵌
12、套。優(yōu)先級(jí)控制可以通過修改中斷優(yōu)先級(jí)控制寄存器優(yōu)先級(jí)控制可以通過修改中斷優(yōu)先級(jí)控制寄存器IPIP的內(nèi)容實(shí)現(xiàn)。的內(nèi)容實(shí)現(xiàn)。IPIP的字節(jié)地址為的字節(jié)地址為0B8H0B8H,位地址為,位地址為0BFH0BFH0B8H0B8H PSPS:串行口中斷優(yōu)先級(jí)控制位。:串行口中斷優(yōu)先級(jí)控制位?!?”0”為低優(yōu)先級(jí)為低優(yōu)先級(jí),“1”,“1”為高優(yōu)先級(jí)。為高優(yōu)先級(jí)。PT1PT1:定時(shí)器:定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1(T1T1)的中斷優(yōu)先級(jí)控制位。)的中斷優(yōu)先級(jí)控制位?!?”0”為低優(yōu)先級(jí)為低優(yōu)先級(jí),“1”,“1”為為高優(yōu)先級(jí)。高優(yōu)先級(jí)。PX1PX1:外部中斷:外部中斷1 1的中斷優(yōu)先級(jí)控制位。的中斷優(yōu)先級(jí)控
13、制位?!?”0”為低優(yōu)先級(jí)為低優(yōu)先級(jí),“1”,“1”為高優(yōu)先級(jí)。為高優(yōu)先級(jí)。PT0PT0:定時(shí)器:定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0(T0T0)的中斷優(yōu)先級(jí)控制位。)的中斷優(yōu)先級(jí)控制位?!?”0”為低優(yōu)先級(jí)為低優(yōu)先級(jí),“1”,“1”為為高優(yōu)先級(jí)。高優(yōu)先級(jí)。PX0PX0:外部中斷:外部中斷0 0的中斷優(yōu)先級(jí)控制位。的中斷優(yōu)先級(jí)控制位?!?”0”為低優(yōu)先級(jí)為低優(yōu)先級(jí),“1”,“1”為高優(yōu)先級(jí)。為高優(yōu)先級(jí)。同一級(jí)別中,優(yōu)先權(quán)次序遵從自然優(yōu)先級(jí),從高到低依次為:同一級(jí)別中,優(yōu)先權(quán)次序遵從自然優(yōu)先級(jí),從高到低依次為:INT0INT0、T0T0、INT1INT1、T1T1、RI/TIRI/TI。 1INT0I
14、NTIPD7D6D5D4D3D2D1D0位名稱 PSPT1PX1PT0PX0位地址 BCHBBHBAHB9HB8H中斷源 串口T1T0中斷優(yōu)先級(jí)遵循下列原則:中斷優(yōu)先級(jí)遵循下列原則:正在進(jìn)行中斷服務(wù)的中斷過程不能被新的同級(jí)正在進(jìn)行中斷服務(wù)的中斷過程不能被新的同級(jí)或更低優(yōu)先級(jí)的中斷請(qǐng)求所中斷,一直到該中斷或更低優(yōu)先級(jí)的中斷請(qǐng)求所中斷,一直到該中斷服務(wù)程序結(jié)束,返回主程序且執(zhí)行了主程序中的服務(wù)程序結(jié)束,返回主程序且執(zhí)行了主程序中的一條指令后,一條指令后,CPUCPU才響應(yīng)新的同級(jí)或低級(jí)中斷請(qǐng)才響應(yīng)新的同級(jí)或低級(jí)中斷請(qǐng)求。求。正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù)程序能被高優(yōu)先正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù)程序能被
15、高優(yōu)先級(jí)中斷請(qǐng)求所中斷,實(shí)現(xiàn)兩級(jí)中斷嵌套。高級(jí)中級(jí)中斷請(qǐng)求所中斷,實(shí)現(xiàn)兩級(jí)中斷嵌套。高級(jí)中斷結(jié)束后,返回低級(jí)中斷服務(wù)。斷結(jié)束后,返回低級(jí)中斷服務(wù)。CPUCPU同時(shí)接收到幾個(gè)中斷請(qǐng)求時(shí),首先響應(yīng)高同時(shí)接收到幾個(gè)中斷請(qǐng)求時(shí),首先響應(yīng)高優(yōu)先級(jí)的中斷請(qǐng)求,同一優(yōu)先級(jí)內(nèi)部,按照自然優(yōu)先級(jí)的中斷請(qǐng)求,同一優(yōu)先級(jí)內(nèi)部,按照自然優(yōu)先級(jí)響應(yīng)。優(yōu)先級(jí)響應(yīng)。 5.3 5.3 中斷過程中斷過程 .1中斷請(qǐng)求中斷請(qǐng)求 中斷請(qǐng)求就是中斷源向中斷請(qǐng)求就是中斷源向CPUCPU申請(qǐng)中斷的過程,即建立中斷請(qǐng)求申請(qǐng)中斷的過程,即建立中斷請(qǐng)求標(biāo)志位標(biāo)志位IE0IE0、IE1IE1、TF0TF0、TF1TF1、TI/R
16、ITI/RI的過程的過程外部中斷請(qǐng)求:經(jīng)由引腳外部中斷請(qǐng)求:經(jīng)由引腳P3.2P3.2、P3.3P3.3向向CPUCPU申請(qǐng)中斷的過程。申請(qǐng)中斷的過程。外部中斷請(qǐng)求有兩種方式:低電平觸發(fā)和下降沿觸發(fā)。通過設(shè)置觸發(fā)外部中斷請(qǐng)求有兩種方式:低電平觸發(fā)和下降沿觸發(fā)。通過設(shè)置觸發(fā)方式控制位方式控制位IT0IT0、IT1IT1進(jìn)行選擇。進(jìn)行選擇。IT0=0IT0=0,表示為低電平觸發(fā)方式;,表示為低電平觸發(fā)方式;IT0=1IT0=1,表示為下降沿觸發(fā)方式。,表示為下降沿觸發(fā)方式。IT1IT1的情況類似。的情況類似。 外部中斷請(qǐng)求標(biāo)志存放在外部中斷請(qǐng)求標(biāo)志存放在IE0/IE1IE0/IE1中。中。IE0IE
17、0為中斷請(qǐng)求標(biāo)志位。當(dāng)有中為中斷請(qǐng)求標(biāo)志位。當(dāng)有中斷請(qǐng)求時(shí)斷請(qǐng)求時(shí)IE0IE0置置1 1。IE1IE1的情況類似。的情況類似。 內(nèi)部中斷請(qǐng)求:內(nèi)部中斷請(qǐng)求: 當(dāng)當(dāng)T0T0計(jì)數(shù)產(chǎn)生溢出時(shí),由硬件置位計(jì)數(shù)產(chǎn)生溢出時(shí),由硬件置位TF0TF0。當(dāng)。當(dāng)CPUCPU響應(yīng)中斷后,再由硬響應(yīng)中斷后,再由硬件將件將TF0TF0清清0 0。 T1T1的情況類似。的情況類似。當(dāng)串行口發(fā)送結(jié)束時(shí),使當(dāng)串行口發(fā)送結(jié)束時(shí),使TI=1TI=1;當(dāng)串行口接收結(jié)束時(shí),使;當(dāng)串行口接收結(jié)束時(shí),使RI=1RI=1。 CPUCPU響應(yīng)中斷后,由軟件將響應(yīng)中斷后,由軟件將TI/RITI/RI位清位清0 0。.2中斷響應(yīng)
18、中斷響應(yīng) CPUCPU對(duì)中斷請(qǐng)求進(jìn)行判斷,形成中斷矢量,轉(zhuǎn)入相應(yīng)對(duì)中斷請(qǐng)求進(jìn)行判斷,形成中斷矢量,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序的過程叫中斷響應(yīng)。的中斷服務(wù)程序的過程叫中斷響應(yīng)。 一、一、CPUCPU響應(yīng)中斷的基本條件響應(yīng)中斷的基本條件有中斷源提出中斷請(qǐng)求;有中斷源提出中斷請(qǐng)求;中斷總允許位中斷總允許位EAEA1 1,即,即CPUCPU中斷開放;中斷開放;申請(qǐng)中斷的中斷源的中斷允許位為申請(qǐng)中斷的中斷源的中斷允許位為1 1,即中斷源,即中斷源開放;開放;CPUCPU沒有響應(yīng)同級(jí)或更高優(yōu)先級(jí)的中斷;沒有響應(yīng)同級(jí)或更高優(yōu)先級(jí)的中斷;當(dāng)前指令執(zhí)行結(jié)束;當(dāng)前指令執(zhí)行結(jié)束;如果正在執(zhí)行的指令是如果正在執(zhí)行的指令是
19、RETIRETI或是訪問或是訪問IEIE、IPIP指指令。令。 CPUCPU在執(zhí)行在執(zhí)行RETIRETI或訪問或訪問IEIE、IPIP指令后,至指令后,至少還需要再執(zhí)行一條其它指令后才會(huì)響應(yīng)中斷請(qǐng)少還需要再執(zhí)行一條其它指令后才會(huì)響應(yīng)中斷請(qǐng)求。求。二、中斷響應(yīng)過程二、中斷響應(yīng)過程單片機(jī)在每個(gè)機(jī)器周期的單片機(jī)在每個(gè)機(jī)器周期的S5P2S5P2期間,順序期間,順序采樣每個(gè)中斷源,建立中斷請(qǐng)求標(biāo)志。在采樣每個(gè)中斷源,建立中斷請(qǐng)求標(biāo)志。在下一個(gè)機(jī)器周期按優(yōu)先級(jí)查詢中斷標(biāo)志,下一個(gè)機(jī)器周期按優(yōu)先級(jí)查詢中斷標(biāo)志,如查詢到有中斷標(biāo)志為如查詢到有中斷標(biāo)志為1 1,則按優(yōu)先級(jí)進(jìn)行,則按優(yōu)先級(jí)進(jìn)行中斷響應(yīng)。中斷響應(yīng)。
20、 硬件將程序計(jì)數(shù)器硬件將程序計(jì)數(shù)器PCPC的當(dāng)前內(nèi)容壓入堆棧的當(dāng)前內(nèi)容壓入堆棧保護(hù),然后將對(duì)應(yīng)的中斷矢量裝入程序計(jì)保護(hù),然后將對(duì)應(yīng)的中斷矢量裝入程序計(jì)數(shù)器數(shù)器PCPC,使程序轉(zhuǎn)向相應(yīng)的中斷。這相當(dāng),使程序轉(zhuǎn)向相應(yīng)的中斷。這相當(dāng)于執(zhí)行一條長調(diào)用指令。于執(zhí)行一條長調(diào)用指令。 中斷響應(yīng)過程中斷響應(yīng)過程中斷響應(yīng)過程: 保護(hù)斷點(diǎn)地址; 把程序轉(zhuǎn)向中斷服務(wù)程序的入口地址(通常稱矢量地址)執(zhí)行中斷服務(wù)程序。中斷響應(yīng)特別注意:這些工作是硬件自動(dòng)完成的! 斷點(diǎn)地址中斷服務(wù)子程序的入口地址程序存儲(chǔ)器程序存儲(chǔ)器ROMROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外
21、部中斷0入口000BH:定時(shí)器0溢出中斷入口0013H:外部中斷1入口001BH:定時(shí)器1溢出中斷入口使用時(shí),通常在這些入口地址處存放一條長跳轉(zhuǎn)LCALL addr16指令,使程序跳轉(zhuǎn)到用戶安排的中斷服務(wù)程序起始地址上去!5個(gè)固定固定的中斷源矢量地址程序存儲(chǔ)器程序存儲(chǔ)器ROMROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時(shí)器0溢出中斷入口0013H:外部中斷1入口001BH:定時(shí)器1溢出中斷入口002AH包含T0中斷服務(wù)子程序的程序結(jié)構(gòu):ORG 0000HORG 0000HAJMP MAINORG 000BHORG
22、 000BHAJMP INTT0ORG 0100HORG 0100HMAIN: MOV A, #08 . .INTT0:MOV A, #03 . . RETI ENDAJMP MAINAJMP INTT0 5.3.3 5.3.3 中斷處理中斷服務(wù)程序從入口地址入口地址開始執(zhí)行,直到返回指令RETI為止,這個(gè)過程稱為中斷處理(執(zhí)行中斷服務(wù))。中斷服務(wù)子程序一般包括兩部分內(nèi)容,一是保護(hù)和恢復(fù)現(xiàn)場(chǎng),二是中斷源服務(wù)(中斷事務(wù)處理)。中斷響應(yīng)入口地址入口地址RETI保護(hù)現(xiàn)場(chǎng)INTT0: PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中斷源服務(wù) POP PSW POP DPL P
23、OP DPH POP ACC RETI保護(hù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)關(guān)中斷保護(hù)現(xiàn)場(chǎng)開中斷中斷服務(wù)恢復(fù)現(xiàn)場(chǎng)開中斷中斷返回?cái)帱c(diǎn)地址由堆棧彈出保護(hù)和恢復(fù)現(xiàn)場(chǎng)之后開中斷,是為了允許響應(yīng)更高級(jí)別的中斷。保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的過程中不允許中斷,以免現(xiàn)場(chǎng)遭到破壞。關(guān)中斷RETI指令功能:把斷點(diǎn)地址從堆棧取出,送到PC。并清除優(yōu)先級(jí)狀態(tài)觸發(fā)器。 特別注意:不能用RET指令代替RETI指令!中斷響應(yīng)中斷返回RETI.4中斷返回中斷返回 .5 5 中斷請(qǐng)求撤消中斷請(qǐng)求撤消外部中斷外部中斷INT0INT0、INT1INT1的中斷請(qǐng)求標(biāo)志的中斷請(qǐng)求標(biāo)志位位IE0IE0、IE1IE1在在CPUCPU響應(yīng)中
24、斷后,由硬件響應(yīng)中斷后,由硬件清清0 0撤消。撤消。定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T0T0、T1T1溢出標(biāo)志溢出標(biāo)志TF0TF0、TF1TF1在在CPUCPU響應(yīng)中斷后,由硬件清響應(yīng)中斷后,由硬件清0 0撤撤消。消。串行口發(fā)送結(jié)束串行口發(fā)送結(jié)束/ /接收結(jié)束接收結(jié)束TI/RITI/RI在在 CPUCPU響應(yīng)中斷后,由軟件清響應(yīng)中斷后,由軟件清0 0撤消。撤消。.6 6中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間是指中斷響應(yīng)時(shí)間是指CPUCPU檢測(cè)到中斷請(qǐng)求信號(hào)到轉(zhuǎn)入中斷檢測(cè)到中斷請(qǐng)求信號(hào)到轉(zhuǎn)入中斷服務(wù)程序所需要的時(shí)間。服務(wù)程序所需要的時(shí)間。若中斷檢測(cè)時(shí)正好是一條指令的最后若中斷檢測(cè)時(shí)正好是一
25、條指令的最后1 1個(gè)個(gè)機(jī)器周期,且機(jī)器周期,且不是不是RETIRETI或訪問或訪問IEIE、IPIP指令,則指令,則CPUCPU執(zhí)行執(zhí)行2 2個(gè)個(gè)機(jī)器周期的機(jī)器周期的長調(diào)用轉(zhuǎn)移指令即可執(zhí)行中斷服務(wù)程序,共長調(diào)用轉(zhuǎn)移指令即可執(zhí)行中斷服務(wù)程序,共1+2=31+2=3個(gè)個(gè)機(jī)器機(jī)器周期。周期。若中斷檢測(cè)時(shí)若中斷檢測(cè)時(shí)CPUCPU正在執(zhí)行正在執(zhí)行RETIRETI或訪問或訪問IEIE、IPIP指令的第指令的第一個(gè)機(jī)器周期,需一個(gè)機(jī)器周期,需2 2個(gè)個(gè)機(jī)器周期完成上述操作,若緊接著機(jī)器周期完成上述操作,若緊接著的下一條指令是乘法,則需的下一條指令是乘法,則需4 4個(gè)個(gè)機(jī)器周期,之后機(jī)器周期,之后CPUCPU
26、執(zhí)行執(zhí)行一條一條2 2個(gè)個(gè)機(jī)器周期的長調(diào)用轉(zhuǎn)移指令才可執(zhí)行中斷服務(wù)程機(jī)器周期的長調(diào)用轉(zhuǎn)移指令才可執(zhí)行中斷服務(wù)程序,故共需序,故共需8 8個(gè)個(gè)機(jī)器周期。機(jī)器周期。5.4 5.4 外部中斷源擴(kuò)展外部中斷源擴(kuò)展 MCS-51MCS-51單片機(jī)只提供了兩個(gè)外部中斷請(qǐng)求單片機(jī)只提供了兩個(gè)外部中斷請(qǐng)求輸入端,在實(shí)際應(yīng)用中,如果需要使用多于輸入端,在實(shí)際應(yīng)用中,如果需要使用多于兩個(gè)的外部中斷源,就必須進(jìn)行外部中斷源兩個(gè)的外部中斷源,就必須進(jìn)行外部中斷源的擴(kuò)展。常用的幾種外部中斷源擴(kuò)展方法是:的擴(kuò)展。常用的幾種外部中斷源擴(kuò)展方法是:利用單片機(jī)中的定時(shí)器利用單片機(jī)中的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0、T1T1來
27、來擴(kuò)展;擴(kuò)展;外接硬件電路并配合查詢程序擴(kuò)展;外接硬件電路并配合查詢程序擴(kuò)展;外接中斷控制芯片(如外接中斷控制芯片(如82598259)進(jìn)行擴(kuò)展)進(jìn)行擴(kuò)展。 1用定時(shí)器/計(jì)數(shù)器擴(kuò)展外部中斷源將定時(shí)器/計(jì)數(shù)器T0、T1設(shè)置為計(jì)數(shù)方式工作方式2負(fù)跳變觸發(fā)初值設(shè)為0FFH允許中斷當(dāng)計(jì)數(shù)輸入端發(fā)生一個(gè)負(fù)跳變時(shí),計(jì)數(shù)器加1,便發(fā)生溢出,從而產(chǎn)生中斷。 ORG 0100H MOV TMOD,#06H ;設(shè)置定時(shí)器T0為工作方式2、計(jì)數(shù)模式 MOV TH0,#0FFH ;設(shè)置計(jì)數(shù)器初值 MOV TL0,#0FFH SETB ET0 ;允許定時(shí)器中斷SETB EA ;CPU開中斷SETB TR0 ;啟動(dòng)定時(shí)器
28、T0初始化程序如下:2 2查詢方式擴(kuò)展外部中斷源多個(gè)中斷源通過一個(gè)中斷請(qǐng)求引腳申請(qǐng)中斷多個(gè)中斷源通過一個(gè)中斷請(qǐng)求引腳申請(qǐng)中斷中斷源內(nèi)部采用查詢方式確定中斷源內(nèi)部采用查詢方式確定例:通過例:通過OCOC門實(shí)現(xiàn)外部中斷源擴(kuò)展的基本原理如下圖所示門實(shí)現(xiàn)外部中斷源擴(kuò)展的基本原理如下圖所示參考程序如下:參考程序如下: ORG 0003H LJMP INTER_PRO ORG 0100H INTER_PRO: JNB P1.0 ,SUB0_PRO JNB P1.1, SUB1_PRO . JNB P1.7, SUB7_PRO . .中斷控制芯片(如)進(jìn)行擴(kuò)展中斷控制芯片(如)進(jìn)行擴(kuò)展 當(dāng)需要擴(kuò)展的外部中斷
29、源比較多時(shí),可以當(dāng)需要擴(kuò)展的外部中斷源比較多時(shí),可以使用專用中斷控制器使用專用中斷控制器82598259實(shí)現(xiàn)。一個(gè)實(shí)現(xiàn)。一個(gè)82598259可以直可以直接擴(kuò)展接擴(kuò)展8 8個(gè)中斷源,經(jīng)級(jí)聯(lián)后,最多可以擴(kuò)展個(gè)中斷源,經(jīng)級(jí)聯(lián)后,最多可以擴(kuò)展6464個(gè)中斷源。個(gè)中斷源。堆棧設(shè)置觸發(fā)方式設(shè)置中斷開放優(yōu)先級(jí)設(shè)置中斷應(yīng)用中斷應(yīng)用 8 8件事件事在入口放轉(zhuǎn)移指令保護(hù)/恢復(fù)現(xiàn)場(chǎng)開關(guān)中斷中斷標(biāo)志撤銷【例例】 按鍵中斷控制按鍵中斷控制LED LED ORG 0000HAJMP MAINORG 0003HCLR EA AJMP PINT0ORG 0100HMAIN : MOV SP,#3FHSETB EASETB E
30、X0CLR IT0 H : SJMP HORG 0200HPINT0:CPL P2.0WAIT: JNB P3.2, WAITSETB EARETIEND 例例 兩級(jí)中斷兩級(jí)中斷ORG 0000HORG 0000H; ;在在0000H0000H單元存放轉(zhuǎn)移指令單元存放轉(zhuǎn)移指令 LJMP START LJMP START ; ;轉(zhuǎn)移到主程序轉(zhuǎn)移到主程序ORG 0003HORG 0003H; ;外部中斷外部中斷INT0INT0入口入口 LJMP EXT0 LJMP EXT0 ; ;轉(zhuǎn)移到外部中斷轉(zhuǎn)移到外部中斷0 0的中斷服務(wù)程序的中斷服務(wù)程序ORG 0013HORG 0013H; ;外部中斷外部中
31、斷INT1INT1入口入口 LJMP EXT1 LJMP EXT1 ; ;轉(zhuǎn)移到外部中斷轉(zhuǎn)移到外部中斷1 1的中斷服務(wù)程序的中斷服務(wù)程序ORG 0030H ORG 0030H ; ;主程序從主程序從0030H0030H開始存放開始存放START: MOV IE,#10000101B START: MOV IE,#10000101B ;CPU;CPU、INT0INT0、INT1INT1中斷開放中斷開放 MOV IP,#00000100B MOV IP,#00000100B ;INT1;INT1高中斷優(yōu)先級(jí)高中斷優(yōu)先級(jí) MOV TCON,#00000101B MOV TCON,#00000101B
32、 ;INT0;INT0、INT1INT1為下降沿觸發(fā)為下降沿觸發(fā) MOV SP,#3FH MOV SP,#3FH ; ;重置堆棧重置堆棧LOOP: MOV P1,#03H LOOP: MOV P1,#03H ; ;點(diǎn)亮點(diǎn)亮2 2只只LEDLED AJMP LOOP AJMP LOOP; ;等待中斷等待中斷EXT0: PUSH ACC EXT0: PUSH ACC ; ;堆棧保護(hù)堆棧保護(hù) PUSH PSWPUSH PSW MOV R2,#0AH MOV R2,#0AH ; ;閃爍閃爍1010次次LOOP1: MOV P1,#00H LOOP1: MOV P1,#00H ; ;使使LED0LED0
33、、LED1LED1滅滅 LCALL DELAYLCALL DELAY MOV P1,#01H MOV P1,#01H ; ;使使LED0LED0亮亮 LCALL DELAYLCALL DELAY DJNZ R2,LOOP1 DJNZ R2,LOOP1 ; ;循環(huán)循環(huán)1010次次 POP PSWPOP PSW POP ACCPOP ACC RETIRETIEXT1: PUSH ACC EXT1: PUSH ACC ; ;堆棧保護(hù)堆棧保護(hù) PUSH PSWPUSH PSW MOV R3,#0AH MOV R3,#0AH ; ;閃爍閃爍1010次次LOOP2: MOV P1, #00H LOOP2:
34、 MOV P1, #00H ; ;使使LED0LED0、LED1LED1滅滅 LCALL DELAYLCALL DELAY MOV P1,#02H MOV P1,#02H ; ;使使LED1LED1亮亮 LCALL DELAYLCALL DELAY DJNZ R3,LOOP2 DJNZ R3,LOOP2 ; ;循環(huán)循環(huán)1010次次 POP PSWPOP PSW POP ACC POP ACC RETI RETI ; ;中斷返回中斷返回DELAY: MOV R5, #20 DELAY: MOV R5, #20 ; ;延時(shí)延時(shí)200ms200ms子程序子程序 DLY1: MOV R6, #200D
35、LY1: MOV R6, #200 DLY2: MOV R7, #200DLY2: MOV R7, #200 DJNZ R7, $ DJNZ R7, $ DJNZ R6, DLY2 DJNZ R6, DLY2 DJNZ R5, DLY1 DJNZ R5, DLY1 RET RET; ;中斷返回中斷返回 END END PtoteusPtoteus仿真仿真 全自動(dòng)洗衣機(jī)工作過程中,當(dāng)遇到意外事件發(fā)生,如全自動(dòng)洗衣機(jī)工作過程中,當(dāng)遇到意外事件發(fā)生,如衣物纏繞,或需要干預(yù)洗衣進(jìn)程時(shí),如需要添加消衣物纏繞,或需要干預(yù)洗衣進(jìn)程時(shí),如需要添加消毒液,就需要暫停當(dāng)前洗衣進(jìn)程,處理這些事件。毒液,就需要暫停當(dāng)
36、前洗衣進(jìn)程,處理這些事件。假設(shè)全自動(dòng)洗衣機(jī)有假設(shè)全自動(dòng)洗衣機(jī)有8 8個(gè)流程,用個(gè)流程,用8 8個(gè)指示燈表示;個(gè)指示燈表示;用用8 8個(gè)按鍵進(jìn)行選擇控制。當(dāng)某個(gè)流程工作時(shí),對(duì)應(yīng)個(gè)按鍵進(jìn)行選擇控制。當(dāng)某個(gè)流程工作時(shí),對(duì)應(yīng)的指示燈點(diǎn)亮。當(dāng)按下按鍵的指示燈點(diǎn)亮。當(dāng)按下按鍵K K時(shí),中斷正在進(jìn)行的流時(shí),中斷正在進(jìn)行的流程,對(duì)應(yīng)的流程指示燈閃爍,洗衣機(jī)進(jìn)入等待狀態(tài);程,對(duì)應(yīng)的流程指示燈閃爍,洗衣機(jī)進(jìn)入等待狀態(tài);再次按下再次按下K K時(shí),指示燈停止閃爍,變成點(diǎn)亮狀態(tài),表時(shí),指示燈停止閃爍,變成點(diǎn)亮狀態(tài),表示洗衣機(jī)恢復(fù)原來被中斷的洗衣流程。示洗衣機(jī)恢復(fù)原來被中斷的洗衣流程。X111.0592MHzC133pC
37、233pVCCXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3
38、.6/WR16P3.5/T115U180C51PROGRAM=Text1.HEXSRCFILE=Text1.ASMR11kR21kR31kR41kR51kR61kR71kR81kVCCU2NOTU3NOTU4NOTU5NOTU6NOTU7NOTU8NOTU9NOTR16100R14100R13100R12100R11100R10100R15100R9100123U10:A7400456U10:B7400R171kR181kSW1SW-SPDTVCCQ12N5551R191kR201kVCCVCCD1D2D3D4D5D6D7D8LS1SPEAKERORG 0000H ORG 0000H ;在;在0000H0000H單元存放轉(zhuǎn)移指令單元存放轉(zhuǎn)移指令 AJMP MAIN AJMP MAIN ;轉(zhuǎn)移至主程序;轉(zhuǎn)移至主程序 ORG 0003H ORG 0003H ;INT0INT0中斷入口中斷入口 AJMP WBI AJMP WBI ;轉(zhuǎn)中斷服務(wù)程序;轉(zhuǎn)中斷服務(wù)程序 ORG 0030H ORG 0030H ;主程序;主程序 MAIN: MOV P2MAIN: MOV P2,#00H #00H ;全燈滅;全燈滅 SETB IT0 SE
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沙石運(yùn)輸誠信體系建設(shè)合同
- 樂器運(yùn)輸協(xié)調(diào)協(xié)議
- 圖書館裝修合同模板圖
- 水處理液堿運(yùn)輸服務(wù)合同
- 娛樂場(chǎng)所裝修合同標(biāo)準(zhǔn)范本
- 主題公園裝修搬運(yùn)協(xié)議樣本
- 辦公室翻新項(xiàng)目合同書
- 家具航空運(yùn)輸合同范本
- 陜西景區(qū)移動(dòng)廁所施工方案
- 叫公寓租賃合同范本
- 動(dòng)火作業(yè)安全管理要求及控制措施
- 詩豪劉禹錫一生部編教材PPT
- 資源循環(huán)科學(xué)和工程專業(yè)建設(shè)探討
- 中國營養(yǎng)師培訓(xùn)教材1
- 2023年河南省鄭州市一模道德與法治試題(含答案)
- 《民航服務(wù)溝通技巧》教案第13課內(nèi)部溝通基礎(chǔ)知識(shí)
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(語文)試題庫含答案解析
- FZ/T 54024-2019錦綸6預(yù)取向絲
- 2022年云南省中考數(shù)學(xué)試卷及答案
- 30453自考機(jī)電一體化技術(shù)及應(yīng)用小抄
- 水利生產(chǎn)安全事故典型案例分析
評(píng)論
0/150
提交評(píng)論