|
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit flag=P3^2;//外部中斷信號產生腳
sbit key=P3^0;//控制flag產生下降沿
sbit led=P2^0;
void delay(int a){
int x,y;
for(x=0;x<=a;x++)
for(y=110;y>=0.;y--);
}
/* void le(void)
{ int a ;
while(1){
P1=0x01;
for(a=0;a<8;a++){
P1=_cror_(P1,1);
delay(20);}} //led循環
} */
//外部中斷0初始化
void intlInit(void)
{
IT0=1; // 外部中斷0下降沿觸發
IE=0; //清除標志位
EX0=1; // 開外部中斷
EA=1; //開總中斷
}
//主函數
void main(){
void intlInit(void);
if(key==0)
{ delay(1);
if(key==0)//P3^0腳
{
flag=1; //P3^2腳
flag=0;//外部產生下降沿
}
} else flag=1;
}
// 外部中斷0中服務程序
void int1(void) interrupt 0
{
led=~led;
P1=0x00;
delay(20);
}
|
|