MCS51系列單片機(jī)的中斷系統(tǒng)及定時計數(shù)器ppt課件_第1頁
MCS51系列單片機(jī)的中斷系統(tǒng)及定時計數(shù)器ppt課件_第2頁
MCS51系列單片機(jī)的中斷系統(tǒng)及定時計數(shù)器ppt課件_第3頁
MCS51系列單片機(jī)的中斷系統(tǒng)及定時計數(shù)器ppt課件_第4頁
MCS51系列單片機(jī)的中斷系統(tǒng)及定時計數(shù)器ppt課件_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 Copyright 20061第第3章章 MCS51系列單片機(jī)的中斷系統(tǒng)及定時計數(shù)器系列單片機(jī)的中斷系統(tǒng)及定時計數(shù)器中斷的基本概念MCS-51的中斷系統(tǒng)中斷源和中斷標(biāo)志中斷的允許和優(yōu)先權(quán)中斷的處理過程外部中斷源的擴(kuò)展中斷的應(yīng)用中斷系統(tǒng)中斷系統(tǒng) Copyright 20061中斷的基本概念日常生活中斷的例子單片機(jī)中的中斷概念中斷技術(shù)的優(yōu)點(diǎn) 什么是中斷,我們從生活中的例子引入。什么是中斷,我們從生活中的例子引入。 看書的例子:你正在看書,突然電話鈴響了,看書的例子:你正在看書,突然電話鈴響了,.。 中斷就是正常的工作被外部事件打斷了。中斷就是正常的工作被外部事件打斷了。 Copyright 20

2、061日常生活中的中斷仔細(xì)研究一下生活中的中斷,對于我們學(xué)習(xí)計算機(jī)中的中斷也很有好處。仔細(xì)研究一下生活中的中斷,對于我們學(xué)習(xí)計算機(jī)中的中斷也很有好處。 1、什么可以引起中斷?生活中有很多事件可以引起中斷:有人按了門鈴,電話鈴響、什么可以引起中斷?生活中有很多事件可以引起中斷:有人按了門鈴,電話鈴響了,你的鬧鐘鈴響了,你燒的水開了了,你的鬧鐘鈴響了,你燒的水開了,你內(nèi)急了你內(nèi)急了.等等諸如此類的事件,我們把等等諸如此類的事件,我們把可以引起中斷的事件稱之為中斷源。計算機(jī)中也有一些可以引起中斷的事件,像可以引起中斷的事件稱之為中斷源。計算機(jī)中也有一些可以引起中斷的事件,像MCU51單片機(jī)就有單片機(jī)

3、就有5個中斷源。個中斷源。 Copyright 20061 2、中斷的嵌套與優(yōu)先級處理:、中斷的嵌套與優(yōu)先級處理: 設(shè)想一下,我們正在看書,電話鈴?fù)蝗豁懥?,同時又有人按了門鈴,你該先做那設(shè)想一下,我們正在看書,電話鈴?fù)蝗豁懥?,同時又有人按了門鈴,你該先做那樣呢?如果你正在等一個很重要的電話,你一般不會去理會門鈴的,而反之,樣呢?如果你正在等一個很重要的電話,你一般不會去理會門鈴的,而反之,你正在等一個很重要的客人,則可能就不會去理會電話了。如果不是這兩者你正在等一個很重要的客人,則可能就不會去理會電話了。如果不是這兩者(即不等電話,也不等人上門)你可能會按你通常的習(xí)慣去處理??傊@里存(即不等

4、電話,也不等人上門)你可能會按你通常的習(xí)慣去處理。總之這里存在一個優(yōu)先級問題。優(yōu)先級問題不僅僅發(fā)生在兩個或以上的中斷同時產(chǎn)生的情在一個優(yōu)先級問題。優(yōu)先級問題不僅僅發(fā)生在兩個或以上的中斷同時產(chǎn)生的情況,也發(fā)生在一個中斷已經(jīng)產(chǎn)生,又有一個中斷產(chǎn)生的情況。如你正在接電話,況,也發(fā)生在一個中斷已經(jīng)產(chǎn)生,又有一個中斷產(chǎn)生的情況。如你正在接電話,有人按門鈴的情況,或你正在開門與人交談,又有電話鈴了的情況??紤]一下有人按門鈴的情況,或你正在開門與人交談,又有電話鈴了的情況。考慮一下我們會怎么辦吧。我們會怎么辦吧。 Copyright 20061 3、中斷的響應(yīng)過程:、中斷的響應(yīng)過程:(看書的例子)當(dāng)有事件產(chǎn)

