80C51單片微機(jī)的中斷系統(tǒng)原理及應(yīng)用_第1頁
80C51單片微機(jī)的中斷系統(tǒng)原理及應(yīng)用_第2頁
80C51單片微機(jī)的中斷系統(tǒng)原理及應(yīng)用_第3頁
80C51單片微機(jī)的中斷系統(tǒng)原理及應(yīng)用_第4頁
80C51單片微機(jī)的中斷系統(tǒng)原理及應(yīng)用_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第五章

80C51單片微機(jī)的

中斷系統(tǒng)原理及應(yīng)用5.1概述5.280C51的中斷系統(tǒng)5.3中斷控制

5.4中斷響應(yīng)過程和響應(yīng)時間第五章

80C51單片微機(jī)的

中斷系統(tǒng)原理及應(yīng)用

中斷概念的出現(xiàn),是計算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計中的重大變革。 現(xiàn)代計算機(jī)中操作系統(tǒng)實現(xiàn)的管理調(diào)度,其物質(zhì)基礎(chǔ)就是豐富的中斷功能和完善的中斷系統(tǒng)。一個CPU資源要面向多個任務(wù),出現(xiàn)資源競爭,而中斷技術(shù)實質(zhì)上是一種資源共享技術(shù)。中斷系統(tǒng)包括它的硬件和軟件編程。

5.1概述⒈中斷系統(tǒng)的幾個概念: ⑴中斷 程序執(zhí)行過程中,允許外部或內(nèi)部事件通過硬件打斷程序的執(zhí)行,使其轉(zhuǎn)向為處理外部或內(nèi)部事件的中斷服務(wù)程序中去;完成中斷服務(wù)程序后,CPU繼續(xù)原來被打斷的程序,這樣的過程稱為中斷響應(yīng)過程,如圖5-1所示。 ⑵中斷源 能產(chǎn)生中斷的外部和內(nèi)部事件。

圖5–1中斷響應(yīng)過程

⑶中斷優(yōu)先級 當(dāng)有幾個中斷源同時申請中斷時,或者CPU正在處理某中斷源服務(wù)程序時,又有另一中斷源申請中斷,那么CPU必須要確定優(yōu)先去處理誰的能力。

⑷中斷嵌套 優(yōu)先級高的事件可以中斷CPU正在處理的低級的中斷服務(wù)程序,待完成了高級中斷服務(wù)程序之后,再繼續(xù)被打斷的低級中斷服務(wù)程序。⒈實現(xiàn)CPU與外部設(shè)備的速度配合

通過中斷的方法來協(xié)調(diào)快速CPU與慢速外部設(shè)備之間的工作。⒉實現(xiàn)實時控制 依靠中斷技術(shù)能實現(xiàn)實時控制。 實時控制要求計算機(jī)能及時完成被控對象隨機(jī)提出的分析和計算任務(wù)。在自動控制系統(tǒng)中,要求各控制參量隨機(jī)地在任何時刻可向計算機(jī)發(fā)出請求,CPU必須作出快速響應(yīng)、及時處理。2、中斷的主要功能⒊實現(xiàn)故障的及時發(fā)現(xiàn)及處理

應(yīng)用中由于外界的干擾、硬件或軟件設(shè)計中存在問題等因素,在實際運(yùn)行中會出現(xiàn)硬件故障、運(yùn)算錯誤、程序運(yùn)行故障等,有了中斷技術(shù),單片微機(jī)就能及時發(fā)現(xiàn)故障并自動處理。

⒋實現(xiàn)人機(jī)聯(lián)系

如通過鍵盤向單片微機(jī)發(fā)出中斷請求,可以實時干預(yù)計算機(jī)的工作。

⑴當(dāng)單片微機(jī)內(nèi)部或外部有中斷申請時,CPU能及時響應(yīng)中斷,停下正在執(zhí)行的任務(wù),轉(zhuǎn)去處理中斷服務(wù)子程序,中斷服務(wù)處理后能回到原斷點(diǎn)處繼續(xù)處理原先的任務(wù); ⑵當(dāng)有多個中斷源同時申請中斷時,應(yīng)能先響應(yīng)優(yōu)先級高的中斷源,實現(xiàn)中斷優(yōu)先級的控制; ⑶當(dāng)?shù)蛢?yōu)先級中斷源正在享用中斷服務(wù)時,若這時優(yōu)先級比它高的中斷源也申請中斷,要求能停下低優(yōu)先級中斷源的服務(wù)程序轉(zhuǎn)去執(zhí)行更高優(yōu)先級中斷源的服務(wù)程序,實現(xiàn)中斷嵌套,并能逐級正確返回原斷點(diǎn)處。3、單片微機(jī)的中斷系統(tǒng)需要解決的問題5.280C51的中斷系統(tǒng)

中斷源5.2.1中斷矢量5.2.2重點(diǎn)

中斷源5.2.1

80C51有5個中斷源,80C52增加了一個中斷源——定時器/計數(shù)器T2。 每一個中斷源都能被程控為高優(yōu)先級或低優(yōu)先級?!?兩個外部中斷源INT0和INT1:外部設(shè)備的中斷請求信號、掉電等故障信號都可以從INT0或INT1引腳輸入。 三個內(nèi)部中斷源:T0和T1的定時/計數(shù)謚出中斷源和串行口發(fā)送或接收中斷源。

1.外部中斷

◆外部中斷是由外部信號引起的,共有兩個外部中斷,它們的中斷請求信號分別從引腳INT0和INT1上引入。 ◆外部中斷請求有兩種信號觸發(fā)方式.

可通過設(shè)置有關(guān)控制位進(jìn)行定義。 當(dāng)設(shè)定為電平有效方式時,若INT0或INT1引腳上采樣到有效的低電平,則向CPU提出中斷請求; 當(dāng)設(shè)定為跳變有效方式時,若INT0或INT1引腳上采樣到有效負(fù)跳變,則向CPU提出中斷請求。

⑴INT0:外部中斷0。

當(dāng)IT0=0時,低電平有效; 當(dāng)IT0=1時,下降沿有效。⑵INT1:外部中斷1。 當(dāng)IT1=0時,低電平有效; 當(dāng)IT1=1時,下降沿有效。

定時中斷

當(dāng)計數(shù)器發(fā)生計數(shù)溢出時,表明設(shè)定的定時時間到或計數(shù)值已滿,這時可以向CPU申請中斷。80C51有兩個源,即: ⑴TF0:T0溢出中斷。 ⑵TF1:T1溢出中斷。⒊串行中斷 每當(dāng)串行口發(fā)送或接收一幀串行數(shù)據(jù)時,就產(chǎn)生一個中斷請求。

RXD,TXD:串行中斷。圖5–280C51的中斷系統(tǒng)結(jié)構(gòu)示意圖

★在同一優(yōu)先級內(nèi)有一個由內(nèi)部查詢序列確定的笫二個優(yōu)先級結(jié)構(gòu)。其排列如下:

中斷源

中斷優(yōu)先級

⒈外部中斷0 最高 ⒉定時器T0中斷 ⒊外部中斷1 ⒋定時器T1中斷 ⒌串行口中斷 ⒍定時器T2中斷 最低(80C52)

◆矢量中斷:當(dāng)CPU響應(yīng)中斷時,由硬件直接產(chǎn)生一個固定的地址,即矢量地址,由矢量地址指出每個中斷源設(shè)備的中斷服務(wù)程序的入口。 ◆當(dāng)CPU識別出某個中斷源時,由硬件直接給出一個與該中斷源相對應(yīng)的矢量地址,從而轉(zhuǎn)入各自中斷服務(wù)程序。中斷矢量地址見表5-1。中斷矢量5.2.2中斷源

