//**********************************************************************
/* 
 * 文件名 : 一位数码管
 * 描述 : 一位数字管显示数字从9到0.
 * 作者 : www.keyes-robot.com
*/
// 设置每个段的IO引脚
int a=17; // a段的数字引脚GP17
int b=16; // b段的数字引脚GP16
int c=14; // c段的数字引脚GP14
int d=13; // d段的数字引脚GP13
int e=12; // e段的数字引脚GP12
int f=18; // f段的数字引脚GP18
int g=19; // g段的数字引脚GP19
int dp=15; // dp段的数字引脚GP15
void digital_0(void) // 显示数字0
{
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,HIGH);
  digitalWrite(e,HIGH);
  digitalWrite(f,HIGH);
  digitalWrite(g,LOW);
  digitalWrite(dp,LOW);
}
void digital_1(void) // 显示数字1
{
  digitalWrite(a,LOW);
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,LOW);
  digitalWrite(e,LOW);
  digitalWrite(f,LOW);
  digitalWrite(g,LOW);
  digitalWrite(dp,LOW);
}
void digital_2(void) // 显示数字2
{
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(c,LOW);
  digitalWrite(d,HIGH);
  digitalWrite(e,HIGH);
  digitalWrite(f,LOW);
  digitalWrite(g,HIGH);
  digitalWrite(dp,LOW);
}
void digital_3(void) // 显示数字3
{
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,HIGH);
  digitalWrite(f,LOW);
  digitalWrite(e,LOW);
  digitalWrite(dp,LOW);
  digitalWrite(g,HIGH);
}
void digital_4(void) // 显示数字4
{
  digitalWrite(a,LOW);
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,LOW);
  digitalWrite(e,LOW);
  digitalWrite(f,HIGH);
  digitalWrite(g,HIGH);
  digitalWrite(dp,LOW);
}
void digital_5(void) // 显示数字5
{
  digitalWrite(a,HIGH);
  digitalWrite(b,LOW);
  digitalWrite(c,HIGH);
  digitalWrite(d,HIGH);
  digitalWrite(e,LOW);
  digitalWrite(f,HIGH);
  digitalWrite(g,HIGH);
  digitalWrite(dp,LOW);
}
void digital_6(void) // 显示数字 6
{
  digitalWrite(a,HIGH);
  digitalWrite(b,LOW);
  digitalWrite(c,HIGH);
  digitalWrite(d,HIGH);
  digitalWrite(e,HIGH);
  digitalWrite(f,HIGH);
  digitalWrite(g,HIGH);
  digitalWrite(dp,LOW);
}
void digital_7(void) // 显示数字 7
{
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,LOW);
  digitalWrite(e,LOW);
  digitalWrite(f,LOW);
  digitalWrite(g,LOW);
  digitalWrite(dp,LOW);
}
void digital_8(void) // 显示数字 8
{
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,HIGH);
  digitalWrite(e,HIGH);
  digitalWrite(f,HIGH);
  digitalWrite(g,HIGH);
  digitalWrite(dp,LOW);
}
void digital_9(void) // 显示数字 9
{
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,HIGH);
  digitalWrite(e,LOW);
  digitalWrite(f,HIGH);
  digitalWrite(g,HIGH);
  digitalWrite(dp,LOW);
}
void setup()
{
  int i;// 声明一个变量
  for(i=12;i<=19;i++)
  pinMode(i,OUTPUT);// 设置PIN 12-19为输出
}
void loop()
{
  while(1)
  {
    digital_9();// 显示数字 9
    delay(1000); // 延时1秒
    digital_8();// 显示数字 8
    delay(1000); // 延时1秒
    digital_7();// 显示数字 7
    delay(1000); // 延时1秒
    digital_6();// 显示数字 6
    delay(1000); // 延时1秒
    digital_5();// 显示数字 5
    delay(1000); // 延时1秒
    digital_4();// 显示数字 4
    delay(1000); 
    digital_3();// 显示数字 3
    delay(1000); 
    digital_2();// 显示数字 2
    delay(1000); 
    digital_1();// 显示数字 1
    delay(1000); 
    digital_0();// 显示数字 0
    delay(1000);
  }
}
//**********************************************************************