5、生,進(jìn)入中斷之前我們必須先記住現(xiàn)在看書的第幾頁了,(看書的例子)當(dāng)有事件產(chǎn)生,進(jìn)入中斷之前我們必須先記住現(xiàn)在看書的第幾頁了,或拿一個書簽放在當(dāng)前頁的位置,然后去處理不同的事情(因?yàn)樘幚硗炅?,我或拿一個書簽放在當(dāng)前頁的位置,然后去處理不同的事情(因?yàn)樘幚硗炅?,我們還要來繼續(xù)看書)。們還要來繼續(xù)看書)。 (接電話的例子)電話鈴響了我們要到放電話的地方去,門鈴響了,我們要到門那(接電話的例子)電話鈴響了我們要到放電話的地方去,門鈴響了,我們要到門那邊去,也就是說,不同的中斷,我們要在不同的地點(diǎn)處理,而這個地點(diǎn)通常還邊去,也就是說,不同的中斷,我們要在不同的地點(diǎn)處理,而這個地點(diǎn)通常還是固定的,這也和計

6、算機(jī)中的中斷類似,如是固定的,這也和計算機(jī)中的中斷類似,如51MCU 的的5個中斷源都有各自的中個中斷源都有各自的中斷入口地址,當(dāng)某個中斷源產(chǎn)生中斷時,斷入口地址,當(dāng)某個中斷源產(chǎn)生中斷時,CPU響應(yīng)中斷便到相應(yīng)的中斷入口地響應(yīng)中斷便到相應(yīng)的中斷入口地址執(zhí)行程序。址執(zhí)行程序。 Copyright 20061 計算機(jī)中的中斷計算機(jī)中的中斷 計算機(jī)執(zhí)行正常程序時,系統(tǒng)出現(xiàn)某些急需處理的異常情況和特殊請求,計算機(jī)執(zhí)行正常程序時,系統(tǒng)出現(xiàn)某些急需處理的異常情況和特殊請求,CPU暫暫時中止現(xiàn)在正在執(zhí)行的的指令,轉(zhuǎn)去對隨機(jī)發(fā)生的更緊迫事件處理;處理完后,時中止現(xiàn)在正在執(zhí)行的的指令,轉(zhuǎn)去對隨機(jī)發(fā)生的更緊迫事件

