第6章 輸入.ppt_第1頁(yè)
第6章 輸入.ppt_第2頁(yè)
第6章 輸入.ppt_第3頁(yè)
第6章 輸入.ppt_第4頁(yè)
第6章 輸入.ppt_第5頁(yè)
已閱讀5頁(yè),還剩50頁(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)介

1、6.1 I/O 概 述 補(bǔ)存 輸入/輸出傳送方式 6.2 MCS-51單片機(jī)的中斷系統(tǒng) * 7.1 定時(shí)/計(jì)數(shù)器 7.2 串行通信接口,輸入/輸出、 中斷、 定時(shí)與串行通信,6.1 I/O 概 述,6.1.1 I/O接口電路的作用 一個(gè)計(jì)算機(jī)系統(tǒng)的組成, 除了CPU、 存儲(chǔ)器外, 還必須有外部設(shè)備。 計(jì)算機(jī)通過(guò)輸入/輸出設(shè)備和外界進(jìn)行通信。 計(jì)算機(jī)所用的數(shù)據(jù)以及現(xiàn)場(chǎng)采集的各種信息都要通過(guò)輸入設(shè)備送到計(jì)算機(jī); 而計(jì)算的結(jié)果和計(jì)算機(jī)產(chǎn)生的各種控制信號(hào)又需通過(guò)輸出設(shè)備輸出到外部設(shè)備。,計(jì)算機(jī)的I/O操作, 即CPU和外部設(shè)備之間的數(shù)據(jù)傳送卻十分復(fù)雜。 主要表現(xiàn)在以下幾個(gè)方面: (1) 外部設(shè)備的工作

2、速度與計(jì)算機(jī)相比要低得多。 (2) 外部設(shè)備的種類繁多, 有機(jī)械式、 機(jī)電式及電子式等等。 (3) 外部設(shè)備的數(shù)據(jù)信號(hào)是多種多樣的, 既有電壓信號(hào), 也有電流信號(hào); 既有數(shù)字量, 還有模擬量。 (4) 外部設(shè)備的數(shù)據(jù)傳送有近距離的, 也有遠(yuǎn)距離的; 有的使用并行數(shù)據(jù)傳送, 而有的則使用串行傳送數(shù)據(jù)。,具體說(shuō)來(lái), 接口電路主要有以下幾項(xiàng)功能: (1) 速度協(xié)調(diào) (2) 數(shù)據(jù)鎖存如輸出鎖存 (3) 三態(tài)緩沖如多數(shù)據(jù)源輸入 (4) 數(shù)據(jù)轉(zhuǎn)換,6.1.2 接口與端口 “接口”一詞是從英文interface翻譯過(guò)來(lái)的, 具有界面、 相互聯(lián)系等含義。 接口這個(gè)術(shù)語(yǔ)在計(jì)算機(jī)領(lǐng)域中應(yīng)用十分廣泛。 本章所講述的

3、接口則特指計(jì)算機(jī)與外設(shè)之間在數(shù)據(jù)傳送方面的聯(lián)系, 其功能主要是通過(guò)電路實(shí)現(xiàn)的, 因此稱之為接口電路, 簡(jiǎn)稱接口。 端口是指那些在接口電路用以完成某種信息傳送,并可由編程人員進(jìn)行尋址讀寫(xiě)的寄存器。,6.1.3 I/O的編址方式 存儲(chǔ)器是對(duì)存儲(chǔ)單元進(jìn)行編址, 而接口電路則是對(duì)其中的端口進(jìn)行編址。 對(duì)端口編址是為I/O操作而進(jìn)行的, 因此也稱為I/O編址。 常用的I/O編址有兩種方式: 獨(dú)立編址方式和統(tǒng)一編址方式(混合編址)。 1. 獨(dú)立編址方式8088 不減少內(nèi)存的實(shí)際容量,但指令系統(tǒng)復(fù)雜 2. 統(tǒng)一編址方式51 與上面正好相反,且指令所占空間和時(shí)間較大,補(bǔ)充 輸入/輸出傳送方式,1 無(wú)條件傳送方

