#include<pic.h>
__CONFIG(0x0054);
#define LED GP0
char A; //全局变量,保存LED 的状态
unsigned int cou=0;
void interrupt ISR(void);
void main()
{
OPTION_REG=0b01000000; //全局使能上拉
TRISIO=0b00001100;//设置GP1,GP2,GP4为输入,其它口为输出
CMCON=0x07;//关比较器
IOC=0b00000100; //允许GP2中断
GIE=1;
GPIE=1;
T0IF=0;
INTF=0;
INTE=1;
GPIO=0b00100000;
TMR0=217;
A=0;
LED=0;
while(1);
}
void interrupt ISR(void)
{
if(INTF==1)
{
INTF=0;
T0IE=1;
}
else
T0IE=0;
if(T0IF==1)
{
T0IF=0;
INTE=0;
T0IE=1;
TMR0=217;
if(cou++>100)
{
LED=0;
A=0;
T0IE=0;
INTE=1;
cou=0;
}
else
{
LED=1;
A=1;
}
}
}
实现刚通电时LED不亮,当第二脚有中断时LED亮,延时一段时间,LED灭。 |