《凌陽(yáng)十六位單片機(jī)原理及應(yīng)用》課件第5章_第1頁(yè)
《凌陽(yáng)十六位單片機(jī)原理及應(yīng)用》課件第5章_第2頁(yè)
《凌陽(yáng)十六位單片機(jī)原理及應(yīng)用》課件第5章_第3頁(yè)
《凌陽(yáng)十六位單片機(jī)原理及應(yīng)用》課件第5章_第4頁(yè)
《凌陽(yáng)十六位單片機(jī)原理及應(yīng)用》課件第5章_第5頁(yè)
已閱讀5頁(yè),還剩92頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章中斷系統(tǒng)5.1概述5.2SPCE061A中斷系統(tǒng)5.3中斷系統(tǒng)應(yīng)用本章小結(jié)

5.1概述

5.1.1中斷概念

在計(jì)算機(jī)系統(tǒng)中,引入中斷的最初目的是為了提高CPU的利用率以及數(shù)據(jù)的輸入/輸出效率,隨著計(jì)算機(jī)應(yīng)用的發(fā)展,中斷技術(shù)也能對(duì)計(jì)算機(jī)運(yùn)行過(guò)程中突然發(fā)生的故障做到及時(shí)發(fā)現(xiàn)并進(jìn)行自動(dòng)處理,如硬件故障、運(yùn)算錯(cuò)誤及程序故障等。5.1.2中斷的處理過(guò)程

1.CPU響應(yīng)中斷的條件

1)設(shè)置中斷請(qǐng)求觸發(fā)器

中斷請(qǐng)求是中斷源(按中斷方式與CPU之間進(jìn)行信息交換的事件)向CPU發(fā)出信號(hào),請(qǐng)求CPU為它服務(wù)。

2)設(shè)置中斷屏蔽觸發(fā)器

在有多個(gè)中斷源的情況下,常要求在每一個(gè)外設(shè)的接口電路中都設(shè)置一個(gè)中斷屏蔽觸發(fā)器,只有當(dāng)此觸發(fā)器為“1”時(shí),外設(shè)的中斷請(qǐng)求才能被送到CPU。

3)設(shè)置中斷允許觸發(fā)器的狀態(tài)

在CPU內(nèi)部有一個(gè)中斷允許觸發(fā)器,只有當(dāng)其為“1”(開(kāi)中斷)時(shí),CPU才能響應(yīng)中斷;如果它為“0”(關(guān)中斷)時(shí),即使中斷請(qǐng)求線上有中斷請(qǐng)求,CPU也不響應(yīng)。可以用開(kāi)中斷和關(guān)中斷指令來(lái)設(shè)置中斷允許觸發(fā)器的狀態(tài)。當(dāng)CPU復(fù)位時(shí),中斷允許觸發(fā)器復(fù)位為“0”,即關(guān)中斷;當(dāng)中斷響應(yīng)后,CPU自動(dòng)關(guān)閉中斷,以拒絕接受另一個(gè)新的中斷。

4)?CPU在結(jié)束現(xiàn)行指令后響應(yīng)中斷

在滿足以上3個(gè)條件的情況下,CPU總是在執(zhí)行到每條指令的最后一個(gè)總線周期的最后一個(gè)時(shí)鐘周期時(shí),才檢測(cè)中斷輸入線,如果CPU允許某個(gè)中斷源的中斷請(qǐng)求,那么在結(jié)束該指令后進(jìn)入中斷響應(yīng)總線周期,相應(yīng)的中斷允許位為真(允許中斷),相應(yīng)的總中斷允許位為真(允許中斷),則響應(yīng)中斷。

2.中斷響應(yīng)過(guò)程

1)保護(hù)斷點(diǎn)

2)關(guān)中斷

3)識(shí)別中斷源

3.中斷服務(wù)過(guò)程

中斷服務(wù)過(guò)程就是執(zhí)行中斷服務(wù)程序的過(guò)程。

1)保護(hù)現(xiàn)場(chǎng)

2)中斷服務(wù)

3)恢復(fù)現(xiàn)場(chǎng)

4)中斷返回圖5.1中斷處理過(guò)程流程圖5.1.3中斷優(yōu)先級(jí)

