導航:首頁 > 操作系統 > 單片機外部中斷1

單片機外部中斷1

發布時間:2022-05-13 11:55:27

單片機外部中斷有哪兩種觸發方式如何選擇和設定

void
INT_System_init(void)
{
IT0
=
0;
/*
外部中斷0,低電平觸發中斷
*/
//
IT0
=
1;
/*
外部中斷0,下降沿觸發中斷
*/
EX0
=
1;
/*
允許外部中斷0
中斷
*/
IT1
=
0;
/*
外部中斷1,低電平觸發中斷
*/
//
IT1
=
1;
/*
外部中斷1,下降沿觸發中斷
*/
EX1
=
1;
/*
允許外部中斷1
中斷
*/
EA
=
1;
/*
開總中斷控制位
*/
}一個是下降沿
一個是低電平
通過控制IT0
IT1來控制

Ⅱ 將單片機的外部中斷1、定時器中斷0打開,要求定時器0的中斷優先順序高於外部中斷1,外部中斷1採用邊沿

關於中斷的優先順序有一下原則:
1、CPU同時接收到幾個中斷時,首先響應優先順序最高的中斷請求,低優先的進入隊列等待;
2、正在進行的中斷過程不能被新的同級或低優先順序的中斷請求所中斷;
3、正在進行的低優先順序中斷服務,能被高優先順序中斷請求中斷;

那麼,IP寄存器的某一中斷配置為1就成為高優先順序。每一個中斷在IP裡面只佔一位配置位(IP.x=0或OP.x=1),也就是說系統里只存在兩種優先順序,要麼是高優先順序,要麼是低優先順序。

如果,任何中斷都不配置IP寄存器的優先順序,也等同於系統上電時,默認的優先順序順序如下:

外部中斷0 > 定時/計數器0 > 外部中斷1 > 定時/計數器1 > 串列中斷

關於外部中斷的寄存器已經了解清楚了,接下來看代碼設計:

外部中斷0(下降沿觸發)
/*-----------------------------------------------
  功能:外部中斷0邊沿觸發
  現象:首先將P3.2口通過上拉電阻接到電源,保證在空閑時P3.2處於高電平;
       當外部中斷信號輸出口P3.2接到GND時,產生了一個下降沿信號,接到P0.0
       口的LED燈反轉;若此後P3.2持續接到GND,LED只反轉一次,這與電平觸發
       有區別。
------------------------------------------------*/
#include 
sbit LED=P0^0; //定義LED埠
void DelayMs(unsigned char t)     //大致延時1mS
{
 unsigned short T=500;
 while(t--)
 {
     while(--T);
 }
}
void INT0_init(void) //外部中斷0初始化
{
  LED=1;       //LED口初始值
  EA=1;          //全局中斷開
  EX0=1;         //外部中斷0開
  IT0=1;         //邊沿觸發
}
main()
{
  INT0_init();
  while(1){
     //主循環
  }
}
//中斷服務程序  interrupt 0 指明是外部中斷0的中斷函數
/*
interrupt 0  指明是外部中斷0;
interrupt 1  指明是定時器中斷0; 
interrupt 2  指明是外部中斷1;
interrupt 3  指明是定時器中斷1;
interrupt 4  指明是串列口中斷;
*/
void ISR_Key(void) interrupt 0 using 1
{
 if(!INT0){
    DelayMs(10);       //防抖動
    if(!INT0){         
     LED=!LED;         //按下觸發一次,LED取反一次
    }
 }
}
外部中斷0(電平觸發)
/*-----------------------------------------------
  功能:外部中斷0電平觸發
  現象:首先將P3.2口通過上拉電阻接到電源,保證在空閑時P3.2處於高電平;
       當外部中斷信號輸出口P3.2接到GND時,產生了一個低電平信號,接到P0.0
       口的LED燈反轉;若此後P3.2持續接到GND,LED會反復反轉,這與邊沿觸
       發有區別。
------------------------------------------------*/
#include 
sbit LED=P0^0; //定義LED埠
void DelayMs(unsigned char t)     //大致延時1mS
{
 unsigned short T=500;
 while(t--)
 {
     while(--T);
 }
}
void INT0_init(void) //外部中斷0初始化
{
  LED=1;       //LED口初始值
  EA=1;          //全局中斷開
  EX0=1;         //外部中斷0開
  IT0=0;         //電平觸發
}
main()
{
  INT0_init();
  while(1){
     //主循環
  }
}
//中斷服務程序  interrupt 0 指明是外部中斷0的中斷函數
/*
interrupt 0  指明是外部中斷0;
interrupt 1  指明是定時器中斷0; 
interrupt 2  指明是外部中斷1;
interrupt 3  指明是定時器中斷1;
interrupt 4  指明是串列口中斷;
*/
void ISR_Key(void) interrupt 0 us

Ⅲ 什麼是單片機的中斷

不同的計算機其硬體結構和軟體指令是不完全相同的,因此,中斷系統也是不相同的。

