标题: C51单片机实现键控流水灯 [打印本页]

作者: xiexiaojun0711    时间: 2019-1-2 18:49
标题: C51单片机实现键控流水灯

  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






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