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