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

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 7 июля 2019, 11:55

Сдвиговый регистр 74HC595.jpg
Сдвиговый регистр 74HC595
Сдвиговый регистр 74HC595.jpg (14.88 КБ) 1286 просмотров

Он может хранить 8 бит данных.
Схема выводов микросхемы
Схема выводов микросхемы 74HC595.jpg
Схема выводов микросхемы 74HC595
Схема выводов микросхемы 74HC595.jpg (30.49 КБ) 1286 просмотров

Q0-Q7 — выходы каждой из 8 ячеек;
VCC — питание микросхемы, 5В;
GND — земля;
DS — линия данных;
ST_CP — линия синхроимпульса для передачи данных из внутренних ячеек, во внешние;
SH_CP — линия синхроимпульса для передачи данных из DS во внутренние ячейки;
OE — инверсный, разрешение на вывод данных с внешних ячеек;
Q7′ — выход регистра, который необходимо соединить с DS следующего регистра для создания цепочки.

Несколько таких регистров можно объединять последовательно для каскадирования.
Спойлер
каскадирование регистр 74HC59.gif
каскадирование регистр 74HC59
каскадирование регистр 74HC59.gif (30.28 КБ) 1286 просмотров

2 каскадирование регистр 74HC59.PNG
каскадирование регистр 74HC59
2 каскадирование регистр 74HC59.PNG (101.05 КБ) 1286 просмотров

Пример управления 7 сегментным индикатором. Так как готового у меня не было, то взял самодельный 7-сегментный индикатор. Далее приведена схема подключения с общим катодом (минус)
Спойлер
Управление сегментным индикатором 74HC595.png
Управление сегментным индикатором 74HC595
Управление сегментным индикатором 74HC595.png (59.03 КБ) 1286 просмотров
Подключил согласно моей распиновке.
Спойлер
ИзображениеИзображение
Далее заливаем скетч

Код: Выделить всё

const int data_pin = 2;
const int sh_pin = 4;
const int st_pin = 3;

int bt = 0;

byte digits[10] = {
    0b00111111, // 0
    0b00000110, // 1
    0b01011011, // 2
    0b01001111, // 3
    0b01100110, // 4
    0b01101101, // 5
    0b01111101, // 6
    0b00000111, // 7
    0b01111111, // 8
    0b01101111, // 9
};

void shift(byte v){
    for(int i=0; i<8; i++){
        digitalWrite(sh_pin, LOW);
        digitalWrite(data_pin, v & (<< i ));
        digitalWrite(sh_pin, HIGH);
    }
    digitalWrite(st_pin, HIGH); 
    digitalWrite
(st_pin, LOW);
}

void setup() {
    pinMode(data_pin, OUTPUT);
    pinMode(sh_pin, OUTPUT);
    pinMode(st_pin, OUTPUT);
}

void loop() {
    shift( digits[bt] );
    bt++;
    if( bt==10 )
        bt = 0;
    delay(500);
}

На дисплее поочередно будут загораться цифры от 0 до 9 и так бесконечно.

phpBB [media]
[center]i love you [s]mxIni[/s] Mysql[/center]


Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#2 Дим » 7 июля 2019, 19:41

Вот ещё одна схема каскадирования 74HC59. В дальнейшем буду её использовать при создании часов на светодиодах. Но это уже другая история, которую я начну рассказывать когда придут эти самые светодиоды. :wink:
каскадирование регистр 74HC59.PNG
схема каскадирования 74HC59
каскадирование регистр 74HC59.PNG (154.64 КБ) 1277 просмотров
[center]i love you [s]mxIni[/s] Mysql[/center]


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Прочая электроника»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 2 гостя