单片机89c51外部摁键中断程序

单片机89c51外部摁键中断程序,第1张

按键一端接地,另一端接P3^2 就是外部中断0 ,,

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

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8132247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存