單片機原理及接口技術 第六章 輸入輸出與中斷-2學習資料_第1頁
單片機原理及接口技術 第六章 輸入輸出與中斷-2學習資料_第2頁
單片機原理及接口技術 第六章 輸入輸出與中斷-2學習資料_第3頁
單片機原理及接口技術 第六章 輸入輸出與中斷-2學習資料_第4頁
單片機原理及接口技術 第六章 輸入輸出與中斷-2學習資料_第5頁
已閱讀5頁,還剩40頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第六章輸入輸出與中斷I/O信號及尋址方式6.1I/O控制方式6.2中斷技術6.351單片機中斷系統6.41I/O接口是連接I/O設備與計算機的橋梁微型機I/O接口I/O接口I/O設備I/O設備*26-1I/O信號及尋址方式6.1.1I/O接口的作用I/O接口的作用:1.速度匹配:鎖存數據、傳送聯絡信號2.隔離:多個設備信號通過接口三態門隔離干擾信號3.緩沖驅動:驅動多個邏輯部件或大功率執行部件*36-1I/O信號及尋址方式6.1.2

I/O接口信號1.數據信息:微機與外設交換的信息;2.狀態信息:反映外設工作狀態;3.控制信息:設定I/O電路的工作方式或提供控制信號;*46-1I/O信號及尋址方式1、存儲器映射編址方式

I/O接口與存儲器共用地址空間2、專用I/O地址方式

專用I/O控制信號和I/O指令,I/O接口獨立編址。

MCS-51為存儲器映射地址方式。有片內接口和擴展接口。片內I/O接口寄存器在SFR中,占用用片內數據存儲器空間,擴展I/O接口占用用片外數據存儲器地址空間。

*56-1I/O信號及尋址方式

輸出指令 輸入指令片內MOVP1,A MOVA,P1片外MOVX@DPTR,AMOVXA,DPTR

MOVX@R0,A MOVXA,@R0*66-1I/O信號及尋址方式6-2

I/O控制方式6.2.1無條件已知I/O設備準備就緒,直接傳送數據優點:接口電路和程序設計都非常簡單。但需要外設總處于“準備好”狀態。*76.2.2查詢式(有條件)DBAB微型機AB數據端口狀態端口外部設備I/O接口D6

先查詢I/O設備當前狀態,若準備就緒,則交換數據,否則繼續查詢狀態。硬件、軟件必須為查詢提供支持。6-2

I/O控制方式*8讀寫外設數據INPUT:MOV

DPTR,#STATUS;狀態口地址

WAIT:MOVX

A,@DPTR;輸入狀態信息

JNB

A.6,WAIT ;準備好?

MOV

DPTR,#DATA;數據口地址

MOVXA,@DPTR;輸入數據另:JNB

P1.6,WAIT6-2

I/O控制方式*96.2.3中斷

多數時間計算機與外設并行(同時)工作,計算機不必因等待而浪費資源。

當外設準備就緒,向CPU發出中斷請求信號;

CPU暫停當前程序,執行I/O操;

當I/O操作結束,CPU仍繼續被中斷的工作。6-2

I/O控制方式*106.2.4

直接存儲器存取方式(DMA—DirectMemoryAccess)用于計算機與高速外設進行大批量數據交換,由DMA控制器接管總線控制權,RAM與外設之間直接數據傳輸,不需CPU的介入。6-2

I/O控制方式6.3.1中斷概念1、舉例

例子

CPU操作

中斷術語某人看書 執行主程序 日常事務電話鈴響 中斷信號INT=0

中斷請求6-3 中斷技術暫停看書

暫停執行主程序中斷響應書中作記號當前PC入棧 保護斷點電話談話 執行I/O程序中斷服務繼續看書 返回主程序 返回日常事務*12(1)可屏蔽中斷中斷是否被響應可以控制。常稱為“開中斷”或“關中斷”,可由軟件設置允許/禁止CPU響應中斷。(2)非屏蔽中斷不可程控“關中斷”。有中斷請求,CPU必須響應。2、中斷類型6-3 中斷技術*134、中斷優先級(1)同時有多個中斷請求信號,先響應優先級別高的中斷請求