計算機的中斷系統能夠加強CPU對多任務事件的處理能力。中斷機制是現代計算機系統中的基礎設施之一,它在系統中起著通信網路作用,以協調系統對各種外部事件的響應和處理。中斷是實現多道程序設計的必要條件。 中斷是CPU對系統發生的某個事件作出的一種反應。

引起中斷的事件稱為中斷源。中斷源向CPU提出處理的請求稱為中斷請求。發生中斷時被打斷程序的暫停點稱為斷點。

CPU暫停現行程序而轉為響應中斷請求的過程稱為中斷響應。處理中斷源的程序稱為中斷處理程序。

CPU執行有關的中斷處理程序稱為中斷處理。而返回斷點的過程稱為中斷返回。中斷的實現實行軟體和硬體綜合完成,硬體部分叫做硬體裝置,軟體部分稱為軟體處理程序。

響應處理

大多數中斷系統都具有如下幾方面的操作,這些操作是按照中斷的執行先後次序排列的。

1、 接收中斷請求。

2、 查看本級中斷屏蔽位,若該位為1則本級中斷源參加優先權排隊。

3、 中斷優先權選擇。

4、 處理機執行完一條指令後或者這條指令已無法執行完,則立即中止現行程序。接著,中斷部件根據中斷級去指定相應的主存單元,並把被中斷的指令地址和處理機當前的主要狀態信息存放在此單元中。

5、 中斷部件根據中斷級又指定另外的主存單元,從這些單元中取出處理機新的狀態信息和該級中斷控製程序的起始地址。

6、 執行中斷控製程序和相應的中斷服務程序。

7、 執行完中斷服務程序後,利用專用指令使處理機返回被中斷的程序或轉向其他程序。

沖突

在一些罕見的情況下,兩個ISA設備可以共享相同的 IRQ,只要它們不同時使用即可。為了解決這個問題,後來的PCI 匯流排允許 IRQ 共享。PCI Express沒有物理中斷線,並使用消息信號中斷(MSI) 到操作系統(如果可用)。

在早期的 IBM 兼容個人計算機中,中斷曾經是一種常見的硬體錯誤,當兩個設備嘗試使用相同的中斷請求(或 中斷)向可編程中斷控制器(PIC)發出中斷信號時會收到該錯誤。

PIC 期望每條線路僅來自一個設備的中斷請求,因此沿同一條線路發送中斷信號的多個設備通常會導致 中斷 沖突,從而導致計算機死機。

例如,如果在系統中添加數據機擴展卡並分配給中斷4,傳統上分配給串列埠1,則可能會導致中斷沖突。最初,中斷 7 是使用音效卡的常見選擇,但後來發現 中斷 7 會干擾列印機埠(LPT1)時使用了中斷5。該串列埠經常禁用可以用於其他設備的中斷線。

中斷 2/9 是 MPU-401 MIDI 埠的傳統中斷線,但這與ACPI系統控制中斷(SCI 在 Intel 晶元組上硬連線到 中斷9)沖突;

這意味著 ISAMPU-401帶有硬連線中斷2/9 的卡和帶有硬編碼 中斷 2/9 的 MPU-401 設備驅動程序不能在啟用 ACPI 的系統上以中斷驅動模式使用。

以上內容參考網路-中斷

Ⅳ 單片機外部中斷

定時百器中斷是設定定時時間,到了該時間,就進行處理一次。
可以處理按度鍵掃描,動態顯示,時鍾累加等問。
外部中斷,是與外答接接觸,當中斷引腳為低電平時,進入中斷。
如果你的單片機沒內有專門的鍵盤中斷,可以使用外部中容斷來做鍵盤中斷。定時百器中斷是設定定時時間,到了該時間,就進行處理一次。
可以處理按度鍵掃描,動態顯示,時鍾累加等問。
外部中斷,是與外答接接觸,當中斷引腳為低電平時,進入中斷。
如果你的單片機沒內有專門的鍵盤中斷,可以使用外部中容斷來做鍵盤中斷。定時百器中斷是設定定時時間,到了該時間,就進行處理一次。
可以處理按度鍵掃描,動態顯示,時鍾累加等問。
外部中斷,是與外答接接觸,當中斷引腳為低電平時,進入中斷。
如果你的單片機沒內有專門的鍵盤中斷,可以使用外部中容斷來做鍵盤中斷。

Ⅳ 若單片機響應了外中斷1的中斷請求,則在中斷響應階段,單片機要做哪些工作

答:單片機響應了外部中斷1的中斷請求,在允許中斷的條件下,就會響應中斷,要做的工作就是轉向中斷程序,完全中斷需要完全的任務。

Ⅵ 單片機的內部中斷和外部中斷有什麼區別

一、主體不同

1、內部中斷:斷是一個演算法指令,是由軟中斷指令啟動的中斷。

2、外部中斷:是單片機實時地處理外部事件的一種內部機制。

二、機制不同

1、內部中斷:執行除法指令時,出現除數為0或商超過寄存器所能表達的范圍,則產生類型為0 的內部中斷。是優先順序最高的內部中斷。

2、外部中斷:當某種外部事件發生時,單片機的中斷系統將迫使CPU暫停正在執行的程序,轉而去進行中斷事件的處理;中斷處理完畢後.又返回被中斷的程序處,繼續執行下去。