一個(gè)計(jì)算機(jī)處理系統(tǒng)一般是有多個(gè)中斷源的,但CPU的引腳往往只有一條中斷線INTR,則需要對(duì)不同的中斷源安排相應(yīng)的中斷優(yōu)先級(jí),對(duì)緊急事件要安排具有較高的中斷優(yōu)先級(jí)。5.1.4中斷屏蔽

當(dāng)中斷源申請(qǐng)中斷時(shí),CPU可以由軟件設(shè)置而使之不能響應(yīng),這稱為中斷屏蔽。根據(jù)微處理器內(nèi)部處理中斷請(qǐng)求的情況,中斷可分為屏蔽中斷和不可屏蔽中斷。

對(duì)于各種計(jì)算機(jī)系統(tǒng),中斷的構(gòu)成差別很大,但都具有三種功能:

(1)能實(shí)現(xiàn)中斷響應(yīng)、中斷服務(wù)、中斷返回、中斷屏蔽;

(2)能實(shí)現(xiàn)中斷優(yōu)先級(jí)排隊(duì);

(3)能實(shí)現(xiàn)中斷嵌套。5.1.5中斷應(yīng)用注意事項(xiàng)

1)中斷的嵌套

2)外部中斷信號(hào)的時(shí)間

3)保護(hù)現(xiàn)場(chǎng)和堆棧

4)中斷響應(yīng)時(shí)間的確定

5.2SPCE061A中斷系統(tǒng)

SPCE061A系列單片機(jī)中斷系統(tǒng)是凌陽(yáng)16位單片機(jī)中中斷功能較強(qiáng)的一種,它可以提供14個(gè)中斷源,具有兩個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)兩級(jí)中斷嵌套功能。

5.2.1中斷類型

1.軟件中斷

2.異常中斷

3.事件中斷

5.2.2中斷源

SPCE061A單片機(jī)的中斷系統(tǒng)有14個(gè)中斷源,分為2個(gè)定時(shí)器溢出中斷、2個(gè)外部中斷、1個(gè)串行口中斷、1個(gè)觸鍵喚醒中斷、7個(gè)時(shí)基信號(hào)中斷、1個(gè)PWM音頻輸出中斷,如表5.1所示。

1.定時(shí)器溢出中斷源

定時(shí)器溢出中斷由SPCE061A內(nèi)部定時(shí)器中斷源產(chǎn)生,故它們屬于內(nèi)部中斷(即軟件中斷由軟件指令BREAK產(chǎn)生)。

2.外部中斷源

SPCE061A單片機(jī)有2個(gè)外部中斷,分別為外部時(shí)鐘源輸入信號(hào)EXT1和EXT2。兩個(gè)外部輸入腳分別為B口的IOB2和IOB3的復(fù)用腳。EXT1(IOB2)和EXT2(IOB3)兩條外部中斷請(qǐng)求輸入線,用于輸入兩個(gè)外部中斷源的中斷請(qǐng)求信號(hào),并允許外部中斷以下降沿觸發(fā)的方式來(lái)輸入中斷請(qǐng)求信號(hào),如圖5.2所示。圖5.2外部中斷結(jié)構(gòu)圖5.3IOB2與IOB4或IOB3與IOB5組成的反饋結(jié)構(gòu)示意圖

3.串行口中斷源

串行口中斷由SPCE061A內(nèi)部串行口中斷源產(chǎn)生,故也是一種內(nèi)部中斷。串行口中斷分為串行口發(fā)送中斷和串行口接收中斷兩種。圖5.4UART接收數(shù)據(jù)的方式

4.觸鍵喚醒中斷源

當(dāng)系統(tǒng)給出睡眠命令時(shí),CPU便關(guān)閉PLL倍頻電路,停止CPU時(shí)鐘工作而使系統(tǒng)進(jìn)入睡眠狀態(tài)。在睡眠過(guò)程中,通過(guò)IOA口低8位接的鍵盤(pán)就可以給出喚醒信號(hào)使系統(tǒng)接通PLL倍頻電路,啟動(dòng)CPU時(shí)鐘工作,將系統(tǒng)從睡眠狀態(tài)轉(zhuǎn)到工作狀態(tài),同時(shí)產(chǎn)生一個(gè)IRQ3中斷請(qǐng)求。