3、中斷源能發出中斷請求信號的各種事件

INTNMI微型機日常事務程序中斷服務程序1中斷服務程序2(2)高優先級中斷請求信號可中斷低優先級中斷服務6-3 中斷技術*146-3-2中斷處理過程5、中斷響應條件(1)有中斷請求信號 (2)系統處于開中斷狀態6-3 中斷技術*156-3-2中斷處理過程6-3 中斷技術*166、中斷響應過程(1)關中斷:屏蔽其它中斷請求信號(2)保護斷點:斷點地址壓入堆棧保存,即當前PC值入棧(3)尋找中斷源:中斷服務程序入口地址送入PC,轉入中斷服務(4)保護現場:中斷服務程序使用的所有寄存器內容入棧(5)中斷處理:執行中斷源所要求的程序段(6)恢復現場:恢復被使用寄存器的原有內容(7)開中斷:允許接受其它中斷請求信號(8)中斷返回:執行RETI指令,棧頂內容入PC,程序跳轉返回到斷點處6.4.1中斷系統的結構

51單片機的中斷系統中有5個中斷源,2個優先級,可實現二級中斷嵌套

。6-451單片機中斷系統*17

TCON

SCONIEIP6.4.28051的中斷源

一、中斷源

2、(P3.3)。可由IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.3引腳上出現有效的中斷信號時,中斷標志IE1(TCON.3)置1,向CPU申請中斷。

1、(P3.2)。可由IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.2引腳上出現有效的中斷信號時,中斷標志IE0(TCON.1)置1,向CPU申請中斷。6-451單片機中斷系統*18

3、TF0(TCON.5),片內定時/計數器T0溢出中斷請求標志。當定時/計數器T0發生溢出時,置位TF0,并向CPU申請中斷。

4、TF1(TCON.7),片內定時/計數器T1溢出中斷請求標志。當定時/計數器T1發生溢出時,置位TF1,并向CPU申請中斷。

5、RI(SCON.0)或TI(SCON.1),串行口中斷請求標志。當串行口接收完一幀串行數據時置位RI或當串行口發送完一幀串行數據時置位TI,向CPU申請中斷。

6-451單片機中斷系統*19二、中斷請求標志1、TCON的中斷標志IT0(TCON.0),外部中斷0觸發方式控制位。當IT0=0時,為電平觸發方式。當IT0=1時,為邊沿觸發方式(下降沿有效)。IT1(TCON.2),外部中斷1觸發方式控制位。IE0(TCON.1),外部中斷0中斷請求標志位。IE1(TCON.3),外部中斷1中斷請求標志位。TF0(TCON.5),定時/計數器T0溢出中斷請求標志位。TF1(TCON.7),定時/計數器T1溢出中斷請求標志位。

6-451單片機中斷系統*202、SCON的中斷標志RI(SCON.0),串行口接收中斷標志位。當允許串行口接收數據時,每接收完一個串行幀,由硬件置位RI。同樣,RI必須由軟件清除。TI(SCON.1),串行口發送中斷標志位。當CPU將一個發送數據寫入串行口發送緩沖器時,就啟動了發送過程。每發送完一個串行幀,由硬件置位TI。CPU響應中斷時,不能自動清除TI,TI必須由軟件清除。

6-451單片機中斷系統*21一、中斷允許控制

CPU對中斷系統所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。6.4.38051中斷的控制

EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時/計數器T0中斷允許位;EX1(IE.2),外部中斷0允許位;ET1(IE.3),定時/計數器T1中斷允許位;ES(IE.4),串行口中斷允許位;EA(IE.7),CPU中斷允許(總允許)位。6-451單片機中斷系統*22二、中斷優先級控制與中斷入口

80C51單片機有兩個中斷優先級,即可實現二級中斷服務嵌套。每個中斷源的中斷優先級都是由中斷優先級寄存器IP中的相應位的狀態來規定的

。PX0(IP.0),外部中斷0優先級設定位;PT0(IP.1),定時/計數器T0優先級設定位;PX1(IP.2),外部中斷0優先級設定位;PT1(IP.3),定時/計數器T1優先級設定位;PS

