[51单片机]

一个开关控制多种花样流水灯程序怎么写

[复制链接]
2606|18
手机看帖
扫描二维码
随时随地手机跟帖
liwen_01| | 2017-11-11 08:17 | 显示全部楼层
简单啊,我这有大把程序,自己参考

使用特权

评论回复
jackRaui|  楼主 | 2017-11-11 14:37 | 显示全部楼层
liwen_01 发表于 2017-11-11 08:17
简单啊,我这有大把程序,自己参考

在哪呢

使用特权

评论回复
liwen_01| | 2017-11-13 09:36 | 显示全部楼层
276046384Q

使用特权

评论回复
风过琴弦| | 2017-11-13 19:44 | 显示全部楼层
设一个变量用来表示状态

使用特权

评论回复
jackRaui|  楼主 | 2017-11-13 21:08 | 显示全部楼层
风过琴弦 发表于 2017-11-13 19:44
设一个变量用来表示状态

key_scan( )
{
    P1=0x01;
        if((P1&0x01)!=0x01)
        {
          delay();
          if(k1==0)
          key=1;
          else(key=0);
          }         }

这样??

使用特权

评论回复
风过琴弦| | 2017-11-14 19:28 | 显示全部楼层
本帖最后由 风过琴弦 于 2017-11-14 19:29 编辑

main()
{
mode = 1;
while(1)
    { switch(mode){
case 1:
if(switch_status_changed)  mode ++;
blinking1();
break;        

case 2:
if(switch_status_changed)  mode ++;
blinking2();
break;   
......}
}

使用特权

评论回复
lnulibin| | 2017-11-14 20:15 | 显示全部楼层
这个问题如果细致研究很有意思。主要看想达到什么样的效果。

如果想在按下切换按钮后,等到当前的花样结束再执行新花样。就简单多了。不过,实时性差。一般一个花样需要几秒到十几秒。

如果想在按下切换按钮后,马上结束目前的花样。开始新花样。可能需要点技巧。最好是一种流畅切换。即前一种花样执行到三分之一,按下切换按钮后,新花样从三分之一处执行。用定时中断比较容易。

使用特权

评论回复
dirtwillfly| | 2017-11-15 10:59 | 显示全部楼层
关键是楼主想实现什么样的花样

使用特权

评论回复
jackRaui|  楼主 | 2017-12-5 21:14 | 显示全部楼层
lnulibin 发表于 2017-11-14 20:15
这个问题如果细致研究很有意思。主要看想达到什么样的效果。

如果想在按下切换按钮后,等到当前的花样结束 ...

第二种  就是一按就换花样的

使用特权

评论回复
jackRaui|  楼主 | 2017-12-5 21:14 | 显示全部楼层
dirtwillfly 发表于 2017-11-15 10:59
关键是楼主想实现什么样的花样

这个花样部分不难吧

使用特权

评论回复
一路向北lm| | 2017-12-5 22:38 | 显示全部楼层
可以参考7楼的改下就行

使用特权

评论回复
ifxz0123| | 2018-1-2 09:59 | 显示全部楼层
按键程序会写的话,我主要讲一下思路。首先定义一个全局变量或局部静态变量 static unsigned char key_status = 0;
然后,每监测到一次有效按键执行key_status ++; if( key_status > 10 ) key_status = 0; (假设是10种花样的流水灯);最后,在大循环中,可以这样写if( 0 == key_status ) {流水灯花样1代码}else if (1 == key_status){流水灯花样2代码}else if(2 == key_status代码)(流水灯花样3代码)……if( 10 == key_status ){流水灯花样10代码}。如果需要帮助,可以QQ我:905958949

使用特权

评论回复
coody| | 2018-1-2 12:06 | 显示全部楼层
切换不同的程序,或查表。

使用特权

评论回复
ohy3686| | 2018-1-2 12:27 | 显示全部楼层
可以用状态机的办法

使用特权

评论回复
LianBinbing| | 2018-1-3 11:50 | 显示全部楼层
这么很简单呀!按键累计按键按下的次数,然后判断按的次数选择不同的模式呀,如按了一次的时候,计数1,执行流水模式1,再按一次,计数加1,执行流水模式2...............

使用特权

评论回复
cactus0117| | 2018-1-3 13:47 | 显示全部楼层
0

使用特权

评论回复
haibao1213| | 2018-1-3 15:53 | 显示全部楼层
路过,具体功能需要根据产品来调试的。想要的效果不一定一次就可以调好,有产品就可以调好的。欢迎加q67229740沟通。

使用特权

评论回复
zqx1000| | 2018-4-10 21:30 | 显示全部楼层
kankan

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

0

粉丝