4、式 在CPU與有些設(shè)備交換數(shù)據(jù)時(shí),可以認(rèn)為它們總是處于“就緒”狀態(tài),隨時(shí)可以進(jìn)行數(shù)據(jù)傳送,這就是無(wú)條件傳送,或稱立即傳送、同步傳送 。 適合于簡(jiǎn)單設(shè)備,如LED數(shù)碼管、按鍵或按鈕等; 也適用于工作速度極快的設(shè)備 無(wú)條件傳送的接口和操作均十分簡(jiǎn)單 這種傳送有前提:外設(shè)必須隨時(shí)就緒,2 查詢傳送方式 查詢傳送又稱為條件傳送, 即數(shù)據(jù)的傳送是有條件的。 在輸入/輸出之前, 先要檢測(cè)外設(shè)的狀態(tài), 以了解外設(shè)是否已為數(shù)據(jù)輸入輸出作好了準(zhǔn)備, 只有在確認(rèn)外設(shè)已“準(zhǔn)備好”的情況下, CPU才能執(zhí)行數(shù)據(jù)輸入/輸出操作。 通常把通過(guò)程序?qū)ν庠O(shè)狀態(tài)的檢測(cè)稱之為“查詢”, 所以這種有條件的傳送方式又叫做程序查詢方式

5、。查詢的流程圖如圖51所示。,圖51 查詢方式流程圖,3 中斷傳送方式 查詢傳送方式需要CPU不停地詢問(wèn),浪費(fèi)CPU資源。中斷方式則是在外設(shè)為數(shù)據(jù)傳送作好準(zhǔn)備之后,就向CPU發(fā)出中斷請(qǐng)求信號(hào)(相當(dāng)于通知CPU),CPU接收到中斷請(qǐng)求信號(hào)之后立即作出響應(yīng),暫停正在執(zhí)行的原程序(主程序),而轉(zhuǎn)去為外設(shè)的數(shù)據(jù)輸入輸出服務(wù),待服務(wù)完之后,程序返回,CPU再繼續(xù)執(zhí)行被中斷的原程序。,由于CPU的工作速度很快,傳送1次數(shù)據(jù)(包括轉(zhuǎn)入中斷和退出中斷)所需的時(shí)間很短。對(duì)外設(shè)來(lái)講,似乎是對(duì)CPU發(fā)出數(shù)據(jù)傳送請(qǐng)求的瞬間,CPU就實(shí)現(xiàn)了;對(duì)主程序來(lái)講,雖然中斷了1個(gè)瞬間,但由于時(shí)間很短,也不會(huì)有什么影響。 以“送磚

6、工”為例,請(qǐng)同學(xué)們總結(jié)優(yōu)缺點(diǎn)。 無(wú)條件 查詢 中斷,6.2 MCS-51單片機(jī)的中斷系統(tǒng),6.2.1 中斷的概念(注意和子程序調(diào)用的區(qū)別) 計(jì)算機(jī)暫時(shí)中止正在執(zhí)行的主程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,并在中斷服務(wù)程序執(zhí)行完了之后能自動(dòng)回到原主程序處繼續(xù)執(zhí)行,這個(gè)過(guò)程叫做“中斷”。 中斷需要解決兩個(gè)主要問(wèn)題:一是如何從主程序轉(zhuǎn)到中斷服務(wù)程序;二是如何從中斷服務(wù)程序返回主程序。,大體說(shuō)來(lái),采用中斷系統(tǒng)改善了計(jì)算機(jī)的性能,主要表現(xiàn)在以下幾個(gè)方面: (1)有效地解決了快速CPU與慢速外設(shè)之間的矛盾,可使CPU與外設(shè)并行工作,大大提高了工作效率。(如同時(shí)掛載led燈、鍵盤、打印機(jī)) (2)可以及時(shí)處理控制系統(tǒng)

