单片机 独立按键与流水灯 数码管

#include<reg52.h>
#include<intrins.h>
sbit we=P2^7;
sbit du=P2^6;
sbit key_s2=P3^0;//S2°´¼ü
void delay(unsigned int x)
{
 unsigned char i;
    while(x--)
    {
     for(i=0;i<120;i++);
    }

}    
unsigned char leddata[]={ 
 
                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"
                0x77,  //"A"
                0x7C,  //"B"
                0x39,  //"C"
                0x5E,  //"D"
                0x79,  //"E"
                0x71,  //"F"
                0x76,  //"H"
                0x38,  //"L"
                0x37,  //"n"
                0x3E,  //"u"
                0x73,  //"P"
                0x5C,  //"o"
                0x40,  //"-"
                0x00,  //??
                0x00  //???
 
                         };
void main()
{
    unsigned char num;
  we=1;
    P0=0xfe; 
    we=0;
    while(1)
    {
        du=1;
        P0=leddata[num];
        du=0;
     if(key_s2==0)  //µ±°´ÏÂȥΪ0,·Å¿ªÎª1
     {
         delay(10);
         if(key_s2==0)
         {
           num++;
         }
         while(!key_s2);//Èç¹û°´×¡¾ÍÒ»Ö±ÔÚÕâ
     }
     if(num==10)
     {
     num=0;
     
     }
    }
    
    

}

===============================================独立按键控制流水灯和数码管

  1 #include<reg52.h>
  2 #include<intrins.h>
  3 sbit du=P2^6;//定义段选
  4 sbit we=P2^7;//定义位选
  5 sbit key_s2=P3^0;  //控制开启数码管
  6 sbit key_s3=P3^1;  //关闭数码管
  7 sbit key_s4=P3^2;  //led灯开启
  8 sbit key_s5=P3^3;  //led关闭
  9 
 10 void delay(unsigned int x)
 11 {
 12    unsigned char i;
 13     while(x--)
 14     {
 15      for(i=0;i<120;i++);
 16     }
 17 }
 18 unsigned char leddata[]={ 
 19  
 20                 0x3F,  //"0"
 21                 0x06,  //"1"
 22                 0x5B,  //"2"
 23                 0x4F,  //"3"
 24                 0x66,  //"4"
 25                 0x6D,  //"5"
 26                 0x7D,  //"6"
 27                 0x07,  //"7"
 28                 0x7F,  //"8"
 29                 0x6F,  //"9"
 30                 0x77,  //"A"
 31                 0x7C,  //"B"
 32                 0x39,  //"C"
 33                 0x5E,  //"D"
 34                 0x79,  //"E"
 35                 0x71,  //"F"
 36                 0x76,  //"H"
 37                 0x38,  //"L"
 38                 0x37,  //"n"
 39                 0x3E,  //"u"
 40                 0x73,  //"P"
 41                 0x5C,  //"o"
 42                 0x40,  //"-"
 43                 0x00,  //??
 44                 0x00  //???
 45  
 46                          };
 47 
 48 void main()
 49 {
 50     unsigned char i;
 51     TMOD=0x01;//工作模式,定时器0,定时器
 52     TH0=(0xffff-50000)/0xff;
 53     TL0=(0xfffff-50000)%0xff;
 54     
 55     we=1;
 56     P0=0xfe;
 57     we=0;
 58     while(1)
 59     {
 60         unsigned char num;
 61      if(TF0==1)
 62      {
 63          TH0=(0xffff-50000)/0xff;
 64        TL0=(0xfffff-50000)%0xff;
 65        TF0=0;
 66          i++;
 67      }
 68      if(i==20)
 69      {
 70        i=0;
 71          num++;
 72      }
 73      if(num==10)
 74      {
 75       num=0;
 76      }
 77      du=1;
 78      P0=leddata[num];
 79      du=0;
 80      if(key_s2==0)
 81      {
 82        delay(5);
 83          if(key_s2==0)
 84          {
 85          TR0=1;//启动定时器
 86          }
 87          while(!key_s2);
 88      }
 89      if(key_s3==0)
 90      {
 91        delay(5);
 92          if(key_s3==0)
 93          {
 94            TR0=0;//关闭定时器
 95          }
 96          while(!key_s3);
 97      }
 98      if(key_s4==0)
 99      {
100        delay(5);
101          if(key_s4==0)
102          {
103              P1=0;
104              delay(5);
105          }
106          while(!key_s4);
107      }
108       if(key_s5==0)
109         {
110             delay(5);
111             if(key_s5==0)
112             {
113           P1=0xff;
114             }
115             while(!key_s5);
116         }
117     }
118     
119 
120 }

 

posted @ 2018-01-02 13:27  Justice-V  阅读(1054)  评论(0)    收藏  举报