ch4_2七段顯示器閃爍顯示

老蔡mytsaii教學網頁,hi 你好,我是老蔡mytsaii

ch4_2七段顯示器閃爍顯示

數字5678,約先亮2秒,約再閃2秒,使用delay200延遲

使用74HC595串列轉並列

dataPin=10

latchPin=11

clockPin=12

dp, g, f, e, d, c, b, a 低電位作動解碼

0xC0,//0,11000000

0xF9,//1,11111001

0xA4,//2,10100100

0xB0,//3,10110000

0x99,//4,10011001

0x92,//5,10010010

0x82,//6,10000010

0xF8,//7,11111000

0x80,//8,10000000

0x90//9,10010000

//ch4_2

const int scan[4]={5,6,7,8};//pin5~pin8 = scan[0]~scan[3]

const int dataPin=10;//串列資料

const int latchPin=11;//栓鎖訊號

const int clockPin=12;//接腳移位脈波訊號

const int segCode[10]=  {

                        0xC0,//0,11000000

                        0xF9,//1,11111001

                        0xA4,//2,10100100

                        0xB0,//3,10110000

                        0x99,//4,10011001

                        0x92,//5,10010010

                        0x82,//6,10000010

                        0xF8,//7,11111000

                        0x80,//8,10000000

                        0x90//9,10010000

                        };


const int dispData[4]={5,6,7,8};

void setup()

{

  for(int i=0;i<4;i++)

  {

    pinMode(scan[i],OUTPUT);

    digitalWrite(scan[i],1);

  }

  pinMode(dataPin,OUTPUT);

  pinMode(clockPin,OUTPUT);

  pinMode(latchPin,OUTPUT);

  digitalWrite(latchPin,0);

}

void loop()

{

  for(int j=0;j<500;j++)

  {

    for(int i=0;i<4;i++)

    {

      digitalWrite(latchPin,0);//解除栓鎖

      shiftOut(dataPin,clockPin,MSBFIRST,segCode[dispData[i]]);

      digitalWrite(latchPin,1);

      digitalWrite(scan[3-i],0);

      delay(1);

      digitalWrite(scan[3-i],1);

    }

  }

  for(int j=0;j<5;j++)

  {

    for(int k=0;k<50;k++)

    {

      for(int i=0;i<4;i++)

      {

        digitalWrite(latchPin,0);//解除栓鎖

        shiftOut(dataPin,clockPin,MSBFIRST,segCode[dispData[i]]);

        digitalWrite(latchPin,1);

        digitalWrite(scan[3-i],0);

        delay(1);

        digitalWrite(scan[3-i],1);

      }

    }

    delay(200);

  }

}


留言

這個網誌中的熱門文章

量測例外練習01(計算+量測)