中斷矢量地址

外部中斷0(INT0)

0003H定時器/計數(shù)器0(T0)

000BH外部中斷1(INT1)

0013H定時器/計數(shù)器1(T1)

001BH串行口(RI、TI)

0023H定時器/計數(shù)器2002BH表5-1中斷矢量地址

INT0,INT1,T0及T1的中斷標(biāo)志存放在TCON寄存器中;串行口的中斷標(biāo)志存放在SCON寄存器中。

定時器/計數(shù)器控制寄存器TCON:

◆IT1:INT1的中斷申請觸發(fā)方式控制位 ◆IT0:INT0的中斷申請觸發(fā)方式控制位。

5.3中斷的控制

5.3.1中斷標(biāo)志⑴INT0:外部中斷0。

當(dāng)IT0=0時,低電平有效; 當(dāng)IT0=1時,下降沿有效。⑵INT1:外部中斷1。 當(dāng)IT1=0時,低電平有效; 當(dāng)IT1=1時,下降沿有效。

中斷允許和禁止由中斷允許寄存器IE控制。中斷允許寄存器IE:5.3.2中斷允許控制

◆IE寄存器中各位設(shè)置:為0時,禁止中斷;為1時,允許中斷?!粝到y(tǒng)復(fù)位后IE寄存器中各位均為0,禁止所有中斷。 在80C51中有高、低兩個中斷優(yōu)先級,通過IP來設(shè)定。 中斷優(yōu)先級寄存器IP:◆IP寄存器中各位設(shè)置:為0時,為低中斷優(yōu)先級;為1時,設(shè)為高中斷優(yōu)先級?!粝到y(tǒng)復(fù)位后IP寄存器中各位均為0,全部設(shè)定為低中斷優(yōu)先級。5.3.3中斷優(yōu)先級 在80C51中有高、低兩個中斷優(yōu)先級,通過IP來設(shè)定。 中斷優(yōu)先級寄存器IP:

◆IP寄存器中各位設(shè)置:為0時,為低中斷優(yōu)先級;為1時,設(shè)為高中斷優(yōu)先級。◆系統(tǒng)復(fù)位后IP寄存器中各位均為0,全部設(shè)定為低中斷優(yōu)先級。5.3.3中斷優(yōu)先級

中斷優(yōu)先級控制,還有兩個不可尋址的優(yōu)先級狀態(tài)觸發(fā)器,一個用于指示某一高優(yōu)先級中斷正在進(jìn)行服務(wù),而屏蔽其它高優(yōu)先級中斷;另一個用于指示某一低優(yōu)先級中斷正在進(jìn)行服務(wù),從而屏蔽其它低優(yōu)先級中斷,但不能屏蔽高優(yōu)先級中斷。

◆在中斷執(zhí)行過程中,高中斷優(yōu)先級可以中斷低中斷優(yōu)先級的中斷過程。但是若在中斷服務(wù)程序中,關(guān)掉所有中斷(CLREA)或關(guān)掉部分中斷時除外。 ◆當(dāng)CPU同時接收到兩個不同優(yōu)先級的中斷請求時,先響應(yīng)高優(yōu)先級的中斷,如果CPU同時接收到的是幾個同一優(yōu)先級的中斷請求時,則由內(nèi)部的硬件查詢序列確定它們的優(yōu)先服務(wù)次序,

★在同一優(yōu)先級內(nèi)有一個由內(nèi)部查詢序列確定的笫二個優(yōu)先級結(jié)構(gòu)。其排列如下:

中斷源

中斷優(yōu)先級

⒈外部中斷0 最高 ⒉定時器T0中斷 ⒊外部中斷1 ⒋定時器T1中斷 ⒌串行口中斷 ⒍定時器T2中斷 最低(80C52)

