找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

有两种单片机流水灯形式,想要加两个按键切换流水灯模式,程序应该怎么改,谢谢

查看数: 1521 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-5-20 21:53

正文摘要:

新手求助:有两种流水灯形式,想加两个按键切换流水灯模式,按键程序搞半天也没整明白,请高人指点,谢谢!按键1执行 void disp0() 按键2执行 void disp1() 请大佬们帮帮忙,万分感谢! 单片机源程序如下: #incl ...

回复

ID:1105755 发表于 2024-5-23 20:30
xiaobendan001 发表于 2024-5-21 09:25
if(按键1)disp0();
if(按键2)disp1();

谢谢!
ID:1105755 发表于 2024-5-23 20:29
cheney03 发表于 2024-5-21 08:58
先定义两个按键参数sbit k1=P1^6; sbit k2=P1^7;  主函数:        if(k1==0)        //检测按键K1是否按下{delay(1000);  ...

谢谢!我弄一下试试。
ID:1105755 发表于 2024-5-23 20:28
LaoYuTou 发表于 2024-5-21 08:18
定义按键端口
sbit key1 =  P1^6;
sbit key2 =  P1^7;

谢谢!刚开始弄,研究一下
ID:1109793 发表于 2024-5-21 09:25
if(按键1)disp0();
if(按键2)disp1();
ID:743654 发表于 2024-5-21 08:58
先定义两个按键参数sbit k1=P1^6; sbit k2=P1^7;  主函数:        if(k1==0)        //检测按键K1是否按下{delay(1000);   //消除抖动 一般大约10ms  if(k1==0)         //再次判断按键是否按下{disp0();   //模式1}while(!k1);         //检测按键1是否松开              if(k2==0)        //检测按键K2是否按下{delay(1000);   //消除抖动 一般大约10ms  if(k2==0)//再次判断按键是否按下{disp1();   //模式2}while(!k2);         //检测按键2是否松开
ID:1080935 发表于 2024-5-21 08:18
定义按键端口
sbit key1 =  P1^6;
sbit key2 =  P1^7;
在主循环中while(1)中改为
{
  if(!key1)
  {//可以考虑消抖,仿真中可不用。
    disp0();
    while(!key1);//等待按键释放
  }
  if(!key2)
  {
     disp1();
     while(!key2);//等待按键释放
  }
}
这种方法不是特别推荐,可以额外定义一边量作为状态初始为0,按键按下后状态改变(1或2),根据状态调用对应函数,调用完后变量清零。这相当于只调用一次的任务。

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

Powered by 单片机教程网

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