官方, 3個595, 第3個是開關

官方, 3個595, 第3個是開關

最遠, 次遠, 最近, 先送次序。

左, 顯示那支腳, 

右, 數字

 int latchPin = 5;//st_cp pin 12

int clockPin = 16;//sh_cp pin 11

int dataPin = 4;

#define uc unsigned char 

uc table[10];

void setup() 

{

    pinMode(latchPin, OUTPUT);

    pinMode(clockPin, OUTPUT);

    pinMode(dataPin, OUTPUT);

}

 

void loop()

{

  fix_tab();  

  while(1){

    for(int j=0;j<10;j++){

      digitalWrite(latchPin, LOW);// shift out the bits:

      shiftOut(dataPin, clockPin, MSBFIRST, 0);//最遠

      shiftOut(dataPin, clockPin, MSBFIRST, table[j]);//次遠

      shiftOut(dataPin, clockPin, MSBFIRST, ~(1<<(j%8)));//最近

      digitalWrite(latchPin, HIGH);// pause before next value:

      delay(1000);

    }

  }

}

void fix_tab()

{

  uc i;

  for(i=0;i<10;i++){ table[i]=0; }

  table[0]=~((1<<2)|(1<<0)|(1<<5)|(1<<4)|(1<<3)|(1<<1));

  table[1]=~((1<<0)|(1<<5));

  table[2]=~((1<<2)|(1<<0)|(1<<6)|(1<<3)|(1<<4));

  table[3]=~((1<<2)|(1<<0)|(1<<5)|(1<<4)|(1<<6));

  table[4]=~((1<<1)|(1<<0)|(1<<6)|(1<<5));

  table[5]=~((1<<2)|(1<<1)|(1<<6)|(1<<5)|(1<<4));

  table[6]=~((1<<2)|(1<<3)|(1<<6)|(1<<5)|(1<<4)|(1<<1));

  table[7]=~((1<<1)|(1<<2)|(1<<0)|(1<<5));

  table[8]=~((1<<2)|(1<<3)|(1<<0)|(1<<6)|(1<<1)|(1<<5)|(1<<4));

  table[9]=~((1<<2)|(1<<1)|(1<<0)|(1<<6)|(1<<5)|(1<<4));

}


留言

這個網誌中的熱門文章

無效的努力

股市-華頓S&P黃豆(00693U) 操作法