用51單片機做一個小物件,初始化設置外部中斷0為下降沿觸發,響應中斷后關閉中斷開關EX0=0,同時記錄中斷次數EX0_Cnt++,開始定時器0開關TR0=1,延時200毫秒(防止小于200毫秒時間內再次造成中斷)后,關閉定時器0開關TR0=0,打開外部中斷0開關EX0=1.程序如下所示,不知道是哪里出了問題,外部中斷次數EX0_Cnt顯示不正確。
void INT0_Isr() interrupt 0
{
EX0 = 1; //關閉外部中斷0
TR0 = 1; //打開定時器0
EX0_Cnt++; //記錄中斷次數加1
}
void Timer0_Isr() interrupt 1
{
Timer0_Cnt++;
if(Timer0_Cnt>200)
{
Timer0_Cnt = 0;
EX0 = 1;
TR0 = 0;
}
} |