我本善良 发表于 2015-5-11 15:38:47

新手上路 不知道哪有问题 请大家帮忙啊

想做一个四位数码管分别显示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 COM110
#define COM211
#define COM312
#define COM413

unsigned char table=
{
{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);
}

voidloop()
{
    Display(1,1);
    delay(500);
    Display(2,2);
    delay(500);
    Display(3,3);
    delay(500);
    Display(4,4);
    delay(500);
}

void display( unsigned charcom,unsigned charnum    )
{
    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);
    digitalWrite( SEG_B,table);
    digitalWrite( SEG_C,table);
    digitalWrite( SEG_D,table);
    digitalWrite( SEG_E,table);
    digitalWrite( SEG_F,table);
    digitalWrite( SEG_G,table);
    digitalWrite( SEG_H,table);
   
}
      
   
页: [1]
查看完整版本: 新手上路 不知道哪有问题 请大家帮忙啊