『壹』 51單片機中斷程序問題。
interrupt
是
中斷的意思,後面的數字是
入口,就像門牌號。
號碼排序
按
51單片機默認中斷優先順序安排:
外中斷0
最高,排號為
0,
定時器0
次高,排號為1,
外中斷1
第三,排號為2,
定時器1
第四,排號為3,
串口中斷較低,排號為4,
定時器2,排號為5(52系列單片機才有)
『貳』 51單片機定時器中斷程序
再次重新啟動。
『叄』 51單片機的中斷類型有哪些
中斷號 中斷源
0 外部中斷0
1 定時器0中斷
2 外部中斷1
3 定時器1中斷
4 串列口中斷
5 定時器2中斷
參考 http://www.51hei.com/
『肆』 51單片機中斷程序
這個圖未接入任何中斷輸入IO。中斷程序寫法是:
voidext0()interrupt0//外部中斷0
{
//中斷服務程序類容
}
voidext1()interrupt2//外部中斷1
{
//中斷服務程序類容
}
voidtime0()interrupt1//定時器0中斷
{
//中斷服務程序類容
}
voidtime1()interrupt3//定時器0中斷
{
//中斷服務程序類容
}
voiart()interrupt4//串口中斷
{
//中斷服務程序類容
}
『伍』 什麼是中斷51單片機有哪幾個中斷源
51的中斷系統有5個中斷源,中斷系統的結構及級別如下:
(5)51單片機中斷程序類型擴展閱讀:
51單片機功能特性
1,可以模擬63K程序空間,接近64K 的16位地址空間;
2,可以模擬64Kxdata 空間,全部64K 的16位地址空間;
3,可以真實模擬全部32 條IO腳;
4,完全兼容keilC51 UV2 調試環境,可以通過UV2 環境進行單步,斷點, 全速等操作;
5,可以使用C51語言或者ASM匯編語言進行調試 ;
6,可以非常方便地進行所有變數觀察,包括滑鼠取值觀察,即滑鼠放在某 變數上就會立即顯示出它此的值;
7,可選 使用用戶晶振,支持0-40MHZ晶振頻率;
8,片上帶有768位元組的xdata,您可以在模擬時選 使用他們,進行xdata 的模擬;
9,可以模擬雙DPTR 指針;
10,可以模擬去除ALE 信號輸出. ;
11,自適應300-38400bps 的所有波特率通訊;
『陸』 c51單片機中斷程序中的interrupt1,2,3是由什麼決定的
由中斷號決定,一般計數器0是interrupt 0,定時器0是interrupt 1,接下來是計數器1,再是定時器1,再是串口,有些單片機還會有ADC,串口2,PCI等中斷,具體看單片機的資料。
Proteus 自從有了單片機也就有了開發系統,隨著單片機的發展開發系統也在不斷發展。 keil是一種先進的單片機集成開發系統。它代表著匯編語言單片機開發系統的最新發展,首創多項便利技術,將開發的編程/模擬/調試/寫入/加密等所有過程一氣呵成,中間不須任何編譯或匯編。
(6)51單片機中斷程序類型擴展閱讀:
功能:
8位CPU·4kbytes程序存儲器(ROM) (52為8K)。
128bytes的數據存儲器(RAM) (52有256bytes的RAM)。
32條I/O口線·111條指令,大部分為單位元組指令。
21個專用寄存器。
2個可編程定時/計數器·5個中斷源,2個優先順序(52有6個)
一個全雙工串列通信口。
外部數據存儲器定址空間為64kB。
『柒』 51單片機中斷編程
外部中斷信號接到P3.3口,為INT0中斷,程序如下
#include<reg51.h>
sbit X0=P1^0; //用X0表示P1.0
sbit X1=P1^1; //用X0表示P1.1
sbit X2=P1^2; //用X0表示P1.2
void main(void)
{
P1=0x00; //將P1口初始化位高電平,如果沒有這句,初始化為低電平,這里可根據需要選擇
EA=1; //中斷允許
IT1=1; //觸發方式為下降沿觸發
EX1=1; //外部中斷允許
while(1); //這里可以隨便寫你需要的主程序,我用了個死循環,目的是等待中斷
}
void counter1(void) interrupt 2 //INT1中斷
{
EX1=0; //禁止外部中斷
ET0=1; //計時器中斷0允許
ET1=1; //計時器中斷1允許
TMOD=0x21; //T1用模式2、T0用模式1
IP=0x0a; //T1、T0為高優先順序
X2=~X2; //每次中斷就取反P1.2引腳
X1=1; //P1.1輸出低電平0.3ms
X0=1; //P1.0輸出低電平1.5ms
TH0=0xfd; //T0用模式1,16位計時器,在1.5ms後執行時間中斷0
TL0=0x12;
TH1=0x6a; //T1用模式2,8位計時器,在0.3ms執行時間中斷1
TL1=0x6a;
TR1=1; //啟動計時器T1
TR0=1; //啟動計時器T0
while(X0==1); //等待中斷響應完成
EX1=1; //允許外部中斷
}
void counter2(void) interrupt 1 //定時器0中斷
{
X0=0;
}
void counter3(void) interrupt 3 //定時器1中斷
{
X1=0;
}
程序已經經過模擬調試,可以完成你的要求,等待加分中。。。。
PS一下,如果滿意的話,十分期待給好評,謝謝了
『捌』 51系列單片機具有幾個中斷源,分別是如何定義的其中哪些中斷源可以被定義為高優先順序中斷,如何定義
有5個中斷源,外部中斷0,定義為INT0,;定時/計數器0,定義為T0,外部中斷1,定義為INT1;定時/計數器1,定義為T1;串列通信口中斷
五個都可以定義高優先順序中斷,可以根據自身需要進行設置,5個中斷源都可以根據需要定義高優先順序,當需要定義高優先順序時,只需要將IP寄存器中的相應位置1即可,它們的位分別是PX0,PT0,PX1,PT1,PS
(8)51單片機中斷程序類型擴展閱讀:
為使系統能及時響應並處理發生的所有中斷,系統根據引起中斷事件的重要性和緊迫程度,硬體將中斷源分為若干個級別,稱作中斷優先順序。
引入多級中斷是因為:為使系統能及時的響應和處理所發生的緊迫中斷,同時又不至於發生中斷信號丟失,計算機發展早期在設計中斷系統硬體時根據各種中斷的輕重在線路上作出安排,從而使中斷響應能有一個優先次序。
多級中斷的處理原則:當多級中斷同時發生時,CPU按照由高到低的順序響應。高級中斷可以打斷低級中斷處理程序的運行,轉而執行高級中斷處理程序。當同級中斷同時到時,則按位響應。
當多級中斷同時發生時,CPU按照由高到低的順序響應
另外,優先順序高的中斷源可以中斷優先順序低的中斷服務程序,這就形成了中斷服務程序中套著中斷服務程序的情況,即形成了所謂的中斷嵌套。
中斷優先順序的高低順序為硬體故障中斷、自願中斷、程序性中斷、外部中斷和輸入輸出中斷。
『玖』 51單片機中斷程序怎麼寫
用c語言的話中斷程序是單獨寫在中斷服務函數中的,51單片機的中斷服務函數的定義:
void functionname(void) interrupt num //functionname是自己定義的函數名字,num對應實際的中斷向量號
『拾』 中斷種類有那些(51單片機)
A.執行中斷指令INTn,CPU出錯引起的中斷,為調試程序設置的中斷;
B.除法出錯的中斷、溢出中斷、單步中斷、軟體中斷;
C.可屏蔽中斷、不可屏蔽中斷、中斷指令INTn;
D.可屏蔽中斷、不可屏蔽中斷、斷點中斷;