想做一个四位数码管分别显示1234 借鉴的一个程序 不知道该怎么改啊
#define SEG_A 2
#define SEG_B 3
#define SEG_C 4
#define SEG_D 5
#define SEG_E 6
#define SEG_F 7
#define SEG_G 8
#define SEG_H 9
#define COM1 10
#define COM2 11
#define COM3 12
#define COM4 13
unsigned char table[10][8]=
{
{0,0,1,1,1,1,1,1},
{0,0,0,0,0,1,1,0},
{0,1,0,1,1,0,1,1},
{0,1,0,0,1,1,1,1},
{0,1,1,0,0,1,1,0},
{0,1,1,0,1,1,0,1},
{0,1,1,1,1,1,0,1},
{0,0,0,0,0,1,1,1},
{0,1,1,1,1,1,1,1},
{0,1,1,0,1,1,1,1}
}
void setup()
{
pinMode(SEG_A,OUTPUT);
pinMode(SEG_B,OUTPUT);
pinMode(SEG_C,OUTPUT);
pinMode(SEG_D,OUTPUT);
pinMode(SEG_E,OUTPUT);
pinMode(SEG_F,OUTPUT);
pinMode(SEG_G,OUTPUT);
pinMode(SEG_H,OUTPUT);
pinMode(COM1,OUTPUT);
pinMode(COM2,OUTPUT);
pinMode(COM3,OUTPUT);
pinMode(COM4,OUTPUT);
}
void loop()
{
Display(1,1);
delay(500);
Display(2,2);
delay(500);
Display(3,3);
delay(500);
Display(4,4);
delay(500);
}
void display( unsigned char com,unsigned char num )
{
digitalWrite( SEG_A LOW);
digitalWrite( SEG_B LOW);
digitalWrite( SEG_C LOW);
digitalWrite( SEG_D LOW);
digitalWrite( SEG_E LOW);
digitalWrite( SEG_F LOW);
digitalWrite( SEG_G LOW);
digitalWrite( SEG_H LOW);
digitalWrite( SEG_A LOW);
switch(com)
{
case 1:
digitalwrite(com1,low);
digitalwrite(com2,low);
digitalwrite(com3,low);
digitalwrite(com4,low);
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( SEG_A,table[num][7]);
digitalWrite( SEG_B,table[num][6]);
digitalWrite( SEG_C,table[num][5]);
digitalWrite( SEG_D,table[num][4]);
digitalWrite( SEG_E,table[num][3]);
digitalWrite( SEG_F,table[num][2]);
digitalWrite( SEG_G,table[num][1]);
digitalWrite( SEG_H,table[num][0]);
}
|