×
嵌入式 > 技术百科 > 详情

中断学习

发布时间:2020-09-11 发布时间:
|
#include

#include  //头文件

 

#define GPIO_LED P2

//外部中断的IO

sbit K3=P3^2;

sbit K4=P3^3;  //定义k3,k4的io口值为p3.2  p3.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()

{

//设置INT0

IT0=1;//跳变沿出发方式(下降沿)

EX0=1;//打开INT0的中断允许。

//设置INT1

IT1=1;

EX1=1;


EA=1;//打开总中断

}

 

void Delay(unsigned int n)   //延时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的中断函数

{

Delay(1);

if(K3==0) //按下P3^2键,触发外部中断0

KeyValue=1;//中断处理程序0就会将KeyValue赋1

}

 

void Int1() interrupt 2 //外部中断1的中断函数

{

Delay(1);

if(K4==0)//当按下P3^3,就会触发外部中断1

KeyValue=0; //     中断断处理程序0就会将KeyValue赋0

}

//两个外部中断硬件上就是与P3^3和P3^2连接的
//,比如说按下P3^2键,触发外部中断0,中断处理程序0就会将KeyValue赋1
//,这时主循环就会执行GPIO_LED=_crol_(GPIO_LED,1

//);同理,当按下P3^3,就会触发外部中断1
//,中断处理程序0就会将KeyValue赋0;这时主循环就会执行GPIO_LED=_cror_(GPIO_LED,1)。

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
VR十大误区:眼睛离屏幕太近真的会瞎吗?