INT0,INT1的中斷觸發(fā)方式有兩種:◆電平觸發(fā)方式,低電平有效?!籼冇|發(fā)方式,電平發(fā)生由高到低的跳變時觸發(fā)?!馡T1、IT0=0,選擇電平觸發(fā)方式;●IT1、IT0=l,選擇跳變觸發(fā)方式,即當(dāng)INT0,INT1引腳檢測到前一個機(jī)器周期為高電平、后一個機(jī)器周期為低電平時,則置位IE0、IE1且向CPU申請中斷。

5.3.4外部中斷觸發(fā)方式

1.

由單片微機(jī)內(nèi)部硬件自動復(fù)位。

對于T0、T1的溢出中斷和采用跳變觸發(fā)方式的外部中斷請求,在CPU響應(yīng)中斷后,由內(nèi)部硬件自動清除中斷標(biāo)志TF0和TF1、IE0和IE1,而自動撤除中斷請求。5.3.5中斷請求的撤除

2.應(yīng)用軟件清除相應(yīng)標(biāo)志。 對于串行接收/發(fā)送中斷請求和80C52中的T2的溢出和捕獲中斷請求,在CPU響應(yīng)中斷后,必須在中斷服務(wù)程序中應(yīng)用軟件清除RI、TI、TF2和EXF2這些中斷標(biāo)志,才能撤除中斷。

對于采用電平觸發(fā)方式的外部中斷請求,中斷標(biāo)志的撤消是自動的,但中斷請求信號的低電平可能繼續(xù)存在,在以后機(jī)器周期采樣時又會把已清“0”的IE0、IE1標(biāo)志重新置“1”,再次申請中斷。

3.采用外加

硬件結(jié)合軟件清除中斷請求

從中斷請求發(fā)生直到被響應(yīng)去執(zhí)行中斷服務(wù)程序,中斷響應(yīng)過程的時序如圖5-4所示。

⒈中斷采樣 針對外部中斷請求信號進(jìn)行的,而內(nèi)部中斷請求都發(fā)生在芯片內(nèi)部,可以直接置位TCON或SCON中的中斷請求標(biāo)志。在每個機(jī)器周期的S5P2期間,各中斷標(biāo)志采樣相應(yīng)的中斷源,并置入相應(yīng)標(biāo)志。5.4中斷響應(yīng)過程和響應(yīng)時間

5.4.1中斷的響應(yīng)過程

圖5–4中斷響應(yīng)過程的時序

⒉中斷查詢

若查詢到某中斷標(biāo)志為1,則按優(yōu)先級的高低進(jìn)行處理,即響應(yīng)中斷。

80C51的中斷請求都匯集在TCON和SCON中。而CPU則在下一機(jī)器周期的S6期間按優(yōu)先級的順序查詢各中斷標(biāo)志。先查詢高級中斷,再查詢低級中斷。同級中斷按內(nèi)部中斷優(yōu)先級序列查詢。如果查詢到有中斷標(biāo)志位為“1”,則表明有中斷請求發(fā)生,接著從相鄰的下一個機(jī)器周期的S1狀態(tài)開始進(jìn)行中斷響應(yīng)。 ⒊中斷響應(yīng)

硬件自動生成長調(diào)用指令為LCALLaddr16,而addr16就是各中斷源的中斷矢量地址(參見表5-1)?!粝葘⒊绦蛴嫈?shù)器PC的內(nèi)容壓入堆棧進(jìn)行保護(hù),先低位地址,后高位地址,同時堆棧指針SP加2?!魧?yīng)中斷源的中斷矢量地址裝入PC,去執(zhí)行中斷服務(wù)程序。◆中斷服務(wù)程序由中斷矢量地址開始執(zhí)行,直至遇到RETI為止。執(zhí)行RETI,一是撤銷中斷申請,彈出斷點(diǎn)地址進(jìn)入PC,先彈出高位地址,后彈出低位地址,同時堆棧指針SP減2,恢復(fù)原程序的斷點(diǎn)地址執(zhí)行;二是恢復(fù)中斷觸發(fā)器原先狀態(tài)。中斷源

