新聞中心

中斷學(xué)習(xí)

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
#include

#include//頭文件

本文引用地址:http://2s4d.com/article/201611/322386.htm

#define GPIO_LED P2

//外部中斷的IO

sbit K3=P3^2;

sbit K4=P3^3;//定義k3,k4的io口值為p3.2p3.3

void IntConfiguration();

void Delay(unsigned int n);

unsigned char KeyValue=0;

void main(void)

{

GPIO_LED=0X01;// led=0000 - 0001

IntConfiguration();

while(1)

{

if(KeyValue)//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)//延時(shí)50us誤差 0us

{

unsigned char a,b;

for(;n>0;n--)

{

for(b=1;b>0;b--)

for(a=22;a>0;a--);

}

}

void Int0() interrupt 0 //外部中斷0的中斷函數(shù)

{

Delay(1);

if(K3==0) //按下P3^2鍵,觸發(fā)外部中斷0

KeyValue=1;//中斷處理程序0就會(huì)將KeyValue賦1

}

void Int1() interrupt 2 //外部中斷1的中斷函數(shù)

{

Delay(1);

if(K4==0)//當(dāng)按下P3^3,就會(huì)觸發(fā)外部中斷1

KeyValue=0; //中斷斷處理程序0就會(huì)將KeyValue賦0

}

//兩個(gè)外部中斷硬件上就是與P3^3和P3^2連接的
//,比如說(shuō)按下P3^2鍵,觸發(fā)外部中斷0,中斷處理程序0就會(huì)將KeyValue賦1
//,這時(shí)主循環(huán)就會(huì)執(zhí)行GPIO_LED=_crol_(GPIO_LED,1

//);同理,當(dāng)按下P3^3,就會(huì)觸發(fā)外部中斷1
//,中斷處理程序0就會(huì)將KeyValue賦0;這時(shí)主循環(huán)就會(huì)執(zhí)行GPIO_LED=_cror_(GPIO_LED,1)。



關(guān)鍵詞: 中斷學(xué)

評(píng)論


技術(shù)專區(qū)

關(guān)閉