您的位置首页百科问答

Arduino之4位数码管实验(简单秒表)

Arduino之4位数码管实验(简单秒表)

的有关信息介绍如下:

Arduino之4位数码管实验(简单秒表)

Arduino 4位数码管(简单秒表)实验。包含了4位共阴极和共阳极数码管实验的代码。

前篇经验对于数码管的管脚做了详细的介绍。如有需要,可参考本人经验:http://jingyan.baidu.com/article/1709ad80bfc8e84634c4f011.html

详细的接线对应图如下表,简单清晰明了。

int a=1;

int b=2;

int c=3;

int d=4;

int e=5;

int f=6;

int g=7;

int p=8;

int d4=9;

int d3=10;

int d2=11;

int d1=12;

long n=0;

int x=100;

int del=55;

void setup()

{

pinMode(a,OUTPUT);

pinMode(b,OUTPUT);

pinMode(c,OUTPUT);

pinMode(d,OUTPUT);

pinMode(e,OUTPUT);

pinMode(f,OUTPUT);

pinMode(g,OUTPUT);

pinMode(p,OUTPUT);

pinMode(d4,OUTPUT);

pinMode(d3,OUTPUT);

pinMode(d2,OUTPUT);

pinMode(d1,OUTPUT);

}

void loop()

{

clearLEDs();

pickDigit(1);

pickNumber((n/x/1000)%10);

delayMicroseconds(del);

clearLEDs();

pickDigit(2);

pickNumber((n/x/100)%10);

delayMicroseconds(del);

clearLEDs();

pickDigit(3);

dispDec(3);

pickNumber((n/x/10)%10);

delayMicroseconds(del);

clearLEDs();

pickDigit(4);

pickNumber(n/x%10);

delayMicroseconds(del);

n++;

if(digitalRead(13)==LOW)

{

n=0;

}

}

void pickDigit(int x)

{

digitalWrite(d1,HIGH);

digitalWrite(d2,HIGH);

digitalWrite(d3,HIGH);

digitalWrite(d4,HIGH);

switch(x)

{

case 1:

digitalWrite(d1,LOW);

break;

case 2:

digitalWrite(d2,LOW);

break;

case 3:

digitalWrite(d3,LOW);

break;

default:

digitalWrite(d4,LOW);

break;

}

}

void pickNumber(int x)

{

switch(x)

{

default:

zero();

break;

case 1:

one();

break;

case 2:

two();

break;

case 3:

three();

break;

case 4:

four();

break;

case 5:

five();

break;

case 6:

six();

break;

case 7:

seven();

break;

case 8:

eight();

break;

case 9:

nine();

break;

}

}

void dispDec(int x)

{

digitalWrite(p,HIGH);

}

void clearLEDs()

{

digitalWrite(a,LOW);

digitalWrite(b,LOW);

digitalWrite(c,LOW);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

digitalWrite(p,LOW);

}

void zero()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,LOW);

}

void one()

{

digitalWrite(a,LOW);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

}

void two()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,LOW);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,LOW);

digitalWrite(g,HIGH);

}

void three()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,HIGH);

}

void four()

{

digitalWrite(a,LOW);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

void five()

{

digitalWrite(a,HIGH);

digitalWrite(b,LOW);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

void six()

{

digitalWrite(a,LOW);

digitalWrite(b,LOW);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

void seven()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

}

void eight()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

void nine()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

设置引脚工作方式,in为输入,out为输出。

共阴极条件下,设置循环条件。

数码管显示数字“0”.

数码管显示数字“1”.

int a=1;

int b=2;

int c=3;

int d=4;

int e=5;

int f=6;

int g=7;

int p=8;

int d4=9;

int d3=10;

int d2=11;

int d1=12;

long n=0;

int x=100;

int del=55;

void setup()

{

pinMode(a,OUTPUT);

pinMode(b,OUTPUT);

pinMode(c,OUTPUT);

pinMode(d,OUTPUT);

pinMode(e,OUTPUT);

pinMode(f,OUTPUT);

pinMode(g,OUTPUT);

pinMode(p,OUTPUT);

pinMode(d4,OUTPUT);

pinMode(d3,OUTPUT);

pinMode(d2,OUTPUT);

pinMode(d1,OUTPUT);

}

void loop()

{

clearLEDs();

pickDigit(1);

pickNumber((n/x/1000)%10);

delayMicroseconds(del);

clearLEDs();

pickDigit(2);

pickNumber((n/x/100)%10);

delayMicroseconds(del);

clearLEDs();

pickDigit(3);

dispDec(3);

pickNumber((n/x/10)%10);

delayMicroseconds(del);

clearLEDs();

pickDigit(4);

pickNumber(n/x%10);

delayMicroseconds(del);

n++;

if(digitalRead(13)==HIGH)

{

n=0;

}

}

void pickDigit(int x)

{

digitalWrite(d1,LOW);

digitalWrite(d2,LOW);

digitalWrite(d3,LOW);

digitalWrite(d4,LOW);

switch(x)

{

case 1:

digitalWrite(d1,HIGH);

break;

case 2:

digitalWrite(d2,HIGH);

break;

case 3:

digitalWrite(d3,HIGH);

break;

default:

digitalWrite(d4,HIGH);

break;

}

}

void pickNumber(int x)

{

switch(x)

{

default:

zero();

break;

case 1:

one();

break;

case 2:

two();

break;

case 3:

three();

break;

case 4:

four();

break;

case 5:

five();

break;

case 6:

six();

break;

case 7:

seven();

break;

case 8:

eight();

break;

case 9:

nine();

break;

}

}

void dispDec(int x)

{

digitalWrite(p,LOW);

}

void clearLEDs()

{

digitalWrite(a,HIGH);

digitalWrite(b,,HIGH);

digitalWrite(c,,HIGH);

digitalWrite(d,,HIGH);

digitalWrite(e,,HIGH);

digitalWrite(f,,HIGH);

digitalWrite(g,,HIGH);

digitalWrite(p,,HIGH);

}

void zero()

{

digitalWrite(a,LOW);

digitalWrite(b,LOW);

digitalWrite(c,LOW);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,HIGH);

}

void one()

{

digitalWrite(a,HIGH);

digitalWrite(b,LOW);

digitalWrite(c,LOW);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

void two()

{

digitalWrite(a,HIGH);

digitalWrite(b,LOW);

digitalWrite(c,LOW);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

void three()

{

digitalWrite(a,LOW);

digitalWrite(b,LOW);

digitalWrite(c,LOW);

digitalWrite(d,LOW);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,LOW);

}

void four()

{

digitalWrite(a,HIGH);

digitalWrite(b,LOW);

digitalWrite(c,LOW);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

}

void five()

{

digitalWrite(a,LOW);

digitalWrite(b,HIGH);

digitalWrite(c,LOW);

digitalWrite(d,LOW);

digitalWrite(e,HIGH);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

}

void six()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,LOW);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

}

void seven()

{

digitalWrite(a,LOW);

digitalWrite(b,LOW);

digitalWrite(c,LOW);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

}

void eight()

{

digitalWrite(a,LOW);

digitalWrite(b,LOW);

digitalWrite(c,LOW);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

}

void nine()

{

digitalWrite(a,LOW);

digitalWrite(b,LOW);

digitalWrite(c,LOW);

digitalWrite(d,LOW);

digitalWrite(e,HIGH);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

}