7、處理;處理完后,CPU會自動返回原來的程序繼續(xù)執(zhí)行。會自動返回原來的程序繼續(xù)執(zhí)行。 就如:你正在家中看書,突然電話鈴響了,你放下書本,去接電話,和來電話的人就如:你正在家中看書,突然電話鈴響了,你放下書本,去接電話,和來電話的人交談,然后放下電話,回來繼續(xù)看你的書。這就是生活中的交談,然后放下電話,回來繼續(xù)看你的書。這就是生活中的“中斷中斷”的現(xiàn)象,的現(xiàn)象,就是正常的工作過程被外部的事件打斷了。就是正常的工作過程被外部的事件打斷了。計算機(jī)中的中斷 Copyright 20061計算機(jī)中的中斷 中斷中斷是指由于某種隨機(jī)事件的發(fā)生,計算機(jī)暫?,F(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行另一程序,以處理發(fā)生的事件,處理

8、完畢后又自動返回原來的程序繼續(xù)運(yùn)行。將能引起中斷的事件稱為中斷源中斷源。CPUCPU現(xiàn)行運(yùn)行的程序稱為主程序主程序。處理隨機(jī)事件的程序稱為中斷服務(wù)子程序中斷服務(wù)子程序。 Copyright 20061 中斷技術(shù)的優(yōu)點(diǎn)中斷技術(shù)的優(yōu)點(diǎn)分時操作分時操作 CPU可以同多個外設(shè)“同時”工作實(shí)時處理實(shí)時處理 CPU及時處理隨機(jī)事件故障處理故障處理 電源掉電、存儲出錯、運(yùn)算溢出 Copyright 20061MCS-51中斷系統(tǒng)中斷源中斷源中斷標(biāo)志中斷標(biāo)志中斷允許中斷允許中斷優(yōu)先級中斷優(yōu)先級MCS-51中斷系統(tǒng)結(jié)構(gòu)中斷系統(tǒng)結(jié)構(gòu)中斷寄存器中斷寄存器 Copyright 20061 MCS-51的中斷系統(tǒng)的中斷

9、系統(tǒng)中斷源中斷源8051單片機(jī)有5個個中斷請求源:單片機(jī)單片機(jī)INT0或 外部輸入中斷源INT0(P3.2)INT1或 外部輸入中斷源INT1(P3.3)T0 片內(nèi)定時器T0的溢出T1 片內(nèi)定時器T1的溢出串行口 片內(nèi)串行口發(fā)送或接收中斷源 Copyright 20061 MCS-51的中斷系統(tǒng)的中斷系統(tǒng)中斷標(biāo)志中斷標(biāo)志CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位 每一個中斷源都有相應(yīng)的中斷標(biāo)志位; 某一個中斷源申請中斷,相應(yīng)中斷標(biāo)志位置1。 Copyright 20061 MCS-51的中斷系統(tǒng)的中斷系統(tǒng)中斷允許中斷允許CPU主程序

10、INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位 EA總中斷允許位,總中斷允許位,EA=1開放所有中斷,開放所有中斷,EA=0,禁止所有中斷;,禁止所有中斷; 某一個中斷源還有相應(yīng)的中斷允許位,某一個中斷源還有相應(yīng)的中斷允許位,1允許相應(yīng)中斷源的中斷,允許相應(yīng)中斷源的中斷,0禁止相應(yīng)中禁止相應(yīng)中斷源的中斷。斷源的中斷。中斷允許中斷允許ESET0EX0EX1ET1EA Copyright 20061 IE0TCONSCONINT0 IT0=0 IT0=1INT1 IT1=0 IT1=1TF0 IE1TF1T0T1TIRITXDRXDESET0EX0EX

11、1ET1EA自然優(yōu)先級自然優(yōu)先級矢量地址高級中斷請求高級中斷請求自然優(yōu)先級自然優(yōu)先級矢量地址低級中斷請求低級中斷請求PX0PT0PX1PT1PSIEIP MCS-51 MCS-51的中斷系統(tǒng)結(jié)構(gòu)圖的中斷系統(tǒng)結(jié)構(gòu)圖中斷標(biāo)志位中斷源允許總允許中斷優(yōu)先級 Copyright 20061 TF1 TF0 IE1 IT1 IE0 IT0TCONT1溢出中斷標(biāo)志溢出中斷標(biāo)志(TCON.7): T1啟動計數(shù)后,計滿溢出由硬件置位TF1=1,向CPU請求中斷,此標(biāo)志一直保持到CPU響應(yīng)中斷后,才由硬件自動清0。也可用軟件查詢該標(biāo)志,并由軟件清0。76543210TCONTCON寄存器寄存器T0T0和和T1T1

12、控制寄存器控制寄存器 Copyright 20061 TF1 TF0 IE1 IT1 IE0 IT0TCON 88H外部中斷外部中斷INT1中斷標(biāo)志位中斷標(biāo)志位(TCON.3) : IE11,外部中斷1向CPU申請中斷 外部中斷外部中斷INT1觸發(fā)方式控制觸發(fā)方式控制位位(TCON.2): IT1=0,電平觸發(fā)方式 IT1=1, 下降沿觸發(fā)方式76543210TCON寄存器T0和T1控制寄存器注意:該寄存器可以位尋址。 Copyright 20061TF1:定時器1的溢出中斷標(biāo)志。T1被啟動計數(shù)后,從初值做加1計數(shù),計滿溢出后由硬件置位TF1,同時向CPU發(fā)出中斷。TF0:定時器0溢出中斷標(biāo)志

13、。其操作功能同TF1。IE1:外部中斷1標(biāo)志。IE1 = 1,外部中斷1向CPU申請中斷。IT1:外中斷1觸發(fā)方式控制位。當(dāng)IT1 = 0時,外部中斷1控制為電平觸發(fā)方式。當(dāng)IT1 = 1時,外部中斷1控制為電平觸發(fā)方式。IE0:外部中斷0中斷標(biāo)志。其操作功能與IE1相同。IT0:外中斷0觸發(fā)方式控制位。其操作功能與IT1相同。 Copyright 20061 TI (SCON.1)串行發(fā)送中斷標(biāo)志。 RI (SCON.0)串行接收中斷標(biāo)志。 TI RISCON寄存器串行口控制寄存器SCON 98H76543210注意:該寄存器可以位尋址。 Copyright 20061TI:串行發(fā)送中斷標(biāo)志

14、 CPU將數(shù)據(jù)寫入發(fā)送緩沖器SBUF時,就啟動發(fā)送,每發(fā)送完一個串行幀,硬件將使TI置位。注意:CPU響應(yīng)中斷時并不清除TI,必須由軟件清除。RI:串行接收中斷標(biāo)志 在串行口允許接收時,每接收完一個串行幀,硬件將使RI置位。注意:CPU在響應(yīng)中斷時不會清除RI,必須由軟件清除 Copyright 20061 IE A8H EA ESET1EX1ET0EX0例:允許定時器T0中斷: SETB EA SETB ET0 或 MOV IE,#82H76543210注意:該寄存器可以位尋址。IE寄存器中斷允許寄存器 Copyright 20061 EA:總中斷允許控制位。EA = 1,開放所有中斷,各中

15、斷源的允許和禁止可通過相應(yīng)的中斷允許位單獨(dú)加以控制;EA = 0,禁止所有中斷。ES:串行口中斷允許位。ES = 1,允許串行口中斷;ES = 0,禁止串行口中斷。ET1:定時器1中斷允許位。ET1 = 1,允許定時器1中斷;ET1 = 0,禁止定時器1中斷。EX1:外部中斷1中斷允許位。EX1 = 1,允許外部中斷1中斷;EX1 = 0,禁止外部中斷1中斷。ET0:定時器0中斷允許位。ET0 = 1,允許定時器0中斷;ET0 = 0,禁止定時器0中斷。EX0: 外部中斷0中斷允許位。EX0 = 1,允許外部中斷0中斷;EX0 = 0,禁止外部中斷0中斷。 Copyright 20061 51

16、單片機(jī)有兩個中斷優(yōu)先級單片機(jī)有兩個中斷優(yōu)先級高級和低級高級和低級 專用寄存器專用寄存器IP為中斷優(yōu)先級寄存器,用戶可用軟件設(shè)定為中斷優(yōu)先級寄存器,用戶可用軟件設(shè)定 相應(yīng)位為相應(yīng)位為1,對應(yīng)的中斷源被設(shè)置為高優(yōu)先級,相應(yīng)位為,對應(yīng)的中斷源被設(shè)置為高優(yōu)先級,相應(yīng)位為0,對應(yīng)的中斷,對應(yīng)的中斷源被設(shè)置為低優(yōu)先級源被設(shè)置為低優(yōu)先級 系統(tǒng)復(fù)位時,均為低優(yōu)先級系統(tǒng)復(fù)位時,均為低優(yōu)先級 該寄存器可以位尋址該寄存器可以位尋址 PSPT1PX1PT0PX0IP寄存器中斷優(yōu)先級寄存器 IP B8H 76543210 Copyright 20061PS:串行口中斷優(yōu)先控制位 PS = 1,設(shè)定串行口為高優(yōu)先級中斷;

17、PS = 0,設(shè)定串行口為低優(yōu)先級中斷。PT1:定時器T1中斷優(yōu)先控制位 PT1 = 1,設(shè)定定時器T1中斷為高優(yōu)先級中斷;PT1 = 0,設(shè)定定時器T1中斷為低優(yōu)先級中斷。PX1:外部中斷1中斷優(yōu)先控制位 PX1 = 1,設(shè)定外部中斷1為高優(yōu)先級中斷;PX1 = 0,設(shè)定外部中斷1為低優(yōu)先級中斷。 PT0:定時器T0中斷優(yōu)先控制位 PT0 = 1,設(shè)定定時器T0中斷為高優(yōu)先級中斷;PT0 = 0,設(shè)定定時器T0中斷為低優(yōu)先級中斷。PX0:外部中斷0中斷優(yōu)先控制位 PX0 = 1,設(shè)定外部中斷0為高優(yōu)先級中斷;PX0 = 0,設(shè)定外部中斷0為低優(yōu)先級中斷。 當(dāng)系統(tǒng)復(fù)位后,所有中斷源均設(shè)定為低優(yōu)

18、先級中斷。 Copyright 20061中斷的處理過程 中斷處理過程分為三個階段:中斷響應(yīng)、中斷處理和中斷返回。v 中斷響應(yīng)v 中斷處理(又稱中斷服務(wù))v 中斷返回v 中斷請求的撤除中斷請求的撤除 中斷響應(yīng)中斷返回 Copyright 20061中斷響應(yīng):在滿足CPU的中斷響應(yīng)條件之后,CPU對中斷源中斷請求予以處理。中斷響應(yīng)過程: 保護(hù)斷點(diǎn)地址;中斷響應(yīng) 把程序轉(zhuǎn)向中斷服務(wù)程序的入口地址(通常稱矢量地址)。特別注意:這些工作是硬件自動完成的! 斷點(diǎn)地址中斷服務(wù)子程序的入口地址外部中斷外部中斷0 0入口地入口地址址0003AJMP ZD0ZD0中斷響應(yīng) Copyright 20061中斷服務(wù)

19、子程序入口地址又稱為中斷矢量或中斷向量。中斷響應(yīng)單片機(jī)中5個中斷源的矢量地址是固定固定的,不能改動。斷點(diǎn)地址中斷服務(wù)子程序的入口地址中斷響應(yīng) Copyright 20061程序存儲器程序存儲器ROMROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時器0溢出中斷入口0013H:外部中斷1入口001BH:定時器1溢出中斷入口002AH使用時,通常在這些入口地址處存放一條跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶安排的中斷服務(wù)程序起始地址上去! Copyright 20061程序存儲器程序存儲器ROMROM0000H:復(fù)位后,程序的 入口

20、地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時器0溢出中斷入口0013H:外部中斷1入口001BH:定時器1溢出中斷入口002AH包含T0中斷服務(wù)子程序的程序結(jié)構(gòu): ORG 0000HORG 0000H AJMP MAIN ORG 000BHORG 000BH AJMP NTT0 ORG 0100HORG 0100HMAIN: . . . INTT0:. . RETI ENDAJMP MAINAJMP INTT0 Copyright 20061中斷處理中斷處理中斷服務(wù)程序從中斷子程序入口地址入口地址開始執(zhí)行,直到返回指令RETI為止,這個過程稱為中

21、斷處理(或中斷服務(wù))。中斷服務(wù)子程序一般包括兩部分內(nèi)容,一是保護(hù)和恢復(fù)現(xiàn)場,二是處理中斷源的請求。中斷響應(yīng)入口地址入口地址RETI Copyright 20061中斷處理中斷處理INTT0: PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中斷源服務(wù) POP PSW POP DPL POP DPH POP ACC RETI保護(hù)現(xiàn)場恢復(fù)現(xiàn)場 Copyright 20061 中斷返回是指中斷服務(wù)完后,計算機(jī)返回到原來暫停的位置(即斷點(diǎn)),繼續(xù)執(zhí)行原來的程序。 中斷返回由專門的中斷返回指令RETI來實(shí)現(xiàn)。中斷響應(yīng)中斷返回中斷返回 Copyright 20061 RETI指令功

22、能:把斷點(diǎn)地址取出,斷點(diǎn)地址取出,送回到程序計數(shù)器送回到程序計數(shù)器PC中去。另外,它還通知中斷系統(tǒng)已完成中斷處理,將清除優(yōu)先級狀態(tài)觸發(fā)器。 特別注意:不能用RET指令代替RETI指令!中斷響應(yīng)中斷返回中斷返回 Copyright 20061中斷源發(fā)中斷請求中斷源發(fā)中斷請求中斷響應(yīng)條件中斷響應(yīng)條件 是否滿足?是否滿足?中斷是否受阻?中斷是否受阻? 把把PC斷點(diǎn)地址壓入堆棧斷點(diǎn)地址壓入堆棧 相應(yīng)中斷源的中斷入口地址相應(yīng)中斷源的中斷入口地址送入送入PC,轉(zhuǎn)向中斷服務(wù)程序,轉(zhuǎn)向中斷服務(wù)程序NYYN 由硬件自動完成中斷處理過程示意圖 Copyright 20061 關(guān)中斷關(guān)中斷保護(hù)現(xiàn)場保護(hù)現(xiàn)場中斷服務(wù)中

23、斷服務(wù) 開中斷開中斷 關(guān)中斷關(guān)中斷恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場 開中斷開中斷中斷返回中斷返回斷點(diǎn)地址由堆棧彈入斷點(diǎn)地址由堆棧彈入PC保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場的過程中不允許中斷,以免現(xiàn)場遭到破壞。保護(hù)和恢復(fù)現(xiàn)場之后的開中斷是為了允許有更高級中斷打斷此中斷服務(wù)程序。 中斷服務(wù)程序硬件自動完成 Copyright 20061 CPU響應(yīng)某中斷請求后,在中斷返回前,應(yīng)該撤除該中斷請求,否則會引起另一次中斷。 定時器0或1溢出:CPU在響應(yīng)中斷后,硬件清除了有關(guān)的中斷請求標(biāo)志TFO或TF1,即中斷請求是自動撤除的中斷請求是自動撤除的。 邊沿激活的外部中斷:CPU在響應(yīng)中斷后,也是用硬件自動清除用硬件自動清除有關(guān)的中斷請求

24、標(biāo)志IE0或IE1。 串行口中斷:CPU響應(yīng)中斷后,沒有用硬件清除T1、R1,故這些中斷不能自動撤除,而要靠軟件來清除相應(yīng)的標(biāo)志要靠軟件來清除相應(yīng)的標(biāo)志。中斷請求的撤除中斷請求的撤除 Copyright 20061電平觸發(fā)外部中斷撤除方法較復(fù)雜。 因?yàn)樵陔娖接|發(fā)方式中,CPU響應(yīng)中斷時不會自動清除IE1或IE0標(biāo)志,所以在響應(yīng)中斷后應(yīng)立即撤除INT0或INT1引腳上的低電平。 在硬件上,CPU對INT0和INT1引腳的信號不能控制,所以這個問題要通過硬件,再配合軟件來解決。電平激活的外部中斷源中斷標(biāo)志的撤除電平激活的外部中斷源中斷標(biāo)志的撤除 Copyright 20061單片機(jī)僅有兩個外部中斷