7、中許多隨機(jī)產(chǎn)生的參數(shù)與信息,即計(jì)算機(jī)具有實(shí)時(shí)處理的能力,從而提高了控制系統(tǒng)的性能。(如美國(guó)國(guó)家導(dǎo)彈防御系統(tǒng) ) (3)使系統(tǒng)具備了處理故障的能力,提高了系統(tǒng)自身的可靠性。 (如筆記本防摔系統(tǒng)) 涉及到如下概念:中斷源、中斷優(yōu)先級(jí)、中斷響應(yīng)的條件、過(guò)程與時(shí)間。,6.2.2 中斷源 所謂中斷源就是引起中斷的事件,亦即是什么部件要求中斷。 對(duì)于各種計(jì)算機(jī)來(lái)說(shuō),其中斷源的允許數(shù)目是不一樣的,例如Z80允許128個(gè)中斷源(不包括非屏蔽中斷),而8086/8088則允許256個(gè)中斷源。MCS-51單片機(jī)相對(duì)來(lái)說(shuō)較為簡(jiǎn)單,只提供了5個(gè)中斷源:2個(gè)外部中斷請(qǐng)求 和 個(gè)片內(nèi)定時(shí)器/計(jì)數(shù)器T0和T1的溢出中斷請(qǐng)求

8、TF0和TF1及串行口中斷請(qǐng)求TI或RI(合為一個(gè)中斷源)。,MCS-51單片機(jī)5個(gè)中斷源的中斷請(qǐng)求信號(hào)分別鎖存在特殊功能寄存器TCON和SCON中: (1)TCON為定時(shí)/計(jì)數(shù)器控制寄存器,字節(jié)地址為88H,其中鎖存的中斷源請(qǐng)求標(biāo)志如表51所示。,表64 TCON鎖存的中斷源,TF1:定時(shí)器1溢出標(biāo)志位。當(dāng)字時(shí)器1計(jì)滿溢出時(shí),由硬件使TF1置“1”,并且申請(qǐng)中斷。進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清“0”,在查詢方式下用軟件清“0”。 TF0:定時(shí)器0溢出標(biāo)志。其功能及操作情況同TF1。 IE1:外部中斷1請(qǐng)求標(biāo)志。 IT1:外部中斷1觸發(fā)方式選擇位。0,低電平觸發(fā);1,負(fù)跳沿觸發(fā)。 IE0:外

9、部中斷0請(qǐng)求標(biāo)志。 IT0:外部中斷0觸發(fā)方式選擇位。,(2)SCON串行口控制寄存器,字節(jié)地址為98H。 SCON的低2位鎖存串行口的接收中斷和發(fā)送中斷標(biāo)志,兩個(gè)中斷源的撤銷都需要軟件復(fù)位。 注意:中斷請(qǐng)求標(biāo)志為兩個(gè),但是中斷服務(wù)程序入口只有一個(gè)。,表66 SCON鎖存的中斷源,各中斷源所對(duì)應(yīng)的中斷服務(wù)程序的入口地址如下: 中斷源 入口地址 外部中斷 0003H 定時(shí)器T0中斷 000BH 外部中斷 0013H 定時(shí)器T1中斷 001BH 串行口中斷 0023H,TI:串行口發(fā)送中斷標(biāo)志。在串行口以方式0發(fā)送時(shí),每當(dāng)發(fā)送完8位數(shù)據(jù)后,由硬件置位TI;若以方式1、2、3發(fā)送時(shí),在發(fā)送停止位的開(kāi)

