找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3322|回复: 0
打印 上一主题 下一主题
收起左侧

C51单片机实现键控流水灯

[复制链接]
跳转到指定楼层
楼主
ID:460340 发表于 2019-1-2 18:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define LED P3
  5. uchar i,flag1,flag2,flag3,flag4;


  6. sbit k1=P2^4;
  7. sbit k2=P2^5;
  8. sbit k3=P2^6;
  9. sbit k4=P2^7;


  10. uchar table1[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xff};
  11. uchar table2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};
  12. uchar table3[]={0x7e,0xbd,0xdb,0xe7,0xff};
  13. uchar table4[]={0xaa,0x55};


  14. void delay(uint x)
  15. {
  16. uint i;
  17. while(x--)
  18. for(i=50;i>0;i--);
  19.   }


  20.   void keyscan()
  21.   {
  22.      if(k1==0)
  23.      {
  24.        delay(10);
  25.         if(k1==0)
  26.          {
  27.              flag2=0;
  28.              flag3=0;
  29.              flag4=0;
  30.              flag1=1;
  31.           }
  32.       }
  33.   
  34.   if(k2==0)
  35.   {
  36.      delay(10);
  37.      if(k2==0)
  38.       {
  39.              
  40.           flag1=0;
  41.           flag3=0;
  42.           flag4=0;
  43.           flag2=1;
  44.         }
  45.     }

  46.   if(k3==0)
  47.   {
  48.      delay(10);
  49.      if(k3==0)
  50.       {
  51.              
  52.           flag1=0;
  53.           flag2=0;
  54.           flag4=0;
  55.           flag3=1;
  56.         }
  57.     }

  58. if(k4==0)
  59.   {
  60.      delay(10);
  61.      if(k4==0)
  62.       {
  63.              
  64.           flag1=0;
  65.           flag2=0;
  66.           flag3=0;
  67.           flag4=1;
  68.         }
  69.     }
  70.   }



  71.   void main()
  72.   {
  73.       while(1)
  74.       {
  75.          keyscan();
  76.          if(flag1==1)
  77.          {
  78.             for(i=0;i<16;i++)
  79.           {
  80.             LED=table1[i];
  81.             delay(200);
  82.              keyscan();
  83.             }
  84.           }
  85.   

  86.                   if(flag2==1)
  87.           {
  88.             for(i=0;i<14;i++)
  89.            {
  90.               LED=table2[i];
  91.               delay(300);
  92.                keyscan();
  93.             }
  94.           }

  95.                  if(flag3==1)
  96.          {
  97.             for(i=0;i<5;i++)
  98.           {
  99.             LED=table3[i];
  100.             delay(250);
  101.              keyscan();
  102.             }
  103.           }

  104.                  if(flag4==1)
  105.          {
  106.             for(i=0;i<2;i++)
  107.           {
  108.             LED=table4[i];
  109.             delay(600);
  110.              keyscan();
  111.             }
  112.           }

  113.                 }
  114.      }
复制代码
此商品已被删除

666.docx

14.44 KB, 下载次数: , 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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