727315194 发表于 2015-2-5 21:45:24

arduino四位数码管驱动

所以准备一下材料

四位数码管   1个
arduino控制板   1个
面包板                1快
面包板专用跳线盒 若干
数据线               若干
220欧姆电阻       8个
这个驱动程序,是我看了其他人程序后总结的,应该可以给,和我一样的初学者一些帮助,
void setup()
{
for(int i=2;i<=13;i++)//这里用循环对接口初始化,设置输出接口,,2——5是位选,6——13是段选
pinMode(i,OUTPUT);
}
void loop()//主函数
{

       display(1,1);//函数调用
       delay(1000);
      display(2,2);//第一个2是位选,第二个2是要显示的数组,可以改变,比如改成5,数码管第二位就会显示5
       delay(1000);
      display(3,3);
       delay(1000);
      display(4,4);
       delay(1000);
   
}
void display(unsigned char com ,unsigned char num)//这里定义了两个变量
{
for(int j=6;j<=13;j++)
{
    digitalWrite(j,LOW);             //清零
}
          digitalWrite(2,HIGH);
          digitalWrite(3,HIGH);
          digitalWrite(4,HIGH);
          digitalWrite(5,HIGH);
switch(com)//其中一个变量用来选择数码管的位
{
    case 1:
          digitalWrite(2,LOW);
               break;
   case 2:
                   digitalWrite(3,LOW);
                  break;
   case 3:
                   digitalWrite(4,LOW);
                  break;
   case 4:
                  digitalWrite(5,LOW);   
       break;
    default:break;   
}
   int table={ 1,1,1,1,1,1,0,0,//0   //这里是用数组显示的0到f
               0,1,1,0,0,0,0,0,//1
               1,1,0,1,1,0,1,0,//2
               1,1,1,1,0,0,1,0,//3
               0,1,1,0,0,1,1,0,//4
               1,0,1,1,0,1,1,0,//5               //这个数组最后的0是代表小数点,0就是不显示
               1,0,1,1,1,1,1,0,//6
               1,1,1,0,0,0,0,0,//7
               1,1,1,1,1,1,1,0,//8
               1,1,1,1,0,1,1,0,//9
               0,0,1,1,1,1,1,0,//b
               1,0,0,1,1,1,0,0,//c
               0,1,1,1,1,0,1,0,//d
               1,0,0,1,1,1,1,0,//e
               1,0,0,0,1,1,1,0//f
               };
for(int j=6;j<=13;j++)             //这里是用循环将某一位数码管显示
      digitalWrite(j,table);//另外一个变量num来选择你所以显示的数字,
}
第一次发帖,没有准备视频,这个演示效果是,四位数码管轮流显示数字,数字有自己设定,
页: [1]
查看完整版本: arduino四位数码管驱动