数码管

来源:互联网 发布:网络游戏软件开发 编辑:程序博客网 时间:2024/05/20 01:07
unsigned char ch[7]={14,15,16,17,18,1,3};  //  7 8 10 12

void port(unsigned char x)
{
 
    int i=0;
    for(i=0;i<7;i++)
    {

     if(  (x&0x80)  !=  0)
       digitalWrite(ch[i],HIGH);                     // 00  000100
                                                   // 1000  0000
     else
       digitalWrite(ch[i],LOW);
     
     x=x<<1;

    }

}
unsigned char a[10]={0x03,0xcf,0x24,0x84,0xc8,0x90,0x10,0xc6,0x00,0x80};
void setup()
{
  int i=0;
  for(i=0;i<20;i++)
  {
    pinMode(i,OUTPUT);
  }
 
  for(i=7;i<=12;i++)
  {
    digitalWrite(i,HIGH);
  }
 
 
  //port(0xc0);    // 1100   0000
 
 
}
int num=2400;

void loop()
{
 
 
  int i=0;
  for(i=0;i<30;i++)
  {
    digitalWrite(12,HIGH);
    port(a[num/1000]);
    delay(6);
    digitalWrite(12,LOW);
    
    digitalWrite(10,HIGH);   // 1100 0011
    port(a[num%1000/100]);
    delay(6);
    digitalWrite(10,LOW);
 
    digitalWrite(8,HIGH);
    port(a[num%100/10]);
    delay(6);
    digitalWrite(8,LOW);
 
 
    digitalWrite(7,HIGH);
    port(a[num%10]);
    delay(6);
    digitalWrite(7,LOW);
  }
 
 
  num--;
 
 
}
原创粉丝点击