sbit key = P3^2
void main()
{
EX0 = 1
IT0 = 1
EA = 1
while(1)
{
这里写你的功能;
}
}
void int0() interrupt 0
{
unsigned int i = 0
while(1)
{
if(key == 0)
{
i++
if(i >= 1000)
{
i=0
flag = 1
break
}
}
else
{
i=0
break
}
}
}
这个程序包括了消抖部分,flag = 1的时候就表明 按键按下了。 flag的变量定义,还有头文件,自己加上,在主程序你检测flag的状态就可以了
外部中断驱动按键优势是按键后处理程序能立即响应和处理,响应的速度也是最快最及时。根据相关信息查询,采用中断处理和响应按键的方式,最大的优点是按键后处理程序能立即响应和处理,响应的速度也是最快最及时的,可使用查询键盘状态的方式来响应按键的处理过程,查询方式要占用处理器大量的时间和资源,响应的速度也较中断响应方式慢很多的。跟外部的按键消抖一样处理就可以了。void ext0() interrupt 0
{
delay(10)//
flag=0//按键有效标志=0为无效
if(P3_2)
{
while(!P3_2)//等待按键抬起
flag=1
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)