标题: 单片机按钮触发不需要定时器和中断的方法 [打印本页]

作者: 温柔的郎    时间: 2022-3-11 15:59
标题: 单片机按钮触发不需要定时器和中断的方法
玩了几天51单片机,做了这个小功能.
在做按钮触发计数应用时,或者外部输入中断时,经常会需要用到定时器和外部中断,使用前需要繁琐的配置,配置错一步就不能用,
所以写了个这个程序,触发不需要用定时器,不需要中断,
以按钮输入为例,每按一次按钮,k值增加1,不管按钮按多久,只要按1次,k只能增加1,长按没用,
若改为外部中断功能,也一样
程序如下
先定义个bit变量n,按钮和n都是0时,按钮输入才有效,
按钮按下,n变成1,此时按钮输入就无效了,即使没抬起按钮,输入也无效了,
只记录1次输入,按钮抬起,n复0,等待再次按下。




作者: Y_G_G    时间: 2022-3-11 19:55
用定时器先做好一个单击,双击,长按的,自己验证后,把定时器初始化和定时器中断做.C文件,以后只调用就行了,这样不是更方便
作者: 188610329    时间: 2022-3-11 20:11
在实际项目中,能有独立按键的机会是非常渺芒的,基本上,根据实际电路复用一些其他外设的引脚(如LED公共端),然后,汇总到一个IO来判断按键的概率比较高,有时候,有配TM系列芯片,会用TM芯片的按键判定,所以,按键这东西,关键还是搞明白原理,实际使用时。根据不同的项目,根据实际情况,作一个按键分支,也就几分钟的事情。
作者: tatachaoren    时间: 2022-3-11 22:33
其实最好在程序中能不用Delay就不要用Delay,特别是软件时序比较严谨的情况下
作者: ghdtgjhn    时间: 2022-3-11 23:33
纯延时对程序影响太大,工程中不现实




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1