说到单片机入门,很多小伙伴都是从郭天祥的《新概念51单片机C语言教程--入门提高开发拓展全攻略》这本书入门,郭天祥书中的按键扫描程序是用延时来进行软件消抖,后面在网络上学习了“MCU起航”的按键扫描程序的正规用法后,将状态机与按键扫描给融合进来进行使用。总结一下,日后可以方便回顾知识和能给一些需要的朋友提供思路参考一下。
if(KEY == 0) //如果按键被按下
{
delay_ms(10); //延时一段时间
if(KEY == 0)
{
LED = ~LED; //LED状态翻转
while(KEY == 0); //key被按下低电平,一直在这儿等待,等再次按下再退出这个状态
}
郭天祥书中的按键检测程序基本流程是
1.检测按键是否被触发
2.延时消抖
3.再次检测确实被触发
4执行功能
5.等待按键释放