中斷學習2
#include
#define GPIO_LED P2
//外部中斷的IO
sbit K3=P3^2;
sbit K4=P3^3;
void IntConfiguration();
void Delay(unsigned int n);
unsigned char KeyValue=0;
void main(void)
{
GPIO_LED=0X01;
IntConfiguration();
while(1)
{
if(KeyValue)
GPIO_LED=_crol_(GPIO_LED,1);
else
GPIO_LED=_cror_(GPIO_LED,1);
Delay(2000);
}
}
void IntConfiguration()
{
//設(shè)置INT0
IT0=1;//跳變沿出發(fā)方式(下降沿)
EX0=1;//打開INT0的中斷允許。
//設(shè)置INT1
IT1=1;
EX1=1;
EA=1;//打開總中斷
}
void Delay(unsigned int n)
{
for(;n>0;n--)
{
}
}
//兩個外部中斷硬件上就是與P3^3和P3^2連接的
//,比如說按下P3^2鍵,觸發(fā)外部中斷0,中斷處理程序0就會將KeyValue賦1
//,這時主循環(huán)就會執(zhí)行GPIO_LED=_crol_(GPIO_LED,1
//);同理,當按下P3^3,就會觸發(fā)外部中斷1
//,中斷處理程序0就會將KeyValue賦0;這時主循環(huán)就會執(zhí)行GPIO_LED=_cror_(GPIO_LED,1)。
評論