




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章MCS-51的內部資源定時/計數器串行通信及其接口中斷
4.1定時/計數器4.1.0定時/計數器的概述4.1.1定時/計數器的結構與原理4.1.2定時/計數器的控制4.1.3定時/計數器的工作方式及應用4.1.4編程舉例
4.1.0概述
1.定時與計數計數:就是數(動詞)數(名詞)即數數數電中有,加法(+1)或減法(-1)計數器。若計數器的輸入CP脈沖來自固定頻率源,也可以用作為定時器。即:定時長度=Tcp*N
定時、延時2.軟件延時與硬件延時軟件延時:編程硬件延時:數字電路脈沖電路定時:單穩態軟硬件延時:在編程控制下的定時/計數器,它能貢獻延時功能,占用CPU時間少4.1.1定時/計數器的結構和工作原理MCS-51單片機內部設有兩個16位可編程定時/計數器,簡稱為定時器0(T0)和定時器1(T1)。16位的定時器/計數器分別由兩個8位寄存器組成,即:T0由TH0和TL0構成,T1由TH1和TL1構成。每個寄存器均可單獨訪問,用于存放定時初值或計數初值的。一個8位的模式控制寄存器TMOD
,設定定時器的工作模式一個8位的狀態控制寄存器TCON。控制定時器的啟動與停止,并保存T0、T1的溢出和中斷標志
控制信號(啟動)選擇方式開關GATE為選通門C/T=0,定時,
/INTx是與中斷有關的引腳信號信號來自晶振頻率/12
TRx為定時/計數器的運行控制位C/T=0,計數控制信號為“1”時開關閉合來自外部事件信號控制信號=(/GATE+/INTx)?TRx
停止由計數器溢出中斷控制1定時器/計數器的結構2定時/計數器的原理1)定時/計數器的定時功能計數器的加1信號由振蕩器的12分頻信號產生,即每過一個機器周期,計數器加1,直至計滿溢出。定時器的定時時間與系統的時鐘頻率有關。因一個機器周期等于12個時鐘周期,所以計數頻率應為系統時鐘頻率的十二分之一。如果晶振頻率為12MHz,則機器周期為1
s。通過改變定時器的定時初值,并適當選擇定時器的長度(8位、13位或16位),可以調整定時時間。
2)定時/計數器的計數功能
通過外部計數輸入引腳T0(P3.4)和T1(P3.5)對外部信號計數,外部脈沖的下降沿將觸發計數。因檢測一個由1至0的跳變需要兩個機器周期,故外部信號的最高計數頻率為時鐘頻率的二十四分之一。如果晶振頻率為12MHz,則最高計數頻率為0.5MHz。為了確保給定電平在變化前至少被采樣一次,外部計數脈沖的高電平與低電平保持時間均需在一個機器周期以上。外部信號最高計數頻率?3定時器/計數器的應用
定時器/計數器具有定時和計數兩種功能,應用范圍如下1.定時與延時控制方面可產生定時中斷信號,以設計出各種不同頻率的信號源;產生定時掃描信號,對鍵盤進行掃描以獲得控制信號,對顯示器進行掃描以不間斷地顯示數據。2.測量外部脈沖方面對外部脈沖信號進行計數可測量脈沖信號的寬度、周期,也可實現自動計數。3.監控系統工作方面對系統進行定時掃描,當系統工作異常時,使系統自動復位,重新啟動以恢復正常工作。4.1.2定時/計數器的寄存器
1模式控制寄存器TMOD2狀態控制寄存器TCON1定時器模式寄存器TMOD
定時器方式寄存器TMOD的作用是設置T0、T1的工作方式TMOD的格式:各位的功能說明:(1)GATE:門控位。GATE=0:軟件啟動定時器,即用指令使TCON中的TR1(TR0)置1即可啟動定時器1(定時器0)。GATE=1:軟件和硬件共同啟動定時器,即用指令使TCON中的TR1(TR0)置1時,只有外部中斷/INT0(/INT1)引腳輸入高電平時才能啟動定時器1(定時器0)。
(2)
C/T:功能選擇位。C/T=0時,以定時器方式工作。C/T=1時,以計數器方式工作。(3)M1、M0:方式選擇位。
定時器工作方式選擇位定義
M1M0工作方式功能描述00方式013位計數器01方式116位計數器10方式2自動重裝初值8位計數器11方式3定時器0:分為兩個獨立的8位計數器定時器1:無中斷的計數器2定時器控制寄存器TCON
TCON的作用是控制定時器的啟動與停止,并保存T0、T1的溢出和中斷標志。TF1(TCON.7):定時器1溢出標志位。當定時器1計滿溢出時,由硬件自動使TF1置1,并申請中斷(2)TR1(TCON.6):定時器1啟停控制位。GATE=0時,用軟件使TR1置1即啟動定時器1,若用軟件使TR1清0則停止定時器1。GATE=1時,用軟件使TR1置1的同時外部中斷INT1的引腳輸入高電平才能啟動定時器1。(3)TF0(TCON.5):定時器0溢出標志位。其功能同TF1
(4)
TR0(TCON.4):定時器0啟停控制位。其功能同TR1
(5)IE1(TCON.3):外部中斷1請求標志位。(6)
IT1(TCON.2):外部中斷1觸發方式選擇位。(7)IE0(TCON.1):外部中斷0請求標志位。(8)IT0(TCON.0):外部中斷0觸發方式選擇位。4.1.3定時/計數器的工作模式
2.模式1(16位)TFl是定時器溢出標志。當滿足條件(TRl=1)AND(GATE=0)為真時,接通計數輸入。當計數值由全1再增1變為全0時,使TFl置1,請求中斷。若TR1=1和GATE=1?
則THl+TLl是否計數取決于/INT引腳的信號,當由0變1時,開始計數,當/INTl由1變0時停止計數。3.工作模式2模式2把定時器寄存器TL1或TL0)配置成一個可以自動重裝載的8位計數器。TL1計數溢出時,不僅使溢出標志TF1置1,而且還自動把TH1中的內容重裝載到TL1中。TH1的內容可以靠軟件預置,重裝載后其內容不變。4.1.4編程舉例
定時/計數器可用匯編或C語言實現編程,無論使用匯編語言還是C語言,都需要對定時/計數器初始化操作,其步驟如下:把工作方式控制字寫入TMOD寄存器中,把定時或計數初值裝入TLx,THx寄存器中置位ETx允許定時/計數器中斷置位EA使CPU開放中斷置位TRx以啟動計數例1:編寫一段程序,讓51MCU的P1.7輸出1ms的方波(用定時器T1完成),fosc=12MHz。定時器初值計算(T機=1us)此時定時時間采用0.5ms采用方式1:N=65536-500/1=65036=0FE0C所以(TH1)=0FEH,(TL1)=0CH注意定時器的初值計算方法!程序流程:開始P1.7置1T1模式設置T1初值設置(0.5ms)中斷設置開中斷循環等待中斷啟動定時器T1中斷入口T1初值設置(0.5ms)中斷返回P1.7取反主程序流程中斷服務子程序流程
ORG 0000H ;主程序
AJMP MAIN ORG 001BH ;定時中斷1入口
AJMP SERT1MAIN:SETB P1.7 MOV TMOD,#10H ;設T1為方式1 MOV TH1,#0FEH ;給T1賦初值
MOV TL1,#0CH SETB ET1 ;開定時器T1中斷
SETB EA SETB TR1 ;啟動定時器T1 SJMP $SERT1:MOV TH1,#0FEH ;定時器回賦初值
MOV TL1,#0CH CPL P1.7 RETI END中斷程序基本結構定時器初始化、開中斷中斷服務程序
例2:設定時/計數器T0為定時狀態,模式1,定時2ms,每當2ms到申請中斷:將A的內容左環移一次送P1口。晶振頻率為6MHz
ORG0000H;給出首地址AJMPMAIN;轉主程序ORG000BH ;T0中斷服務程序MOVTL0,#18H ;送2ms時間常數MOVTH0,#0FCHMOVP1,ARLA ;A累加器內容左移一次送P1口RETIMAIN:MOVSP,#53H ;主程序 MOVTMOD,#01H;T0初始化MOVTL0,#18H MOVTH0,#0FCHMOVA,#01H ;累加器A置01HSTEBTR0 ;啟動T0計數SETBET0 ;允許T0中斷SETBEA;CPU開中斷SJMP$ ;等待例3:設T0工作于模式2,產生500μS定時中斷,中斷服務程序:把累加器A的內容減1,然后送P1口顯示。設晶振頻率為6MHz。
ORG0000HAJMPMNORG000BH DECAMOVP1,ARETIMN:MOVSP,#53HMOVTMOD,#02H MOVTL0,#06H;500時間常數
MOVTH0,#06HSETBTR0 ;啟動T0計數
SETBET0 ;允許T0中斷
SETBEA ;CPU開中斷
SJMP$ ;等待
END
例4:利用GATE=1,TRx=1,只有/INTx引腳輸入高電平時,Tx才被允許計數,利用此,我們將外部輸入正方波經/INTx引腳上輸入,測試出正方波的寬度。
ORG2000H;T0初始化
MOVTMOD,#09H;模式1、定時、GATE置1MOVTL0,#00H MOVTH0,#00HJBP3.2,$;等待/INT0低電平,SETBTR0JNBP3.2,$;等待/INT0上升沿JBP3.2,$;等待/INT下降沿CLRTR;關T0MOVA,TL0MOVB,TH0;計算脈寬或顯示
4.2.1通用異步收發器UART4.2.2串行通信接口4.2.3多處理機通信4.2.4串行通信應用舉例4.2串行通訊及其接口4.2串行通訊及其接口
串行通信的基本概念通信的兩種基本方式(a)并行通信;(b)串行通信4.2.1串行通訊的工作方式1.異步傳送的格式起始位:表示字傳送的開始字符位:規定低位與起始位相連,先傳低位停止位:表示字傳送結束,停止位后可加高電平的空閑位。一幀:從起始位到截止位。起始位、數據位、奇偶校驗位、停止位2.數據傳送的速率—波特率波特率:每秒鐘傳送多少位。例如:計算某計算機的串行傳送,每秒傳送120個字的數據,一個字的編碼為10位,則有數據的傳送速率為?120×10=1200(位/秒)有效的數據位只有7位,表明有效數位傳送速率為7×120=840(位/秒)結論:有效數據傳送速率不等于波特率。圖3.2.1串行通信數據傳送的三種方式(a)單工方式;(b)半雙工方式;(c)全雙工方式3.串行數據傳送的方向4.通用異步接收/發送UARTUART(UniversalAsynchronousReceiver/Transmitter)特點:
1
由硬件完成并行轉串行輸出,又能將串行轉并行接收。在收/發中能識別奇偶錯誤,幀錯誤和溢出(丟失)錯誤等
2
采用外部時鐘同步的方式,時鐘周期是數據周期的1/16
3MCS-51的串行通訊接口是具有UART功能的可編程的全雙工傳送的通訊接口,內部有互相獨立的接收和發送緩沖器SBUF,但共用一個字地址99H。MCS-51串行口結構示意圖4.2.2MCS-51的串行通訊接口1)串行控制寄存器SCON(字地址為98H)
SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998串行口操作方式選擇位SM0和SM1SM0SM1方式功能波特率000101l0123同步移位寄存器8位數據位UART9位數據位UART9位數據位UARTfosc/l2可變fosc/64或fosc/32可變SM2多處理機通信使能位REN允許接收控制位
TB8發送數據第8位
RB8接收數據第8位
TI發送中斷標志RI接收中斷標志
SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998
串行控制寄存器SCON(字地址為98H)
2)特殊功能寄存器PCON(字地址為87H)
PCOND7D6D5D4D3D2D1D0位名稱SMOD———GF1GF0PDIDLSMOD=1,串行口波特率加倍。PCON寄存器沒有位尋址。?
SMOD:在串行口工作方式1、2、3中,是波特率加倍位
=1時,波特率加倍
=0時,波特率不加倍。
(在PCON中只有這一個位與串口有關)
發送時,只需將發送數據輸入SBUF,CPU將自動啟動和完成串行數據的發送;
接收時,CPU將自動把接收到的數據存入SBUF,用戶只需從SBUF中讀出接收數據。3)
串行數據緩沖器SBUF
在邏輯上只有一個,既表示發送寄存器,又表示接收寄存器,具有同一個單元地址99H,用同一寄存器名SBUF。在物理上有兩個,一個是發送緩沖寄存器,另一個是接收緩沖寄存器。指令MOVSBUF,A
啟動一次數據發送,可向SBUF
再發送下一個數指令MOVA,SBUF
完成一次數據接收,SBUF可再接收下一個數2MCS-51串行接口的四種工作方式1)方式0移位寄存器方式,RXD為數據的輸入、輸出端,TXD為同步信號輸出端。傳送波特率為fOSC/12,發送和接收均為8位數據,低位在前,高位在后。由于波特率是固定的,所以不需要定時/計數器產生波特率,當以中斷方式傳送數據時,中斷標志TI和RI必須由軟件清除。
方式0發送和接收時序方式0接收時,REN為串行口接收允許接收控制位,REN=0,禁止接收。方式0下,SCON中的TB8、RB8位沒有用到,發送或接收完8位數據由硬件將TI或中斷標志位RI置“1”,CPU響應中斷。TI或RI標志位須由用戶軟件清“0”,可采用如下指令:
CLR TI ;TI位清“0”
CLR RI ;RI位清“0”方式0時,SM2位(多機通信控制位)必須為0。注意:
2)方式1方式1用于數據的串行發送和接收。TXD腳和RXD腳分別用于發送和接收數據。方式1收、發一幀的數據為10位,1位起始位(0),8位數據位,1位停止位(1),先發送或接收最低位。
波特率由下式確定:
方式1波特率=(2SMOD/32)×定時器T1的溢出率
SMOD為PCON寄存器的最高位的值(0或1)。下一幀接收的有效條件是,同時滿足下面兩個條件:①RI=0,即上次傳送接收的中斷標志已清除;②SM2=0或接收到停止位為1。方式1時序圖3)方式2方式2為9位數據異步通信方式。每幀數據均為11位,1位起始位0,8位數據位(先低位),1位可程控的第9位數據和1位停止位。方式2波特率=(2SMOD/64)×fosc方式2發送前,先根據通信協議由軟件設置TB8(例如,雙機通信時的奇偶校驗位或多機通信時的地址/數據的標志位)。方式2發送時序方式2接收SM0、SM1=10,且REN=1。數據由RXD端輸入,接收11位信息。當位檢測邏輯采樣到RXD引腳從1到0的負跳變,并判斷起始位有效后,便開始接收一幀信息。在接收完第9位數據后,需滿足以下兩個條件,才能將接收到的數據送入SBUF。
(1)?RI=0,意味著接收緩沖器為空。
(2)?SM2=0或接收到的第9位數據位RB8=1。方式2接收時序4)方式3
當SM0、SM1=11時,串行口工作在方式3。方式3波特率可變的9位數據異步通信方式。方式3的波特率由下式確定:
方式3波特率
=方式3時序圖
MCS-51串行接口的工作過程1)
發送過程,CPU執行MOVSBUF,A指令將數據寫入SBUF自動啟動移位寄存器按起始位、數據低位、高位、奇偶校驗、停止位順序發送,一幀完后,硬件自動使TI=1申請中斷,中斷后由軟件清除2)接收過程,執行CLRRI指令,串行口以所選定波特率的16倍速率采樣RXD端狀態,當采到RXD的下降沿時啟動接收器接收一幀代碼,并把該代碼拼成并行碼送入接收緩沖寄存器中。接收完后置RI=1向CPU申請中斷。中斷后由軟件清除
四種工作方式的區別主要表現在幀格式及波特率兩個方面。工作方式幀格式波特率方式08位全是數據位,沒有起始位、停止位固定,即每個機器周期傳送一位數據方式110位,其中1位起始位,8位數據位,1位停止位不固定,取決于T1溢出率和SMOD方式211位,其中1位起始位,9位數據位,1位停止位固定,即2SMOD×fosc/64方式3同方式2同方式1方式2、3其中數據字的第9位。多處理機通信中,該位為1時表示該幀為地址信息,主要用于選擇與相同地址的從機進行通訊。非多處理機通信中,該位是奇偶位。(2).在波特率的選擇上:
方式0的波特率
=fosc/12
固定
方式2的波特率=
方式1、3的波特率
=
波特率=2SMOD×(T1溢出率)/32
在實際應用時,通常是先確定波特率,后根據波特率求T1定時初值,因此上式又可寫為:
溢出率:T1溢出的頻繁程度
T1溢出一次所需時間的倒數。
解決的方法只有調整單片機的時鐘頻率fosc,通常采用11.0592MHz晶振。3、常用波特率及其產生條件
常用波特率通常按規范取1200、2400、4800、9600、…,若采用晶振12MHz和6MHz,則計算得出的T1定時初值將不是一個整數,產生波特率誤差而影響串行通信的同步性能。串行口程序設計舉例
1.串行口初始化1)串行口的波特率選擇:常選fosc=11.0592MHz,其優點是能容易獲得標準波特率,常用定時/計數器T1在工作模式2作為串行口波特率發生器,常用的標準波特率和TH1初值的關系有:
fosc=11.0592MHz 19200bpsSMOD=1TH1初值為FDH9600bpsSMOD=0TH1初值為FDH4800bpsSMOD=0TH1初值為FAH2400bpsSMOD=0TH1初值為F4H1200bpsSMOD=0TH1初值為E8H2)用定時/計數器T1產生波特率的初始化:初始化對TMOD寄存器送控制字,定時器1的工作模式2,采用8位自動裝入初值。根據波特率選擇計算或查表將時間常數送入TH1,TL1;令TR1=1啟動定時器/計數器1工作;3)串行口初始化(1)SCON串行控制寄存器(工作狀態控制字)的初始化,(2)對PCON寄存器送控制字,實際上僅對D7位SMOD控制位1或0。(3)串行口用中斷方式接收/發送數據時,串行口和CPU開中斷。對IE寄存器送中斷控制字或置位相應的控制位。(4)啟動串行口,當為發送時用MOVSBUF,A指令;接收時用CLRRI指令。2.串行口程序計舉例移位寄存器2.串行口程序計舉例
設有甲、乙兩臺單片機,用子程序調用的方法進行串行單工通訊功能:甲機發送:從內部RAM單元20H~25H中取出6個ASCII碼數據,在最高位加上奇偶校驗位后串行口發送。波特率為1200(fosc=11.0592MHz)乙機接收:接收機把接收到的6個ASCII碼數據,先檢查奇偶校驗。若傳送正確,將數據依次存放在內部RAM區20H~25H單元中。若奇偶出錯,則將出錯信息“FFH”存入相應的單元。甲機發送:主程序
ORG2000H MOVTMOD,#20HMOVTH1,#0E8H MOVTL1,#0E8HMOVSCON,#40HSETBTR1 MOVR0,#20H MOVR7,#06HLOOP:MOVA,@R0 LCALLOUT1 INCR0 DJNZR7,LOOP
OUT1:MOVC,P CPLC MOVACC.7,C MOVSBUF,A JNBTI,$CLRTI RET
乙機接收:主程序
ORG2000H MOVTMOD,#20HMOVTH1,#0E8HMOVTL1,#0E8HSETBTR1 MOVR0,#20H MOVR7,#06H LOOP:LCALLIN1 JC ERROR MOV@R0,ALOOP1:INCR0 DJNZR7,LOOP
IN1:MOVSCON,#50HJNBRI,$ CLRRI MOVA,SBUF
MOVC,PCPL CANLA,#7FHRET ERROR:MOV@R0,#0FFH SJMPLOOP14.3中斷
在單片機中,當CPU在執行程序時,由單片機內部或外部的原因引起的隨機事件要求CPU暫時停止正在執行的程序,而轉向執行一個用于處理該隨機事件的程序,處理完后又返回被中止的程序斷點處繼續執行,這一過程就稱為中斷。1、中斷概念CPU在處理某一事件A時,發生了另一事件B請求CPU迅速去處理(中斷發生或中斷請求);CPU暫時中斷當前的工作,轉去處理事件B(中斷響應和中斷服務);待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續處理事件A(中斷返回)。中斷是什么?中斷請求→中斷響應→中斷服務→中斷返回中斷事件B的處理過程事件A事件B
1)中斷是隨機產生的。目的是處理外設中斷源的各種事務,而子程序是編寫程序中事先安排的,是為主程序服務的。
2)中斷時必須保護斷點和現場。
3)返回命令也不同。中斷處理類似于子程序調用,區別?2中斷的功能中斷系統是指能實現中斷功能的硬件和軟件。中斷系統的功能一般包括進行中斷優先級排隊實現中斷嵌套自動響應中斷實現中斷返回中斷的優點:可以提高CPU的工作效率實現實時處理處理故障(1)進行中斷優先級排隊通常,單片機中有多個中斷源,設計人員能按輕重緩急給每個中斷源的中斷請求賦予一定的中斷優先級。當兩個或兩個以上的中斷源同時請求中斷時,CPU可通過中斷優先級排隊電路首先響應中斷優先級高的中斷請求,等到處理完優先級高的中斷請求后,再來響應優先級低的中斷請求。中斷優先級的處理原則是:不同級的中斷源同時申請中斷時:先高后低,正處理低級中斷又收到高級中斷請求時:停低轉高,處理高級中斷卻收到低級中斷請求時:高不睬低,同一級的中斷源同時申請中斷時:事先規定(2)實現中斷嵌套(3)自動響應中斷中斷源向CPU發出的中斷請求是隨機的。通常,CPU總是在每條指令的最后狀態對中斷請求信號進行檢測;當某一中斷源發出中斷請求時,CPU能根據相關條件(如中斷優先級、是否允許中斷)進行判斷,決定是否響應這個中斷請求。若允許響應這個中斷請求,CPU在執行完相關指令后,會自動完成斷點地址壓入堆棧、中斷矢量地址送入程序計數器PC、撤除本次中斷請求標志,轉入執行相應中斷服務程序。(4)實現中斷返回
CPU響應某一中斷源中斷請求,在執行中斷服務程序最后的中斷返回指令時,會自動彈出堆棧區中保存的斷點地址,返回到中斷前的原程序中。
中斷系統主要由與中斷有關的4個特殊功能寄存器和硬件查詢電路等組成。定時器控制寄存器TCON——用于保存中斷信息。串行口控制寄存器SCON——用于保存中斷信息。中斷允許寄存器IE——用于控制中斷的開放和關閉。中斷優先級寄存器IP——用于設定優先級別。硬件查詢電路——用于判定5個中斷源的自然優先級別。MCS-51中斷系統的構成中斷源MSC-51單片機有5個中斷源外部中斷0——/INT0外部中斷1——/INT1定時器/計數器T0中斷定時器/計數器T1中斷串行口中斷那些部件可以向CPU發出中斷申請呢?中斷系統及其管理定時/計數控制寄存器TCON
TFl
:定時器1溢出標志
TR1:定時器1運行控制位
TF0:定時器0溢出標志TR0:定時器0運行控制位
IEl
:外部沿觸發中斷1請求標志。ITl:外部中斷1類型控制位。靠軟件來設置或清除,
ITl=1時,是下降沿觸發,IT1=0時,是低電平觸發。IE0:外部沿觸發中斷0請求標志。IT0:外部中斷0類型控制位。TF1TR1TF0TR0IE1IT1IE0IT08F8E8D8C8B8A8988串行控制寄存器SCON(字地址98HTI(SCON.1)發送中斷標志。在任何模式中,都必須由軟件來清除TI。RI(SCON.0)接收中斷標志。必須靠軟件清除RI。在系統復位時,SCON中的所有位都被清除。SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998中斷允許控制寄存器IE(字地址為(0A8H)EX0=1:允許外部中斷0申請中斷EX1=1:允許外部中斷1申請中斷ET0=1:允許定時器T0申請中斷ET1=1:允許定時器T1申請中斷ES=1:允許串口申請中斷EA=1:中斷總控位打開允許中斷,=0禁止任何中斷例如:允許INT0和INT1申請中斷可用MOVIE,#85H;或MOV0A8H,#85H(不好)SETBEA;開中斷總控位SETBEX0;允許INT0中斷和SETBEX1;允許INT1中斷D7D6D5D4D3D2D1D0EAESET1EX1ET0EX01:允許0:禁止中斷優先級控制(硬件優先+軟件優先)硬件優先——單片機內部有一個默認的中斷優先級順序外部中斷0優先級最高定時器T0外部中斷1定時器T1串口優先級最低先響應那些中斷?后響應那些哪些中斷?優先級控制寄存器IP(0B8H)PX0(IP.0):外部中斷0優先級設定位PT0(IP.1):定時/計數器T0優先級設定位PX1(IP.2):外部中斷1優先級設定位PT1(IP.3):定時/計數器T1優先級設定位PS
(IP.4):串行口優先級設定位例如:PX0=0,PT0=0,PX1=1,PT1=0,PS=1
結果:中斷優先級順序人為設置為,PX1,PS,PX0,PT0,PT1。D7D6D5D4D3D2D1D0---PSPT1PX1PT0PX01:優先0:滯后優先級對中斷響應的影響:CPU同時接收到幾個中斷時,首先響應優先級別最高的中斷請求。正在進行的中斷過程不能被新的同級或低優先級的中斷請求所中斷。正在進行的低優先級中斷服務,能被高優先級中斷請求所中斷。這稱之為“中斷嵌套”。中斷開放和禁止優先權改變事先規定申請標志及撤除入口地址EX0=1開放PX0=1優先/INT0IE0硬件撤除0003HET0=1開放PT0=1優先T0IT0硬件撤除000BHEX1=1開放PX1=1優先/INT1IE1硬件撤除0013HET1=1開放PT1=1優先T1IT1硬件撤除001BHES=1開放PS=1優先串行口TI&RI軟件撤除0023H中斷系統管理4.3.3.響應中斷的條件中斷響應CPU響應中斷的條件是:中斷源有中斷請求此中斷源的中斷允許位為1CPU開中斷(即EA=1)同時滿足時,CPU才有可能響應中斷。還不能肯定嗎?中斷響應遇到以下任一情況,中斷響應將受阻:CPU正在處理同級或高優先級中斷;即在完成所執行指令前,不會響應中斷,從而保證指令在執行過程中不被打斷;正在執行的指令為RET、RETI或任何訪問IE或IP寄存器的指令。即只有在這些指令后面至少再執行一條指令時才能接受中斷請求。若由于上述條件的阻礙中斷未能得到響應,當條件消失時該中斷標志卻已不再有效,那么該中斷將不被響應。響應過程一旦CPU決定響應中斷,則CPU會去執行相應的中斷服務程序。中斷響應的過程包括:自動保護斷點地址程序轉至中斷服務程序的入口地址執行中斷服務子程序自動保護和恢復現場處理中斷源請求中斷返回CPU完成中斷服務后,返回到原來暫停的位置(即斷點),繼續執行原來的程序。返回方式:使用RETI指令返回RETI指令的任務:取出保存的斷點地址給PC;4.3.4外部中斷1)外部中斷的觸發方式分電平和沿觸發兩種,它們均由TCON中的IT1和IT0決定。當ITX=1,外部中斷為邊沿觸發方式,下降沿有效。在這種方式中,如果在/INTX端連續采到一個機器周期的高電平和緊接著一個周期的低電平,則在TCON寄存器中的中斷申請標志位IEX就被置位保存,由IEX位向CPU申請中斷,一但CPU響應中斷進入中斷服務程序后,IEX會被CPU自動撤除。由于外部中斷源在每個機器周期被采樣一次,所以中斷源的高電平或低電平至少保留兩個機器周期。這種方式適用于中斷源為脈沖性質的場合。當ITX=0,外部中斷為電平觸發方式,低電平有效。例如/INT0=0表示對應的外設有請求。CPU在檢測到/INT0上的低電平時置位IE0,這時盡管CPU響應中斷時相應的中斷標志IE0能自動復位,但若外部中斷源不能及時撤除它在/INT0引腳上的低電平,就會再次使已經變為“0”的中斷標志再次置位繼續執行中斷而造成混亂。因此必須使/INTX引腳上的低電平隨著中斷被CPU響應后立即變為高電平,建議采用圖6-2所示電路實現中斷撤除,為此在中斷服務程序開頭必須安排一條將DFF的Q端置“1”的指令。1)外部中斷請求信號直接加到D觸發器的CP端,當外部中斷請求的低電平脈沖信號出現在CP端時,D觸發器的Q端置0,INT0或INT1引腳為低電平,發出中斷請求。外部中斷的撤除電路
外部中斷的響應時間從外部中斷源申請到CPU確認至少需要1個機器周期。而CPU要保護斷點,自動轉入中斷服務程序又需要2個機器周期,這樣說明外部中斷的響應時間至少需要3個完整機器周期。若正在執行RETI指令,而后又有MUL或DIV指令,則必須等待約五個機器周期。而遇上高級中斷正在進行則要看中斷服務程序的長短決定,則需要更長時間的等待。一般對于單一中斷源的情況下,中斷響應時間總是在3~8個機器周期之間。4.3.5中斷編程舉例
中斷程序編程結構匯編程序
ORG0000H;AJMPMAIN;轉到主程序
ORG0003HAJMPINT0;轉到中處程序MAIN:……SP初始化開中斷等待中斷
INT0:……
關中斷;保護現場中不許中斷保護現場開中斷;開中斷允
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 光學玻璃的殘余應力分析考核試卷
- 營養知識在慢性病管理中的應用考核試卷
- 貨運火車站物流設備維護保養與故障排除考核試卷
- 木材加工在建筑維護中的應用考核試卷
- 礦物加工與無機鹽生產考核試卷
- 連續搬運設備數字化設計與仿真考核試卷
- 圖書館綠色建筑設計考核試卷
- 肥料制造工藝改進與新農村建設研究考核試卷
- 醫院藥劑輔助人員藥品研發與知識產權運營合同
- 電商店鋪代運營及供應鏈管理服務協議
- 甘肅麻辣燙介紹
- 暴雨天氣注意安全課件
- 天然氣安全技術說明書
- 供電公司隱患排查總結報告
- 《揭開貨幣神秘面紗》課件
- 商業銀行業務與經營練習題
- 系統云遷移方案
- 山東省醫院護理服務質量評價細則
- HSK六級真題與答案下載(第一套)
- 工程量確認單
- 無機化學之錫鉛重要化合物介紹課件
評論
0/150
提交評論