




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1圖圖2-13 內部時鐘方式電路內部時鐘方式電路22.6.2 機器周期、指令周期機器周期、指令周期各種指令各種指令的的時序與時序與振蕩周期相振蕩周期相關。關。1振蕩周期振蕩周期時鐘控制信號的時鐘控制信號的基本時間單位基本時間單位。若晶振頻率為。若晶振頻率為 fosc,則,則振蕩周期振蕩周期 Tosc=1/fosc。如。如 fosc=12MHz,Tosc=1/12s。2機器周期機器周期 CPU完成一個基本操作所需時間為完成一個基本操作所需時間為機器周期機器周期。執行一條執行一條指令分為幾個機器周期指令分為幾個機器周期。每個機器周期完成一個。每個機器周期完成一個基本操作基本操作,如取指令、讀或寫數
2、據等。每,如取指令、讀或寫數據等。每12個個振蕩周期振蕩周期為為1個機器周個機器周期期。231個機器周期個機器周期包括包括12個個振蕩周期振蕩周期,分,分6個狀態個狀態:S1S6。每個。每個狀態又分兩拍狀態又分兩拍(相)(相):P1和和P2。因此,一個機器。因此,一個機器周期中的周期中的12個個振蕩周期振蕩周期表示為表示為S1P1、S1P2、S2P1、S2P2、S6P2,如如圖圖2-16所示所示。3圖圖2-16 AT89S51的機器周期的機器周期43指令周期指令周期執行一條指令執行一條指令所需的時間所需的時間。簡單的。簡單的單字節指令單字節指令,取出指,取出指令立即執行,令立即執行,只需只需一
3、個機器周期一個機器周期的時間的時間。而有些。而有些復雜的指復雜的指令令,如,如轉移、乘、除指令轉移、乘、除指令則需則需兩個兩個或或多個多個機器周期。機器周期。從指令執行時間看從指令執行時間看: 單字節和雙字節單字節和雙字節指令指令一般為單機器周期一般為單機器周期和和雙機器周期雙機器周期; 三字節指令三字節指令都是都是雙機器周期雙機器周期; 乘、除指令乘、除指令占用占用4個機器周期個機器周期。452.7 復位操作和復位電路復位操作和復位電路單片機的單片機的初始化操作初始化操作,給復位腳,給復位腳RST加上加上大于大于2個機器周期個機器周期(即即24個振蕩周期)的個振蕩周期)的高電平高電平就就可可
4、使使AT89S51復位。復位。2.7.1 復位操作復位操作復位時,復位時,PC初始化為初始化為0000H,程序從,程序從0000H單元開始執行。單元開始執行。除系統的正常初始化外,當除系統的正常初始化外,當程序出錯程序出錯(如程序跑飛)或(如程序跑飛)或操作錯操作錯誤誤使系統處于使系統處于死死機機狀態時,狀態時,需按復位鍵需按復位鍵使使RST腳為高電平,腳為高電平,使使AT89S51擺脫擺脫“跑飛跑飛”或或“死死機機”狀態而重新啟動程序。狀態而重新啟動程序。6復位操作還對復位操作還對SFR寄存器寄存器產生產生影響,這些寄存器復位時影響,這些寄存器復位時的狀態的狀態見見表表2-7。由由表表2-7
5、可看出,復位時,可看出,復位時,SP=07H ,而,而P0P3引腳均引腳均為高電平為高電平。在某些控制應用中,要在某些控制應用中,要注意考慮注意考慮P0P3引腳的高電平引腳的高電平對接在這些引腳上的外部電路的影響對接在這些引腳上的外部電路的影響。例如,例如,當當P1口某個引腳外接一個繼電器繞組,當復位口某個引腳外接一個繼電器繞組,當復位時,該引腳為高電平,繼電器繞組就會有電流通過,就會時,該引腳為高電平,繼電器繞組就會有電流通過,就會吸合繼電器開關,使開關接通,可能會引起意想不到的后吸合繼電器開關,使開關接通,可能會引起意想不到的后果。果。6782.7.2 2.7.2 復位電路設計復位電路設計
6、8圖圖2-182-18 上電復位電路上電復位電路R=8.2kC=10F =R*C=82ms9 9圖圖2-192-19 手動復位電路手動復位電路 10第第5 5章章 AT89S51AT89S51單片機的單片機的 中斷系統中斷系統101111第第5章章 目錄目錄5.1 AT89S51中斷技術概述中斷技術概述5.2 AT89S51中斷系統結構中斷系統結構 5.2.1 中斷請求源 5.2.2 中斷請求標志寄存器5.3 中斷允許與中斷優先級的控制中斷允許與中斷優先級的控制 5.3.1 中斷允許寄存器IE 5.3.2 中斷優先級寄存器IP5.4 響應中斷請求的條件響應中斷請求的條件5.5 外部中斷的響應時
7、間外部中斷的響應時間125.6 外部中斷的觸發方式選擇外部中斷的觸發方式選擇 5.6.1 電平觸發方式 5.6.2 邊沿觸發方式5.7 中斷請求的撤銷中斷請求的撤銷5.8 中斷服務子程序的設計中斷服務子程序的設計5.9 多外部中斷源系統設計多外部中斷源系統設計13內容概要內容概要n介紹片內功能部件中斷系統的介紹片內功能部件中斷系統的硬件結構硬件結構和和工作原理工作原理。n掌握與中斷系統掌握與中斷系統有關的特殊功能寄存器有關的特殊功能寄存器以及中斷系統的以及中斷系統的應用特性。應用特性。n應能熟練地進行中斷系統的應能熟練地進行中斷系統的初始化編程初始化編程以及以及中斷服務子中斷服務子程序的設計程
8、序的設計。145.1 AT89S515.1 AT89S51中斷技術概述中斷技術概述 中斷技術主要用于中斷技術主要用于實時監測與控制實時監測與控制,要求單片機,要求單片機能及能及時地響應中斷請求源提出的服務請求時地響應中斷請求源提出的服務請求,并作出快速響應、,并作出快速響應、及時處理。這是由片內的中斷系統來實現的。及時處理。這是由片內的中斷系統來實現的。 當中斷請求源當中斷請求源發出中斷請求發出中斷請求時,如果中斷請求被允許,時,如果中斷請求被允許,單片機就會暫時中止正在執行的主程序,轉到中斷服務子單片機就會暫時中止正在執行的主程序,轉到中斷服務子程序去處理中斷服務請求。程序去處理中斷服務請求
9、。 中斷服務子程序處理完中斷服務請求后,再回到原來中斷服務子程序處理完中斷服務請求后,再回到原來被中止的程序之處(斷點),繼續執行被中斷的主程序。被中止的程序之處(斷點),繼續執行被中斷的主程序。 圖圖5-15-1為整個中斷響應和處理過程。為整個中斷響應和處理過程。141515圖圖5-1 中斷響應和處理過程中斷響應和處理過程16如果單片機沒有中斷系統如果單片機沒有中斷系統,CPUCPU將會花費大量的時間進行將會花費大量的時間進行查詢操作。查詢操作。采用中斷技術完全采用中斷技術完全消除了單片機在查詢方式中的等待現消除了單片機在查詢方式中的等待現象象,大大地提高了單片機的,大大地提高了單片機的工作
10、效率工作效率和和實時性實時性。5.2 AT89S515.2 AT89S51中斷系統結構中斷系統結構 中斷系統結構圖如中斷系統結構圖如圖圖5-25-2所示。所示。中斷系統有中斷系統有5 5個個中斷請求源(簡稱中斷源),中斷請求源(簡稱中斷源),兩個中斷優兩個中斷優先級先級,可實現,可實現兩級中斷服務程序嵌套兩級中斷服務程序嵌套。每一中斷源可用軟件獨立控制為每一中斷源可用軟件獨立控制為允許中斷允許中斷或或關中斷關中斷狀態,狀態,中斷優先級中斷優先級均可用軟件來設置。均可用軟件來設置。16175.2.1 中斷請求源中斷請求源由圖5-2可見,AT89S51中斷系統共有5個中斷請求源:(1) 外部中斷請
11、求0,中斷請求信號由 引腳輸入,中斷請求標志為IE0。(2) 外部中斷請求1,中斷請求信號由 引腳輸入,中斷請求標志為IE1。(3)定時器定時器/計數器計數器T0計數溢出發出的中斷請求,中斷請求標志為TF0。(4)定時器定時器/計數器計數器T1計數溢出發出的中斷請求,中斷請求標志為TF1。(5)串行口串行口中斷請求,中斷請求標志為發送中斷TI或接收中斷RI。170INT1INT0INT1INT1818圖圖5-2 5-2 AT89S51AT89S51的中斷系統結構示意圖的中斷系統結構示意圖195.2.2 中斷請求標志寄存器中斷請求標志寄存器5個中斷請求源的中斷請求標志中斷請求標志分別由TCON和
12、SCON的相應位鎖存。1. TCON寄存器寄存器為定時器/計數器的控制寄存器,字節地址為88H,可位尋址。特殊功能寄存器TCON的格式如圖圖5-3所示。19圖圖5-35-3 特殊功能寄存器特殊功能寄存器TCONTCON的格式的格式20TCON各標志位功能如下:各標志位功能如下:(1)TF1定時器/計數器T1的溢出中斷請求標志位。當T1計數產生溢出時,由硬件使TF1置“1”,向CPU申請中斷。CPU響應TF1中斷時,TF1標志由硬件自動清由硬件自動清“0”,TF1也可由軟件清“0”。(2)TF0定時器/計數器T0的溢出中斷請求標志位,功能與TF1類似。(3)IE1外部中斷請求1的中斷請求標志位。
13、(4)IE0外部中斷請求0中斷請求標志位,功能與IE1類似。(5)IT1選擇外部中斷請求1為邊沿觸發還是電平觸發。2021IT1=0,電平觸發,電平觸發方式,引腳 上低電平有效,并把IE1置“1”。轉向中斷服務程序時,由硬件自動把IE1清“0”。IT1=1,邊沿觸發邊沿觸發方式,加到引腳 上的外部中斷請求為從高到低的負跳變負跳變,并把IE1置“1”。轉向中斷服務程序時,由硬件自動自動把IE1清“0”。(6)IT0選擇外部中斷請求0為邊沿觸發方式還是電平觸發方式,其意義與IT1類似。AT89S51復位復位后,TCON被清被清“0”,5個中斷源的中斷請求標志均為0。TR1(D6位)、TR0(D4位
14、)這2位與中斷系統無關與中斷系統無關,將在第6章定時器/計數器中介紹。21222. SCON寄存器寄存器串行口控制寄存器,字節地址為98H,可位尋址可位尋址。低二位鎖存串行口的發送中斷和接收中斷的中斷請求標志TI和RI,格式如圖圖5-4所示所示。 圖圖5-4 SCON中的中斷請求標志位中的中斷請求標志位各標志位的功能: (1)TI串行口的發送中斷請求標志位。每發送完一幀串行數據后,TI自動置“1”。TI標志必須由軟件清必須由軟件清“0”。2223(2)RI串行口接收中斷請求標志位。串行口接收完一個串行口接收中斷請求標志位。串行口接收完一個串行數據幀,硬件自動使串行數據幀,硬件自動使RI中斷請求
15、標志置中斷請求標志置“1”。必須在中。必須在中斷服務程序中用指令對斷服務程序中用指令對RI清清“0”。 5.3 中斷允許與中斷優先級的控制中斷允許與中斷優先級的控制中斷允許中斷允許控制由中斷允許寄存器控制由中斷允許寄存器IE控制。控制。中斷優先級中斷優先級控制由中斷優先級寄存器控制由中斷優先級寄存器IP控制。控制。5.3.1 中斷允許寄存器中斷允許寄存器IEAT89S51的對各中斷源的開放或屏蔽,是由中斷允許寄存的對各中斷源的開放或屏蔽,是由中斷允許寄存器器IE控制的。控制的。IE字節地址為字節地址為A8H,可位尋址可位尋址,格式如,格式如圖圖5-5所示所示。2324 圖5-5 中斷允許寄存器
16、IE的格式IE對中斷的開放和關閉實現兩級控制兩級控制。有一個總的中斷控制位EA(IE.7位),EA=0時,所有的中斷請求被屏蔽;EA=1時,開放中斷,但5個中斷源的中斷請求是否允許,還要由IE中的低中的低5位位所對應的對應的5個中斷請求允許控制位個中斷請求允許控制位的狀態來決定(圖5-5)。2425IE中各位功能如下:中各位功能如下:(1)EA中斷允許總開關控制位。中斷允許總開關控制位。EA=0,所有的中斷請求被屏蔽。,所有的中斷請求被屏蔽。EA=1,所有的中斷請求被開放。,所有的中斷請求被開放。(2)ES串行口中斷允許位。串行口中斷允許位。ES=0,禁止串行口中斷。,禁止串行口中斷。ES=1
17、,允許串行口中斷。,允許串行口中斷。(3)ET1定時器定時器/計數器計數器T1的溢出中斷允許位。的溢出中斷允許位。ET1=0,禁止,禁止T1溢出中斷。溢出中斷。ET1=1,允許,允許T1溢出中斷。溢出中斷。(4)EX1外部中斷外部中斷1中斷允許位。中斷允許位。2526EX1=0,禁止外部中斷,禁止外部中斷1中斷。中斷。EX1=1,允許外部中斷,允許外部中斷1中斷。中斷。(5)ET0定時器定時器/計數器計數器T0的溢出中斷允許位。的溢出中斷允許位。ET0=0,禁止,禁止T0溢出中斷。溢出中斷。ET0=1,允許,允許T0溢出中斷。溢出中斷。(6)EX0外部中斷外部中斷0中斷允許位。中斷允許位。EX
18、0=0,禁止外部中斷,禁止外部中斷0中斷。中斷。EX0=1,允許外部中斷,允許外部中斷0中斷。中斷。27AT89S51復位以后,復位以后,IE被清被清“0”,所有中斷請求被禁止。,所有中斷請求被禁止。IE中與各個中斷源相應的位可用指令置中與各個中斷源相應的位可用指令置“1”或清或清“0”。若使某一個中斷源被允許中斷若使某一個中斷源被允許中斷,除了,除了IE相應的位被置相應的位被置“1”外,還必須使外,還必須使EA位置位置“1”。改變改變IE的內容的內容,可由,可由位操作指令位操作指令來實現(即來實現(即SETB bit;CLR bit),也可用),也可用字節操作指令字節操作指令實現。實現。27
19、28【例例5-1】 若允許片內2個定時器/計數器中斷,并禁止其他中斷源的中斷請求,請編寫設置IE的相應程序段。(1)用位操作指令)用位操作指令CLRES;禁止串行口中斷;禁止串行口中斷 CLREX0;禁止外部中斷;禁止外部中斷0中斷中斷CLREX1;禁止外部中斷;禁止外部中斷1中斷中斷SETBET0;允許定時器;允許定時器/計數器計數器T0中斷中斷SETBET1;允許定時器;允許定時器/計數器計數器T1中斷中斷SETBEA ;總中斷開關位開放;總中斷開關位開放(2)用字節操作指令)用字節操作指令MOV IE,#8AH上述兩段程序對IE的設置是相同的。28295.3.2 中斷優先級寄存器中斷優先
20、級寄存器IPAT89S51的中斷請求源有兩個中斷優先級兩個中斷優先級,由軟件分別設置為高高優先級中斷優先級中斷或低低優先級中斷優先級中斷,可實現:兩級中斷嵌套兩級中斷嵌套AT89S51正在執行低優先級中斷的服務程序時,可被高優先級中斷請求所中斷,待高優先級中斷處理完畢后,再返回低優先級中斷服務程序。兩級中斷嵌套兩級中斷嵌套的過程過程如圖圖5-6所示。293030圖5-6 兩級中斷嵌套的過程31各中斷源的中斷優先級關系,可歸納為兩條基本規則兩條基本規則:(1)低優先級可被高優先級中斷,但高優先級不能被)低優先級可被高優先級中斷,但高優先級不能被低優先級中斷。低優先級中斷。如果某一中斷源被設置為高
21、優先級中斷,則不能被任何其他的中斷源的中斷請求所中斷。(2)任何一種中斷中斷一旦得到響應,不會再被它的同級不會再被它的同級中斷源所中斷中斷源所中斷。中斷優先級寄存器IP,其字節地址為字節地址為B8H,可位尋址。只要用程序改變其內容,可進行各中斷源中斷優先級的設中斷優先級的設置置,IP寄存器的格式如圖5-7所示。3132 圖5-7 IP寄存器的格式中斷優先級寄存器IP各位的含義各位的含義如下:(1)PS串行口中斷優先級控制位 1:高優先級0:低優先級(2)PT1定時器T1中斷優先級控制位 1:高優先級0:低優先級3233(3)PX1外部中斷1中斷優先級控制位1:高優先級0:低優先級(4)PT0定
22、時器T0中斷優先級控制位1:高優先級0:低優先級(5)PX0外部中斷0中斷優先級控制位1:高優先級0:低優先級中斷優先級控制寄存器IP用位操作指令或字節操作指令可更新IP的內容,以改變中斷優先級。AT89S51復位復位以后,IP的內容為0,各個中斷源均為低均為低優先級優先級中斷。3334AT89S51的中斷系統有的中斷系統有兩個不可尋址的兩個不可尋址的“優先級激活優先級激活”觸發器。觸發器。一個指示某高優先級一個指示某高優先級的中斷正在執行,所有后來的中斷的中斷正在執行,所有后來的中斷均被阻止;均被阻止;另一個觸發器指示某低優先級另一個觸發器指示某低優先級的中斷正在執行,的中斷正在執行,所有同
23、級的中斷都被阻止,但不阻斷高優先級的中斷請求。所有同級的中斷都被阻止,但不阻斷高優先級的中斷請求。在同時收到在同時收到幾個同優先級的中斷請求幾個同優先級的中斷請求時,哪一個中斷請時,哪一個中斷請求能優先得到響應,求能優先得到響應,取決于內部的查詢順序。取決于內部的查詢順序。這相當于在這相當于在同一個優先級內,還同時存在另一個輔助優先級結構,其同一個優先級內,還同時存在另一個輔助優先級結構,其查詢順序見查詢順序見表表5-1。3435表表5-1 同級中斷的查詢次序同級中斷的查詢次序由此可見,各中斷源在同一個優先級的條件下,外部中外部中斷斷0的中斷優先權最高最高,串行口中斷串行口中斷優先權最低最低。
24、3536【例例5-25-2】 請對 IP寄存器進行初始化,AT89S51的兩兩個外中斷個外中斷請求為高優先級,其他中斷請求為低優先級。(1)用位操作指令)用位操作指令SETB PX0SETB PX0;外中斷;外中斷0 0設置為高優先級設置為高優先級SETB PX1SETB PX1;外中斷;外中斷1 1設置為高優先級設置為高優先級CLR PSCLR PS;串行口設置為低優先級;串行口設置為低優先級CLR PT0CLR PT0;定時器;定時器/ /計數器計數器T0T0為低優先級為低優先級CLR PT1CLR PT1;定時器;定時器/ /計數器計數器T1T1為低優先級為低優先級 (2)用字節操作指令
25、)用字節操作指令MOV IPMOV IP,#05H#05H36375.4 響應中斷請求的條件響應中斷請求的條件中斷請求被響應,必須滿足以下必要條件:必須滿足以下必要條件:(1)總中斷允許總中斷允許開關接通,即IE寄存器中的中斷總允許位EA=1。(2)該中斷源發出中斷請求發出中斷請求,即對應的中斷請求標志為對應的中斷請求標志為“1”。(3)該中斷源的中斷允許位為中斷允許位為“1”,即該中斷被允許。(4)無同級無同級或更高級中斷更高級中斷正在被服務。當CPU查詢到有效的中斷請求,在滿足上述條件時,立即進行中斷響應。3738中斷響應的過程:中斷響應的過程:首先由硬件自動生成一條長調用指令自動生成一條
26、長調用指令“LCALL addr16”, addr16就是程序存儲區中相應的中斷子程序入口地址相應的中斷子程序入口地址。例如,例如,對于外部中斷1的響應,硬件自動生成的長調用指令為:LCALL 0013H首先將程序計數器PC的內容的內容壓入堆棧壓入堆棧以保護斷點,再將中斷入口地址裝入中斷入口地址裝入PC,使程序轉向響應中斷請求的中斷入口地址。各中斷源服務程序的入口地址入口地址,如表5-2所示。3839 表表5-2 5-2 中斷入口地址表中斷入口地址表 兩個中斷入口間只相隔兩個中斷入口間只相隔8字節字節,難以安放一個完整的中斷服務程序。因此,通常在中斷入口地址處放置一條無條通常在中斷入口地址處放
27、置一條無條件轉移指令件轉移指令,使程序執行轉向中斷服務程序入口。3940中斷響應是有條件的,當遇到下列三種情況三種情況之一時,中斷響應被封鎖:(1)CPU正在處理同級或更高優先級正在處理同級或更高優先級的中斷。(2)所查詢的機器周期不是當前正在執行指令的最后不是當前正在執行指令的最后一個機器周期一個機器周期。只有在當前指令執行完畢后,才能進行中斷響應,以確保當前指令執行的完整性指令執行的完整性。(3)正在執行的指令是RETI或是訪問IE或IP的指令。因為按照AT89S51中斷系統的規定,在執行完這些指令后,需要再執行完一條指令,才能響應新的中斷請求。如果存在上述三種情況之一,CPU將丟棄中斷查
28、詢結果,不能對中斷進行響應。40415.5 外部中斷的響應時間外部中斷的響應時間 使用外部中斷外部中斷時,需考慮從外部中斷請求到轉向中斷入外部中斷請求到轉向中斷入口地址所需的時間口地址所需的時間。 外部中斷的最短最短響應時間為響應時間為3個機器周期個機器周期。其中中斷請求標志位查詢占標志位查詢占1個機器周期個機器周期,而這個機器周期恰好處于指令的最后一個機器周期。在這個機器周期結束后,中斷即被響應,CPU接著執行一條硬件子程序調用指令硬件子程序調用指令LCALL到相中斷服務程序入口,需要需要2個機器周期個機器周期。 外部中斷響應的最長最長時間為時間為8個機器周期個機器周期。在CPU進行中斷標志
29、查詢時,剛好才開始執行RETI或訪問IE或IP的指令,需執行完指令再繼續執行一條指令后,才響應中斷。4142執行RETI或訪問IE或IP的指令,最長需要2個機器周期個機器周期。接著再執行一條指令,最長指令(乘法指令MUL和除法指令DIV)來算,也只有4個個機器周期機器周期。再加上硬件子程序調用指令LCALL的執行,需要2個個機器周期機器周期,所以,外部中斷響應的最長時間為8個機器周期。如果已經在處理同級或更高級中斷處理同級或更高級中斷,外部中斷請求的響應時間取決于正在執行的中斷服務程序的處理時間,這種情況下,響應時間就無法計算了。這樣,在一個單一中斷單一中斷的系統里,AT89S51單片機對外部
30、中斷請求的響應時間總是在38個機器周期個機器周期之間。42435.6 外部中斷的觸發方式選擇外部中斷的觸發方式選擇兩種觸發方式:電平觸發方式和邊沿觸發方式。5.6.1 電平觸發方式電平觸發方式外部中斷申請觸發器的狀態隨著CPU在每個機器周期采樣到的外部中斷輸入引腳的電平變化而變化。在中斷服務程序返回之前中斷服務程序返回之前,外中斷請求輸入必須無效外中斷請求輸入必須無效(即外部中斷請求輸入已由低電平變為高電平),否則會再次響應中斷。所以本方式適合于適合于外部中斷以低電平輸入以低電平輸入且中斷服務程序能清除外部中斷請求源清除外部中斷請求源(即外中斷輸入電平又變為高電平)的情況。43445.6.2
31、邊沿觸發方式邊沿觸發方式外部中斷申請觸發器能鎖存外部中斷輸入線上的鎖存外部中斷輸入線上的負跳變負跳變。即使不能響應,中斷請求標志也不會丟失。連續兩次采樣,第一個機器周期為高,第二個機器周期為低,則中斷申請觸發器置1,直到CPU響應此中斷時,才清0。輸入的負脈沖至少要保持1個機器周期的寬度,才能被采樣到。5.7 中斷請求的撤銷中斷請求的撤銷某個中斷請求被響應后,就存在著一個中斷請求的撤銷問題。44451定時器定時器/計數器中斷請求的撤銷計數器中斷請求的撤銷硬件會自動把中斷請求標志位(TF0或TF1)清0,自動自動撤銷撤銷。2外部中斷請求的撤銷外部中斷請求的撤銷(1)邊沿方式外部中斷請求的撤銷)邊
32、沿方式外部中斷請求的撤銷包括兩項:中斷標志位清中斷標志位清0和外中斷信號的撤銷外中斷信號的撤銷。中斷標志位清中斷標志位清0是在中斷響應后由硬件自動完成的。外中斷請求信號的撤銷外中斷請求信號的撤銷,由于邊沿信號過后也就消失了,自動撤銷。4546(2)電平方式外部中斷請求的撤銷)電平方式外部中斷請求的撤銷電平方式外中斷請求的撤銷,其中中斷請求標志自動撤電平方式外中斷請求的撤銷,其中中斷請求標志自動撤銷,但中斷請求信號的低電平可能繼續存在,為此,除了銷,但中斷請求信號的低電平可能繼續存在,為此,除了標志位清標志位清“0”之外,還需在中斷響應后之外,還需在中斷響應后把中斷請求信號把中斷請求信號輸入引腳
33、從輸入引腳從低電平低電平強制改變為強制改變為高電平高電平,如,如圖圖5-8所示。所示。 46圖5-8 電平方式的外部中斷請求的撤銷電路47由圖5-8,用D觸發器鎖存觸發器鎖存外來的中斷請求外來的中斷請求低電平低電平,并通過D觸發器的輸出端Q接到 (或 )。所以,增加的D觸發器不影響中斷請求。中斷響應后,利用D觸發器的SD端接AT89S51的P1.0端。因此,只要P1.0端輸出一個負脈沖就可以使端輸出一個負脈沖就可以使D觸發器觸發器置置“1”,撤銷低電平的中斷請求信號。負脈沖負脈沖可在中斷服務程序中增加如下指令:ORL P1,#01H;P1.0為為“1”ANL P1,#0FEH;P1.0為為“0
34、”ORL P1,#01H;P1.0為為“1”47INT01INT483串行口中斷請求的撤銷串行口中斷請求的撤銷響應串行口的中斷后,CPU無法知道是接收中斷還是發送中斷,還需測試這兩個中斷標志位,以判定是接收操作判定是接收操作還是發送操作還是發送操作,然后才清除。所以串行口中斷請求的撤銷只能使用只能使用軟件軟件的方法的方法,在中斷服務程序中進行,即用如下指令在中斷服務程序中對串行口中斷標志位進行清除:CLR TI ;清;清TI標志位標志位CLR RI ;清;清RI標志位標志位5.8 中斷服務子程序的設計中斷服務子程序的設計中斷系統的運行必須與中斷服務子程序配合才能正確使用。設計中斷服務子程序需要
35、首先明確以下幾個問題。48491中斷服務子程序設計的任務中斷服務子程序設計的任務任務有下列4條:(1)設置中斷允許控制寄存器設置中斷允許控制寄存器IE,允許相應的中斷請求源中斷。(2)設置中斷優先級寄存器設置中斷優先級寄存器IP,確定所使用的中斷源的優先級。(3)若是外部中斷源若是外部中斷源,還要設置中斷請求的觸發方式觸發方式決定采用電平觸發方式還是邊沿觸發方式。(4)編寫中斷服務子程序編寫中斷服務子程序,處理中斷請求。4950前3條一般放在主程序的初始化程序段中。【例例5-35-3】 假設允許外部中斷外部中斷0中斷中斷,設定為高級高級中斷,采用邊沿觸發方式,其他中斷源為低級中斷。初始化程序如
36、下:SETB EA;EA 位置1,總中斷開關位開放SETB ET0;ET0位置1,允許外部中斷0產生中斷SETB PX0;PX0位置1,外部中斷0為高優先級中斷SETB IT0 ;IT0位置1,外部中斷0為邊沿觸發方式50512采用中斷時的主程序結構采用中斷時的主程序結構程序必須先從主程序起始地址主程序起始地址0000H執行。所以,在在0000H起始地址的幾個字節中,用無條件轉移指令起始地址的幾個字節中,用無條件轉移指令,跳向主程序。另外,各中斷入口地址之間依次相差8字節,中斷服務子程序稍長就超過8字節,這樣中斷服務子程序就占用了其他的中斷入口地址,影響其他中斷源的中斷處理。為此,一般在進入中
37、斷后,用一般在進入中斷后,用一條無條件轉移指令一條無條件轉移指令,把中斷服務,把中斷服務子程序子程序跳轉到跳轉到遠離其他中斷入口的入口地址處。遠離其他中斷入口的入口地址處。5152常用的主程序結構主程序結構如下: ORG0000H LJMP MAIN ORG X1X2X3X4H;X1X2X3X4H為某中斷源的中斷入口 LJMP INT;INT為某中斷源的中斷入口標號 ORG Y1Y2Y3Y4H;Y1Y2Y3Y4H為主程序入口MAIN:主程序INT: 中斷服務子程序注意:注意:如果有多個中斷源,就有多個“ORG X1X2X3X4H”的入口地址,多個“中斷入口地址”必須依次由小到大排列必須依次由小
38、到大排列。主程序MAIN的起始地址Y1Y2Y3Y4H,根據具體情況來安排。52533中斷服務子程序的流程中斷服務子程序的流程 中斷服務子程序的基本流程如圖5-9所示。下面對有關中斷服務子程序執行過程中的一些問題進行說明。 53圖5-9 中斷子服務程序的基本流程54(1)現場保護和現場恢復)現場保護和現場恢復現場是指單片機中某些寄存器和存儲器單元中的數據或狀態。為使中斷服務子程序的執行不破壞這些數據或狀態,因此要送入堆棧保存起來,這就是現場保護現場保護。 現場保護現場保護一定要位于中斷處理程序的位于中斷處理程序的前面前面。中斷處理結束后,在返回主程序前,則需要把保存的現場內容從堆棧中彈出恢復原有
39、內容,這就是現場恢復現場恢復。現場恢復現場恢復一定要位于中斷處理的中斷處理的后面后面。AT89S51的堆棧操作指令:“PUSH direct”和“POP direct”,是供現場保護和現場恢復使用的。要保護哪些內容,應根據具體情況來定。5455(2)關中斷和開中斷)關中斷和開中斷 現場保護前現場保護前和現場恢復前現場恢復前關中斷,是為防止此時有高一級的中斷進入,避免現場被破壞。在現場保護和現場恢復之后的開中斷在現場保護和現場恢復之后的開中斷是為下一次的中斷做好準備,也為了允許有更高級的中斷進入。這樣,中斷處理可以被打斷,但原來的現場保護和現場恢復不允許更改,除了現場保護和現場恢復的片刻外,仍然
40、保持著中斷嵌套的功能。但有時候,一個重要的中斷,必須執行完畢,不允許被但有時候,一個重要的中斷,必須執行完畢,不允許被其他的中斷嵌套。其他的中斷嵌套。可在現場保護前先關閉總中斷開關位,待中斷處理完畢后再開總中斷開關位。這樣,需把圖5-9中的“中斷處理”步驟前后的“開中斷”和“關中斷” 去掉。5556(3)中斷處理)中斷處理 應用設計者根據任務的具體要求,來編寫中斷處理部分的程序。(4)中斷返回)中斷返回中斷服務子程序最后一條指令必須是返回指令最后一條指令必須是返回指令RETI。CPU執行完這條指令后,把響應中斷時所置把響應中斷時所置1的不可尋址的不可尋址的優先級狀態觸發器清的優先級狀態觸發器清0,然后從堆棧中彈出棧頂上的兩個字節的斷點地址送到程序計數器PC,彈出的第一個字節送入PCH,彈出的第二個字節送入PCL,從斷點處重新執行主程序。5657【例例5-4】 根據圖5-9流程,編寫中斷服務程序。設現場保護只將PSW寄存器和累加器A的內容壓入堆棧中保護。一個典型的中斷服務子程序如下:INT:CLR EA;CPU關中斷PUSH PSW;現場保護PUSH AccSETB EA;總中斷允許中斷處理段中斷處理段 CLR EA;關中斷POP Acc;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深度剖析VFP的考試形式試題及答案
- 計算機二級C語言知識點試題及答案
- 計算機四級考試內容與準備試題及答案
- 計算機二級C語言應用技巧總匯試題及答案
- 軟件系統中的技術債務管理試題及答案
- 社會變遷與企業戰略風險試題及答案
- 高考語文評析能力試題及答案
- 測試人員的素質提升方法試題及答案
- 葬祖墳簽合同協議書
- 山東專用2025版高考物理一輪復習第八章第1節電路的基本概念及規律練習含解析新人教版
- (完整word版)餐券模板
- 《滑炒技法-滑炒雞絲菜肴制作》說課課件
- 減速機設備維修技術標準
- GB/T 26480-2011閥門的檢驗和試驗
- 中文版自殺可能量表
- 裝飾藝術運動課件
- 【審計工作底稿模板】FH應付利息
- 工貿企業安全管理臺賬資料
- 三方協議書(消防)
- 預激綜合征臨床心電圖的當前觀點
- 閥門檢修作業指導書講解
評論
0/150
提交評論