找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 809|回复: 8
收起左侧

单片机定时器控制LED 0.5s亮灭,按键按下这个led常亮,怎么实现

[复制链接]
ID:302293 发表于 2024-5-29 15:26 | 显示全部楼层 |阅读模式
定时器控制LED 0.5s亮灭,按键按下这个led常亮,怎么实现,谢谢各位~
回复

使用道具 举报

ID:421260 发表于 2024-5-30 08:09 | 显示全部楼层
建一个标志位,判断标志位0时---LED0.5S亮灭,按键按下标志位取反置1---LED常亮
回复

使用道具 举报

ID:161164 发表于 2024-5-30 09:16 | 显示全部楼层
  1. if(Key == 0)//按键按下
  2. {
  3.         LED = 0;//亮灯
  4. }else{
  5.         if(Flag500ms == 1)//500ms标志位
  6.         {
  7.                 Flag500ms = 0;
  8.                 LED = !LED;//输出取反
  9.         }
  10. }
复制代码

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:123289 发表于 2024-5-30 09:35 | 显示全部楼层
1、做个0.5S翻转的标记B05,方法用定时器,每0.5S让:B05 = !B05。
2、做个按键翻转的标记KONOFF,每次按键按下:KONOFF = !KONOFF。
3、系统上电,以及每当1、2、有动作时,让:LED = KONOFF + ! KONOFF * B05。
这样:当按键按一下时,LED常亮;再按一下时,LED闪烁。
注:“!” 是取反的意思。
如果要按照你的意思,按下常亮,估计你也会做了。
回复

使用道具 举报

ID:234924 发表于 2024-5-30 09:41 | 显示全部楼层
首先设置一个标志位为1,当检测按键是否被按下,只要按下标志位为0停止计时并关闭LED
回复

使用道具 举报

ID:234924 发表于 2024-5-30 09:42 | 显示全部楼层
还需要停止计时
回复

使用道具 举报

ID:302293 发表于 2024-5-30 10:46 | 显示全部楼层

搞定了,谢谢·
回复

使用道具 举报

ID:1109793 发表于 2024-5-30 13:20 | 显示全部楼层
定时器{
if(key)led = 0;else led = !led;
}
回复

使用道具 举报

ID:302293 发表于 2024-6-3 07:46 | 显示全部楼层
ALEX-LLS 发表于 2024-5-30 09:41
首先设置一个标志位为1,当检测按键是否被按下,只要按下标志位为0停止计时并关闭LED

可行,谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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