中斷,當啟動位打開,CNT計數(shù)溢出的時候,會觸發(fā)溢出標志位置位,進而送入中斷系統(tǒng)(比如日常生活中,我們在做一件事,突然燒水壺開了,我們即要先暫時放棄做目前的事,轉(zhuǎn)而去處理燒開水這個中斷事件,當處理完成過后,又返回來繼續(xù)處理之前的事)
而這里的舉例:處理燒開水即中斷程序;之前所做的事即main函數(shù)里面的主程序#include<reg52.h>
sbit LED=P1^0;
sbit buzzer=P2^0;
void delay(void);
void main(void)
{
IT0=1;//設置外部中斷觸發(fā)方式為下降沿觸發(fā)
EX0=1;//對應的中斷允許位打開
EA=1;//總中斷打開
PX0=0;//IE0低優(yōu)先級
buzzer=0;//開啟蜂鳴
delay();
buzzer=1;//關(guān)閉蜂鳴
while(1)
{
LED=0;//點亮LED
delay();
LED=1;//熄滅LED
delay();
}
}
//中斷服務程序
void INT0_ISR(void) interrupt 0
{
//IE0=0;對應的中斷標志位是硬件自動清零,所以無需再軟件清零
buzzer=0;//開啟蜂鳴
delay();
buzzer=1;//關(guān)閉蜂鳴
}
void delay(void)
{
unsigned char i,j;
for(i=0;i<200;i++)
{
for(j=0;j<200;j++){;}
}
}
|