中斷矢量地址

外部中斷0(INT0)

0003H定時器/計數(shù)器0(T0)

000BH外部中斷1(INT1)

0013H定時器/計數(shù)器1(T1)

001BH串行口(RI、TI)

0023H定時器/計數(shù)器2002BH表5-1中斷矢量地址

中斷響應(yīng)是有條件的,在接受中斷申請時,如遇下列情況之一時,硬件生成的長調(diào)用指令“LCALL”將被封鎖:⑴CPU正在執(zhí)行同級或高一級的中斷服務(wù)程序中。因為當(dāng)一個中斷被響應(yīng)時,其對應(yīng)的中斷優(yōu)先級觸發(fā)器被置“1”,封鎖了同級和低級中斷;⑵查詢中斷請求的機(jī)器周期不是執(zhí)行當(dāng)前指令的最后一個周期。⑶當(dāng)前正在執(zhí)行RETI指令或執(zhí)行對IE、IP的讀/寫操作指令。80C51中斷系統(tǒng)的特性規(guī)定,在執(zhí)行完這些指令之后,必須再繼續(xù)執(zhí)行一條指令,然后才能響應(yīng)中斷。

中斷的執(zhí)行過程與調(diào)用子程序相似點(diǎn): ⑴都是中斷當(dāng)前正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行子程序或中斷服務(wù)程序。 ⑵都是由硬件自動地把斷點(diǎn)地址壓入堆棧,然后通過軟件完成現(xiàn)場保護(hù)。 ⑶執(zhí)行完子程序或中斷服務(wù)程序后,都要通過軟件完成現(xiàn)場恢復(fù),并通過執(zhí)行返回指令,重新返回到斷點(diǎn)處,繼續(xù)往下執(zhí)行程序。 ⑷二者都可以實現(xiàn)嵌套,如中斷嵌套和子程序嵌套。

中斷的執(zhí)行與調(diào)用子程序差別 ⑴中斷請求信號可以由外部設(shè)備發(fā)出,是隨機(jī)的,比如故障產(chǎn)生的中斷請求;子程序調(diào)用卻是由軟件編排好的。 ⑵中斷響應(yīng)后由固定的矢量地址轉(zhuǎn)入中斷服務(wù)程序,而子程序地址由軟件設(shè)定。 ⑶中斷響應(yīng)是受控的,其響應(yīng)時間會受一些因素影響;子程序響應(yīng)時間是固定的。

一般來說,在單級中斷系統(tǒng)中,中斷的響應(yīng)時間最短為3個機(jī)器周期,最長為8個機(jī)器周期。 當(dāng)中斷請求標(biāo)志位查詢占1個機(jī)器周期,而這個機(jī)器周期又恰好是指令的最后一個機(jī)器周期,在這個機(jī)器周期結(jié)束后,CPU即響應(yīng)中斷,產(chǎn)生硬件長調(diào)用LCALL指令,執(zhí)行這條長調(diào)用指令需要2個機(jī)器周期,中斷響應(yīng)時間為3個機(jī)器周期。5.4.2中斷響應(yīng)時間

中斷響應(yīng)時間最長為8個機(jī)器周期。如果CPU正在執(zhí)行的是RETI指令或訪問IP、IE指令,則等待時間不會多于2個機(jī)器周期,而中斷系統(tǒng)規(guī)定把這幾條指令執(zhí)行完必須再繼續(xù)執(zhí)行一條指令后才能響應(yīng)中斷,如這條指令恰好是4個機(jī)器周期長的指令(比如乘法指令MUL或除法指令DIV),再加上執(zhí)行長調(diào)用指令LCALL所需2個機(jī)器周期。 如果中斷請求被前面所列三個條件之一所阻止,所需的響應(yīng)時間就更長些。如果正在處理同級或優(yōu)先級更高的中斷,那么中斷響應(yīng)的時間還需取決于處理中的中斷服務(wù)程序的執(zhí)行時間。

