数码管在使用时请接一定的电阻,以免数码管造成不必要的牺牲
这里数码管a、b、c、d、e、f、g、dp段分别对应端口7.6.5.11.10.8.9.4
int a=7;
int b=6;
int c=5;
int d=11;
int e=10;
int f=8;
int g=9;
int dp=4;
//显示数字1
void digital_1(void)
{
unsigned char j;
digitalWrite(c,LOW);//给数字5引脚低电平,点亮c段
digitalWrite(b,LOW);//点亮b段
for(j=7;j<=11;j++)//熄灭其余段
digitalWrite(j,HIGH);
digitalWrite(dp,HIGH);//熄灭小数点DP段
}
//显示数字2
void digital_2(void)
{
unsigned char j;
digitalWrite(b,LOW);
digitalWrite(a,LOW);
for(j=9;j<=11;j++)
digitalWrite(j,LOW);
digitalWrite(dp,HIGH);
digitalWrite(c,HIGH);
digitalWrite(f,HIGH);
}
//显示数字3
void digital_3(void)
{
unsigned char j;
digitalWrite(g,LOW);
digitalWrite(d,LOW);
for(j=5;j<=7;j++)
digitalWrite(j,LOW);
digitalWrite(dp,HIGH);
digitalWrite(f,HIGH);
digitalWrite(e,HIGH);
}
//显示数字4
void digital_4(void)
{
digitalWrite(c,LOW);
digitalWrite(b,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(dp,HIGH);
digitalWrite(a,HIGH);
digitalWrite(e,HIGH);
digitalWrite(d,HIGH);
}
//显示数字5
void digital_5(void)
{
unsigned char j;
for(j=7;j<=9;j++)
digitalWrite(j,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(dp,HIGH);
digitalWrite(b,HIGH);
digitalWrite(e,HIGH);
}
//显示数字6
void digital_6(void)
{
unsigned char j;
for(j=7;j<=11;j++)
digitalWrite(j,LOW);
digitalWrite(c,LOW);
digitalWrite(dp,HIGH);
digitalWrite(b,HIGH);
}
//显示数字7
void digital_7(void)
{
unsigned char j;
for(j=5;j<=7;j++)
digitalWrite(j,LOW);
digitalWrite(dp,HIGH);
for(j=8;j<=11;j++)
digitalWrite(j,HIGH);
}
//显示数字8
void digital_8(void)
{
unsigned char j;
for(j=5;j<=11;j++)
digitalWrite(j,LOW);
digitalWrite(dp,HIGH);
}
void setup()
{
int i;//定义变量
for(i=4;i<=11;i++)
pinMode(i,OUTPUT);//设置4~11引脚为输出模式
}
void loop()
{
while(1)
{
digital_1();//数字1
delay(2000);//延时2s
digital_2();
delay(2000);
digital_3();
delay(2000);
digital_4();
delay(2000);
digital_5();
delay(2000);
digital_6();
delay(2000);
digital_7();
delay(2000);
digital_8();
delay(2000);
}
}
--------------------------------------------------------------------------------------------------------------------------
按键实例
按键是一种常用的控制电器元件,常用来接通或断开电路,从而达到控制电机或者其他设备运行的开关。
本次实验使用按键来控制led的亮或者灭。
一般情况是直接把按键开关串联在led的电路中来开关,这种应用情况比较单一。
这次实验通过间接的方法来控制,按键接通后判断按键电路中的输出电压,如果电压大于4.88V,就使给LED电路输出高电平,反之就输出低电平。使用逻辑判断的方法来控制LED亮或者灭,此种控制方法应用范围较广。
本次连接方法如下图。按键开关两段一端连接5V接口,一端连接模拟5号口。LED长针脚串联220Ω电阻连接数字7号口,短针脚连接GND。
int key=7;//设置LED的数字IO脚
void setup()
{
pinMode(key,OUTPUT);//设置数字IO引脚为输出模式
}
void loop()
{
int i;//定义变量
while(1)
{
i=analogRead(5);//读取模拟5口电压值
if(i>1000)//如果电压值大于1000(即4.88V)
digitalWrite(key,HIGH);//设置第七引脚为高电平,点亮led灯
else
digitalWrite(key,LOW);//设置第七引脚为低电平,熄灭led灯
}
}