找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 792|回复: 4
打印 上一主题 下一主题
收起左侧

单片机按钮触发不需要定时器和中断的方法

[复制链接]
跳转到指定楼层
楼主
玩了几天51单片机,做了这个小功能.
在做按钮触发计数应用时,或者外部输入中断时,经常会需要用到定时器和外部中断,使用前需要繁琐的配置,配置错一步就不能用,
所以写了个这个程序,触发不需要用定时器,不需要中断,
以按钮输入为例,每按一次按钮,k值增加1,不管按钮按多久,只要按1次,k只能增加1,长按没用,
若改为外部中断功能,也一样
程序如下
先定义个bit变量n,按钮和n都是0时,按钮输入才有效,
按钮按下,n变成1,此时按钮输入就无效了,即使没抬起按钮,输入也无效了,
只记录1次输入,按钮抬起,n复0,等待再次按下。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:401564 发表于 2022-3-11 19:55 | 只看该作者
用定时器先做好一个单击,双击,长按的,自己验证后,把定时器初始化和定时器中断做.C文件,以后只调用就行了,这样不是更方便
回复

使用道具 举报

板凳
ID:624769 发表于 2022-3-11 20:11 | 只看该作者
在实际项目中,能有独立按键的机会是非常渺芒的,基本上,根据实际电路复用一些其他外设的引脚(如LED公共端),然后,汇总到一个IO来判断按键的概率比较高,有时候,有配TM系列芯片,会用TM芯片的按键判定,所以,按键这东西,关键还是搞明白原理,实际使用时。根据不同的项目,根据实际情况,作一个按键分支,也就几分钟的事情。
回复

使用道具 举报

地板
ID:488334 发表于 2022-3-11 22:33 | 只看该作者
其实最好在程序中能不用Delay就不要用Delay,特别是软件时序比较严谨的情况下
回复

使用道具 举报

5#
ID:509548 发表于 2022-3-11 23:33 | 只看该作者
纯延时对程序影响太大,工程中不现实
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表