10、始時(shí)置位TI。TI=1表示串行口發(fā)送器正在向CPU申請(qǐng)中斷。值得注意的是當(dāng)CPU響應(yīng)該中斷后,轉(zhuǎn)向中斷服務(wù)程序時(shí)并不復(fù)位TI,TI必須由用戶在中斷服務(wù)程序中用軟件清0(可用CLRTI或其它指令)。,RI:串行口接收中斷標(biāo)志。若串行口接收器允許接收并以方式0工作,則每當(dāng)接收到第8位數(shù)據(jù)時(shí)置位RI;若以方式1、2、3工作,且SM2=0時(shí),則每當(dāng)接收器接收到停止位的中間時(shí)置位RI;當(dāng)串行口以方式2或方式3工作,且SM2=1時(shí),僅當(dāng)接收到的第9位數(shù)據(jù)RB8為1后,同時(shí)還要接收到停止位的中間時(shí)置位RI。RI為1表示串行口接收器正向CPU申請(qǐng)中斷,同樣RI必須由用戶在中斷服務(wù)程序中清0。8031復(fù)位后,S

11、CON也被清0。,6.2.3 中斷的優(yōu)先級(jí) 由于中斷是隨機(jī)產(chǎn)生的,中斷源一般又不止1個(gè),因此往往會(huì)出現(xiàn)這樣的情況:幾個(gè)中斷源同時(shí)請(qǐng)求中斷;或者當(dāng)某一個(gè)中斷正在響應(yīng)中(即正在執(zhí)行該中斷源的中斷服務(wù)程序),又有其它的中斷源請(qǐng)求中斷,這時(shí)中斷系統(tǒng)應(yīng)如何處理呢?,在一般情況下,首先把各個(gè)中斷源分成若干個(gè)優(yōu)先級(jí),然后再按如下原則進(jìn)行處理: (1)不同級(jí)的中斷源同時(shí)申請(qǐng)中斷時(shí)先高后低; (2)同級(jí)的中斷源同時(shí)申請(qǐng)中斷時(shí)事先規(guī)定; (3)處理低級(jí)中斷又收到高級(jí)中斷請(qǐng)求時(shí)停低轉(zhuǎn)高; (4)處理高級(jí)中斷又收到低級(jí)中斷請(qǐng)求時(shí)高不理低。 MCS-51單片機(jī)的中斷系統(tǒng)對(duì)優(yōu)先級(jí)的控制比較簡(jiǎn)單,只規(guī)定了兩個(gè)中斷優(yōu)先級(jí),對(duì)

12、于每一個(gè)中斷源均可編程為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷。,在同1個(gè)優(yōu)先級(jí)中,對(duì)5個(gè)中斷源的優(yōu)先次序安排如下: 外部中斷0(IE0) 定時(shí)器/計(jì)數(shù)器T0溢出中斷(TF0) 外部中斷1(IE1) 定時(shí)器/計(jì)數(shù)器T1溢出中斷(TF1) 串行口中斷(RI+TI),中斷優(yōu)先級(jí)控制器IP。其中: PX0:外部中斷0優(yōu)先級(jí)控制位。 PT0:定時(shí)器0中斷優(yōu)先級(jí)控制位。 PX1:外部中斷1優(yōu)先級(jí)控制位。 PT1:定時(shí)器1中斷優(yōu)先級(jí)控制位。 PS:串行口中斷優(yōu)先級(jí)控制位。 上面優(yōu)先級(jí)控制位規(guī)定1為高優(yōu)先級(jí),0為低優(yōu)先級(jí)。,6.2.4 中斷響應(yīng)的條件、過(guò)程與時(shí)間 1.中斷響應(yīng)的條件 單片機(jī)響應(yīng)中斷的條件為中斷源有請(qǐng)求(

13、中斷允許寄存器IE相應(yīng)位置1),且CPU開(kāi)中斷(即EA=1)。這樣,在每個(gè)機(jī)器周期內(nèi),單片機(jī)對(duì)所有中斷源都進(jìn)行順序檢測(cè),并可在任1個(gè)周期的S6期間,找到所有有效的中斷請(qǐng)求,還對(duì)其優(yōu)先級(jí)進(jìn)行排隊(duì)。,但是,必須滿足下列條件: (1)無(wú)同級(jí)或高級(jí)中斷正在服務(wù); (2)現(xiàn)行指令執(zhí)行到最后1個(gè)機(jī)器周期且已結(jié)束; (3)若現(xiàn)行指令為RETI或需訪問(wèn)特殊功能寄存器IE或IP的指令時(shí),執(zhí)行完該指令且緊隨其后的另1條指令也已執(zhí)行完。 單片機(jī)便在緊接著的下1個(gè)機(jī)器周期的S1期間響應(yīng)中斷。否則,將丟棄中斷查詢的結(jié)果。 中斷查詢由硬件自動(dòng)完成。,2.中斷響應(yīng)過(guò)程 單片機(jī)一旦響應(yīng)中斷,首先對(duì)相應(yīng)的優(yōu)先級(jí)有效觸發(fā)器置位。

