何為中斷?
是暫停正在執(zhí)行的程序,轉(zhuǎn)而去執(zhí)行特定的程序。 為什么要有中斷? 提高效率。 譬如平時的上課。 老師只管講課,學(xué)生有問題會舉手,老師會停下進(jìn)度,轉(zhuǎn)而去回答學(xué)生的問題。 若是老師講一句,就問學(xué)生有沒有問題,這樣就太浪費啦。 中斷的流程特點: 斷點出會有一個標(biāo)記,便于中斷程序完成回返回主程序。此處與堆棧有關(guān),不提。 51系列單片機(jī)有5個中斷兩個外部中斷INT0、INT1兩個內(nèi)部定時\計數(shù)器中斷IT0、IT1以及一個串口中斷 譬如舉手打斷老師講話一樣,中斷也需要一個信號觸發(fā)。 外部中斷有負(fù)邊沿觸發(fā)和低電平觸發(fā)。單品及通過捕捉INTO(12腳)、INT1(13腳)的信號變化來判定是不是有外部中斷請求。 僅僅有觸發(fā)還不夠,單片機(jī)必須認(rèn)同這些信號才行。所以需要對單片機(jī)設(shè)置。主要是兩個寄存器 IE 中斷使能寄存器 TCON 定時器\計數(shù)器控制寄存器 這兩個寄存器都是可位尋址,且在reg51.h頭文件中已經(jīng)定義,所以可以直接指定一個位的值,方便呀! 譬如 
IE寄存器 TCON 
下面是一段程序: #include
sbit Re =P3^0;
sbit Intur =P3^2;
void main()
{
EA=1;
EX0=1;
IT0=0;
Re = 1;
while(1)
{
Re =1;
} }
void In(void) interrupt 0 using 1 0表示中斷優(yōu)先級的順序 第一位即INTO 1表示用第一寄存器組
{
Re=0;
}
|