① 單片機中斷程序
結構很規矩,這個程序。
首先單片機上電復位,運行死循環前面的程序(,你這里就是init_timer(); // 應該叫初始化定時器,才合適,讓定時器按照你需要的定時長度工作,或叫產生中斷 )
接下來單片機主程序就是一直在死循環了。我們的主要任務一般在這里處理。
中斷,就是在處理一些特殊任務,比如按鍵,或定時處理的程序,或外部一個不知道什麼時間發生的任務,或通信任務等等。你在主循環的時候,無論在什麼時候,中斷請求來了(可以理解為需要處理比較緊急任務,優先處理的任務),就會暫停主循環,進入對應中斷服務程序。運行完,在回主循環的暫停地方,繼續執行死循環的任務。
定時器中斷,就是每過一定時間,運行一下中斷服務程序。常用來計時和產生脈沖信號。
初始化定時器,就是給定時器的寄存器,設置工作模式,時鍾源,溢出的計數值。設置好了,定時器就能根據每個時鍾源的頻率,進行計數,直至溢出,然後產生一個中斷請求。如果不餓能自動載入計數初值的定時器,在中斷處理函數(服務函數)必須手動載入初值。
② 51單片機中斷執行過程坐等!!!
51單片機中斷執行過程, 如外部中斷。
當 CPU 檢測到 有 中斷觸發 信號後,
首先 執行完成 當前執行的指令,將下一條指令 的 地址 壓入堆棧,
CPU 進入中斷 入口 地址,開始 執行 中斷服務程序,
(當然在中斷服務程序中不能破壞正常運行 程序的各種 寄存器的 狀態 和 數據,)
中斷服務 程序執行 完成, 最後 執行 一條 RETI 的中斷返回指令,
堆棧 彈出 原先保存的 地址,完成中斷服務程序,返回中斷前的 下一條指令地址
繼續執行 正常程序。
③ 單片機中斷的意思
中斷就是指處理機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程序並轉入處理新情況的程序,處理完畢後又返回原被暫停的程序繼續運行。
中斷就是單片機處理任務鬧凳A時,發生了觸發中斷的條件停下來執行另一個任務B,觸發中斷陪彎態的條件就屬於中斷源,任務B就是中斷任務(中斷服務函數)。當中斷任務執行完成後中斷返回,在回到任務A中斷的地方繼續處理任務A。
CPU執行有關的中斷處理程序稱為中斷處理。而返回斷點的過程稱為中斷返回。中斷的實現實行軟體和硬體綜合完成,硬體部分叫做硬體裝置,軟體部分稱為軟體處理程序。
(3)單片機中斷的處理程序擴展閱讀:
中斷的相關作用:
1、滿足實時處理要求。在實時系統中,各種監測和控制裝置隨機地向處理機發出中斷請求,處理機隨時響應並進行處理。
2、提供故障現場處理手蘆源段。處理機中設有各種故障檢測和錯誤診斷的部件,一旦發現故障或錯誤,立即發出中斷請求,進行故障現場記錄和隔離,為進一步處理提供必要的依據。
3、提高計算機系統效率。計算機系統中處理機的工作速度遠高於外圍設備的工作速度。通過中斷可以協調它們之間的工作。當外圍設備需要與處理機交換信息時,由外圍設備向處理機發出中斷請求,處理機及時響應並作相應處理。
④ 求單片機實驗的外部中斷實驗的程序
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar cnt,times;
void delay()
{
uchar i;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
for(i=0;i<times;i++)
{
while(TF0==0);
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TF0=0;
}
TR0=0;
}
void ext0() interrupt 0
{
uchar i,j;
P1=0xfe;
times=8;
for(i=0;i<5;i++)
{
for(j=0;j<8;j++)
{
P1=_crol_(P1,1);
delay();
}
}
}
void ext1() interrupt 2
{
uchar i,j;
P1=0x7f;
times=12;
for(i=0;i<3;i++)
{
for(j=0;j<8;j++)
{
P1=_cror_(P1,1);
delay();
}
}
}
main()
{
EX0=1;
EX1=1;
IT0=0;
IT1=1;
PX0=0;
PX1=1;
while(1);
}
⑤ 單片機中斷處理流程
當某中斷產生而且被CPU響應,主程序被中斷,接下來將執行如下操作:
1.
當前正被執行的指令全部執行完畢;
2.
PC值被壓入棧;
3.
現場保護;
4.
阻止同級別其他中斷;
5.
將中斷向量地址裝載到程序計數器PC;
6.
執行相應的中斷服務程序。
中斷服務程序ISR完成和該中斷相應的一些操作。ISR以RETI(中斷返回)指令結束,將PC值
從棧中取回,並恢復原來的中斷設置,之後從主程序的斷點處繼續執行。
⑥ 簡述8051單片機中斷響應過程
單片機一旦響應中斷請求, 就由硬體完成以下功能:
(1) 根據響應的中斷源的中斷優先順序, 使相應的優先順序狀態觸發器置1;
(2) 執行硬體中斷服務子程序調用, 並把當前程序計數器PC的內容壓入堆棧,保護斷點,尋找中斷源;
(3) 清除相應的中斷請求標志位(串列口中斷請求標志RI和TI除外);
(4) 把被響應的中斷源所對應的中斷服務程序的入口地址(中斷矢量)送入PC, 從而轉入相應的中斷服務程序。
(5)中斷返回,程序返回斷點處繼續執行。
(6)單片機中斷的處理程序擴展閱讀:
單片機應用分類:
單片機(Microcontrollers)作為計算機發展的一個重要分支領域,根據發展情況,從不同角度,單片機大致可以分為通用型/專用型、匯流排型/非匯流排型及工控型/家電型。
通用型:
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
匯流排型:
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
控制型:
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型,通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
參考資料:網路——單片機
⑦ 8051單片機中斷源中,哪些中斷請求信號在中斷響應時可以自動清除哪些不能自動清除的應如何處理
8051單片機中斷源通常分為三類,分別是:外部中斷、定時中斷和串列口中斷。其中,外部中斷和定時器中斷可以自動清除,串列口中斷不能自動清除。
1、對於外部中斷,CPU響應中斷後,中斷請求是自動撤除的,無需採取其他措施;
2、對於定時器,CPU響應中斷後,中斷請求也是自動撤除的,無需採取其他措施;
3、對於串列口中斷,CPU響應中斷後,需要依靠軟體來清除相應標志。
計算機在執行程序的過程中,由於CPU以外的某種原因,有必要盡快中止當前程序的執行,而去執行相應的處理程序,待處理結束後,再回來繼續執行被中止了的原程序。
這種程序在執行的過程中由於外界的原因而被中間打斷的情況野李稱為「中斷「。
(7)單片機中斷的處理程序擴展閱讀
1)優先權:
幾個中斷請求可能同時出現,但中斷系統只能按一定的次序來響應和處理。可最先被響應的中斷具有最高優先權,按優先順序別順序進行處理。優先權高低是由中斷部件的中斷排隊線路確洞握定的。
2)中斷級:
當機器設置很多中斷源時,為了簡化設計,對中斷源分組管理。具頌顫遲有相同中斷優先權的中斷源構成一個中斷級。同一級中斷使用同一個中斷控製程序起點。
3)中斷屏蔽:
對應於各中斷級設置相應的屏蔽位。只有屏蔽位為1時,該中斷級才能參加中斷優先權排隊。中斷屏蔽位可由專用指令建立,因而可以靈活地調整中斷優先權。
有些機器針對某些中斷源也設置屏蔽位,只有屏蔽位為1時,相應的中斷源才起作用。
⑧ 關於單片機試題:簡述中斷處理過程。
第一步:保護現場,將當前位置的PC地址壓棧。
第二步:跳轉到中斷服務程序,執行中斷服務程序。
第三步:恢復現場,將棧頂的值回送給PC
第四步:跳轉到被中斷的位置開始執行下一個指令。
⑨ 51單片機之中斷系統,外部中斷
中斷分為前棚4個步驟:中斷請求→中斷相應→中斷處理→中斷返回(先做更重要的事)
1、數據的輸入/輸出傳送方式
外部中斷要段梁看對應引腳外部的電平狀態。
例如:外部中斷0(INT0)對應的引腳是P32,
當出現 低電平 ,即P32引腳連接的地方是 低電平 ,進入相應的中斷函數;
當出現 下降沿 ,即P32引腳連接的地方 由高電平變為低電平 ,進入相應的中斷函數
內部中斷源要看單片機內部的定時器/計數器
中斷允許寄存器IE
定時器/計數器0/1控制寄存器TCON
對同時發生多個中斷申請時:
不同優先順序的中斷同時申請:先高後低
相同優先順序的中斷同時申請:按序執行
正處理低優先順序中斷又接到高級別中斷:高打斷低
正處理高優先順序中斷又接到低級別中斷:高不理低
初始化的意思如圖所示
實現思路
查看上方 P3第二功能各引腳功能定義 ,P3.3是外部中斷1 (INT1)的外部輸入引腳
編寫一個程序握悔運,使得 S2按鍵按下 時,某個IO口(下面程序選擇了P3.7這個IO口) 產生跳變沿 (由1變0)。P3.3與P3.7用跳線連接,使P3.3口與P3.7口同時產生跳變沿。
⑩ 單片機中斷處理流程
當某中斷產生而且被CPU響應,主程序被中斷,接下來將執行如下操作:
1. 當前正被執行的指令全部執行完畢;
2. PC值被壓入棧;
3. 現場保護;
4. 阻止同級別其他中斷;
5. 將中斷向量地址裝載到程序計數器PC;
6. 執行相應的中斷服務程序。
中斷服務程序ISR完成和該中斷相應的一些操作。ISR以RETI(中斷返回)指令結束,將PC值
從棧中取回,並恢復原來的中斷設置,之後從主程序的斷點處繼續執行。