(IP.4),串行口優先級設定位。6-451單片機中斷系統*23

同一優先級中的中斷申請不止一個時,則有中斷優先權排隊問題。同一優先級的中斷優先權排隊,由中斷系統硬件確定的自然優先級形成,其排列如所示:6-451單片機中斷系統*2480C51單片機的中斷優先級有三條原則:CPU同時接收到幾個中斷時,首先響應優先級別最高的中斷請求。正在進行的中斷過程不能被新的同級或低優先級的中斷請求所中斷。正在進行的低優先級中斷服務,能被高優先級中斷請求所中斷。

為了實現上述后兩條原則,中斷系統內部設有兩個用戶不能尋址的優先級狀態觸發器。其中一個置1,表示正在響應高優先級的中斷,它將阻斷后來所有的中斷請求;另一個置0,表示正在響應低優先級中斷,它將阻斷后來所有的低優先級中斷請求。6-451單片機中斷系統*25一、中斷響應條件

中斷源有中斷請求;此中斷源的中斷允許位為1;

CPU開中斷(即EA=1);CPU執行完當前指令。同時滿足時,CPU才有可能響應中斷。6.4.4中斷響應條件6-451單片機中斷系統*26二、中斷服務的進入

CPU執行程序過程中,在每個機器周期的S5P2期間,中斷系統對各個中斷源進行采樣。這些采樣值在下一個機器周期內按優先級和內部順序被依次查詢。如果某個中斷標志在上一個機器周期的S5P2時被置成了1,CPU轉向被稱作中斷向量的特定地址單元,進入相應的中斷服務程序。

6-451單片機中斷系統*27遇以下任一條件,硬件將受阻而不轉向中斷服務:CPU正在處理同級或高優先級中斷;當前查詢的機器周期不是所執行指令的最后一個機器周期。即在完成所執行指令前,不會響應中斷,從而保證指令在執行過程中不被打斷;正在執行的指令為RET、RETI或任何訪問IE或IP寄存器的指令。即只有在這些指令后面至少再執行一條指令時才能接受中斷請求。

若由于上述條件的阻礙中斷未能得到響應,當條件消失時該中斷標志卻已不再有效,那么該中斷將不被響應。6-451單片機中斷系統*28將相應的優先級狀態觸發器置1(以阻斷后來的同級或低級的中斷請求)。硬件把程序計數器PC內容壓入堆棧保存,再將相應的中斷服務程序的入口地址送入PC。執行中斷服務程序。6.4.5中斷響應過程

中斷響應過程的前兩步是由中斷系統內部自動完成的,而中斷服務程序則要由用戶編寫程序來完成。

6-451單片機中斷系統*29

6.4.6中斷返回RETI指令的具體功能是:將中斷響應時壓入堆棧保存的斷點地址從棧頂彈出送回PC,CPU從原來中斷的地方繼續執行程序;將相應中斷優先級狀態觸發器清0,通知中斷系統,中斷服務程序已執行完畢。

注意,不能用RET指令代替RETI指令。在中斷服務程序中PUSH指令與POP指令必須成對使用,否則不能正確返回斷點。6-451單片機中斷系統*30

電平觸發方式

若外部中斷定義為電平觸發方式,中斷標志位的狀態隨CPU在每個機器周期采樣到的外部中斷輸入引腳的電平變化而變化,這樣能提高CPU對外部中斷請求的響應速度。但外部中斷源若有請求,必須把有效的低電平保持到請求獲得響應時為止,不然就會漏掉;而在中斷服務程序結束之前,中斷源又必須撤消其有效的低電平,否則中斷返回之后將再次產生中斷。

電平觸發方式適合于外部中斷輸入以低電平輸入且中斷服務程序能清除外部中斷請求源的情況。例如,并行接口芯片8255的中斷請求線在接受讀或寫操作后即被復位,因此,以其去請求電平觸發方式的中斷比較方便。6-451單片機中斷系統*31

