1.开始写的是静态2位数码管,显示数字为12,但是有十位一点点的不正常,可以帮忙纠正哦const unsigned char LED8Pin[]={
6,7,8,10,11,13,12,9};//A B C D E F G Dp
const unsigned char LED8Code[]={
0xC0, // 0
0xF9, // 1
0xA4, // 2
0xB0, // 3
0x99, // 4
0x92, // 5
0x82, // 6
0xF8, // 7
0x80, // 8
0x90, // 9
0x88, // A
0x83, // B
0xC6, // C
0xA1, // D
0x86, // E
0x8E // F
};
int wei1 = 2;
int wei2 = 3;
void setup()
{
char i;
pinMode(wei1,OUTPUT);
pinMode(wei2,OUTPUT);
digitalWrite(wei1,LOW);
digitalWrite(wei2,LOW);
for(i=0;i<8;i++)
{
pinMode(LED8Pin, OUTPUT);
digitalWrite(LED8Pin, HIGH);
}
}
int a;
void loop()
{
digitalWrite(wei1,HIGH);
LED8Show(1);
delay(10);
digitalWrite(wei1,LOW);
LED8Show(2);
digitalWrite(wei2,HIGH);
delay(10);
digitalWrite(wei2,LOW);
}
void LED8Show(char data){
char i;
char j;
char hc;
if(0<=data<16)
{
hc = LED8Code[data];
for(i=0;i<8;i++)
{
j = bitRead(hc,i);
digitalWrite(LED8Pin, j);
}
}
}
2.现在修改的是主函数loop就可以哦,显示是00-->>99不断循环的,我暂时还没了解到中断函数,这个比较一般的哦,代码如下:
int a ,b = 0,c = 0;
void loop()
{
digitalWrite(wei1,HIGH);
LED8Show(b/10);
delay(10);
digitalWrite(wei1,LOW);
LED8Show(b%10);
digitalWrite(wei2,HIGH);
delay(10);
digitalWrite(wei2,LOW);
c++;
if(c==50)
{
b++;
c = 0;
if(b == 100)
{
b = 0;
}
}
}
|