25、輸入端.可用兩種方法擴(kuò)展: 1. 定時器T0,T1。(工作在計數(shù)方式下) 2. 中斷和查詢結(jié)合。外部中斷源的擴(kuò)展 Copyright 20061 1用定時器作外部中斷源 例例5.5 將定時器T0擴(kuò)展為外部中斷源。解解:將定時器T0設(shè)定為方式2(自動恢復(fù)計數(shù)初值),TH0和TF0的初值均設(shè)置為FFH,允許T0中斷,CPU開放中斷,源程序如下:MOVTMOD,#06H MOVTH0,#0FFHMOVTL0,#0FFHSETBTR0SETBET0SETBEA T0引腳每輸入一個負(fù)跳變,TF0都會置1,向CPU請求中斷 T0腳相當(dāng)于邊沿觸發(fā)的外部中斷源輸入線。腳相當(dāng)于邊沿觸發(fā)的外部中斷源輸入線。 Co

26、pyright 200612中斷和查詢相結(jié)合 MCS-511P3.3P1.0P1.1P1.2P1.3EXINT0EXINT1EXINT2EXINT3圖: 一個外中斷擴(kuò)展成多個外中斷的原理圖 Copyright 20061中斷服務(wù)程序如下:中斷服務(wù)程序如下: ORG0003H;外部中斷0入口 AJMPINT0;轉(zhuǎn)向中斷服務(wù)程序入口 INT0: PUSH PSW ;保護(hù)現(xiàn)場 PUSH ACC JB P1.0,EXT0 ;中斷源查詢并轉(zhuǎn)相應(yīng)中斷服務(wù)程序 JB P1.1,EXT1 JB P1.2,EXT2 JB P1.3,EXT3 EXIT: POP ACC ;恢復(fù)現(xiàn)場 POP PSW RETI Co