若外部中斷定義為邊沿觸發方式,在相繼連續的兩次采樣中,一個周期采樣到外部中斷輸入為高電平,下一個周期采樣到為低電平,則在IE0或IE1中將鎖存一個邏輯1。即便是CPU暫時不能響應,中斷申請標志也不會丟失,直到CPU響應此中斷時才清零。這樣,為保證下降沿能被可靠地采樣到,外中斷引腳上的低電平(負脈沖的寬度)均至少要保持一個機器周期(若晶振為12MHz時,為1微秒)。邊沿觸發方式適合于以負脈沖形式輸入的外部中斷請求,如ADC0809的轉換結束標志信號EOC為正脈沖,經反相后就可以作為8051的中斷輸入。6-451單片機中斷系統*32采用中斷時的主程序結構常用的主程序結構如下: ORG0000H LJMPMAIN ORG中斷入口地址 LJMPINT

? ORGXXXXHMAIN:主程序

INT:中斷服務程序6-451單片機中斷系統

例多外部中斷源的系統示例。

設有5個外部中斷源,中斷優先級排隊順序為:XI0、XI1、XI2、XI3、XI4。試設計它們與80C51單片機的接口。6-451單片機中斷系統*345.3.4中斷程序舉例

ORG0003HLJMPINSE0;轉外部中斷0服務程序入口

ORG0013HLJMPINSE1;轉外部中斷1服務程序入口

ORG1000HMAIN:……;初始化及中斷設置……

SJMP$INSE0:PUSHPSW;XI0中斷服務程序

PUSHACC……POPACCPOPPSWRETI

6-451單片機中斷系統*35INSE1:PUSHPSW;中斷服務程序

PUSHACCJBP1.0,DV1;P1.0為1,轉XI1中斷服務程序

JBP1.1,DV2;P1.1為1,轉XI2中斷服務程序

JBP1.2,DV3;P1.2為1,轉XI3中斷服務程序

JBP1.3,DV4;P1.3為1,轉XI4中斷服務程序INRET:POPACCPOPPSWRETIDV1:……;XI1中斷服務程序

AJMPINRETDV2:……;XI2中斷服務程序

AJMPINRETDV3:……;XI3中斷服務程序

AJMPINRETDV4:……;XI4中斷服務程序

AJMPINRET6-451單片機中斷系統*366-451單片機中斷系統

例圖例:8031單片機的P1口接有8個LED,使用外部中斷0,當每按下一次按鈕,使一只LED亮3秒后熄滅,再按一次按鈕,再使下一只LED亮3秒,再熄滅,如此一直循環下去。6-451單片機中斷系統

ORG

0000H

LJMP

MAIN

ORG

0003H

LJMP

EXTER

ORG1000H

MAIN:MOVSP,#60H;初始化

MOVA,#0H

MOVP1,A

MOVA,#01H

SETB

IT0

SETB

EX0

SETB

EA

LOOP:AJMP

LOOP;等待中斷6-451單片機中斷系統

ORG 2000H

EXTER: MOV P1,A PUSH ACC LCALL DELAY;3s延時 MOV A,#0H MOV P1,A POP ACC RL A RETI 6-451單片機中斷系統DELAY:

MOVR7,#0BDHDL1: MOVR6,#0E6HDL0: MOVR5,#21H DJNZR5,$ DJNZR6,DL0 DJNZR7,DL1 RET END 6-451單片機中斷系統結合下圖所示的ADC0809與8031的接口電路,給出查詢、等待定時和中斷這三種方式下的轉換程序。轉換程序的功能是將由IN0端輸入的模擬電壓轉換為對應的數字量,然后再存入8031內部RAM的30H單元中。1.程序查詢方式2.延時等待方式3.中斷方式a.查詢方式 MOVDPTR,#0FEF8H;指出IN0通道地址 MOVA,#00H MOVX@DPTR,A ;啟動IN0通道轉換 MOVR2,#20HDLY:DJNZR2,DLY ;延時,等待EOC變低WAIT:JBP3.3,WAIT ;查詢,等待EOC變高 MOVXA,@DPTR MOV30H,A ;結果存30Hb.延時等待方式MOVDPTR,#0FEF8H MOVA,#00H MOVX@DPTR,A ;啟動IN0通道 MOVXR2,#48HWAIT:DJNZR2,WAIT ;延時約140μs MOVXA,@DPTR MOV30H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論