在80C51系列單片微機(jī)中,一般只有兩個外部中斷請求輸入端INT0、INT1。當(dāng)某個系統(tǒng)需要多個外部中斷源時,可以通過增加“OC門”結(jié)合軟件來擴(kuò)展;當(dāng)定時器/計數(shù)器在系統(tǒng)中有空余時,可以通過對計數(shù)器計數(shù)長度的巧妙設(shè)置,使定時器/計數(shù)器的外部輸入腳(T0或T1)成為外部中斷請求輸入端。5.5外部中斷源的擴(kuò)展

80C51共有5個中斷源,由4個特殊功能寄存器TCON、SCON、IE和IP進(jìn)行管理和控制。

在80C51中,需要用軟件對以下5個內(nèi)容進(jìn)行設(shè)置:⑴中斷服務(wù)程序入口地址的設(shè)定。⑵某一中斷源中斷請求的允許與禁止。⑶對于外部中斷請求,還需進(jìn)行觸發(fā)方式的設(shè)定。⑷各中斷源優(yōu)先級別的設(shè)定。⑸CPU開中斷與關(guān)中斷。

中斷服務(wù)程序的設(shè)計

例.試編寫設(shè)置外部中斷INT0和串行接口中斷為高優(yōu)先級,外部中斷INT1為低優(yōu)先級。屏蔽T0和T1中斷請求的初始化程序段。 將中斷請求優(yōu)先級寄存器IP的第0、4位置“l(fā)”,其余位置“0”。 將中斷請求允許寄存器的第0、2、4、7位置“l(fā)”,其余位置“0”。

中斷程序一般包含中斷控制程序和中斷服務(wù)程序兩部分。中斷控制程序即中斷初始化程序,一般包含在主程序中。中斷允許和禁止由中斷允許寄存器IE控制。中斷允許寄存器IE:◆IE寄存器中各位設(shè)置:為0時,禁止中斷;為1時,允許中斷?!粝到y(tǒng)復(fù)位后IE寄存器中各位均為0,禁止所有中斷。 在80C51中有高、低兩個中斷優(yōu)先級,通過IP來設(shè)定。 中斷優(yōu)先級寄存器IP:◆IP寄存器中各位設(shè)置:為0時,為低中斷優(yōu)先級;為1時,設(shè)為高中斷優(yōu)先級?!粝到y(tǒng)復(fù)位后IP寄存器中各位均為0,全部設(shè)定為低中斷優(yōu)先級。編程如下: ORG 0000H SJMP MAIN ORG 0003H

LJMP INT0INT

;設(shè)外部中斷INT0中斷矢量

ORG 0013H

LJMP INT1INT

;設(shè)外部中斷INT1中斷矢量

ORG 0023H LJMP SIOINT ;設(shè)串行口中斷矢量

ORG 0100HMAIN:… MOVIP,#00010001B;設(shè)外部中斷INT0和串行 ;口中斷為高優(yōu)先級

MOVIE,#10010101B;允許INT0、INT1、串行 ;口中斷,開CPU中斷

中斷響應(yīng)很突出的一點(diǎn)是它的隨機(jī)性。中斷服務(wù)程序編寫中的問題:

⑴保護(hù)斷點(diǎn)和現(xiàn)場、恢復(fù)斷點(diǎn)和現(xiàn)場 中斷服務(wù)程序在調(diào)用和返回時,也有一個保護(hù)斷點(diǎn)和現(xiàn)場、恢復(fù)斷點(diǎn)和現(xiàn)場的問題。在中斷響應(yīng)過程中,斷點(diǎn)的保護(hù)主要由硬件電路自動實現(xiàn)。它將斷點(diǎn)壓入堆棧,再將中斷服務(wù)程序的入口地址送入程序計數(shù)器PC,使程序轉(zhuǎn)向中斷服務(wù)程序,即為中斷源的請求服務(wù)。

