23. Сдвиговый регистр 74HC595
23. Сдвиговый регистр 74HC595
🎯 Цель урокаПонять сдвиговые регистры — преобразование последовательных данных в параллельные.
🧠 Фаза 2: Теория (15 мин)
Что такое сдвиговый регистр?
Сдвиговый регистр — цепочка D-триггеров, где выход каждого подключён к входу следующего.
Serial In ─► [D-FF]─►[D-FF]─►[D-FF]─►[D-FF]─► Serial Out
│ │ │ │
Q₃ Q₂ Q₁ Q₀
По каждому CLK данные "сдвигаются" на одну позицию
Временная диаграмма
CLK ▁█▁█▁█▁█▁█▁█▁█▁█▁
1 2 3 4 5 6 7 8
SER IN ▁██▁▁██▁▁ (вводим 11001100)
После 8 тактов:
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 = 1 1 0 0 1 1 0 0
Типы сдвиговых регистров
| Тип | Вход | Выход | Пример |
|---|---|---|---|
| SIPO | Serial | Parallel | 74HC595 |
| PISO | Parallel | Serial | 74HC165 |
| SISO | Serial | Serial | Линия задержки |
| PIPO | Parallel | Parallel | Обычный регистр |
📦 Микросхема 74HC595
74HC595 — 8-битный сдвиговый регистр SIPO с защёлкой на выходе.
Распиновка
┌───────────────────┐
QB ──┤ 1 16 ├── VCC
QC ──┤ 2 15 ├── QA
QD ──┤ 3 74HC595 14 ├── SER
QE ──┤ 4 13 ├── ~OE
QF ──┤ 5 12 ├── RCLK
QG ──┤ 6 11 ├── SRCLK
QH ──┤ 7 10 ├── ~SRCLR
GND ──┤ 8 9 ├── QH'
└───────────────────┘
| Пин | Название | Описание |
|---|---|---|
| SER | Serial Input | Последовательный вход данных |
| SRCLK | Shift Clock | Такт сдвига |
| RCLK | Latch Clock | Такт защёлки (вывод на QA-QH) |
| ~SRCLR | Clear | Сброс регистра (LOW) |
| ~OE | Output Enable | Разрешение выхода (LOW) |
| QA-QH | Outputs | 8 параллельных выходов |
| QH' | Serial Out | Для каскадирования |
Двойная буферизация
SER ─► [Сдвиговый регистр 8 бит] ─► [Защёлка 8 бит] ─► QA-QH
│ │
SRCLK RCLK
1. Вводим данные по SRCLK (QA-QH не меняются!)
2. Фиксируем по RCLK → данные появляются на QA-QH
Это позволяет загрузить новые данные без мерцания выходов!
🔧 Фаза 3: Собираем (25 мин)
Компоненты
| Компонент | Количество |
|---|---|
| 74HC595 | 1 |
| Кнопки | 3 (SER, SRCLK, RCLK) |
| LED | 8 |
| Резистор 330 Ом | 8 |
Схема
SER (Pin 14) ── Кнопка DATA (подтяжка к GND)
SRCLK (Pin 11) ── Кнопка SHIFT (подтяжка к GND)
RCLK (Pin 12) ── Кнопка LATCH (подтяжка к GND)
~SRCLR (Pin 10) ── VCC (не сбрасывать)
~OE (Pin 13) ── GND (выходы всегда активны)
QA (Pin 15) ── [330Ω] ── LED ── GND
QB (Pin 1) ── [330Ω] ── LED ── GND
QC (Pin 2) ── [330Ω] ── LED ── GND
QD (Pin 3) ── [330Ω] ── LED ── GND
QE (Pin 4) ── [330Ω] ── LED ── GND
QF (Pin 5) ── [330Ω] ── LED ── GND
QG (Pin 6) ── [330Ω] ── LED ── GND
QH (Pin 7) ── [330Ω] ── LED ── GND
Проверка: Вводим число 10110001
- Бит 7 (старший): SER=1, нажми SRCLK
- Бит 6: SER=0, нажми SRCLK
- Бит 5: SER=1, нажми SRCLK
- Бит 4: SER=1, нажми SRCLK
- Бит 3: SER=0, нажми SRCLK
- Бит 2: SER=0, нажми SRCLK
- Бит 1: SER=0, нажми SRCLK
- Бит 0: SER=1, нажми SRCLK
LED пока НЕ изменились!
- Нажми RCLK → LED показывают 10110001 🎉
🔬 Каскадирование
Соедини несколько 74HC595 для 16, 24, 32… бит:
SER ─► [74HC595 #1] ─► QH' ─► [74HC595 #2] ─► QH' ─► ...
│ │
SRCLK───────────────────SRCLK (общий!)
RCLK────────────────────RCLK (общий!)
16 бит = 16 сдвигов, затем один импульс RCLK.
💡 Применения
1. Расширение GPIO
Микроконтроллер с 3 пинами управляет 8+ выходами!
MCU Pin 1 ── SER
MCU Pin 2 ── SRCLK ──► [74HC595] ──► 8 LED
MCU Pin 3 ── RCLK
2. LED-матрицы и дисплеи
[MCU] ─3 провода─► [8× 74HC595] ─► [8×8 LED Matrix]
64 светодиода!
3. Индикаторные панели
Много 7-сегментных индикаторов через каскад 595.
📝 Мини-задания
✅ Чеклист
- Понимаю принцип сдвигового регистра
- Знаю распиновку 74HC595
- Собрал схему и ввёл данные последовательно
- Понимаю двойную буферизацию
