caizhiyuannn.github.io

nothing to say.. @caizhiyuannn@gmail.com

View the Project on GitHub

Table of Contents

  1. arduino通过74HC595芯片驱动1位数码管
    1. 代码

arduino通过74HC595芯片驱动1位数码管

代码

/*
  74HC595 输出引脚连接数码管对应关系:
  Q0 -> a
  Q1 -> b
  Q2 -> c
  Q3 -> d
  Q4 -> e
  Q5 -> f
  Q6 -> g
  Q7 -> h

  共阴接10K欧姆的电阻连接GND
 */

const int DS = 5;
const int SHCP = 4;
const int STCP = 3;

// 对应数字映射表
const byte data[10][8] = {
    {1,1,1,1,1,1,0,0}, // 0
    {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
    {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
};

void setup() {
    pinMode(DS, OUTPUT);
    pinMode(SHCP, OUTPUT);
    pinMode(STCP, OUTPUT);
}

void loop() {

    for (int i = 0; i < 10; i++)
    {
        digitalWrite(STCP, LOW);
        for (int x = 7; x >= 0; x--)
        {
            pushData(data[i][x]);
        }
        delay(1000);
        digitalWrite(STCP, HIGH);
        // break;
    }

}

void pushData(byte data) {
    digitalWrite(SHCP, LOW);
    digitalWrite(DS, data);
    digitalWrite(SHCP, HIGH);
}