// 一位共阴极数码管显示

int led_a=2;// 连接a 段数码管
int led_b=3;// 连接b 段数码管
int led_c=4;// 连接c 段数码管
int led_d=5;// 连接d 段数码管
int led_e=6;// 连接e 段数码管
int led_f=7;// 连接f 段数码管
int led_g=8;// 连接g 段数码管
int led_dp=9;// 连接dp 段数码管

void setup() {
  int i;//定义变量
  for(i=2;i<=9;i++)
  {
    pinMode(i,OUTPUT);//设置2~9 引脚为输出模式
  }
}

void loop() {

    digital_0();//显示数字0
    delay(1000);//延时1s
    digital_1();//显示数字1
    delay(1000);//延时1s
    digital_2();//显示数字2
    delay(1000); //延时1s
    digital_3();//显示数字3
    delay(1000); //延时1s
    digital_4();//显示数字4
    delay(1000); //延时1s
    digital_5();//显示数字5
    delay(1000); //延时1s
    digital_6();//显示数字6
    delay(1000); //延时1s
    digital_7();//显示数字7
    delay(1000); //延时1s
    digital_8();//显示数字8
    delay(1000); //延时1s
    digital_9();//显示数字9
    delay(1000); //延时1s

}

void clearAll() 
{
  for(int j=2;j<=9;j++)//熄灭所有段
    digitalWrite(j,LOW);
}

void digital_0(void) //显示数字0
{
  clearAll();
  digitalWrite(led_a,HIGH);
  digitalWrite(led_b,HIGH);
  digitalWrite(led_c,HIGH);
  digitalWrite(led_d,HIGH);
  digitalWrite(led_e,HIGH);
  digitalWrite(led_f,HIGH);
}

void digital_1(void) //显示数字1
{
  clearAll();
  digitalWrite(led_b,HIGH);
  digitalWrite(led_c,HIGH);
}

void digital_2(void) //显示数字2
{
  clearAll();
  digitalWrite(led_a,HIGH);
  digitalWrite(led_b,HIGH);
  digitalWrite(led_d,HIGH);
  digitalWrite(led_e,HIGH);
  digitalWrite(led_g,HIGH);
}

void digital_3(void) //显示数字3
{
  clearAll();
  digitalWrite(led_a,HIGH);
  digitalWrite(led_b,HIGH);
  digitalWrite(led_c,HIGH);
  digitalWrite(led_d,HIGH);
  digitalWrite(led_g,HIGH);
}

void digital_4(void) //显示数字4
{
  clearAll();
  digitalWrite(led_b,HIGH);
  digitalWrite(led_c,HIGH);
  digitalWrite(led_f,HIGH);
  digitalWrite(led_g,HIGH);
}

void digital_5(void) //显示数字5
{
  clearAll();
  digitalWrite(led_a,HIGH);
  digitalWrite(led_c,HIGH);
  digitalWrite(led_d,HIGH);
  digitalWrite(led_f,HIGH);
  digitalWrite(led_g,HIGH);
}

void digital_6(void) //显示数字6
{
  clearAll();
  digitalWrite(led_a,HIGH);
  digitalWrite(led_c,HIGH);
  digitalWrite(led_d,HIGH);
  digitalWrite(led_e,HIGH);
  digitalWrite(led_f,HIGH);
  digitalWrite(led_g,HIGH);
}

void digital_7(void) //显示数字7
{
  clearAll();
  digitalWrite(led_a,HIGH);
  digitalWrite(led_b,HIGH);
  digitalWrite(led_c,HIGH);
}

void digital_8(void) //显示数字8
{
  clearAll();
  digitalWrite(led_a,HIGH);
  digitalWrite(led_b,HIGH);
  digitalWrite(led_c,HIGH);
  digitalWrite(led_d,HIGH);
  digitalWrite(led_e,HIGH);
  digitalWrite(led_f,HIGH);
  digitalWrite(led_g,HIGH);
}

void digital_9(void) //显示数字8
{
  clearAll();
  digitalWrite(led_a,HIGH);
  digitalWrite(led_b,HIGH);
  digitalWrite(led_c,HIGH);
  digitalWrite(led_d,HIGH);
  digitalWrite(led_f,HIGH);
  digitalWrite(led_g,HIGH);
}
            
在编辑器中运行


相关文章
ESP32 FreeRTOS 双核使用

ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。


理解 MSBFIRST(最高有效位)和 LSBFIRST(最低有效位)

在本文中,先解释 MSB(最高有效位)和 LSB(最低有效位)的概念,以及 MSBFIRST 和 LSBFIRST。然后展示了 MSBFIRST 和 LSBFIRST 的使用如何影响移位寄存器的输出。


Arduino 和 TB6612FNG 驱动直流电机

TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速与方向,输入电压在3V~12V,因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。


Arduino-ESP32 Preferences库使用详解

Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。


用积木拼出时间?乐高还是太全面了!

从一秒一秒的跳动齿条,到能“炫技”的飞返计时,再到用乐高拼出的“七段数码管”

相关创作
基于 Wio Terminal的 LoRa GPS定位追踪器,来满足多个不同场景下的定位追踪需求。
热度:20
小鹏STEM教研服务

专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。