現(xiàn)場:在80C51中,發(fā)生中斷時存儲單元、累加器A、工作寄存器R0~R7以及程序狀態(tài)字PSW等。①通過堆棧操作指令PUSHdirect;②通過工作寄存器區(qū)的切換;③通過單片微機(jī)內(nèi)部存儲器單元暫存?,F(xiàn)場保護(hù)一定要位于中斷服務(wù)程序的前面。 在結(jié)束中斷服務(wù)程序返回斷點(diǎn)處之前要恢復(fù)現(xiàn)場,與保護(hù)現(xiàn)場的方法相對應(yīng)。中斷服務(wù)程序的最后一條指令必須是RETI指令。

⑵對中斷的控制

80C51具有多級中斷功能,為了不至于在保護(hù)現(xiàn)場或恢復(fù)現(xiàn)場時,由于CPU響應(yīng)其它中斷請求,而使現(xiàn)場破壞。在保護(hù)和恢復(fù)現(xiàn)場時,CPU不響應(yīng)外界的中斷請求,即關(guān)中斷。在編寫程序時,應(yīng)在保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場之前,關(guān)閉CPU中斷;在保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場之后,再根據(jù)需要使CPU開中斷。 對于重要中斷,不允許被其它中斷所嵌套。除了設(shè)置中斷優(yōu)先級外,還可以采用關(guān)中斷的方法,待中斷處理完之后再打開中斷系統(tǒng)。

例:編程要求:無按鈕按下時8個LED輪流亮燈,按鈕K1按下時8個LED同時閃爍8次。參考程序:ORG0000HAJMPMAINORG0003HAJMPPINT0ORG0100HMAIN:MOVSP,#60HSETBIT0MOVIP,#00000000BMOVIE,#10000001B;MOVP1,ALCALLYANSHIRLAAJMPHERE;MOVA,#0FEH;HERE:完成8個LED輪流亮燈注意硬件接線,8個LED輪流亮燈

中斷服務(wù)程序PINT0:PUSHACC;保護(hù)現(xiàn)場MOVR2,#08HLOOP:MOVA,#00HMOVP1,A;8個LED亮燈

ACALLYANSHIMOVA,#0FFHMOVP1,A;8個LED滅燈ACALLYANSHIDJNZR2,LOOPPOPACC;恢復(fù)現(xiàn)場RETIORG300hYANSHI:MOVR5,#200DEL2:MOVR4,#123DJNZR4,$NopDJNZR5,DEL2RET參看指令表查周期數(shù)寫出下面程序的指令地址、機(jī)器碼,并分析其在系統(tǒng)晶振為12M下,延遲時間是多少?ORG300h周期數(shù)

Del1:MOVR5,#2001DEL2:MOVR4,#1231DJNZR4,$2Nop1DJNZR5,DEL22RET1[1+(1+2*123++1+2)×200+1]*10-6=50.002ms注意:SP的重新定義復(fù)位后,SP的內(nèi)容為07H堆棧的深度不能夠超出片內(nèi)RAM空間

例:編程要求:無K1按下時8個LED輪流亮燈,K1按下時8個LED同時閃爍8次,K2按下時上下4個LED交替閃爍8次。INT1的優(yōu)先級高。中斷源

中斷矢量地址

外部中斷0(INT0)

0003H定時器/計數(shù)器0(T0)

000BH外部中斷1(INT1)

0013H定時器/計數(shù)器1(T1)

001BH串行口(RI、TI)

0023H定時器/計數(shù)器2002BH表5-1中斷矢量地址

程序設(shè)計需增加1個中斷源參考程序:ORG0000HAJMPMAINORG0003HAJMPPINT0ORG0013HAJMPPINT1ORG0100HMAIN:MOVSP,#60HSET

溫馨提示

  • 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

提交評論