27、pyright 20061EXT0: ; EXINT0中斷服務(wù)程序 AJMPEXITEXT1: ; EXINT1中斷服務(wù)程序 AJMPEXITEXT2: ;EXINT2中斷服務(wù)程序AJMPEXITEXT3: ;EXINT3中斷服務(wù)程序 AJMP EXIT 同樣,外部中斷同樣,外部中斷1也可作相應(yīng)的擴(kuò)展。也可作相應(yīng)的擴(kuò)展。 Copyright 20061中斷的處理即為用戶根據(jù)自己的需要編寫的中斷服務(wù)程序,在編寫時應(yīng)該注意:中斷現(xiàn)場保護(hù)和恢復(fù) 中斷的現(xiàn)場保護(hù)主要是在中斷時刻單片機(jī)的存儲單元中的數(shù)據(jù)和狀態(tài)的存儲。中斷的恢復(fù)是恢復(fù)單片機(jī)在被中斷前存儲單元中的數(shù)據(jù)和狀態(tài)。開中斷和關(guān)中斷 對于一個不允許在

28、執(zhí)行中斷服務(wù)程序時被打擾的重要中斷,可以在進(jìn)入中斷時關(guān)閉中斷系統(tǒng),在執(zhí)行完后,再開放中斷系統(tǒng)。中斷的處理中斷的處理 Copyright 20061 中斷返回是在中斷服務(wù)程序的最后一句指令“RETI”執(zhí)行時進(jìn)行的。它的主要功能是:中斷響應(yīng)時壓入堆棧的程序計數(shù)器“PC”的值從堆棧中取出,重新賦予“PC”,使程序重新執(zhí)行被中斷前的程序。中斷返回中斷返回 Copyright 20061MCS-51單片機(jī)具有兩個外中斷源:單片機(jī)具有兩個外中斷源:INT0:外中斷:外中斷0v 中斷入口地址:0003Hv 中斷允許控制位:EX0v 中斷請求標(biāo)志:IE0v 中斷觸發(fā)方式選擇位:IT0v 優(yōu)先級設(shè)置位:PX0I

