标题: 怎么用一个按键点亮和关闭单片机流水灯 求帮助 [打印本页]

作者: 没有51单片机    时间: 2019-3-21 19:40
标题: 怎么用一个按键点亮和关闭单片机流水灯 求帮助
单片机新手,怎么用一个按键点亮和关闭流水灯?我只能设置按下亮松开又灭 师傅说要按下亮在按一下灭怎么实现啊?求帮忙
作者: zhb2004xp    时间: 2019-3-21 21:32
前提是已经有并且可以正常运行的流水灯程序,把流水灯程序放在while(1){}循环中(应该已经在了),把while(1)中的判断条件“1”换成一个bit型变量,设置KEY按下时这个变量翻转就可以了

作者: jzy1455173290    时间: 2019-3-21 22:17
按第一下  按一下 加一  看  是单数还是偶数
作者: HC6800-ES-V2.0    时间: 2019-3-22 08:19

#include<reg51.h>
#include<intrins.h>       

#define GPIO_LED P2

sbit k1=P3^1;

void Delay10ms(unsigned int c);

void main(void)
{
        unsigned int i;
        bit f;                       
        f=0;
        GPIO_LED=0xfe;
        while(1)
        {       
                if(k1==0)
                {
                        Delay10ms(1);
                        if(k1==0)
                        {
                                f=~f;
                            while((i<50)&&(k1==0))
                            {
                                    Delay10ms(1);
                                    i++;
                            }
                            i=0;
                        }
                }
                if (f==1)
                {
                        GPIO_LED=_crol_(GPIO_LED,1);
                        Delay10ms(30);
                }
        }               
}
void Delay10ms(unsigned int c)
{
    unsigned char a,b;
    for(c;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}





作者: ping264888    时间: 2019-3-22 08:28
设定一个状态位, 灯的亮灭受状态位控制, 检测到按键就翻转状态位.
作者: 天风情    时间: 2019-3-22 09:29
流水灯外加条件判断
作者: zzfwhlltz    时间: 2019-3-22 11:27
外加一个判断程序  例如 计数: 按一下+1  偶数亮 奇数不亮 这样就可以按一下亮 按一下灭  循环
作者: 没有51单片机    时间: 2019-3-24 23:51
HC6800-ES-V2.0 发表于 2019-3-22 08:19
#include
#include       


谢谢大哥

作者: 没有51单片机    时间: 2019-3-24 23:51
zzfwhlltz 发表于 2019-3-22 11:27
外加一个判断程序  例如 计数: 按一下+1  偶数亮 奇数不亮 这样就可以按一下亮 按一下灭  循环

程序大概是怎么样的
作者: zxb123    时间: 2019-3-29 11:31
给一个  flag
作者: 奋斗的小白熊    时间: 2019-3-29 13:33
你用按键按下给一个标记啊  key——
作者: 冉冉孤生竹    时间: 2019-3-30 16:58
写一个流水函数,在主函数里如果按键按下执行流水灯否则关闭流水灯
作者: my-    时间: 2019-3-30 21:00
可以将流水灯控制变成反转,按一下反转一次
作者: 耆睿    时间: 2019-3-31 11:31
你需要一个标志位,检测到按键按下就翻转一次
作者: 18371269426    时间: 2019-3-31 14:59
设置一个外部中断,将控制流水灯的开关功能设置在中断函数中
作者: 我对你情有独钟    时间: 2019-3-31 22:07
加一个while(1);
作者: 菜鸟@    时间: 2019-4-1 11:45
找一本单片机的书,一般都会有教程的。
作者: aeef    时间: 2019-4-1 14:18
按键中断
作者: 特立独行的猪    时间: 2019-4-1 16:17
加一个判断程序  用按键标记一下哦

作者: 没有51单片机    时间: 2019-8-15 21:47
HC6800-ES-V2.0 发表于 2019-3-22 08:19
#include
#include       

谢谢大佬谢谢

作者: tianlan803    时间: 2019-8-15 22:19
可以用反转控制,按一下反转一次
作者: 小枫啊    时间: 2019-8-16 10:29
标志位
作者: laurencecha    时间: 2019-8-16 11:25
可以将按键连接的引脚设置成中断引脚,然后在中断函数中计中断次数,计数为单次时将等打开,计数为偶数次时将灯关闭
作者: 惜春九歌词    时间: 2019-8-29 23:41
你可以定义一个变量,按键一下变量加一,只需要看奇偶就可以了




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