|
|
是這樣子的,有這樣子一個開發需求,我實驗了不成功,求大神幫忙解決。。。
開發需求為:一開機就執行中斷里面的函數,動作先用電燈代替,執行完中斷里面的函數之后,然后再返回main執行剩下的動作,也用點亮LED控制。。
代碼如下:
#include "reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
u16 a;
sbit k3=P3^2; //定義按鍵K3
sbit led=P3^6; //定義P36口是led
sbit led1=P3^7; //定義P37口是led1
void delay(u16 i)
{
while(i--);
}
void Int0Init()
{
IT0=1;//跳變沿出發方式(下降沿)
EX0=1;//打開INT0的中斷允許。
EA=1;//打開總中斷
}
void main()
{
Int0Init(); // 設置外部中斷0
a=1;
while(1)
{
led=0;
}
}
void Int0() interrupt 0 //外部中斷0的中斷函數
{
u16 i;
if(a==1)
{ a=0;
for(i=0;i<2;i++)
{
led=0;
delay(10);
led=1;
delay(10);
}
}
}
現在的問題是沒有中斷服務函數沒有檢測的a==1,只執行了主函數while(1) 里面的
led=0;
|
仿真 
|
-
-
shiyan 1.rar
2019-5-2 12:49 上傳
點擊文件名下載附件
41.66 KB, 下載次數: 6
程序和仿真
|