|
51單片機中斷系統(tǒng),一開始8個led閃爍循環(huán),按鍵以后,變?yōu)榱魉h(huán),再按一次回到閃爍循環(huán),我的程序只會到流水,回不去閃爍。這是我的程序include <reg51.h> void mDelay(unsigned int Delay) //延時1s子程序:由Dleay決定延時時間
{ unsigned int data i;
for(;Delay>0;Delay--) {
for(i=0;i<54;i++) ; }}
void main(){ IT0=1; //外部0中斷邊沿觸發(fā)
EA=1; //開總中斷
EX0=1; //開外部0中斷
while(1)
{ P1=0x00; //LED點亮
mDelay(1000); //延時1s
P1=0xff; //LED熄滅
mDelay(1000); //延時1s
}}void ex0_int() interrupt 0 //外部0中斷處理子程序
{ if(P3^2==0)
{ unsigned char outdata=0xfe,i ; //初始選擇最右邊LED
for(;;) {
IE0=0 ;
outdata=0xfe;
for( i=0;i<8;i++ )
{ P1= outdata ; // LED選擇碼送P1口顯示
mDelay (500); //延時500ms
outdata = (outdata << 1)+1 ; //值左移一位
} }
}
else return;}
|
|