#include <reg52.h>
sbit key0=P1^0; //按鍵位
sbit D=P3^2; //外部中斷口
void keydelay(int z)//消抖延時函數
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delaytime(int ms)//控制小燈的閃爍
{
int x,y;
for(x=ms;x>0;x--)
for(y=200;y>0;y--);
}
void main()
{
IT0=0;
EA=1;
EX0=1;
P1=0xff; //獨立鍵盤位置1
while(1)
{
if(key0==0) // 判斷鍵盤是否按下
keydelay(15);//消抖
if(key0==0)
{
D=0;//產生外部中斷
while(!key0);
}
while(1)//上電時小燈閃爍
{
P0=0xfe;
delaytime(10);
P0=0xff;
delaytime(10);
}
}
}
void extinter() interrupt 0 //中斷處理
{
P0=0xff; //燈滅
delaytime(5);
while(1)
{
P0=0x7f;
delaytime(10);
P0=0xff;
delaytime(10);
}
}
那個的確是一個錯誤(大意了!
不好意思!)但是改過以后運行還是不行啊!老師對我說是由于INT0口不能通過軟件置0來響應中斷!不知道是不是這個原因...
問題解決了!就是那個原因,我換了一種觸發外部中斷方式就可以了
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |