标记的用法,用一个按键控制1个LED灯的亮灭,按键去抖

标记的用法,用一个按键控制1个led灯的亮灭,按键去抖
这一课,我们学习怎么用一个按键k1控制1个led灯的亮和灭两种状态。按一次k1灯亮,再按一次k1灯灭。再按一次又亮,再按一次又灭。
我们学习一下用一个bit变量来做一个标记,然后在按键的控制下,这个标记会变化,再根据这个标记的值,led也输出不同的状态。
因为按键按下时可能会有抖动的情况,每次按下时,可能会发生了人难以觉察到的多次抖动,相当于一下子按下了很多次。这会导致程序无法识别出您真正的按键意图。
但是抖动一般都是发生在刚按下键和松开键的时候,所以,我们只要避开这一段时间,等键稳定按下或者松开时,再去读它的值,一般就可以正确读取了。
所以,当读到第一次按键的值时,要延时等待一会,再处理。在松开后,也延时一会,免得检测到松开的抖动以为又有按键。(注,更复杂的应用,需要在按下延时之后重新验证按键,为了简化和方便理解,这个例程里没有这样做。)
另外,因为程序是循环运行的,当一次按键处理后,又会再循环回来继续检测,如果您的按键这时还没有松开,又会被读到一次新的按键,并做处理。所以我们还要做一个特殊的处理,识别到一个按键并处理完成之后,还要等待这个按键松开后,再继续循环运行。
看程序:
请根据例程里的注释理解程序。
请编译,进入仿真,全速运行,看结果。
全速后,由于light变量初始化时默认为0,所以灯是亮的。按下k1,松开后,灯灭了;再按一次k1,松开后,灯灭了。
这个例子里,我们只用一个按键就控制了灯的亮灭,这种方法可以节省了硬件资源,也就是节省了硬件成本。在实际项目设计中,有成本优势,产品就更具竞争力。所以我们应该多学习类似的可以节省资源的方法。

特斯拉上海超级工厂正国产第三款车型
(杭州)新型互联网交换中心可提供多种互联接入方式
铠侠推出CD8系列数据中心NVMe固态硬盘
wimax和wifi的区别分析
HD触觉反馈让触控技术上升到一个新层次
标记的用法,用一个按键控制1个LED灯的亮灭,按键去抖
6503手摇绝缘表的功能特点及应用范围
NFC即将全面爆发_中国企业如何抢占NFC技术高地
最全的Nginx日志分割教程
iphone8什么时候上市最新消息:iPhone8/iphone7s真机外观图曝光!四大新功能+售价突破1000美元
矢量变频器是什么?矢量变频器的工作原理详解
三星将在美国旧金山举行2019新品发布会
微软选择Xilinx而非英特尔为数据中心提供FPGA
日产汽车将在2023年推出20多款配备基本自动驾驶功能的新车
哪款蓝牙耳机的音质最好?双十二最值得买的四款蓝牙耳机
人工智能的高效性引领传统营销的改革
蔚来于纽交所正式挂牌上市,发行定价为6.26美元
pcb层数怎么看 导孔和盲孔对光法
三人抢答器plc程序图分享
晶体管发射极跟随电路:共集电极放大器