14、然后執(zhí)行1條由硬件產(chǎn)生的子程序調(diào)用指令,把斷點(diǎn)地址壓入堆棧,再把與各中斷源對(duì)應(yīng)的中斷服務(wù)程序的入口地址送入程序計(jì)數(shù)器PC,同時(shí)清除中斷請(qǐng)求標(biāo)志(串行口中斷和外部電平觸發(fā)中斷除外),從而程序便轉(zhuǎn)移到中斷服務(wù)程序。以上過(guò)程均由中斷系統(tǒng)自動(dòng)完成。 中斷服務(wù)完成后注意RETI的使用和斷點(diǎn)的恢復(fù)。,各中斷源所對(duì)應(yīng)的中斷服務(wù)程序的入口地址如下: 中斷源 入口地址 外部中斷 0003H 定時(shí)器T0中斷 000BH 外部中斷 0013H 定時(shí)器T1中斷 001BH 串行口中斷 0023H,CPU從上面相應(yīng)的地址開(kāi)始執(zhí)行中斷服務(wù)程序直到遇到1條RETI指令為止。RETI指令表示中斷服務(wù)程序的結(jié)束。CPU執(zhí)行該指

15、令,一方面清除中斷響應(yīng)時(shí)所置位的優(yōu)先級(jí)有效觸發(fā)器;另一方面從堆棧棧頂彈出斷點(diǎn)地址送入程序計(jì)數(shù)器PC,從而返回主程序。若用戶在中斷服務(wù)程序的開(kāi)始安排了保護(hù)現(xiàn)場(chǎng)指令(一般均為相應(yīng)寄存器內(nèi)容入?;蚋鼡Q工作寄存器區(qū)),則在RETI指令前應(yīng)有恢復(fù)現(xiàn)場(chǎng)指令(相應(yīng)寄存器內(nèi)容出?;驌Q回原工作寄存器區(qū))。,3.中斷響應(yīng)時(shí)間 所謂中斷響應(yīng)時(shí)間是指從查詢中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)入中斷服務(wù)程序入口地址所需的機(jī)器周期數(shù)(對(duì)單一中斷源而言)。 響應(yīng)中斷最短需要3個(gè)機(jī)器周期。若CPU查詢中斷請(qǐng)求標(biāo)志的周期正好是執(zhí)行1條指令的最后1個(gè)機(jī)器周期,則不需等待就可以響應(yīng)。而響應(yīng)中斷執(zhí)行1條長(zhǎng)調(diào)用指令需要2個(gè)機(jī)器周期,加上查詢的1個(gè)機(jī)器周

16、期,一共需要3個(gè)機(jī)器周期才開(kāi)始執(zhí)行中斷服務(wù)程序。 最壞情況下需要8個(gè)機(jī)器周期。,6.2.5 MCS-51單片機(jī)的中斷系統(tǒng) (1)所有中斷的總開(kāi)關(guān)EA (2)各個(gè)中斷的子開(kāi)關(guān)IE (3)各個(gè)中斷的優(yōu)先級(jí)IP,圖63 MCS-51的中斷系統(tǒng),6.2.6外部中斷及中斷請(qǐng)求的撤除 1.外部中斷 MCS-51單片機(jī)的中斷系統(tǒng)有2個(gè)外部中斷源,引腳信號(hào)為 和 (即P3.2和P3.3)。其中斷請(qǐng)求觸發(fā)信號(hào)有電平觸發(fā)和邊沿觸發(fā)兩種,當(dāng)TCON寄存器中的IT0位和IT1位為“0”時(shí)采用電平觸發(fā);為“1”時(shí)采用邊沿觸發(fā)。,2.中斷請(qǐng)求的撤除 CPU響應(yīng)中斷請(qǐng)求后,在中斷返回(執(zhí)行RETI指令)前,必須撤除請(qǐng)求,否

