Сдвиговый регистр SN74HC595N

Регистр это устройство, выполненное на триггерах для выполнения ряда действий с двоичными числами. Сдвиговый регистр 74hc595 обычно используется для управления семисегментными индикаторами и светодиодами.

Чтобы понять принцип работы микросхемы 74hc595, следует рассмотреть распиновку сдвигового регистра.

  • Контакты DS, ST_CP и SH_CP — служат для управления и подключаются к любым выходам платы Arduino.
  • Контакты Q0Q7 — это выходы (разряды) сдвигового регистра. С помощью отправки байта с контроллера можно менять состояние разряда (HIGH или LOW).
  • Контакты VCC и GND — это питание регистра
  • Контакт MR — сброс (не активен)
  • Контакт OE подключается к GND
  • Контакт Q7` предназначен для последовательного соединения регистров.

Схема подключения сдвигового регистра SN74HC595N

На изображении ниже представлена схема подключения сдвигового регистра со светодиодами.

Подключение сдвигового регистра
Подключение сдвигового регистра

Код для подключения сдвигового регистра SN74HC595N

Ниже представлен код подключения сдвигового регистра SN74HC595N.

#define clock 13
#define data 12
#define latch 10

boolean states[8];

void setup() {
  pinMode(clock, OUTPUT);
  pinMode(data, OUTPUT);
  pinMode(latch, OUTPUT);
  digitalWrite(latch, HIGH);
  cleanreg();

}

void loop() {
  sendbyte(1);
}


void sendbyte(byte value){
  digitalWrite(latch, LOW);
  shiftOut(data, clock, LSBFIRST, value);
  digitalWrite(latch, HIGH);
}

void sendpin(int pin, boolean state){
  pin--;
  states[pin]=state;
  
  byte value = 0;
  byte add = 1;
  for(int i=0; i<8; i++){
    if(states[i]==HIGH) value+=add;
    add*=2;
  }
  digitalWrite(latch, LOW);
  shiftOut(data, clock, LSBFIRST, value);
  digitalWrite(latch, HIGH);
}

void cleanreg(){
  for(int i=0; i<8; i++) states[i]=LOW;
  digitalWrite(latch, LOW);
  shiftOut(data, clock, LSBFIRST, 0);
  digitalWrite(latch, HIGH);
}

Скачать файл с кодом, формат .INO: Сдвиговый регистр