51微控制器中斷學習

2021-06-22 18:07:06 字數 3382 閱讀 7025

一、中斷的概念

cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理(中斷發生);

cpu暫時中斷當前的工作,轉去處理事件b(中斷響應和中斷服務);

待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a(中斷返回),這一過程稱為中斷

二、中斷源

在51微控制器中有5個中斷源

中斷號 

優先順序 

中斷源 

中斷入口位址 

0 1(最高) 

外部中斷0 

0003h

1  2 

定時器0 

000bh

2  3 

外部中斷1 

0013h

3  4 

定時器1 

0018h

4 5 

串列埠總段 

0023h

三、中斷暫存器

微控制器有10個暫存器主要與中斷程式的書寫控制有關

1.中斷允許控制暫存器ie

2.定時器控制暫存器tcon

3.串列埠控制暫存器scon

4.中斷優先控制暫存器ip

5.定時器工作方式控制暫存器tmod

6.定時器初值賦予暫存器(th0/th1,tl0/tl1)

暫存器詳細說明:

四、暫存器功能與賦值說明

注:在用到中斷時,必須要開總中斷ea,即ea=1。 

//開總中斷

1.中斷允許控制暫存器ie

ex0(ex1):外部中斷允許控制位

ex0=1 外部中斷0開關閉合 

//開外部0中斷

ex0=0 外部中斷0開關斷開

et0(et1):定時中斷允許控制位

et0=1 定時器中斷0開關閉合

//開內部中斷0

et0=0 定時器中斷0開關斷開

es: 串列埠中斷允許控制位  

es=1 串列埠中斷開關閉合 

//開串列埠中斷

es=0 串列埠中斷開關斷開

2.定時器控制暫存器 tcon 

//控制外部中斷和定時器中斷

外部中斷:

ie0(ie1):外部中斷請求標誌位  

當int0(int1)引腳出現有效的請求訊號,此位由微控制器自動置1,cpu開始響應,處理終端,而當入

中斷程式後由微控制器自動置0.

//外部中斷,即外部中斷相應的引腳接入低電平或下降沿訊號時,中斷開始響應。

it0(it1):外部中斷觸發方式控制位

//選擇有效訊號

it0(it1)=1:脈衝觸發方式,下降沿有效。

it0(it1)=0:電平觸發方式,低電平有效。

內部中斷:

tf0(tf1):內部定時器/計數器溢位中斷標誌位

當定時器、計數器計數溢位的時候,此位由微控制器自動置1,cup開始響應,處理中斷,而當進入中

斷程式後由微控制器自動置0.

//內部中斷實際上就是利用內部的計數器,只不過提供計數的脈衝來自微控制器自身。

tro(tr1):定時器/計數器啟動位 

//啟動定時器

tro(tr1)=1; 啟動定時器/計數器0

tr0(tr1)=0; 關閉定時器/計數器0

3.串列埠控制暫存器scon

ti:序列口傳送中斷標誌位

當微控制器串列埠傳送完一幀資料後,此位由微控制器自動置1,而當進入中斷服務程式後是不會自動清0的,

必須由使用者在中斷服務中用軟體清0.

ri:序列口接收中斷標誌位

當微控制器串列埠接收完一幀資料後,此位由微控制器自動置1,而當進入中斷服務程式後是不會自動清0的,

必須由使用者在中斷服務軟體中用軟體清0.

(ip以後補上,tmod,tl0/th0 在定時器/計數器中講)

五、中斷結構圖:

六、定時器/計數器

1.計數的定義:

計數是指對外部事件進行計數,外部事件的發生以輸入脈衝的形式表示,因此計數功能的實質就是對外來

的脈衝進行計數,在微控制器中對應引腳t0和t1,兩個脈衝輸入端。

外部輸入的脈衝在負跳變時有效(即外部脈衝由1變化到0),計數器加1.

2.定時器:

定時器是通過計數器的計數來實現的,不過此時的計數脈衝來自微控制器的內部,因此定時器的實質是對內

部脈衝的計數,在微控制器中,每個機器週期產生一次計數脈衝,計數器加1.

3.工作方式控制暫存器tmod:

tmod的低半位元組(d0,d1,d2,d3)用來控制定時器/計數器0

tmod的高半位元組(d4,d5,d6,d7)用來控制定時器/計數器1

對tmod中的內容說明:

gate——門控制。   

gate=1時,由外部中斷引腳int0、int1來啟動定時器t0、t1。   

當int0引腳為高電平時tr0置位,啟動定時器t0;   

當int1引腳為高電平時tr1置位,啟動定時器t1。   

gate=0時,僅由tr0,tr1置位分別啟動定時器t0、t1。

c/t——功能選擇位   

c/t=0時為定時功能,c/t=1時為計數功能。     

m0、m1——方式選擇功能   

由於有2位,因此有4種工作方式 

4.根據微控制器晶振,所選tmod的的工作方式,所要定的時間,來確定tho和tlo所要賦予的初值

(以12m晶振,工作方式1,16位計數器為例,設所定時間為xus(16為計數器最大數65536,即65536us,若所

定時間大於65535,則要用if語句控制,現假設x<65535))

1.時鐘週期的時間t=1/12m=1/12 us

2.機器週期的時間t=12*1/12=1 us

3.因為每經過乙個機器週期計數器+1,所以,計數器+1,經過的時間為 1 us。

若所定時間為x,則要求經過xus,中斷響應,又因為16為計數器要全部置1(即達到65535)+1後,中斷才會

響應,所以,初值=(65536-x)

4.將初值轉化為16進製製碼,分別付給tho和tlo

eg:所定時間5ms

初值=(65536-5000)=60536=ec78

th0=0xec; tl0=0x78;

(當工作方式不同時,th0/tl0的賦值也不同,個人覺得有了16位計數器了,其餘的沒什麼用,不介紹了)

5.寫程式時另一種tho/tlo賦值方法

th0=(65536-20000)/256; 

tl0=(65536-20000)%6;

這樣設定,每經過20ms,發生一次中斷,中斷時間一般以秒為單位,所以經過n次中斷即可。

51微控制器 中斷

一 中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷發生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5個中斷源 中斷號...

51微控制器 中斷

中斷,是微控制器的一種執行機制。標準的51微控制器有兩個控制中斷的暫存器。乙個是中斷使能暫存器,另乙個是中斷優先順序暫存器。ie 中斷使能暫存器的位分配 位址0xa8,可位定址 位7 6543 210符號 ea et2es et1ex1 et0ex0 復位值000 0000 0ie 中斷使能暫存器的...

51微控制器學習筆記 中斷

52微控制器共有6個中斷源。中斷源解釋 埠線int0 外部中斷0,低電平或下降沿引起 p3.2 int1 外部中斷1,低電平或下降沿引起 p3.3 t0定時器 計數器0,由t0計數器計滿回零引起 p3.4 t1定時器 計數器1,由t1計數器計滿回零引起 p3.5 t2定時器 計數器2,由t2計數器計...