17、則會(huì)錯(cuò)誤地再一次引起中斷過(guò)程。 如前所述,對(duì)于定時(shí)器T0與T1的中斷請(qǐng)求及邊沿觸發(fā)方式的外部中斷0和1來(lái)說(shuō),CPU在響應(yīng)中斷后用硬件清除了相應(yīng)的中斷請(qǐng)求標(biāo)志TF0、TF1、IE0與IE1,即自動(dòng)撤除了中斷請(qǐng)求。 電平觸發(fā)方式的IE0與IE1需要電路和程序配合。,S為異步置1端。,INSVR:ANL P1,#0FEH ORL P1,#01H RETI END,6.3 中斷應(yīng)用舉例 在中斷服務(wù)程序編程時(shí),首先要對(duì)中斷系統(tǒng)進(jìn)行初始化,也就是對(duì)幾個(gè)特殊功能寄存器的有關(guān)控制位進(jìn)行賦值。具體來(lái)說(shuō),就是要完成下列工作: (1)開(kāi)中斷和允許中斷源中斷; (2)確定各中斷源的優(yōu)先級(jí); (3)若是外部中斷,則應(yīng)規(guī)

18、定是電平觸發(fā)還是邊沿觸發(fā)。 (4)編寫(xiě)中斷服務(wù)程序,處理中斷請(qǐng)求。,例1:若規(guī)定外部中斷0為電平觸發(fā)方式,高優(yōu)先級(jí),試寫(xiě)出有關(guān)的初始化程序。 解:一般可采用位操作指令來(lái)實(shí)現(xiàn): SETB EA ;開(kāi)中斷 SETB EX0 ;允許外中斷0中斷 SETB PX0 ;外中斷0定為高優(yōu)先級(jí) CLR IT0 ;電平觸發(fā),例2:若規(guī)定外部中斷1為邊沿觸發(fā)方式,低優(yōu)先級(jí),在中斷服務(wù)程序中將寄存器B的內(nèi)容左環(huán)移一位,B的初值設(shè)為01H。試編寫(xiě)主程序與中斷服務(wù)程序。 解:程序如下 ORG 0000H ;主程序 LJMP MAIN ;主程序轉(zhuǎn)至MAIN處 ORG 0013H ;中斷服務(wù)程序 LJMP INT ;中斷

19、服務(wù)程序轉(zhuǎn)至INT處,MAIN:SETB EA ;開(kāi)中斷 SETB EX1 ;允許外中斷1中斷 CLR PX1 ;設(shè)為低優(yōu)先級(jí) SETB IT1 ;邊沿觸發(fā) MOV B,01H ;設(shè)B的初值 HALT:SJMP HALT ;暫停等待中斷,閑著沒(méi)事 INT:MOV A,B ;開(kāi)始中斷服務(wù),AB, RL A ;左環(huán)移一位 MOV B,A ;回送 RETI ;中斷返回,有以下幾點(diǎn)需要說(shuō)明: (1)由于從0003H到0023H之間分布了5個(gè)中斷源的入口地址,因此在一般情況下,主程序與中斷服務(wù)程序均用長(zhǎng)轉(zhuǎn)移指令移至其它區(qū)域。 (2)本例題未考慮保護(hù)現(xiàn)場(chǎng)與恢復(fù)現(xiàn)場(chǎng)的問(wèn)題,是否需要,應(yīng)視具體情況而定。 (3

20、)本例是單重中斷,若為多級(jí)中斷,則情況要復(fù)雜得多。 (4)主程序處于暫停等待中斷只是為了舉例方便起見(jiàn),在實(shí)際的單片機(jī)控制系統(tǒng)中一般是不會(huì)這樣用的。,中斷服務(wù)程序的流程,圖6-11為采用單外部中斷源的數(shù)據(jù)采集系統(tǒng)示意圖。將P1口設(shè)置成數(shù)據(jù)輸入口,外圍設(shè)備每準(zhǔn)備好一個(gè)數(shù)據(jù)時(shí),發(fā)出一個(gè)選通信號(hào)(正脈沖),使D觸發(fā)器Q非端置0,產(chǎn)生中斷請(qǐng)求信號(hào), P3.0用于撤除中斷請(qǐng)求信號(hào),從而清除IE0標(biāo)志。,例6-7 單外部中斷源示例,ORG 0000H START: LJMP MAIN ;跳轉(zhuǎn)到主程序 ORG 0003H LJMP INT0 ;轉(zhuǎn)向中斷服務(wù)程序 ORG 0030H ;主程序 MAIN: CLR

