關於51微控制器的中斷,關於51微控制器的中斷。

時間 2021-08-13 15:54:57

1樓:廣東人讀書好

、中斷的概念

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次中斷即可。

2樓:

可以的。就要看你的物體掃描到是不是有低電平輸出。

ex0=1;

it0=1;

ea=1;

3樓:匿名使用者

可以,把定時器處置均賦予ff,並啟動定時器,外部計數。

51微控制器外部中斷到底什麼意思?

4樓:匿名使用者

51微控制器有兩個外部中斷申請輸入端:int0 和 int1

這兩個引腳對應兩個中斷入口,只有這兩個引腳上的電平變化,才會觸發相應的中斷

51微控制器中什麼是中斷?其作用是什麼?怎麼用?用自己的理解回答把

5樓:匿名使用者

中斷來就是中途打斷。

通俗自解釋:

你在看影碟,bai有人敲門du(中斷源),中斷了zhi你看影碟,**暫停。處dao理敲門的事宜(中斷目的),處理完成(中斷結束),繼續看影碟(繼續執行原來的任務)。

再比如:你在看電視,水開了(中斷源),把水灌到暖瓶裡(中斷目的),再燒上一壺(繼續開中斷),回去看電視。水又開了。。。。。。。。(迴圈中斷)

以51微控制器16位定時計數器0(t0)來講,

計數是t1是一個能盛65536(十六位時)滴水的水盆,在水龍頭下水一滴滴地滴入盆中。如果盆是空的那水在滴完65536滴水時盆子的水就滿了再滴一滴的時候就溢位了。這時就會產生中斷。

如果盆裡面已經裝入65500滴水(即初裝值),那麼只需要36滴水後就溢位了。

每一個水滴計數時即一個脈衝(高低電平變換一次)。

定時時每一個水滴即一個機器週期,水滴的速度即機器週期,等於12個振盪週期(晶振的振盪頻率除以12),直接影響到溢位的時間。

6樓:匿名使用者

中斷就是好像你

來現自在正在洗衣服,這時候**來了,你就要放下手頭的衣服去接**,接完**繼續回來洗衣服。中斷也是如此,眾所周知,程式是在main函式中從上至下逐條執行的,當中斷髮生時,程式要響應中斷,從而進入到中斷服務子程式中(也就是去接**),處理完中斷服務子程式後,返回到剛才中斷的地方繼續執行(也就是繼續洗衣服)。

至於中斷的作用,基本上就是當cpu在執行現行程式中啟動外部裝置之後,反覆查詢外部裝置的狀態。當外部裝置的資料準備就緒後,主動向cpu發出中斷請求。cpu接到外部裝置的中斷請求後,如果沒有更加緊急的任務,就暫停正在執行的現行程式,轉去執行中斷服務程式,為外部裝置服務。

當中斷服務完成之後,再返回到原先的現行程式中繼續執行。中斷以上的特性在嵌入式系統中有很大的作用。可以響應處理例外事件,多道程式並行執行。

怎麼用我就不說明了,基本上每本教材上說的很詳細了。

7樓:匿名使用者

就像你在吃飯的時候,突然想拉肚子,你必須停止吃飯,跑去廁所解決問題,然後回到座位上繼續吃飯。

夠形象嘛!

怎麼用?每個中斷都有對應跳轉地址,對應一箇中斷服務程式,你必須實現那段程式。

具體,還是看看書。

51微控制器外部中斷實驗程式,51微控制器外部中斷實驗程式

做51微控制器外部中斷實驗,應該有主程式 中斷服務程式。樓主所說這些的亮滅,那些的主程式的?那些是中斷程式的?請問你這個觸發中斷是一個按鍵?你觸發的方式是長時間按下還是瞬間按下?我覺得你應該是長時間按下的。回到正題,你這個中斷服務函式裡只有一句 那麼中斷服務函式執行的速度會很快的,所以如果你只按了一...

關於51微控制器的跑馬燈設定問題,關於51微控制器跑馬燈程式碼的修改。。。

蘇羽奇偶 自己看程式修改一下 include include 延時子程式 void delayms unsigned char ms 主程式 main 穿假鞋打街球 中斷程式void int0 void interrupt0 void int1 void interrupt2 延時程式void de...

51微控制器外部中斷的觸發方式,51微控制器怎麼設定外部中斷?

捲毛 51微控制器的外部中斷有兩種觸發方式可選 電平觸發和邊沿觸發。選擇電平觸發時,微控制器在每個機器週期檢查中斷源口線,檢測到低電平,即置位中斷請求標誌,向cpu請求中斷。選擇邊沿觸發方式時,微控制器在上一個機器週期檢測到中斷源口線為高電平,下一個機器週期檢測到低電平,即置位中斷標誌,請求中斷。這...