三、特點不同

1、內部中斷:由一條指令INT n產生中斷類型碼或者由指令規定,或者是預定的。不執行INTA匯流排周期,CPU也不發出響應信號INTA。

2、外部中斷:在實時控制中,現場的各種參數、信息均隨時問和現場而變化。這些外界變數可根據要求隨時向CPU發出中斷申請。請求CPU及時處琿中斷請求,如中斷條件。

Ⅶ 51單片機外部中斷1的中斷矢量地址的作用

51單片機外部中斷1的中斷矢量地址是0013H,外部中斷1觸發中斷後,由此地址進入中斷,因為只有4個位元組的空間大小,所以,一般這里放一條跳轉指令。

Ⅷ 51單片機外部中斷的觸發方式

51單片機的外部中斷有兩種觸發方式可選:電平觸發和邊沿觸發。選擇電平觸發時,單片機在每個機器周期檢查中斷源口線,檢測到低電平,即置位中斷請求標志,向CPU請求中斷。選擇邊沿觸發方式時,單片機在上一個機器周期檢測到中斷源口線為高電平,下一個機器周期檢測到低電平,即置位中斷標志,請求中斷。

這個原理很好理解。但應用時需要特別注意的幾點:

1) 電平觸發方式時,中斷標志寄存器不鎖存中斷請求信號。也就是說,單片機把每個機器周期的S5P2采樣到的外部中斷源口線的電平邏輯直接賦值到中斷標志寄存器。標志寄存器對於請求信號來說是透明的。這樣當中斷請求被阻塞而沒有得到及時響應時,將被丟失。換句話說,要使電平觸發的中斷被CPU響應並執行,必須保證外部中斷源口線的低電平維持到中斷被執行為止。因此當CPU正在執行同級中斷或更高級中斷期間,產生的外部中斷源(產生低電平)如果在該中斷執行完畢之前撤銷(變為高電平)了,那麼將得不到響應,就如同沒發生一樣。同樣,當CPU在執行不可被中斷的指令(如RETI)時,產生的電平觸發中斷如果時間太短,也得不到執行。

2) 邊沿觸發方式時,中斷標志寄存器鎖存了中斷請求。中斷口線上一個從高到低的跳變將記錄在標志寄存器中,直到CPU響應並轉向該中斷服務程序時,由硬體自動清除。因此當CPU正在執行同級中斷(甚至是外部中斷本身)或高級中斷時,產生的外部中斷(負跳變)同樣將被記錄在中斷標志寄存器中。在該中斷退出後,將被響應執行。如果你不希望這樣,必須在中斷退出之前,手工清除外部中斷標志。

3) 中斷標志可以手工清除。一個中斷如果在沒有得到響應之前就已經被手工清除,則該中斷將被CPU忽略。就如同沒有發生一樣。

4) 選擇電平觸發還是邊沿觸發方式,TCON 控制寄存器
設置。應從系統使用外部中斷的目的上去考慮,而不是如許多資料上說的根據中斷源信號的特性來取捨。比如,有的書上說(《Keil C51使用技巧及實戰》),就有類似的觀點。

Ⅸ 51單片機外部中斷1和外部中斷0有什麼區別

功能上沒什麼區別,外部中斷0(P3.2),外部中斷1(P3.3),只是中斷標志有區別。優先順序不同,在自然優先順序中,外部中斷0的優先順序最高。不過可能優先順序寄存器PX0、PX1去設置其高低的優先順序。

Ⅹ mcs—51單片機外部中斷1中斷類型號

所謂的外部中斷1中斷類型號:
這是用C語言編程才有這個問題,而用匯編語言編程就沒有這個問題了。
對於C語言編程,中斷號是按這個順序排列的,即用在interrupt 後面的類型號
外部中斷0 ,是0號
定時器0 ,是1號
外部中斷1,是2號
定時器1,是3號
串口UART,是4號
這是51單片機的。52單片機中斷源還要多。

閱讀全文

與單片機外部中斷1相關的資料

熱點內容
命令輸入框 瀏覽:890
冰箱壓縮機發燙噪音 瀏覽:83
單片機棧溢出符號 瀏覽:328
命令與征服修改器怎麼用 瀏覽:483
什麼app比較費錢 瀏覽:830
為什麼同一個app的功能不一樣 瀏覽:232
小型工作室用什麼伺服器好 瀏覽:995
程序員的興趣 瀏覽:413
華為伺服器有什麼好 瀏覽:701
程序員和測試之間的關系 瀏覽:945
加密蚊帳什麼意思 瀏覽:151
javalistclear 瀏覽:607
哪個app上民宿多靠譜 瀏覽:827
重慶伺服器租用哪裡有雲伺服器 瀏覽:453
土星模擬器文件夾 瀏覽:902
文件夾文件袋文件盒 瀏覽:695
雲伺服器打開f8指令 瀏覽:243
盈透證券加密幣 瀏覽:72
阿里雲伺服器初始密碼怎麼修改 瀏覽:266
伺服器怎麼設定公用網路 瀏覽:99