5.時(shí)基信號(hào)中斷源

CPU的時(shí)基信號(hào)發(fā)生器是最基本的定時(shí)脈沖信號(hào),它可以為單片機(jī)提供各種不同的頻率信號(hào),也即為中斷系統(tǒng)提供各種實(shí)時(shí)中斷源(IRQ4和IRQ5)信號(hào)。5.2.3中斷向量及優(yōu)先級(jí)

中斷向量是指向中斷服務(wù)子程序入口地址的指針。在SPCE061A單片機(jī)中,快速中斷的優(yōu)先級(jí)高于一般中斷的優(yōu)先級(jí);在IRQ中斷中,IRQ0的中斷優(yōu)先級(jí)高于IRQ1,IRQ1的中斷優(yōu)先級(jí)高于IRQ2,依次類推,按照IRQ的序號(hào),序號(hào)越高則中斷優(yōu)先級(jí)越低;然后是UARTIRQ,BREAK軟中斷的中斷優(yōu)先級(jí)最低。5.2.4中斷控制

1.中斷控制寄存器

1)中斷控制單元P_INT_Ctrl

P_INT_Ctrl控制單元具有可讀和可寫(xiě)的屬性,存儲(chǔ)地址為7010H,其各位的寫(xiě)入與讀出的意義是不同的。

其各位定義如表5.3所示。

2)清除中斷標(biāo)志控制單元P_INT_Clear

_INT_Clear只具有可寫(xiě)的屬性,讀該寄存器是無(wú)任何意義的,存儲(chǔ)地址為7011H。清除中斷標(biāo)志控制單元主要用于清除中斷控制標(biāo)志位,當(dāng)CPU響應(yīng)中斷后,會(huì)將中斷標(biāo)志置位為“1”,當(dāng)進(jìn)入中斷服務(wù)程序后,要將其控制標(biāo)志清零。

3)激活和屏蔽中斷控制單元P_INT_New

P_INT_New控制單元具有讀和寫(xiě)的屬性,存儲(chǔ)地址為702DH。該控制單元用于激活和屏蔽中斷。

2.中斷控制配置端口

表5.6表示各中斷控制寄存器不同配置時(shí)所實(shí)現(xiàn)的功能。

3.中斷控制指令

SPCE061A單片機(jī)允許中斷時(shí),要對(duì)控制寄存器的每位進(jìn)行設(shè)置,與此同時(shí)還需要通過(guò)指令控制實(shí)現(xiàn)開(kāi)啟和清除,這樣才能保證中斷的正常進(jìn)行。這些控制的實(shí)現(xiàn)是使用了專門的中斷控制指令,如表5.7所示。

1)?FIQON

功能:該指令用來(lái)允許FIQ中斷。其控制指令不能代替P_INT_Ctrl,也就是說(shuō),即使在程序中寫(xiě)了該代碼,但是沒(méi)有在P_INT_Ctrl寄存器中FIQ處置位“1”,CPU也無(wú)法響應(yīng)該中斷。FIQON與FIQOFF是配對(duì)出現(xiàn)的。

2)?FIQOFF

功能:這個(gè)指令用來(lái)禁止FIQ中斷。該指令可以禁止P_INT_Ctrl控制寄存器打開(kāi)的FIQ中斷。

3)?IRQON

功能:這個(gè)指令用來(lái)開(kāi)放IRQ中斷,該控制指令不能代替P_INT_Ctrl,與FIQON功能相同,必須通過(guò)P_INT_Ctrl控制寄存器來(lái)開(kāi)通中斷。其與IRQOFF是對(duì)應(yīng)使用的。

4)?IRQOFF

功能:這個(gè)指令是用來(lái)屏蔽IRQ中斷。與FIQOFF功能相同,可以屏蔽P_INT_Ctrl控制寄存器開(kāi)放的中斷,并通過(guò)IRQON來(lái)打開(kāi)。

5)?INT

功能:這個(gè)指令用來(lái)設(shè)置允許/禁止FIQ和IRQ中斷。該控制指令與前面的指令相同,只有先通過(guò)P_INT_Ctrl寄存器才能打開(kāi)中斷通道。

INT控制指令還可以細(xì)分為:

6)?RETI

