请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 3493|回复: 6

求助:独立按键怎么用按击2次来控制LED亮灭

[复制链接]

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2020-9-17 16:50:59 | 显示全部楼层 |阅读模式
1金钱
按击一次LED亮,按击2次LED灭------。


我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有4人回答

回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2020-9-18 16:56:36 | 显示全部楼层
按一次 对IO口取反
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2020-9-23 18:00:18 | 显示全部楼层
/*****定义一个按键口,一个LED灯口,LED灯状态取反就可以了,直接上程序。******/

#include <reg52.h>    //此文件中定义了单片机的一些特殊功能寄存器


sbit k1=P3^5;     //定义P35口是按键1
sbit led1=P2^0;     //定义P20口是led1


void delay(u16 i)       //延时函数
{
    while(i--);   
}



void main()  //主函数
{
     while(1)
         {

            if(k1==0)          //检测按键K1是否按下
              {   
                 delay(1000);   //消除抖动 一般大约10ms
                  if(k1==0)     //再次判断按键是否按下
                     {
                        led1=~led1;      //led状态取反
                      }
                    while(!k1);     //检测按键是否松开
                 }        

          }

    }






回复

使用道具 举报

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2020-9-24 10:26:39 | 显示全部楼层
欧小豪 发表于 2020-9-23 18:00
/*****定义一个按键口,一个LED灯口,LED灯状态取反就可以了,直接上程序。******/

#include     //此文 ...

这是按一下亮,按一下灭,我是想按两下再灭
回复

使用道具 举报

0

主题

13

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2020-11-18 09:06:42 来自手机 | 显示全部楼层
加个变量呗,先检测灯是亮还是灭,灭的话按一下灯亮,如果亮那么按一下变量加1,再按一下再加一,当变量等于2那么端口取反变量清零
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-28 18:22 , Processed in 0.095423 second(s), 36 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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