29、NT1:外中斷:外中斷1v 中斷入口地址:0013Hv 中斷允許控制位:EX1v 中斷請求標(biāo)志:IE1v 中斷觸發(fā)方式選擇位:IT1v 優(yōu)先級設(shè)置位:PX1初始化時設(shè)置初始化時設(shè)置初始化時設(shè)置初始化時設(shè)置MCS-51單片機(jī)的外中斷單片機(jī)的外中斷 Copyright 20061外中斷的初始化內(nèi)容外中斷的初始化內(nèi)容 設(shè)定中斷的優(yōu)先級(在大部分情況下,可以使用默認(rèn)方式)設(shè)定中斷的優(yōu)先級(在大部分情況下,可以使用默認(rèn)方式) 設(shè)定中斷的觸發(fā)方式設(shè)定中斷的觸發(fā)方式 開中斷允許開中斷允許 開總中斷允許開總中斷允許外中斷的初始化外中斷的初始化 Copyright 20061方法方法1CLR PX0 ;設(shè)定外中

30、斷;設(shè)定外中斷0為低優(yōu)先級為低優(yōu)先級 SETB IT0 ;設(shè)定外中斷;設(shè)定外中斷0為邊沿觸發(fā)方式為邊沿觸發(fā)方式SETB EX0 ;開放外中斷;開放外中斷0允許允許SETB EA ;開;開CPU中斷允許中斷允許方法方法2MOV IP, #00H ;設(shè)定外中斷;設(shè)定外中斷0為低優(yōu)先級為低優(yōu)先級 MOV TCON,#01H ;設(shè)定外中斷;設(shè)定外中斷0為邊沿觸發(fā)方式為邊沿觸發(fā)方式MOV IE, #81H ;開外中斷;開外中斷0和和CPU中斷允許中斷允許外中斷的初始化外中斷的初始化 Copyright 20061在如圖所示的電路中,用P1口輸出控制的8只發(fā)光二極管,實(shí)現(xiàn)8位二進(jìn)制計數(shù)器,對INT0上出現(xiàn)

