标题:
arduino数码管显示
[打印本页]
作者:
15254221665
时间:
2018-7-29 20:52
标题:
arduino数码管显示
#define d_a 2
#define d_b 3
#define d_c 4
#define d_d 5
#define d_e 6
#define d_f 7
#define d_g 8
#define d_h 9
#define COM1 10
#define COM2 11
#define COM3 12
#define COM4 13
unsigned char num[20][8] = {
//a b c d e f g h
{0,0,0,0,0,0,0,0},
{1, 1, 1, 1, 1, 1, 0, 0}, //0
{0, 1, 1, 0, 0, 0, 0, 0}, //1
{1, 1, 0, 1, 1, 0, 1, 0}, //2
{1, 1, 1, 1, 0, 0, 1, 0}, //3
{0, 1, 1, 0, 0, 1, 1, 0}, //4
{1, 0, 1, 1, 0, 1, 1, 0}, //5
{1, 0, 1, 1, 1, 1, 1, 0}, //6
{1, 1, 1, 0, 0, 0, 0, 0}, //7
{1, 1, 1, 1, 1, 1, 1, 0}, //8
{1, 1, 1, 1, 0, 1, 1, 0}, //9
{1, 1, 1, 0, 1, 1, 1, 1}, //A
{1, 1, 1, 1, 1, 1, 1, 1}, //B
{1, 0, 0, 1, 1, 1, 0, 1}, //C
{1, 1, 1, 1, 1, 1, 0, 1}, //D
{1, 0, 0, 1, 1, 1, 1, 1}, //E
{1, 0, 0, 0, 1, 1, 1, 1}, //F
{0, 0, 0, 0, 0, 0, 0, 1}, //.
{0,0,0,0,0,0,1,0},
{1,1,1,1,1,1,0,1},
};
void setup()
{
pinMode(d_a,OUTPUT);
pinMode(d_b,OUTPUT);
pinMode(d_c,OUTPUT);
pinMode(d_d,OUTPUT);
pinMode(d_e,OUTPUT);
pinMode(d_f,OUTPUT);
pinMode(d_g,OUTPUT);
pinMode(d_h,OUTPUT);
pinMode(COM1,OUTPUT);
pinMode(COM2,OUTPUT);
pinMode(COM3,OUTPUT);
pinMode(COM4,OUTPUT);
}
void loop()
{
for(int i=10;i>1;i--)
{ for(int q = 0;q<250;q++)
{
Display(3,18);
delay(2);
Display(4,i);
delay(2);
}
}
for(int j=10;j>1;j--)
{ for(int q = 0;q<250;q++)
{
Display(3,19);
delay(2);
Display(4,j);
delay(2);
}
}
for(int j=1;j<=10;j++)
{
if((j==3)||(j==4)||(j==6)||(j==8))
{
Display(4,j);
delay(100);
Display(4,0);
delay(100);
Display(4,j);
delay(100);
Display(4,0);
delay(100);
Display(4,j);
delay(100);
Display(4,0);
delay(100);
}
else
{
Display (4,j);
delay(1000);
}
}
for(int j=1;j<=10;j++)
{
if((j==2)||(j==4)||(j==8)||(j==10))
{
for(int p=0;p<250;p++){
Display(3,2);
delay(2);
Display(4,j);
delay(2);}
Display(4,0);
delay(100);
for(int p=0;p<250;p++){
Display(3,2);
delay(2);
Display(4,j);
delay(2);}
Display(4,0);
delay(100);
for(int p=0;p<250;p++){
Display(3,2);
delay(2);
Display(4,j);
delay(2);}
Display(4,0);
delay(100);
}
else
{
for(int p=0;p<250;p++){
Display(3,2);
delay(2);
Display(4,j);
delay(2);}
}
}
for(int p=0;p<250;p++)
{
Display(3,3);
delay(2);
Display(4,1);
delay(2);
}
}
void Display(unsigned char com,unsigned char n) {
digitalWrite(d_a,LOW);
digitalWrite(d_b,LOW);
digitalWrite(d_c,LOW);
digitalWrite(d_d,LOW);
digitalWrite(d_e,LOW);
digitalWrite(d_f,LOW);
digitalWrite(d_g,LOW);
digitalWrite(d_h,LOW);
switch(com) {
case 1:
digitalWrite(COM1,LOW);
digitalWrite(COM2,HIGH);
digitalWrite(COM3,HIGH);
digitalWrite(COM4,HIGH);
break;
case 2:
digitalWrite(COM1,HIGH);
digitalWrite(COM2,LOW);
digitalWrite(COM3,HIGH);
digitalWrite(COM4,HIGH);
break;
case 3:
digitalWrite(COM1,HIGH);
digitalWrite(COM2,HIGH);
digitalWrite(COM3,LOW);
digitalWrite(COM4,HIGH);
break;
case 4:
digitalWrite(COM1,HIGH);
digitalWrite(COM2,HIGH);
digitalWrite(COM3,HIGH);
digitalWrite(COM4,LOW);
break;
default:break;
}
digitalWrite(d_a,num[n][0]);
digitalWrite(d_b,num[n][1]);
digitalWrite(d_c,num[n][2]);
digitalWrite(d_d,num[n][3]);
digitalWrite(d_e,num[n][4]);
digitalWrite(d_f,num[n][5]);
digitalWrite(d_g,num[n][6]);
digitalWrite(d_h,num[n][7]);
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1