![05中斷系統(tǒng)單片機(jī)課件(最新版)_第1頁](http://file4.renrendoc.com/view/1f70af513393ea6d28ab5d29d408539d/1f70af513393ea6d28ab5d29d408539d1.gif)
![05中斷系統(tǒng)單片機(jī)課件(最新版)_第2頁](http://file4.renrendoc.com/view/1f70af513393ea6d28ab5d29d408539d/1f70af513393ea6d28ab5d29d408539d2.gif)
![05中斷系統(tǒng)單片機(jī)課件(最新版)_第3頁](http://file4.renrendoc.com/view/1f70af513393ea6d28ab5d29d408539d/1f70af513393ea6d28ab5d29d408539d3.gif)
![05中斷系統(tǒng)單片機(jī)課件(最新版)_第4頁](http://file4.renrendoc.com/view/1f70af513393ea6d28ab5d29d408539d/1f70af513393ea6d28ab5d29d408539d4.gif)
![05中斷系統(tǒng)單片機(jī)課件(最新版)_第5頁](http://file4.renrendoc.com/view/1f70af513393ea6d28ab5d29d408539d/1f70af513393ea6d28ab5d29d408539d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章51單片機(jī)中斷系統(tǒng)單片機(jī)原理與接口技術(shù)第5章51單片機(jī)中斷系統(tǒng)單片機(jī)原理與接口技術(shù)主要內(nèi)容5.1中斷概述 5.1.1中斷的基本概念 5.1.2中斷系統(tǒng)的功能5.251單片機(jī)中斷系統(tǒng)結(jié)構(gòu) 5.2.1中斷系統(tǒng)結(jié)構(gòu) 5.2.2中斷的控制5.3中斷的響應(yīng) 5.3.1中斷響應(yīng)條件 5.3.2中斷的響應(yīng)—中斷處理流程 5.3.3系統(tǒng)的復(fù)位5.4中斷系統(tǒng)的應(yīng)用(以外部中斷為例) 5.4.1中斷程序的初始化 5.4.2外部中斷源的應(yīng)用2主要內(nèi)容5.1中斷概述25.1中斷概述CPU正在執(zhí)行程序時(shí),單片機(jī)外部或內(nèi)部發(fā)生的某一事件,請(qǐng)求CPU迅速去處理;CPU暫停當(dāng)前的程序,轉(zhuǎn)到中斷服務(wù)程序去處理所發(fā)生的事件;處理完該事件后,再回到原來被中止的地方,繼續(xù)原來的程序,這就是中斷。CPU處理事件的過程,稱為CPU的中斷響應(yīng)過程。對(duì)事件的整個(gè)處理過程,稱為中斷處理(或中斷服務(wù))。單片機(jī)實(shí)現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)。產(chǎn)生中斷的請(qǐng)求源稱為中斷請(qǐng)求源。中斷源向CPU提出的處理請(qǐng)求稱為中斷請(qǐng)求。35.1中斷概述3中斷的優(yōu)點(diǎn):提高CPU效率解決速度矛盾實(shí)現(xiàn)并行工作應(yīng)付突發(fā)事件中斷服務(wù)程序中斷涉及的幾個(gè)環(huán)節(jié):
①中斷源
②中斷申請(qǐng)
③開放中斷
④保護(hù)現(xiàn)場(chǎng)⑤中斷服務(wù)⑥恢復(fù)現(xiàn)場(chǎng)⑦中斷返回4中斷的優(yōu)點(diǎn):中斷服務(wù)程序中斷涉及的幾個(gè)環(huán)節(jié):⑤中斷服務(wù)45.2中斷系統(tǒng)結(jié)構(gòu)51系列單片機(jī)中斷系統(tǒng):有5個(gè)中斷源(52系列有6個(gè))2個(gè)外部中斷源2個(gè)定時(shí)中斷源1個(gè)串行中斷兩級(jí)中斷優(yōu)先級(jí),能實(shí)現(xiàn)兩級(jí)中斷嵌套每個(gè)中斷源的優(yōu)先級(jí)都可由IP編程確定中斷請(qǐng)求能否得到響應(yīng),由IE編程控制55.2中斷系統(tǒng)結(jié)構(gòu)51系列單片機(jī)中斷系統(tǒng):5一、51單片機(jī)中斷系統(tǒng)結(jié)構(gòu)IE0TF0IE1TF1INT0INT1T0T1TIRIEX0ET0EX1ET1ES1EAPX0PT0PX1PT1PS中斷
向量地址高低查詢循序PC高級(jí)中斷請(qǐng)求PC低級(jí)中斷請(qǐng)求中斷
向量地址高低01IT1IT01010101010TXRX查詢循序01SCONIEIPTCON硬件查詢6一、51單片機(jī)中斷系統(tǒng)結(jié)構(gòu)IE0TF0IE1TF1INT01、中斷源(1)外部中斷源——INT0、INT1:由引腳P3.2、P3.3輸入的兩個(gè)中斷源;可直接觸發(fā)TCON的IE0、IE1標(biāo)志位;觸發(fā)方式:邊沿觸發(fā)、電平觸發(fā);觸發(fā)方式由TCON中的IT0、IT1來選擇。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)圖EAIE0INT0EX0PX001IT010高優(yōu)先級(jí)低優(yōu)先級(jí)IEIPTCON71、中斷源TF1TR1TF0TR0IE1IT1IE0IT0(IE0:INT0的中斷請(qǐng)求標(biāo)志位。當(dāng)INT0引腳上出現(xiàn)低電平或下降沿時(shí),由硬件自動(dòng)將IE0置“1”,產(chǎn)生中斷請(qǐng)求標(biāo)志。IT0:INT0觸發(fā)方式控制位,由軟件來選擇。IT0=1:INT0為下降沿有效。IT0=0:INT0為低電平有效。IE1:INT1的請(qǐng)求標(biāo)志位。同IE0。IT1:INT1觸發(fā)方式控制位。同IT0。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)圖8IE0:INT0的中斷請(qǐng)求標(biāo)志位。TF1TR1TF0TR0I(2)內(nèi)部中斷源——T0、T1,TI/RI①T0、T1:定時(shí)器/計(jì)數(shù)器(T/C0、1)溢出中斷源T/C0、1內(nèi)部有各自的計(jì)數(shù)器,當(dāng)計(jì)滿溢出時(shí),使標(biāo)志位TF0、TF1置“1”,產(chǎn)生中斷請(qǐng)求;TF0:T/C0的溢出中斷標(biāo)志位;TF1:T/C1的溢出中斷標(biāo)志位。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)EATF0T0ET0PT010IEIPTCON高優(yōu)先級(jí)低優(yōu)先級(jí)圖9(2)內(nèi)部中斷源——T0、T1,TI/RITF1TR1②TI/RI:串口發(fā)送/接收中斷源可直接觸發(fā)SCON的TI、RI標(biāo)志位;TI:發(fā)送中斷請(qǐng)求標(biāo)志。RI:接收中斷請(qǐng)求標(biāo)志。串口的發(fā)送和接收中斷(邏輯或)共用一個(gè)中斷源。SM0SM1SM2RENTB0RB0TIRI(MSB)(LSB)SCON(98H)EATIRIES1PS10TXRXIEIPSCON高優(yōu)先級(jí)低優(yōu)先級(jí)圖10②TI/RI:串口發(fā)送/接收中斷源SM0SM1SM2RENT2.中斷優(yōu)先級(jí)
51系列單片機(jī)中斷系統(tǒng):有5個(gè)中斷源;兩級(jí)中斷優(yōu)先級(jí),能實(shí)現(xiàn)兩級(jí)中斷嵌套;每個(gè)中斷源的優(yōu)先級(jí)都可由IP編程確定;中斷請(qǐng)求能否得到響應(yīng),由IE控制。主程序或子程序中斷服務(wù)1中斷服務(wù)2斷點(diǎn)PT2PSPT1PX1PT0PX0(MSB)(LSB)IP(0B8H)圖112.中斷優(yōu)先級(jí)主程序或子程序中斷服務(wù)1中斷服務(wù)2斷點(diǎn)PT2二、中斷的控制51中斷系統(tǒng)有4個(gè)SFR:
⑴TCON(88H):
⑵SCON(98H):
⑶IE(0A8H):
⑷IP(0B8H):單片機(jī)中斷系統(tǒng)就是由這4個(gè)SFR來控制的。TF1TR1TF0TR0IE1IT1IE0IT0PT2PSPT1PX1PT0PX0SM0SM1SM2RENTB0RB0TIRIEAET2ESET1EX1ET0EX012二、中斷的控制51中斷系統(tǒng)有4個(gè)SFR:TF1TR1TF01.中斷請(qǐng)求標(biāo)志(1)TCON的中斷標(biāo)志位TCON為T/C控制寄存器,也鎖存T0和T1的溢出中斷標(biāo)志和INT0和INT1的中斷標(biāo)志等。當(dāng)中斷源有中斷時(shí),由硬件自動(dòng)對(duì)相應(yīng)位置“1”。響應(yīng)中斷后由硬件自動(dòng)清除相應(yīng)的標(biāo)志位。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)圖131.中斷請(qǐng)求標(biāo)志(1)TCON的中斷標(biāo)志位TF1TR1TF0(2)SCON的中斷標(biāo)志位SCON為串口控制寄存器,鎖存TI和RI的中斷標(biāo)志。串口的發(fā)送和接收中斷(邏輯或)共用一個(gè)中斷源。當(dāng)發(fā)送或接收有中斷時(shí),由硬件對(duì)TI或RI置“1”。中斷響應(yīng)后需要由軟件判斷TI和RI位,并只能由軟件清除TI或RI標(biāo)志位。SM0SM1SM2RENTB0RB0TIRI(MSB)(LSB)SCON(98H)圖14(2)SCON的中斷標(biāo)志位SM0SM1SM2RENTB0RB2.中斷允許寄存器IEEAET2ESET1EX1ET0EX0(MSB)(LSB)IE(0A8H)中斷申請(qǐng)后,CPU是否相應(yīng)中斷,由IE相應(yīng)位控制,可通過對(duì)IE編程來設(shè)置。IE各位如下("1"有效):EX0:INT0中斷允許位;ET0:T/C0中斷允許位;EX1:INT1中斷允許位;ET1:T/C1中斷允許位;ES:串口中斷允許位;ET2:T/C2中斷允許位(僅52系列有);EA:CPU中斷總允許位。圖152.中斷允許寄存器IEEAET2ESET1EX1ET0EX051單片機(jī)復(fù)位后,IE被清“0”,即所有中斷被禁止。要使某一個(gè)中斷源被允許中斷,除了IE相應(yīng)的位的被置“1”,還必須使EA位=1。改變IE的內(nèi)容,可由位操作指令來實(shí)現(xiàn),即: SETBbit; CLRbit。 也可按自己來實(shí)現(xiàn):MOVIE,#XXHEAET2ESET1EX1ET0EX0(MSB)(LSB)IE(0A8H)1651單片機(jī)復(fù)位后,IE被清“0”,即所有中斷被禁止。EAE例1若允許片內(nèi)2個(gè)定時(shí)器/計(jì)數(shù)器中斷,禁止其它中斷源的中斷請(qǐng)求。編寫設(shè)置IE的相應(yīng)程序段。(1)用位操作指令來編寫如下程序段:CLRES ;禁止串行口中斷CLREX1 ;禁止外部中斷1中斷CLREX0 ;禁止外部中斷0中斷SETBET0 ;允許定時(shí)器/計(jì)數(shù)器T0中斷SETBET1 ;允許定時(shí)器/計(jì)數(shù)器T1中斷SETBEA ;CPU開中斷(2)用字節(jié)操作指令來編寫:MOVIE,#8AHEAET2ESET1EX1ET0EX017例1若允許片內(nèi)2個(gè)定時(shí)器/計(jì)數(shù)器中斷,禁止其它中斷源的中斷3.中斷優(yōu)先級(jí)IPPT2PSPT1PX1PT0PX0(MSB)(LSB)IP(0B8H)5個(gè)中斷源可分2個(gè)優(yōu)先級(jí),由IP通過編程來設(shè)置。IP各位如下(“1”選為高級(jí),“0”選為低級(jí)):PX0:INT0優(yōu)先級(jí)設(shè)定位;PT0:T/C0優(yōu)先級(jí)設(shè)定位;PX1:INT1優(yōu)先級(jí)設(shè)定位;PT1:T/C1優(yōu)先級(jí)設(shè)定位;PS:串行口優(yōu)先級(jí)設(shè)定位;PT2:T/C2優(yōu)先級(jí)設(shè)定位(僅52系列有)。183.中斷優(yōu)先級(jí)IPPT2PSPT1PX1PT0PX0(MSB由軟件可改變各中斷源的中斷優(yōu)先級(jí)。
51的中斷系統(tǒng)有兩個(gè)不可尋址的“優(yōu)先級(jí)激活觸發(fā)器”:一個(gè)是指示某高優(yōu)先級(jí)的中斷正在執(zhí)行,所有后來的中斷均被阻止。另一個(gè)是指示某低優(yōu)先級(jí)的中斷正在執(zhí)行,所有同級(jí)中斷都被阻止,但不阻斷高優(yōu)先級(jí)的中斷請(qǐng)求。當(dāng)幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),優(yōu)先響應(yīng)哪一個(gè)中斷,取決于內(nèi)部的查詢順序。 查詢順序如下:19由軟件可改變各中斷源的中斷優(yōu)先級(jí)。19中斷源中斷標(biāo)志同級(jí)內(nèi)優(yōu)先級(jí)外部中斷0(INT0)IE0最高定時(shí)器0溢出中斷(T0)TF0↓外部中斷1(INT1)IE1↓定時(shí)器1溢出中斷(T1)TF1↓串口中斷RI或TI↓定時(shí)器2溢出中斷(T2)TF2或EXF最低2個(gè)優(yōu)先級(jí)中,同級(jí)中斷的優(yōu)先次序如下:20中斷源中斷標(biāo)志同級(jí)內(nèi)優(yōu)先級(jí)外部中斷0(INT0)IE0最高例2
設(shè)置IP寄存器的初始值,使2個(gè)外部中斷請(qǐng)求為高優(yōu)先級(jí),其它中斷請(qǐng)求為低優(yōu)先級(jí)。(1)用位操作指令 SETBPX0 ;2個(gè)外中斷為高優(yōu)先級(jí) SETBPX1 CLRPS ;串口為低優(yōu)先級(jí)中斷 CLRPT0 ;2個(gè)定時(shí)器/計(jì)數(shù)器低優(yōu)先級(jí)中斷 CLRPT1(2)用字節(jié)操作指令 MOVIP,#05HPT2PSPT1PX1PT0PX021例2設(shè)置IP寄存器的初始值,使2個(gè)外部中斷請(qǐng)求為高優(yōu)先級(jí)5.3中斷的響應(yīng)一、中斷響應(yīng)條件中斷請(qǐng)求被響應(yīng)需滿足以下必要條件:(1)中斷源有請(qǐng)求;(2)IE的EA=1,且IE相應(yīng)的中斷允許位為1;(3)無同級(jí)或高級(jí)中斷正在服務(wù);(4)現(xiàn)行指令執(zhí)行完最后一個(gè)機(jī)器周期。若有下列任何一種情況存在,中斷響應(yīng)都會(huì)受到阻斷。(1)CPU正在執(zhí)行一個(gè)同級(jí)或高優(yōu)先級(jí)的中斷服務(wù)程序。(2)正在執(zhí)行的指令尚未執(zhí)行完。(3)正在執(zhí)行中斷返回指令RETI或者對(duì)專用寄存器IE、IP進(jìn)行讀/寫的指令。圖225.3中斷的響應(yīng)一、中斷響應(yīng)條件圖22二、中斷的響應(yīng)CPU響應(yīng)中斷后由硬件完成以下任務(wù):(1)被響應(yīng)的中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器置“1”;(2)當(dāng)前PC的內(nèi)容壓入堆棧,然后執(zhí)行中斷服務(wù)程序; (相當(dāng)于隱含執(zhí)行一條LCALL指令。)(3)清相應(yīng)的中斷標(biāo)志位; (串口中斷標(biāo)志RI和TI須由軟件清除!)(4)被響應(yīng)的中斷服務(wù)程序入口地址送入PC,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。各中斷源服務(wù)程序入口地址是固定的,如下所示:圖23二、中斷的響應(yīng)圖23中斷源服務(wù)程序的入口地址中斷源中斷標(biāo)志中斷入口同級(jí)內(nèi)優(yōu)先級(jí)外部中斷0(INT0)IE00003H最高定時(shí)器0溢出中斷(T0)TF0000BH↓外部中斷1(INT1)IE10013H↓定時(shí)器1溢出中斷(T1)TF1001BH↓串口中斷RI或TI0023H↓定時(shí)器2溢出中斷(T2)TF2或EXF002BH最低24中斷源服務(wù)程序的入口地址中斷源中斷標(biāo)志中斷入口同級(jí)內(nèi)優(yōu)先級(jí)外三、復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0~P3FFHSCON00HIP×××00000SBUF××××××××IE0××00000PCON0×××0000025三、復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTMO四、外部中斷的響應(yīng)時(shí)間外部中斷的最短響應(yīng)時(shí)間為3個(gè)機(jī)器周期:(1)查詢中斷請(qǐng)求標(biāo)志位占1個(gè)機(jī)器周期。(2)指令LCALL轉(zhuǎn)到相應(yīng)的中斷入口需2個(gè)機(jī)器周期。
外部中斷的最長(zhǎng)響應(yīng)時(shí)間為8個(gè)機(jī)器周期:(1)發(fā)生在CPU對(duì)中斷標(biāo)志查詢時(shí),剛好正要執(zhí)行RETI或是訪問IE或IP指令,則需把當(dāng)前指令執(zhí)行完再繼續(xù)執(zhí)行一條指令后才能響應(yīng)中斷,最長(zhǎng)需2個(gè)機(jī)器周期。(2)接著再執(zhí)行一條指令,按最長(zhǎng)指令(MUL和DIV)4個(gè)機(jī)器周期。(3)硬件調(diào)用LCALL的執(zhí)行需要2個(gè)機(jī)器周期。※對(duì)外部中斷請(qǐng)求的響應(yīng)時(shí)間在3~8個(gè)機(jī)器周期之間。26四、外部中斷的響應(yīng)時(shí)間26五、程序的初始化復(fù)位后,PC指向0000H,一般在0000H處放置一條SJMP或AJMP指令跳轉(zhuǎn)到0030H后,避開被占用區(qū)域;
(由于中斷服務(wù)的入口地址0003H、000BH、0013H、001BH、0023H、002BH被占用,故選在0030H以后。)在中斷服務(wù)程序各入口地址處放置一條LJMP指令,指向?qū)嶋H中斷服務(wù)程序;一般將SP指向30H后,避開內(nèi)部RAM的工作寄存器組和位尋址區(qū)。
(復(fù)位后,SP指向內(nèi)部RAM的07H單元,因內(nèi)部RAM的00H~1FH為R0~R7的4個(gè)區(qū),而20H~2FH為位尋址區(qū)。)27五、程序的初始化2751單片機(jī)程序的初始化: ORG0000H AJMPMAIN ;轉(zhuǎn)主程序 ORG0003H LJMPPINT0 ;轉(zhuǎn)外部中斷0 ORG000BH LJMPTINT0 ;轉(zhuǎn)定時(shí)器0 ORG0013H LJMPPINT1 ;轉(zhuǎn)外部中斷1 ORG001BH LJMPTINT1 ;轉(zhuǎn)定時(shí)器1 ORG0023H LJMPSINT ;轉(zhuǎn)串行通信ORG0030HMAIN:MOVSP,#30H......LJMPXXXPINT0:......RETITINT0:......RETIPINT1:......RETITINT1:......RETISINT:......RETI2851單片機(jī)程序的初始化:ORG0030H28對(duì)4個(gè)SFR的有關(guān)控制位進(jìn)行賦值:
(1)對(duì)IP選優(yōu)先級(jí);(2)對(duì)IE選各中斷允許(總中斷允許位EA暫不選);(3)若是外部中斷,則對(duì)TCON確定觸發(fā)方式;(4)最后開總中斷EA=1。29對(duì)4個(gè)SFR的有關(guān)控制位進(jìn)行賦值:29外部中斷的觸發(fā)方式選擇(1)電平觸發(fā)方式CPU每個(gè)機(jī)器周期采樣INT引腳,低電平就響應(yīng)中斷。在中斷服務(wù)返回之前,INT引腳電平必須撤銷,否則CPU返回主程序會(huì)再次響應(yīng)中斷。適于外中斷以低電平輸入且中斷服務(wù)程序能清除外部中斷請(qǐng)求的情況。5.4中斷系統(tǒng)的應(yīng)用INTxP1.0CLKSQD外來中斷申請(qǐng)信號(hào)(低電平)MCS-5174LS74S=0則Q=1外部低電平中斷的撤除30外部中斷的觸發(fā)方式選擇5.4中斷系統(tǒng)的應(yīng)用INTxP1.0(2)邊沿觸發(fā)方式CPU連續(xù)兩次采樣INT引腳,若一個(gè)機(jī)器周期采樣到為高,下一個(gè)機(jī)器周期為低,則中斷請(qǐng)求標(biāo)志置“1”。CPU響應(yīng)此中斷時(shí),該標(biāo)志清“0”。INT引腳輸入的負(fù)脈沖寬度至少保持1個(gè)機(jī)器周期。31(2)邊沿觸發(fā)方式31例3:若規(guī)定外部中斷0為電平觸發(fā)方式,高優(yōu)先級(jí),寫出有關(guān)的初始化程序。解:采用位操作指令來實(shí)現(xiàn): SETBEX0 ;允許外中斷0中斷 SETBPX0 ;外中斷0定為高優(yōu)先級(jí) CLRIT0 ;電平觸發(fā) SETBEA ;開總中斷EAET2ESET1EX1ET0EX0TF1TR1TF0TR0IE1IT1IE0IT0IETCONPT2PSPT1PX1PT0PX0IP32例3:若規(guī)定外部中斷0為電平觸發(fā)方式,高優(yōu)先級(jí),寫出有關(guān)的初例4編制一外部中斷的服務(wù)程序。現(xiàn)場(chǎng)保護(hù):PSW、A典型的中斷服務(wù)程序如下:INT:CLREA;CPU關(guān)中斷,防止有高級(jí)中斷PUSHPSW;現(xiàn)場(chǎng)保護(hù)PUSHACCSETBEA;CPU開中斷......;中斷處理程序段CLREA;CPU關(guān)中斷,防止有高級(jí)中斷POPACC;現(xiàn)場(chǎng)恢復(fù)POPPSWSETBEA;CPU開中斷RETI;中斷返回,恢復(fù)斷點(diǎn)33例4編制一外部中斷的服務(wù)程序。33幾點(diǎn)說明:(1)本例現(xiàn)場(chǎng)保護(hù)僅涉及到PSW和A,如有其它需保護(hù)的只需再加幾條PUSH和POP指令即可。(2)“中斷處理程序段”應(yīng)根據(jù)任務(wù)的具體要求來編寫。(3)如果本中斷服務(wù)程序不允許被其它的中斷所中斷,可將“中斷處理程序段”前后的“SETBEA”和“CLREA”兩條指令去掉。(4)中斷服務(wù)程序的最后一條指令必須是RETI。34幾點(diǎn)說明:34例5要求每次按動(dòng)按鍵,使外接發(fā)光二極管LED改變一次亮滅狀態(tài)。解:INT0輸入按鍵信號(hào),P1.0輸出改變LED狀態(tài)。1.邊沿觸發(fā):每次跳變引起一次中斷請(qǐng)求。單片機(jī)INT0P1.0+5VEAET2ESET1EX1ET0EX0TF1TR1TF0TR0IE1IT1IE0IT0IETCON35例5要求每次按動(dòng)按鍵,使外接發(fā)光二極管LED改變一次亮滅
ORG0000H ;復(fù)位入口 AJMPMAIN
ORG0003H ;中斷入口 AJMPPINT0
ORG0030H ;主程序MAIN:MOVSP,#40H ;設(shè)堆棧 SETB EX0 ;開INT0中斷 SETB IT0 ;負(fù)跳變觸發(fā)中斷 SETB EA ;開總中斷允許H: SJMPH ;執(zhí)行其它任務(wù) ORG0200H ;中斷服務(wù)程序PINT0:CPLP1.0 ;改變LED
RETI ;返回主程序36 ORG0000H ;復(fù)位入口 362.
電平觸發(fā):
ORG0000H ;復(fù)位入口 AJMPMAIN
ORG 0003H ;中斷入口 AJMPPINT0
ORG 0030H ;主程序MAIN:MOVSP,#40H ;設(shè)堆棧SETB EX0 ;開INT0中斷;CLR IT0 ;低電平觸發(fā)中斷SETB EA ;開總中斷允許H:SJMP H ;執(zhí)行其它任務(wù)ORG0200H ;中斷服務(wù)程序PINT0:CPLP1.0 ;改變LEDWAIT:JNB P3.2,WAIT ;等按鍵釋放
RETI ;返回主程序372.電平觸發(fā):37例6故障源顯示電路。無故障時(shí)3個(gè)故障源X1~X3全為低,對(duì)應(yīng)的3個(gè)顯示燈全滅;當(dāng)某部分出現(xiàn)故障時(shí),對(duì)應(yīng)的輸入端由低變高而引起中斷。中斷服務(wù)程序的任務(wù)是判定故障,并點(diǎn)亮對(duì)應(yīng)發(fā)光二極管。其中發(fā)光二極管LED1~LED3對(duì)應(yīng)3個(gè)輸入端X1~X3。+I(xiàn)NT0P1.0P1.1P1.2P1.3P1.4P1.5X1X2X3+5VLED1LED2LED3RRR38例6故障源顯示電路。+I(xiàn)NT0P1.0P1.3X1+5VL
主程序?yàn)椋?/p>
ORG0000H AJMPMAIN
ORG0003H LJMPSERVEMAIN:ORLP1,#0FFH ;燈全滅,準(zhǔn)備讀入 SETBIT0 ;選擇邊沿觸發(fā)方式 SETBEX0 ;允許INT0中斷 SETBEA ;CPU開總中斷 SJMP$ ;等待中斷EAET2ESET1EX1ET0EX0IE39主程序?yàn)椋篍AET2ESET1EX1ET0EX0IE39中斷服務(wù)子程序?yàn)椋?/p>
ORG2000HSERVE:JNBP1.0,L1 ;若X1無故障,跳到L1 CLRP1.3 ;點(diǎn)亮LED1L1: JNBP1.1,L2 ;若X2有故障,跳到L2 CLRP1.4 ;點(diǎn)亮LED2L2: JNBP1.2,L3 ;若X3有故障,跳到L3 CLRP1.5 ;點(diǎn)亮LED3L3: RETI+I(xiàn)NT0P1.0P1.1P1.2P1.3P1.4P1.5X1X2X3+5VLED1LED2LED3RRR40中斷服務(wù)子程序?yàn)椋海獻(xiàn)NT0P1.0P1.3X1+5VLED例7通過外部中斷1在中斷服務(wù)中將P1口內(nèi)容左環(huán)移一位。
已知:(B)=01H,要求采用邊沿觸發(fā),低優(yōu)先級(jí)。此例的實(shí)際意義:在INT1引腳接一個(gè)按鍵,每按一下按鍵就申請(qǐng)一次中斷。中斷服務(wù):依次點(diǎn)亮八盞燈中的一盞。P1.0P1.7INT130041例7通過外部中斷1在中斷服務(wù)中將P1口內(nèi)容左環(huán)移一位。PORG0000HLJMPMAINORG0013H;外部中斷1的中斷入口LJMPINTMAIN:SETBEX1;開外中斷1CLRPX1;低優(yōu)先級(jí)(此句可省略)SETBIT1;邊沿觸發(fā)MOVB,#01H;給B寄存器賦初值CLRASETBEA;開總中斷HERE:INCASJMPHERE;循環(huán)等待中斷INT:PUSHACC;保護(hù)現(xiàn)場(chǎng)MOVP1,B;輸出到P1口MOVA,BRLA;左環(huán)移一次MOVB,A;存回BPOPACC;現(xiàn)場(chǎng)恢復(fù)RETI中斷服務(wù)程序本章完42ORG0000HINT:PUSHACC第5章51單片機(jī)中斷系統(tǒng)單片機(jī)原理與接口技術(shù)第5章51單片機(jī)中斷系統(tǒng)單片機(jī)原理與接口技術(shù)主要內(nèi)容5.1中斷概述 5.1.1中斷的基本概念 5.1.2中斷系統(tǒng)的功能5.251單片機(jī)中斷系統(tǒng)結(jié)構(gòu) 5.2.1中斷系統(tǒng)結(jié)構(gòu) 5.2.2中斷的控制5.3中斷的響應(yīng) 5.3.1中斷響應(yīng)條件 5.3.2中斷的響應(yīng)—中斷處理流程 5.3.3系統(tǒng)的復(fù)位5.4中斷系統(tǒng)的應(yīng)用(以外部中斷為例) 5.4.1中斷程序的初始化 5.4.2外部中斷源的應(yīng)用44主要內(nèi)容5.1中斷概述25.1中斷概述CPU正在執(zhí)行程序時(shí),單片機(jī)外部或內(nèi)部發(fā)生的某一事件,請(qǐng)求CPU迅速去處理;CPU暫停當(dāng)前的程序,轉(zhuǎn)到中斷服務(wù)程序去處理所發(fā)生的事件;處理完該事件后,再回到原來被中止的地方,繼續(xù)原來的程序,這就是中斷。CPU處理事件的過程,稱為CPU的中斷響應(yīng)過程。對(duì)事件的整個(gè)處理過程,稱為中斷處理(或中斷服務(wù))。單片機(jī)實(shí)現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)。產(chǎn)生中斷的請(qǐng)求源稱為中斷請(qǐng)求源。中斷源向CPU提出的處理請(qǐng)求稱為中斷請(qǐng)求。455.1中斷概述3中斷的優(yōu)點(diǎn):提高CPU效率解決速度矛盾實(shí)現(xiàn)并行工作應(yīng)付突發(fā)事件中斷服務(wù)程序中斷涉及的幾個(gè)環(huán)節(jié):
①中斷源
②中斷申請(qǐng)
③開放中斷
④保護(hù)現(xiàn)場(chǎng)⑤中斷服務(wù)⑥恢復(fù)現(xiàn)場(chǎng)⑦中斷返回46中斷的優(yōu)點(diǎn):中斷服務(wù)程序中斷涉及的幾個(gè)環(huán)節(jié):⑤中斷服務(wù)45.2中斷系統(tǒng)結(jié)構(gòu)51系列單片機(jī)中斷系統(tǒng):有5個(gè)中斷源(52系列有6個(gè))2個(gè)外部中斷源2個(gè)定時(shí)中斷源1個(gè)串行中斷兩級(jí)中斷優(yōu)先級(jí),能實(shí)現(xiàn)兩級(jí)中斷嵌套每個(gè)中斷源的優(yōu)先級(jí)都可由IP編程確定中斷請(qǐng)求能否得到響應(yīng),由IE編程控制475.2中斷系統(tǒng)結(jié)構(gòu)51系列單片機(jī)中斷系統(tǒng):5一、51單片機(jī)中斷系統(tǒng)結(jié)構(gòu)IE0TF0IE1TF1INT0INT1T0T1TIRIEX0ET0EX1ET1ES1EAPX0PT0PX1PT1PS中斷
向量地址高低查詢循序PC高級(jí)中斷請(qǐng)求PC低級(jí)中斷請(qǐng)求中斷
向量地址高低01IT1IT01010101010TXRX查詢循序01SCONIEIPTCON硬件查詢48一、51單片機(jī)中斷系統(tǒng)結(jié)構(gòu)IE0TF0IE1TF1INT01、中斷源(1)外部中斷源——INT0、INT1:由引腳P3.2、P3.3輸入的兩個(gè)中斷源;可直接觸發(fā)TCON的IE0、IE1標(biāo)志位;觸發(fā)方式:邊沿觸發(fā)、電平觸發(fā);觸發(fā)方式由TCON中的IT0、IT1來選擇。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)圖EAIE0INT0EX0PX001IT010高優(yōu)先級(jí)低優(yōu)先級(jí)IEIPTCON491、中斷源TF1TR1TF0TR0IE1IT1IE0IT0(IE0:INT0的中斷請(qǐng)求標(biāo)志位。當(dāng)INT0引腳上出現(xiàn)低電平或下降沿時(shí),由硬件自動(dòng)將IE0置“1”,產(chǎn)生中斷請(qǐng)求標(biāo)志。IT0:INT0觸發(fā)方式控制位,由軟件來選擇。IT0=1:INT0為下降沿有效。IT0=0:INT0為低電平有效。IE1:INT1的請(qǐng)求標(biāo)志位。同IE0。IT1:INT1觸發(fā)方式控制位。同IT0。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)圖50IE0:INT0的中斷請(qǐng)求標(biāo)志位。TF1TR1TF0TR0I(2)內(nèi)部中斷源——T0、T1,TI/RI①T0、T1:定時(shí)器/計(jì)數(shù)器(T/C0、1)溢出中斷源T/C0、1內(nèi)部有各自的計(jì)數(shù)器,當(dāng)計(jì)滿溢出時(shí),使標(biāo)志位TF0、TF1置“1”,產(chǎn)生中斷請(qǐng)求;TF0:T/C0的溢出中斷標(biāo)志位;TF1:T/C1的溢出中斷標(biāo)志位。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)EATF0T0ET0PT010IEIPTCON高優(yōu)先級(jí)低優(yōu)先級(jí)圖51(2)內(nèi)部中斷源——T0、T1,TI/RITF1TR1②TI/RI:串口發(fā)送/接收中斷源可直接觸發(fā)SCON的TI、RI標(biāo)志位;TI:發(fā)送中斷請(qǐng)求標(biāo)志。RI:接收中斷請(qǐng)求標(biāo)志。串口的發(fā)送和接收中斷(邏輯或)共用一個(gè)中斷源。SM0SM1SM2RENTB0RB0TIRI(MSB)(LSB)SCON(98H)EATIRIES1PS10TXRXIEIPSCON高優(yōu)先級(jí)低優(yōu)先級(jí)圖52②TI/RI:串口發(fā)送/接收中斷源SM0SM1SM2RENT2.中斷優(yōu)先級(jí)
51系列單片機(jī)中斷系統(tǒng):有5個(gè)中斷源;兩級(jí)中斷優(yōu)先級(jí),能實(shí)現(xiàn)兩級(jí)中斷嵌套;每個(gè)中斷源的優(yōu)先級(jí)都可由IP編程確定;中斷請(qǐng)求能否得到響應(yīng),由IE控制。主程序或子程序中斷服務(wù)1中斷服務(wù)2斷點(diǎn)PT2PSPT1PX1PT0PX0(MSB)(LSB)IP(0B8H)圖532.中斷優(yōu)先級(jí)主程序或子程序中斷服務(wù)1中斷服務(wù)2斷點(diǎn)PT2二、中斷的控制51中斷系統(tǒng)有4個(gè)SFR:
⑴TCON(88H):
⑵SCON(98H):
⑶IE(0A8H):
⑷IP(0B8H):單片機(jī)中斷系統(tǒng)就是由這4個(gè)SFR來控制的。TF1TR1TF0TR0IE1IT1IE0IT0PT2PSPT1PX1PT0PX0SM0SM1SM2RENTB0RB0TIRIEAET2ESET1EX1ET0EX054二、中斷的控制51中斷系統(tǒng)有4個(gè)SFR:TF1TR1TF01.中斷請(qǐng)求標(biāo)志(1)TCON的中斷標(biāo)志位TCON為T/C控制寄存器,也鎖存T0和T1的溢出中斷標(biāo)志和INT0和INT1的中斷標(biāo)志等。當(dāng)中斷源有中斷時(shí),由硬件自動(dòng)對(duì)相應(yīng)位置“1”。響應(yīng)中斷后由硬件自動(dòng)清除相應(yīng)的標(biāo)志位。TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)TCON(88H)圖551.中斷請(qǐng)求標(biāo)志(1)TCON的中斷標(biāo)志位TF1TR1TF0(2)SCON的中斷標(biāo)志位SCON為串口控制寄存器,鎖存TI和RI的中斷標(biāo)志。串口的發(fā)送和接收中斷(邏輯或)共用一個(gè)中斷源。當(dāng)發(fā)送或接收有中斷時(shí),由硬件對(duì)TI或RI置“1”。中斷響應(yīng)后需要由軟件判斷TI和RI位,并只能由軟件清除TI或RI標(biāo)志位。SM0SM1SM2RENTB0RB0TIRI(MSB)(LSB)SCON(98H)圖56(2)SCON的中斷標(biāo)志位SM0SM1SM2RENTB0RB2.中斷允許寄存器IEEAET2ESET1EX1ET0EX0(MSB)(LSB)IE(0A8H)中斷申請(qǐng)后,CPU是否相應(yīng)中斷,由IE相應(yīng)位控制,可通過對(duì)IE編程來設(shè)置。IE各位如下("1"有效):EX0:INT0中斷允許位;ET0:T/C0中斷允許位;EX1:INT1中斷允許位;ET1:T/C1中斷允許位;ES:串口中斷允許位;ET2:T/C2中斷允許位(僅52系列有);EA:CPU中斷總允許位。圖572.中斷允許寄存器IEEAET2ESET1EX1ET0EX051單片機(jī)復(fù)位后,IE被清“0”,即所有中斷被禁止。要使某一個(gè)中斷源被允許中斷,除了IE相應(yīng)的位的被置“1”,還必須使EA位=1。改變IE的內(nèi)容,可由位操作指令來實(shí)現(xiàn),即: SETBbit; CLRbit。 也可按自己來實(shí)現(xiàn):MOVIE,#XXHEAET2ESET1EX1ET0EX0(MSB)(LSB)IE(0A8H)5851單片機(jī)復(fù)位后,IE被清“0”,即所有中斷被禁止。EAE例1若允許片內(nèi)2個(gè)定時(shí)器/計(jì)數(shù)器中斷,禁止其它中斷源的中斷請(qǐng)求。編寫設(shè)置IE的相應(yīng)程序段。(1)用位操作指令來編寫如下程序段:CLRES ;禁止串行口中斷CLREX1 ;禁止外部中斷1中斷CLREX0 ;禁止外部中斷0中斷SETBET0 ;允許定時(shí)器/計(jì)數(shù)器T0中斷SETBET1 ;允許定時(shí)器/計(jì)數(shù)器T1中斷SETBEA ;CPU開中斷(2)用字節(jié)操作指令來編寫:MOVIE,#8AHEAET2ESET1EX1ET0EX059例1若允許片內(nèi)2個(gè)定時(shí)器/計(jì)數(shù)器中斷,禁止其它中斷源的中斷3.中斷優(yōu)先級(jí)IPPT2PSPT1PX1PT0PX0(MSB)(LSB)IP(0B8H)5個(gè)中斷源可分2個(gè)優(yōu)先級(jí),由IP通過編程來設(shè)置。IP各位如下(“1”選為高級(jí),“0”選為低級(jí)):PX0:INT0優(yōu)先級(jí)設(shè)定位;PT0:T/C0優(yōu)先級(jí)設(shè)定位;PX1:INT1優(yōu)先級(jí)設(shè)定位;PT1:T/C1優(yōu)先級(jí)設(shè)定位;PS:串行口優(yōu)先級(jí)設(shè)定位;PT2:T/C2優(yōu)先級(jí)設(shè)定位(僅52系列有)。603.中斷優(yōu)先級(jí)IPPT2PSPT1PX1PT0PX0(MSB由軟件可改變各中斷源的中斷優(yōu)先級(jí)。
51的中斷系統(tǒng)有兩個(gè)不可尋址的“優(yōu)先級(jí)激活觸發(fā)器”:一個(gè)是指示某高優(yōu)先級(jí)的中斷正在執(zhí)行,所有后來的中斷均被阻止。另一個(gè)是指示某低優(yōu)先級(jí)的中斷正在執(zhí)行,所有同級(jí)中斷都被阻止,但不阻斷高優(yōu)先級(jí)的中斷請(qǐng)求。當(dāng)幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),優(yōu)先響應(yīng)哪一個(gè)中斷,取決于內(nèi)部的查詢順序。 查詢順序如下:61由軟件可改變各中斷源的中斷優(yōu)先級(jí)。19中斷源中斷標(biāo)志同級(jí)內(nèi)優(yōu)先級(jí)外部中斷0(INT0)IE0最高定時(shí)器0溢出中斷(T0)TF0↓外部中斷1(INT1)IE1↓定時(shí)器1溢出中斷(T1)TF1↓串口中斷RI或TI↓定時(shí)器2溢出中斷(T2)TF2或EXF最低2個(gè)優(yōu)先級(jí)中,同級(jí)中斷的優(yōu)先次序如下:62中斷源中斷標(biāo)志同級(jí)內(nèi)優(yōu)先級(jí)外部中斷0(INT0)IE0最高例2
設(shè)置IP寄存器的初始值,使2個(gè)外部中斷請(qǐng)求為高優(yōu)先級(jí),其它中斷請(qǐng)求為低優(yōu)先級(jí)。(1)用位操作指令 SETBPX0 ;2個(gè)外中斷為高優(yōu)先級(jí) SETBPX1 CLRPS ;串口為低優(yōu)先級(jí)中斷 CLRPT0 ;2個(gè)定時(shí)器/計(jì)數(shù)器低優(yōu)先級(jí)中斷 CLRPT1(2)用字節(jié)操作指令 MOVIP,#05HPT2PSPT1PX1PT0PX063例2設(shè)置IP寄存器的初始值,使2個(gè)外部中斷請(qǐng)求為高優(yōu)先級(jí)5.3中斷的響應(yīng)一、中斷響應(yīng)條件中斷請(qǐng)求被響應(yīng)需滿足以下必要條件:(1)中斷源有請(qǐng)求;(2)IE的EA=1,且IE相應(yīng)的中斷允許位為1;(3)無同級(jí)或高級(jí)中斷正在服務(wù);(4)現(xiàn)行指令執(zhí)行完最后一個(gè)機(jī)器周期。若有下列任何一種情況存在,中斷響應(yīng)都會(huì)受到阻斷。(1)CPU正在執(zhí)行一個(gè)同級(jí)或高優(yōu)先級(jí)的中斷服務(wù)程序。(2)正在執(zhí)行的指令尚未執(zhí)行完。(3)正在執(zhí)行中斷返回指令RETI或者對(duì)專用寄存器IE、IP進(jìn)行讀/寫的指令。圖645.3中斷的響應(yīng)一、中斷響應(yīng)條件圖22二、中斷的響應(yīng)CPU響應(yīng)中斷后由硬件完成以下任務(wù):(1)被響應(yīng)的中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器置“1”;(2)當(dāng)前PC的內(nèi)容壓入堆棧,然后執(zhí)行中斷服務(wù)程序; (相當(dāng)于隱含執(zhí)行一條LCALL指令。)(3)清相應(yīng)的中斷標(biāo)志位; (串口中斷標(biāo)志RI和TI須由軟件清除!)(4)被響應(yīng)的中斷服務(wù)程序入口地址送入PC,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。各中斷源服務(wù)程序入口地址是固定的,如下所示:圖65二、中斷的響應(yīng)圖23中斷源服務(wù)程序的入口地址中斷源中斷標(biāo)志中斷入口同級(jí)內(nèi)優(yōu)先級(jí)外部中斷0(INT0)IE00003H最高定時(shí)器0溢出中斷(T0)TF0000BH↓外部中斷1(INT1)IE10013H↓定時(shí)器1溢出中斷(T1)TF1001BH↓串口中斷RI或TI0023H↓定時(shí)器2溢出中斷(T2)TF2或EXF002BH最低66中斷源服務(wù)程序的入口地址中斷源中斷標(biāo)志中斷入口同級(jí)內(nèi)優(yōu)先級(jí)外三、復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0~P3FFHSCON00HIP×××00000SBUF××××××××IE0××00000PCON0×××0000067三、復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTMO四、外部中斷的響應(yīng)時(shí)間外部中斷的最短響應(yīng)時(shí)間為3個(gè)機(jī)器周期:(1)查詢中斷請(qǐng)求標(biāo)志位占1個(gè)機(jī)器周期。(2)指令LCALL轉(zhuǎn)到相應(yīng)的中斷入口需2個(gè)機(jī)器周期。
外部中斷的最長(zhǎng)響應(yīng)時(shí)間為8個(gè)機(jī)器周期:(1)發(fā)生在CPU對(duì)中斷標(biāo)志查詢時(shí),剛好正要執(zhí)行RETI或是訪問IE或IP指令,則需把當(dāng)前指令執(zhí)行完再繼續(xù)執(zhí)行一條指令后才能響應(yīng)中斷,最長(zhǎng)需2個(gè)機(jī)器周期。(2)接著再執(zhí)行一條指令,按最長(zhǎng)指令(MUL和DIV)4個(gè)機(jī)器周期。(3)硬件調(diào)用LCALL的執(zhí)行需要2個(gè)機(jī)器周期?!鶎?duì)外部中斷請(qǐng)求的響應(yīng)時(shí)間在3~8個(gè)機(jī)器周期之間。68四、外部中斷的響應(yīng)時(shí)間26五、程序的初始化復(fù)位后,PC指向0000H,一般在0000H處放置一條SJMP或AJMP指令跳轉(zhuǎn)到0030H后,避開被占用區(qū)域;
(由于中斷服務(wù)的入口地址0003H、000BH、0013H、001BH、0023H、002BH被占用,故選在0030H以后。)在中斷服務(wù)程序各入口地址處放置一條LJMP指令,指向?qū)嶋H中斷服務(wù)程序;一般將SP指向30H后,避開內(nèi)部RAM的工作寄存器組和位尋址區(qū)。
(復(fù)位后,SP指向內(nèi)部RAM的07H單元,因內(nèi)部RAM的00H~1FH為R0~R7的4個(gè)區(qū),而20H~2FH為位尋址區(qū)。)69五、程序的初始化2751單片機(jī)程序的初始化: ORG0000H AJMPMAIN ;轉(zhuǎn)主程序 ORG0003H LJMPPINT0 ;轉(zhuǎn)外部中斷0 ORG000BH LJMPTINT0 ;轉(zhuǎn)定時(shí)器0 ORG0013H LJMPPINT1 ;轉(zhuǎn)外部中斷1 ORG001BH LJMPTINT1 ;轉(zhuǎn)定時(shí)器1 ORG0023H LJMPSINT ;轉(zhuǎn)串行通信ORG0030HMAIN:MOVSP,#30H......LJMPXXXPINT0:......RETITINT0:......RETIPINT1:......RETITINT1:......RETISINT:......RETI7051單片機(jī)程序的初始化:ORG0030H28對(duì)4個(gè)SFR的有關(guān)控制位進(jìn)行賦值:
(1)對(duì)IP選優(yōu)先級(jí);(2)對(duì)IE選各中斷允許(總中斷允許位EA暫不選);(3)若是外部中斷,則對(duì)TCON確定觸發(fā)方式;(4)最后開總中斷EA=1。71對(duì)4個(gè)SFR的有關(guān)控制位進(jìn)行賦值:29外部中斷的觸發(fā)方式選擇(1)電平觸發(fā)方式CPU每個(gè)機(jī)器周期采樣INT引腳,低電平就響應(yīng)中斷。在中斷服務(wù)返回之前,INT引腳電平必須撤銷,否則CPU返回主程序會(huì)再次響應(yīng)中斷。適于外中斷以低電平輸入且中斷服務(wù)程序能清除外部中斷請(qǐng)求的情況。5.4中斷系統(tǒng)的應(yīng)用INTxP1.0CLKSQD外來中斷申請(qǐng)信號(hào)(低電平)MCS-5174LS74S=0則Q=1外部低電平中斷的撤除72外部中斷的觸發(fā)方式選擇5.4中斷系統(tǒng)的應(yīng)用INTxP1.0(2)邊沿觸發(fā)方式CPU連續(xù)兩次采樣INT引腳,若一個(gè)機(jī)器周期采樣到為高,下一個(gè)機(jī)器周期為低,則中斷請(qǐng)求標(biāo)志置“1”。CPU響應(yīng)此中斷時(shí),該標(biāo)志清“0”。INT引腳輸入的負(fù)脈沖寬度至少保持1個(gè)機(jī)器周期。73(2)邊沿觸發(fā)方式31例3:若規(guī)定外部中斷0為電平觸發(fā)方式,高優(yōu)先級(jí),寫出有關(guān)的初始化程序。解:采用位操作指令來實(shí)現(xiàn): SETBEX0 ;允許外中斷0中斷 SETBPX0 ;外中斷0定為高優(yōu)先級(jí) CLRIT0 ;電平觸發(fā) SETBEA ;開總中斷EAET2ESET1EX1ET0EX0TF1TR1TF0TR0IE1IT1IE0IT0IETCONPT2PSPT1PX1PT0PX0IP74例3:若規(guī)定外部中斷0為電平觸發(fā)方式,高優(yōu)先級(jí),寫出有關(guān)的初例4編制一外部中斷的服務(wù)程序?,F(xiàn)場(chǎng)保護(hù):PSW、A典型的中斷服務(wù)程序如下:INT:CLREA;CPU關(guān)中斷,防止有高級(jí)中斷PUSHPSW;現(xiàn)場(chǎng)保護(hù)PUSHACCSETBEA;CPU開中斷......;中斷處理程序段CLREA;CPU關(guān)中斷,防止有高級(jí)中斷POPACC;現(xiàn)場(chǎng)恢復(fù)POPPSWSETBEA;CPU開中斷RETI;中斷返回,恢復(fù)斷點(diǎn)75例4編制一外部中斷的服務(wù)程序。33幾點(diǎn)說明:(1)本例現(xiàn)場(chǎng)保護(hù)僅涉及到PSW和A,如有其它需保護(hù)的只需再加幾條PUSH和POP指令即可。(2)“中斷處理程序段”應(yīng)根據(jù)任務(wù)的具體要求來編寫。(3)如果本中斷服務(wù)程序不允許被其它的中斷所中斷,可將“中斷處理程序段”前后的“SETBEA”和“CLREA”兩條指令去掉。(4)中斷服務(wù)程序的最后一條指令必須是RETI。76幾點(diǎn)說明:34例5要求每次按動(dòng)按鍵,使外接發(fā)光二極管LED改變一次亮滅狀態(tài)。解:INT0輸入按鍵信號(hào),P1.0輸出改變LED狀態(tài)。1.邊沿觸發(fā):每次跳變引起一次中斷請(qǐng)求。單片機(jī)INT0P1.0+5VEAET2ESET1EX1ET0EX0TF1TR1TF0TR0IE1IT1IE0IT0IETCON77例5要求每次按動(dòng)按鍵,使外接發(fā)光二極管LED改變一次亮滅
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 股份制合作發(fā)展策略報(bào)告書
- 車展場(chǎng)地租賃合同
- 游戲原畫設(shè)計(jì)制作作業(yè)指導(dǎo)書
- 小企業(yè)貸款合同
- 2025年昆明貨運(yùn)駕駛從業(yè)資格考試題庫模擬考試
- 2025年中衛(wèi)貨運(yùn)上崗證模擬考試
- 2025年湖州道路貨運(yùn)駕駛員從業(yè)資格證考試題庫
- 2024-2025學(xué)年度九年級(jí)物理全冊(cè)13.2內(nèi)能教學(xué)設(shè)計(jì)2新版新人教版
- 2024年春五年級(jí)語文下冊(cè)第六單元29戰(zhàn)風(fēng)車導(dǎo)學(xué)案無答案語文S版
- 投招標(biāo)工作計(jì)劃
- 2023年藥事法規(guī)教學(xué)案例庫及案例分析
- 軸套類零件件的加工課件
- 北京市水務(wù)安全生產(chǎn)風(fēng)險(xiǎn)評(píng)估指南
- 吸引器教學(xué)講解課件
- 醫(yī)學(xué)心理學(xué)人衛(wèi)八版66張課件
- 物業(yè)服務(wù)五級(jí)三類收費(fèi)重點(diǎn)標(biāo)準(zhǔn)
- 工商注冊(cè)登記信息表
- 仿古建筑施工常見質(zhì)量通病及防治措施
- 漢代儒學(xué)大師董仲舒思想課件
- 普通沖床設(shè)備日常點(diǎn)檢標(biāo)準(zhǔn)作業(yè)指導(dǎo)書
- 科技文獻(xiàn)檢索與利用PPT通用課件
評(píng)論
0/150
提交評(píng)論