31、的脈沖進(jìn)行計數(shù)。12A34B56C98D1110E1312F12A34B5.1k5.1k123A74F00456B74F00S+5VGND+5VINT0PI.0PI.1PI.2PI.3PI.4PI.5PI.6PI.7脈沖產(chǎn)生電路脈沖產(chǎn)生電路顯示電路顯示電路外中斷應(yīng)用舉例外中斷應(yīng)用舉例1 Copyright 20061在該電路中,有兩個與非門構(gòu)成硬件去抖動電路,開關(guān)S每動作一次,在單片機(jī)的INT0引腳上就會收到一個脈沖信號。如果把外中斷0設(shè)定為脈沖觸發(fā)方式,則每當(dāng)S動作一次,則外中斷觸發(fā)一次在外中斷的中斷服務(wù)程序中計數(shù),并把計數(shù)的結(jié)果從P1口輸出。題意分析題意分析 Copyright 20061

32、 ORG 0000H AJMP MAIN ;轉(zhuǎn)主程序;轉(zhuǎn)主程序 ORG 0003H ;外中斷入口地址;外中斷入口地址 AJMP SER ;中斷服務(wù)程序;中斷服務(wù)程序 MAIN:SETB IT0 ;設(shè)定外中斷;設(shè)定外中斷0為邊沿觸發(fā)為邊沿觸發(fā) SETB EX0 ;開外中斷;開外中斷0允許允許 SETB EA ;開;開CPU中斷允許中斷允許 CLR A ;計數(shù)單元清;計數(shù)單元清0 MOV P1,A ;清顯示;清顯示 HERE:SJMP $ ;等待中斷;等待中斷 SER:INC A ;計數(shù)單元加;計數(shù)單元加1 MOV P1,A ;顯示;顯示 RETI ;中斷返回;中斷返回 END 中斷程序的主程序中斷程序的主程序和中斷服務(wù)程序的和中斷服務(wù)程序的布局布局中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論