数码管累加器
本帖最后由 子夏清 于 2015-2-15 10:38 编辑//按一下按键数码管加一
#include<Arduino.h>
#define a 2
#define b 3
#define c 4
#define d 5
#define e 6
#define f 7
#define g 8
#define h 9
#define com1 10
#define com2 11
#define com3 12
#define com4 13
#define an_jian 1
char anxia = 1;
char s = 0; /*随便定义的变量*/
unsigned char tiaodeng[]=
{
{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()
{
for(unsigned char z = 2; z <= 13; z++)
{
pinMode(z,OUTPUT);
}
pinMode(an_jian,INPUT);
digitalWrite(an_jian,HIGH);
}
void loop()
{
if(jian_ce() == 1)
{
s++;
if(s > 9999)
{
s = 0;
}
}
shumaguang(1,s/1000);
delay(2);
shumaguang(2,s%1000/100);
delay(2);
shumaguang(3,s%100/10);
delay(2);
shumaguang(4,s%10);
delay(2);
}
unsigned char jian_ce()
{
if(anxia == 1 && digitalRead(an_jian) == LOW)
{
anxia = 0;
delay(1);
if(digitalRead(an_jian) == LOW);
{
return 1;
}
}
if(digitalRead(an_jian) == HIGH)
{
anxia = 1;
}
return 0;
}
unsigned char shumaguang(unsigned char com,unsigned num)
{
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(h,LOW);
switch(com)
{
case 1:
digitalWrite(com1,LOW);
digitalWrite(com2,HIGH);
digitalWrite(com3,HIGH);
digitalWrite(com4,HIGH);
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(a,tiaodeng);
digitalWrite(b,tiaodeng);
digitalWrite(c,tiaodeng);
digitalWrite(d,tiaodeng);
digitalWrite(e,tiaodeng);
digitalWrite(f,tiaodeng);
digitalWrite(g,tiaodeng);
digitalWrite(h,tiaodeng);
} //用数码管显示温度
#include<Arduino.h>
#define a 2
#define b 3
#define c 4
#define d 5
#define e 6
#define f 7
#define g 8
#define h 9
#define com1 10
#define com2 11
#define com3 12
#define com4 13
#define LM35 A0
int z,s;
unsigned char tiaodeng[]=
{
{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()
{
for(unsigned char z = 2; z <= 13; z++)
{
pinMode(z,OUTPUT);
}
Serial.begin(9600);
}
void loop()
{
z = analogRead(LM35); //读取AD值
s = z * 0.48876;
Serial.print("LM35 = ");
Serial.println(s);
shumaguang(1,s/10);
delay(2);
shumaguang(2,s%10);
delay(2);
}
unsigned char shumaguang(unsigned char com, unsigned num)
{
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(h,LOW);
switch(com)
{
case 1:
digitalWrite(com1,LOW);
digitalWrite(com2,HIGH);
digitalWrite(com3,HIGH);
digitalWrite(com4,HIGH);
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);
}
digitalWrite(a,tiaodeng);
digitalWrite(b,tiaodeng);
digitalWrite(c,tiaodeng);
digitalWrite(d,tiaodeng);
digitalWrite(e,tiaodeng);
digitalWrite(f,tiaodeng);
digitalWrite(g,tiaodeng);
digitalWrite(h,tiaodeng);
} 不错,挺好的啊 正在学习Arduino…… 正是我找的,謝謝
页:
[1]