中断学习
#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()
{
//设置INT0
IT0=1;//跳变沿出发方式(下降沿)
EX0=1;//打开INT0的中断允许。
//设置INT1
IT1=1;
EX1=1;
EA=1;//打开总中断
}
void Delay(unsigned int n)
{
for(;n>0;n--)
{
}
}
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; //
}
//两个外部中断硬件上就是与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)。
中断学 相关文章:
- 中断学习2(11-27)
- 单片机中断学习心得(11-19)
- 51单片机中断学习(11-19)
- LPC2148中断学习(11-13)
- arm中断学习及变量长度(11-11)
- MSP430F5529的IO口管脚的中断学习笔记(11-09)