21、 IT0 ;設(shè)為電平觸發(fā)方式 SETB EA ;CPU開(kāi)放中斷 SETB EX0 ;允許INT0中斷 MOV DPTR, #1000H ;設(shè)置數(shù)據(jù)區(qū)地址指針 ,ORG 0200H;中斷服務(wù)程序 INT0: PUSHPSW;保護(hù)現(xiàn)場(chǎng) PUSH ACC CLRP3.0;由P3.0輸出0,使/Q變?yōu)?,撤除中斷請(qǐng)求信號(hào) SETBP3.0;由P3.0輸出1,使D觸發(fā)器能夠工作 MOVA, P1 ;輸入數(shù)據(jù) MOVX DPTR, A ;存入數(shù)據(jù)存儲(chǔ)器 INCDPTR ;修改數(shù)據(jù)指針,指向下一個(gè)單元 POPACC;恢復(fù)現(xiàn)場(chǎng) POPPSW RETI;中斷返回,當(dāng)外部中斷源多于兩個(gè)時(shí),可以采用硬件申請(qǐng)與軟件查

22、詢方法,把多個(gè)中斷源經(jīng)或非門引入外部中斷源輸入端,同時(shí)又連到某I/O口。這樣,每個(gè)“源”都可能引起中斷,但在中斷服務(wù)程序中通過(guò)軟件查詢,便可確定哪一個(gè)是正在申請(qǐng)的中斷源。,例6-9 中斷和查詢結(jié)合的方法擴(kuò)展多個(gè)外中斷源,圖6-12中的中斷線可實(shí)現(xiàn)系統(tǒng)的故障顯示。當(dāng)系統(tǒng)的各部分工作正常時(shí),四個(gè)故障源輸入端全為低電平,顯示燈全熄滅。只有當(dāng)某部分出現(xiàn)故障時(shí),則對(duì)應(yīng)的輸入線由低電平變?yōu)楦唠娖剑瑥亩?051的中斷,在中斷服務(wù)中通過(guò)查詢即可判斷故障源,并進(jìn)行相應(yīng)的LED顯示。,;匯編語(yǔ)言主程序: ORG0000H;復(fù)位入口地址 AJMPMAIN;轉(zhuǎn)主程序 ORG0003H;外部0中斷入口 AJMPIO;轉(zhuǎn)中斷服務(wù)程序 MAIN: ANLP1, #0AAH;置P1口輸出全為0 SETBIT0;外部中斷0為邊沿觸發(fā)中斷方式 SETBEX0;允許外部中斷0中斷 SETBEA;CPU開(kāi)中斷 LOOP1:SJMP LOOP1;等待中斷,-例6-9,;匯編語(yǔ)言中斷服務(wù)程序: IO:JNBP1.1, L1;查詢中斷源,P1.1為0轉(zhuǎn)L

溫馨提示

  • 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)論