2位数码管从静态到动态的过程
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;
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;
}
}
}
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=3168&highlight=%CA%FD%C2%EB%B9%DC
看看这个帖子,里面讲解的很详细。 学习Arduino没有多长时间,最近在学数码管,看了楼主写的2位共阳数码管,很好理解。数码管有写好的库,SevSeg,内部中断也有写好的库,TimerOne。 值班室 发表于 2015-1-9 22:21
学习Arduino没有多长时间,最近在学数码管,看了楼主写的2位共阳数码管,很好理解。数码管有写好的库,SevS ...
我还不知到怎么把库添加到IDE那里的,求教啊,一起学习 把库文件放在Arduino IDE的libraries文件夹中就可以了。 那库文件在哪里有下啊?英文网站看不懂啊:'(学好英文才行 多谢解答,我是想问下那些库文件在国内网站哪里可以下载的?知道就说下吧,谢谢了 学Arduino也不长,还是个新手,库方面的资料都来自论坛,最近正在学习四位数码管,愿与朋友们共同交流,共同学习。 嗯,共同学习,2位和4位的道理是一样的,学过51单片机的很容易懂
页:
[1]