2021年7月10日 星期六

display 2021

 int seg7[] = {2,3,4,5,6,7,8,9};

int scan[] = { 13, 12, 11, 10 };

int delaytime=5;

int table_7seg[]=

{

  0xc0,0xf9,0xa4,0xb0,

  0x99,0x92,0x82,0xf8,

  0x80,0x90 };

int i,j;    // 迴圈用的變數

int ScanLine=0;

void setup()

{                

  for (i=0; i<8; i++) {

     pinMode(seg7[i], OUTPUT);

  }

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

     pinMode(scan[i], OUTPUT);

     digitalWrite(scan[i], LOW);  // 掃描端電晶體 OFF

  }

  Serial.begin(9600);

}

void loop() 

{

  OutPort(table_7seg[2]);

  digitalWrite(scan[0], HIGH);    delay(delaytime);  digitalWrite(scan[0], LOW);  

  OutPort(table_7seg[0]);

  digitalWrite(scan[1], HIGH);    delay(delaytime);  digitalWrite(scan[1], LOW); 

  OutPort(table_7seg[2]);

  digitalWrite(scan[2], HIGH);    delay(delaytime);  digitalWrite(scan[2], LOW);

  OutPort(table_7seg[1]);                

  digitalWrite(scan[3], HIGH);    delay(delaytime);  digitalWrite(scan[3], LOW);  

}


void OutPort(byte dat)

{

  for (j=0; j<8; j++) {

    if (dat % 2==1)  // 取出 dat 的最低位元

      digitalWrite(seg7[j], LOW);  // 若為 1 代表該段要亮, 輸出高準位

    else

      digitalWrite(seg7[j], HIGH);   // 若為 0 代表該段要滅, 輸出低準位

    dat=dat/2;  // 除2,進行下一位元的處理

  }  

}

沒有留言:

張貼留言

algorithm

 #include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv)  { for(int j=2;j<=100;j++)//j...