【单片机期中测试】4.按键不同时长控制流水灯

简介: 【单片机期中测试】4.按键不同时长控制流水灯
#include<reg52.h>
#define uc unsigned char
sbit key = P3^1;
void delay(uc c)
{
  uc a,b;
  for(;c>0;c--)
    for(a=38;a>0;a--)
        for(b=130;b>0;b--);
}
void delay1(uc c1)
{
  uc a1,b1;
  for(;c1>0;c1--)
  {
    for(a1=38;a1>0;a1--)
        for(b1=130;b1>0;b1--);
      if(key == 0)
        return;
  }
}
uc state()     //长按返回1,单击返回2,双击返回3
{
  uc x=0;
  uc i=0,j=0;
  while(key == 0 && i<8)
  {
    delay(5);
    i++;
  }
  if(i>=8) 
    x=1;
  else
  {
    while(key==1 && j<8)
    {
      j++;
      delay(5);
    }
    if(key==0)
      x=3;
    if(j>=8)
      x=2;
  }
  return x;
}
void main()
{
  uc x,k=0x01;
  while(1)
  {  
     if(key == 0)
   {    
    x=state();  
    while(x==1)
    { 
      delay(1);
      while(key==0);
      delay(1);
      P2=~k;
      k<<=1;
      if(k==0) k=0x01;      
      delay1(20);
      if(key==0)
      {
        x=state(); k=0x01;
        break;
      }
    }   
    while(x==2)
    {       
      P2=0xff;
      if(key==0)
      {
        x=state();
        break;
      }
    }
    while(x==3)
    {   
      P2=0;   
      if(key==0)
      {
        x=state();
        break;
      }
    }       
   }
  }
}
  • 接线:key1接P3^1
相关文章
|
1月前
|
算法 物联网 芯片
基于STM32和51单片机的8位全彩流水灯程序模板
基于STM32和51单片机的8位全彩流水灯程序模板
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
817 1
【51单片机】在LCD1602上显示时间:包含按键进行校准时间+闹钟功能:按键设置闹钟响铃时间,以及响铃的时间长度
【51单片机】在LCD1602上显示时间:包含按键进行校准时间+闹钟功能:按键设置闹钟响铃时间,以及响铃的时间长度
403 4
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
427 3
|
C语言
【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。
【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。
409 3
|
C语言
51单片机汇编语言流水灯代码
51单片机汇编语言流水灯代码
351 1
【51单片机】利用【时间延迟】的原理规避【按键抖动问题】
【51单片机】利用【时间延迟】的原理规避【按键抖动问题】
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
|
10月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
974 23
下一篇
oss云网关配置