功能:該指令起中斷返回的作用。RETI指令在恢復(fù)斷點(diǎn)地址的同時(shí)還能恢復(fù)中斷響應(yīng)時(shí)由CPU自動(dòng)保存的寄存器內(nèi)容。5.2.5中斷響應(yīng)

1.中斷查詢

SPCE061A的設(shè)計(jì)思想是把所有的中斷請(qǐng)求都匯集到P_INT_Ctrl和P_UART_Command2寄存器中,P_UART_

Command2主要用于檢測(cè)串行傳輸中斷標(biāo)志位。其外部中斷是使用采樣的方法,將中斷請(qǐng)求鎖定在P_INT_Ctrl控制寄存器的相應(yīng)標(biāo)志位中。而音頻輸出中斷、觸鍵喚醒、定時(shí)中斷、時(shí)基中斷、串行異步中斷的中斷請(qǐng)求都是發(fā)生在芯片的內(nèi)部,因此可以直接對(duì)P_INT_Ctrl和P_UART_

Command2寄存器中各自的中斷請(qǐng)求標(biāo)志進(jìn)行置位,不存在采樣的問(wèn)題。

2.中斷響應(yīng)

中斷源總是通過(guò)專用的接口電路向CPU提出實(shí)時(shí)信息交換要求的,當(dāng)CPU允許某個(gè)中斷源的中斷請(qǐng)求時(shí),將在結(jié)束現(xiàn)行指令后進(jìn)入中斷響應(yīng)總線周期,把它稱之為中斷響應(yīng)。中斷響應(yīng)是在中斷查詢后進(jìn)行的,當(dāng)查詢到有效的中斷請(qǐng)求時(shí),緊接著就進(jìn)行中斷響應(yīng)。中斷響應(yīng)的主要內(nèi)容可以理解為是硬件自動(dòng)生成一條調(diào)用指令,其格式為:

CALLaddr16

這里的addr16是存儲(chǔ)器中斷區(qū)中相應(yīng)中斷入口地址,在SPCE061A單片機(jī)中,這些入口地址已經(jīng)由系統(tǒng)設(shè)定。例如:對(duì)于時(shí)基信號(hào)2048?Hz中斷的響應(yīng),產(chǎn)生的調(diào)用指

令為:

CALLFFFCH

3.中斷響應(yīng)時(shí)間

中斷響應(yīng)的時(shí)間應(yīng)從中斷信號(hào)出現(xiàn)到CPU響應(yīng)的時(shí)間與CPU響應(yīng)中斷信號(hào)到進(jìn)入中斷服務(wù)程序的時(shí)間之和。

4.中斷請(qǐng)求的撤銷

中斷響應(yīng)后,P_INT_Ctrl和P_UART_Command2寄存器中的中斷請(qǐng)求標(biāo)志應(yīng)及時(shí)清除,把該中斷請(qǐng)求信號(hào)撤銷,否則中斷請(qǐng)求仍然存在,就會(huì)造成中斷的重復(fù)查詢和響應(yīng)。

5.3中斷系統(tǒng)應(yīng)用

5.3.1單中斷源應(yīng)用

1.定時(shí)器中斷

定時(shí)器中斷包括定時(shí)器A中斷和定時(shí)器B中斷,定時(shí)器A、B中斷源在快速中斷請(qǐng)求(FIQ)中有,在一般中斷請(qǐng)求IRQ1(TimerA)和IRQ2(TimerB)中也有??筛鶕?jù)具體程序設(shè)計(jì)的需要而選擇,若需要定時(shí)器的中斷優(yōu)先級(jí)高,可以打開(kāi)FIQ方式的定時(shí)器中斷;若定時(shí)器對(duì)中斷優(yōu)先級(jí)要求不是較高,則可以將定時(shí)器中斷放在IRQ中斷方式中。定時(shí)器中斷所使用的寄存器的屬性和功能如表5.8所示。

2.時(shí)基中斷

