#define PA 7
#define PB 6
#define PC 5
#define PD 10
#define PE 11
#define PF 8
#define PG 9
#define DP 4
void digital_show(int num)
{
//num:0--9
if(num<0) num=0;
if(num>9) num=9;
for(int i=4;i<=11;i++)
digitalWrite(i, LOW);
switch(num)
{
case 0:
digitalWrite(PA, HIGH);
digitalWrite(PB, HIGH);
digitalWrite(PC, HIGH);
digitalWrite(PD, HIGH);
digitalWrite(PE, HIGH);
digitalWrite(PF, HIGH);
break;
case 1:
digitalWrite(PB, HIGH);
digitalWrite(PC, HIGH);
break;
case 2:
digitalWrite(PA, HIGH);
digitalWrite(PB, HIGH);
digitalWrite(PD, HIGH);
digitalWrite(PE, HIGH);
digitalWrite(PG, HIGH);
break;
case 3:
digitalWrite(PA, HIGH);
digitalWrite(PB, HIGH);
digitalWrite(PC, HIGH);
digitalWrite(PD, HIGH);
digitalWrite(PG, HIGH);
break;
case 4:
digitalWrite(PC, HIGH);
digitalWrite(PB, HIGH);
digitalWrite(PF, HIGH);
digitalWrite(PG, HIGH);
break;
case 5:
digitalWrite(PA, HIGH);
digitalWrite(PC, HIGH);
digitalWrite(PD, HIGH);
digitalWrite(PF, HIGH);
digitalWrite(PG, HIGH);
break;
case 6:
digitalWrite(PA, HIGH);
digitalWrite(PC, HIGH);
digitalWrite(PD, HIGH);
digitalWrite(PE, HIGH);
digitalWrite(PF, HIGH);
digitalWrite(PG, HIGH);
break;
case 7:
digitalWrite(PA, HIGH);
digitalWrite(PB, HIGH);
digitalWrite(PC, HIGH);
break;
case 8:
digitalWrite(PA, HIGH);
digitalWrite(PB, HIGH);
digitalWrite(PC, HIGH);
digitalWrite(PD, HIGH);
digitalWrite(PE, HIGH);
digitalWrite(PF, HIGH);
digitalWrite(PG, HIGH);
break;
case 9:
digitalWrite(PA, HIGH);
digitalWrite(PB, HIGH);
digitalWrite(PC, HIGH);
digitalWrite(PD, HIGH);
digitalWrite(PF, HIGH);
digitalWrite(PG, HIGH);
break;
}
}
int keyflag=0;
int buttonState=0;
void setup() {
for(int i=4;i<=11;i++)
pinMode(i, OUTPUT);
pinMode(2, INPUT);//设置为输入引脚
Serial.begin(9600);
}
void loop()
{
Serial.print(".");
buttonState=digitalRead(2);
if(buttonState==HIGH)//按键按下
{
delay(20);
buttonState=digitalRead(2);
if(buttonState==HIGH)//按键按下
{
delay(20);
buttonState=digitalRead(2);
if(buttonState==HIGH)//按键按下
{
keyflag=1+keyflag;
Serial.print(keyflag);
}
}
for(int i=4;i<=11;i++)
if(keyflag==1){
digitalWrite(i,HIGH);
}
else{
digitalWrite(i,LOW);
}
digital_show(keyflag);
delay(200);
}
}