什么是單片機(jī)的中斷處理?單片機(jī)的定時(shí)器中斷
什么是單片機(jī)的中斷處理?總的來說中斷是單片機(jī)具有處理內(nèi)外隨機(jī)發(fā)生事件的能力,具體來說的話就是單片機(jī)在處理某一任務(wù)時(shí),可以暫停這一任務(wù)的處理,轉(zhuǎn)而去處理更重要的任務(wù),等這一任務(wù)處理完后再接著之前的任務(wù),可以說是單片機(jī)最重要的特征。舉個(gè)例子,小明在家里做作業(yè),這個(gè)時(shí)候有人敲門,此時(shí)小明停止寫作業(yè)起身去開門。這個(gè)例子中“有人敲門”就是外部的一個(gè)激勵(lì)事件,小明停止寫作業(yè)就是對(duì)這一外部激勵(lì)事件的響應(yīng),小明開門迎接朋友之后繼續(xù)做作業(yè),那么這就是一個(gè)完整的中斷了。中斷的優(yōu)先級(jí)
繼續(xù)以小明這個(gè)例子,同樣的小明在做作業(yè),而且邊上有熱水壺在燒開水,這個(gè)時(shí)候有人在敲門,此時(shí)小明起身去開門;當(dāng)小明快走到門口的時(shí)候,熱水壺的水燒開了發(fā)出提醒的蜂鳴聲,這個(gè)時(shí)候小明有兩個(gè)選擇,一是不管熱水壺的蜂鳴聲,繼續(xù)去開門;而是先關(guān)掉熱水壺的電源再去開門。這里就涉及到熱水燒開和有人敲門兩個(gè)事件中哪件更重要,越重要的優(yōu)先級(jí)越高。這就看有人敲門和熱水燒開在小明心中的重要性了。回到單片機(jī),我們就可以設(shè)置中斷激勵(lì)事件的優(yōu)先級(jí)。本系列采用的是AT89C52單片機(jī),該單片機(jī)有6個(gè)中斷源,這里我們做一個(gè)表格。大家先有這么一個(gè)概念,這一節(jié)只會(huì)用到定時(shí)器0的中斷實(shí)現(xiàn)LED等閃爍,其他的如外部中斷在用到的時(shí)候再去了解。
小明的例子中大家應(yīng)該認(rèn)識(shí)了什么是單片機(jī)的中斷以及中斷有優(yōu)先級(jí)這一屬性,還有一點(diǎn)提醒下,就是我們要用到某一中斷源時(shí),除了開啟該中斷源,還必須得設(shè)置全局中斷允許位EA。說白了就是小明在做作業(yè)的時(shí)候首先得允許其他事件的發(fā)生,否則的話小明就會(huì)一直在做作業(yè)直到完成而不管外界發(fā)生的任何事情,這一點(diǎn)是很好理解的。
中斷允許寄存器IE用來設(shè)定各個(gè)中斷源的開啟和關(guān)閉,該寄存器可以位尋址,即對(duì)該寄存器的某一位進(jìn)行單獨(dú)操作,單片機(jī)復(fù)位時(shí)IE全部清零,也就是關(guān)閉中斷。
EA是全局中斷允許位,ET2是定時(shí)器2中斷允許位,ES是串行口中斷允許位,ET1是定時(shí)器1中斷允許位,EX1是外部中斷1允許位,ET0是定時(shí)器0中斷允許位,EX0是外部中斷0允許位,都是置1時(shí)開啟,清0時(shí)關(guān)閉。
單片機(jī)的定時(shí)器中斷
單片機(jī)的定時(shí)器本質(zhì)上是加1計(jì)數(shù)器,由高8位和低8位兩個(gè)寄存器組成。TMOD寄存器是定時(shí)器的工作方式寄存器,確定工作方式和功能;TCON寄存器是控制寄存器,控制T0和T1的啟動(dòng)、停止及溢出標(biāo)志。工作于定時(shí)器模式時(shí),加1操作是對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)(1個(gè)機(jī)器周期等于12個(gè)時(shí)鐘周期,1個(gè)時(shí)鐘周期等于晶振的倒數(shù))。當(dāng)定時(shí)器中斷允許時(shí),高8位和低8位構(gòu)成的寄存器加滿至全1時(shí),再來一個(gè)加1操作就清空,此時(shí)TCON寄存器中的TF0或TF1溢出標(biāo)志位置1,單片機(jī)產(chǎn)生定時(shí)器中斷激勵(lì)。
TMOD用來設(shè)置定時(shí)器的工作方式,不能位尋址,單片機(jī)復(fù)位時(shí)TMOD全部被清零。
其中GATE位是門控制位:
GATE = 0,定時(shí)器啟動(dòng)與停止僅受TCON寄存器中TRX(X=0或1)來控制;
GATE = 1,定時(shí)器啟動(dòng)與停止由TCON寄存器中TRX(X=0或1)和外部中斷引腳INT0或INT1上的電平狀態(tài)(電平狀態(tài)為高電平時(shí)有效)來共同控制。
C/T位是定時(shí)器/計(jì)數(shù)器模式選擇位:
C/T = 1時(shí)為計(jì)數(shù)器模式;C/T = 0時(shí)為定時(shí)器模式。
M1和M0是工作方式選擇位,每個(gè)定時(shí)器有4種工作方式,由M1和M0組合設(shè)定,如下表所示。
定時(shí)器控制寄存器TCON可以位尋址,用來設(shè)置定時(shí)器中斷的啟動(dòng)、停止和溢出等,單片機(jī)復(fù)位時(shí)清零。
TF1:定時(shí)器1溢出標(biāo)志位。
當(dāng)定時(shí)器1計(jì)滿溢出時(shí)由硬件置1,并且申請(qǐng)進(jìn)入中斷,進(jìn)入中斷服務(wù)程序后由硬件自動(dòng)清0,也就是說用定時(shí)器中斷時(shí)該位完全不用人為操作,我們的任務(wù)就是寫好中斷服務(wù)程序。
TR1:定時(shí)器1運(yùn)行控制位,置1時(shí)有效。
TF0和TR0則對(duì)應(yīng)定時(shí)器0,含義和操作同TF1和TR1。
編輯:admin 最后修改時(shí)間:2018-05-08