SPCE061A單片機(jī)具有時(shí)基中斷,減少了軟硬件關(guān)于實(shí)時(shí)時(shí)鐘信號(hào)的處理過(guò)程。時(shí)基信號(hào)是最基本的定時(shí)脈沖信號(hào),它為SPCE061A單片機(jī)提供各種不同的頻率信號(hào),有2?Hz、4?Hz、8?Hz、16?Hz、32?Hz、64?Hz、128?Hz、256?Hz、512?Hz、1024?H、2048?Hz、4096?Hz等多種頻率信號(hào),從而為用戶在實(shí)時(shí)處理上提供了各種時(shí)鐘選擇。

【例5.1】定時(shí)0.5?s,使A口的8個(gè)二極管閃爍。

分析:首先考慮定時(shí)0.5?s采用哪個(gè)時(shí)基信號(hào)比較方便。由于實(shí)時(shí)時(shí)鐘振蕩器32?768?Hz經(jīng)14級(jí)2分頻器產(chǎn)生各種可為SPCE061A單片機(jī)使用的時(shí)基信號(hào),定時(shí)周期為0.5?s,則可得頻率為2?Hz。由此得知,我們使用2?Hz作為中斷源IRQ5為系統(tǒng)提供0.5?s的時(shí)基信號(hào)中斷是最為方便的。在設(shè)計(jì)時(shí)只要觸發(fā)2?Hz的時(shí)基信號(hào)中斷就可以實(shí)現(xiàn)0.5?s的定時(shí)時(shí)間。圖5.5主程序流程圖圖5.6中斷服務(wù)程序流程圖

3.觸鍵喚醒中斷

觸鍵喚醒中斷源主要是在系統(tǒng)進(jìn)入睡眠狀態(tài)后,通過(guò)IOA口低八位的按鍵給出喚醒信號(hào),讓系統(tǒng)接通PLL倍頻電路來(lái)喚醒系統(tǒng)時(shí)鐘,同時(shí)產(chǎn)生一個(gè)IRQ3中斷請(qǐng)求,進(jìn)入觸鍵喚醒中斷,恢復(fù)睡眠時(shí)的PC指針。

4.外部中斷

【例5.2】在外部中斷中點(diǎn)亮8個(gè)LED。

分析:首先考慮使用外部中斷EXT1還是外部中斷EXT2,或者是兩個(gè)外部中斷都可以。

反饋電路外部中斷所使用的控制寄存器的屬性和功能如表5.10所示。

在編寫(xiě)外部中斷程序時(shí),在本例中選擇了EXT1,所以要對(duì)IOB2初始化,即需設(shè)置為輸入。在主程序中要初始化A口的低8位為輸出端,開(kāi)啟外部中斷EXT1??刂?個(gè)LED的亮在中斷服務(wù)程序中完成,對(duì)中斷子程序的設(shè)計(jì)流程與中斷服務(wù)流程一樣,主要的一步是判斷是否是IRQ3_EXT1中斷,若是就直接進(jìn)行清中斷標(biāo)志,若不是則就說(shuō)明LED燈亮。外部中斷主程序流程圖如圖5.7所示,外部中斷中斷服務(wù)程序流程圖如圖5.8所示。圖5.7外部中斷主程序流程圖

圖5.8外部中斷中斷服務(wù)程序流程圖

【例5.3】EXT1與EXT2設(shè)置為外部中斷,對(duì)應(yīng)的I/O端口與按鍵連接;IOA0與IOA1分別接LED發(fā)光管,如圖5.9所示。當(dāng)EXT1對(duì)應(yīng)的鍵按下時(shí),LED1點(diǎn)亮,LED2熄滅;當(dāng)EXT2對(duì)應(yīng)的鍵按下時(shí),LED2點(diǎn)亮,LED1熄滅。圖5.9電路原理圖

5.串行異步中斷

串行異步中斷用于串行通信過(guò)程中數(shù)據(jù)的收發(fā),串行通信接口為標(biāo)準(zhǔn)全雙工的通用異步接受器/發(fā)送器UART模塊。UART的接收信號(hào)Rx和發(fā)送信號(hào)Tx分別與IOB7和IOB10共用,屬于B口的特殊功能。5.3.2多中斷源應(yīng)用

1.同中斷向量多個(gè)中斷源的使用

【例5.4】IRQ6中斷有兩個(gè)中斷源IRQ6_TMB1和IRQ6_TMB2,此處利用兩個(gè)中斷源分別控制8個(gè)發(fā)光二極管,分別為1?s和0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論