数码之家

 找回密码
 立即注册
搜索
查看: 4823|回复: 36

[综合] 让按键按下输出一个脉冲松开输出一个脉冲

[复制链接]
发表于 2021-1-5 09:39:25 来自手机浏览器 | 显示全部楼层 |阅读模式
本帖最后由 gongyu 于 2021-1-5 09:42 编辑

请教一下各位大神,如何用单片机编写一个程序,用四个按键控制四个灯。功能是:按键一按下灯一闪一下,松开闪一下;按键二按下灯二闪一下,松开也闪一下;每一路都是如此。也可以四路同时按下或者松开。
简单的说就是四路自锁开关的功能反过来。
对单片机只了解一点,还没入门不会使用中断
逻辑图如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2021-1-5 10:06:07 | 显示全部楼层
按下和松开之间有间隔?那估计用轮询好点吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 10:14:17 来自手机浏览器 | 显示全部楼层
ww5223017240 发表于 2021-1-5 10:06
按下和松开之间有间隔?那估计用轮询好点吧?

按下跟松开时间不是固定的,用轮询也可以,无奈不会写啊
回复 支持 反对

使用道具 举报

发表于 2021-1-5 10:26:46 | 显示全部楼层
学Linkboy吧,半小时就编好这个程序了
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2021-1-5 10:32:04 | 显示全部楼层
如果不按就这么放着是输出什么波形?
回复 支持 反对

使用道具 举报

发表于 2021-1-5 10:48:53 | 显示全部楼层
去抖 松手检测,单片机基础教程就有
回复 支持 反对

使用道具 举报

发表于 2021-1-5 12:02:10 | 显示全部楼层
高级会员 发表于 2021-1-5 10:32
如果不按就这么放着是输出什么波形?

不按哪来的波形?IO口没动作就不会有波形啊
回复 支持 反对

使用道具 举报

发表于 2021-1-5 12:05:52 | 显示全部楼层
gongyu 发表于 2021-1-5 10:14
按下跟松开时间不是固定的,用轮询也可以,无奈不会写啊

矩阵按键的编程看一下简单的,傻了,中断也可以的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 12:06:19 来自手机浏览器 | 显示全部楼层
ww5223017240 发表于 2021-1-5 12:05
矩阵按键的编程看一下简单的,傻了,中断也可以的

是的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 12:07:17 来自手机浏览器 | 显示全部楼层
高级会员 发表于 2021-1-5 10:32
如果不按就这么放着是输出什么波形?

按着不动输出低电平
回复 支持 反对

使用道具 举报

发表于 2021-1-5 13:22:02 | 显示全部楼层
新手就用arduino搞定,最小板10块钱左右
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2021-1-5 13:34:02 | 显示全部楼层
ww5223017240 发表于 2021-1-5 12:02
不按哪来的波形?IO口没动作就不会有波形啊

楼主要求是松开也要闪,松开不就是不按么?不按的话是一直闪还是一条直线?还是不动作?
回复 支持 反对

使用道具 举报

发表于 2021-1-5 14:05:06 | 显示全部楼层
边沿检测,检测到一次跳变就软件控制led亮灭一次。。。问题是你两次按键多长时间内算连击?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 14:38:21 来自手机浏览器 | 显示全部楼层
ks11900 发表于 2021-1-5 14:05
边沿检测,检测到一次跳变就软件控制led亮灭一次。。。问题是你两次按键多长时间内算连击? ...

1秒内算连击
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 14:46:38 来自手机浏览器 | 显示全部楼层
高级会员 发表于 2021-1-5 13:34
楼主要求是松开也要闪,松开不就是不按么?不按的话是一直闪还是一条直线?还是不动作? ...

是状态跳变的瞬间闪  比如说上升沿和下降沿跳变1-0  0-1的时候输出脉冲   不按或者一直按着不动是没有跳变的,所以没有输出
回复 支持 反对

使用道具 举报

发表于 2021-1-5 14:56:56 | 显示全部楼层
高级会员 发表于 2021-1-5 13:34
楼主要求是松开也要闪,松开不就是不按么?不按的话是一直闪还是一条直线?还是不动作? ...

按下是下降沿触发,松开是上升沿触发。
回复 支持 反对

使用道具 举报

发表于 2021-1-5 15:00:20 | 显示全部楼层
njchg567 发表于 2021-1-5 14:56
按下是下降沿触发,松开是上升沿触发。

松开是一个动作,有脉冲变化,不按是没有动作,没有脉冲变化。
回复 支持 反对

使用道具 举报

发表于 2021-1-5 15:01:10 | 显示全部楼层
njchg567 发表于 2021-1-5 15:00
松开是一个动作,有脉冲变化,不按是没有动作,没有脉冲变化。

我觉得用简单的触发电路就可以方便的实现。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 15:31:55 来自手机浏览器 | 显示全部楼层
njchg567 发表于 2021-1-5 15:01
我觉得用简单的触发电路就可以方便的实现。

有类似的电路吗   用硬件做也行
回复 支持 反对

使用道具 举报

发表于 2021-1-5 16:11:55 | 显示全部楼层
本帖最后由 njchg567 于 2021-1-5 16:43 编辑
gongyu 发表于 2021-1-5 15:31
有类似的电路吗   用硬件做也行

两个单稳态触发器,一个上升沿有效,一个下降沿有效,输出接到一个或门。
或者简单点这样我觉得可以吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-11 06:55 , Processed in 0.436801 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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