|
是這樣子的,有這樣子一個(gè)開發(fā)需求,我實(shí)驗(yàn)了不成功,求大神幫忙解決。。。
開發(fā)需求為:一開機(jī)就執(zhí)行中斷里面的函數(shù),動(dòng)作先用電燈代替,執(zhí)行完中斷里面的函數(shù)之后,然后再返回main執(zhí)行剩下的動(dòng)作,也用點(diǎn)亮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;//跳變沿出發(fā)方式(下降沿)
EX0=1;//打開INT0的中斷允許。
EA=1;//打開總中斷
}
void main()
{
Int0Init(); // 設(shè)置外部中斷0
a=1;
while(1)
{
led=0;
}
}
void Int0() interrupt 0 //外部中斷0的中斷函數(shù)
{
u16 i;
if(a==1)
{ a=0;
for(i=0;i<2;i++)
{
led=0;
delay(10);
led=1;
delay(10);
}
}
}
現(xiàn)在的問題是沒有中斷服務(wù)函數(shù)沒有檢測的a==1,只執(zhí)行了主函數(shù)while(1) 里面的
led=0;
|
仿真 
|
-
-
shiyan 1.rar
2019-5-2 12:49 上傳
點(diǎn)擊文件名下載附件
41.66 KB, 下載次數(shù): 6
程序和仿真
|