19. SR-защёлка
19. SR-защёлка
🎯 Цель урокаПонять как логические вентили могут хранить информацию. Собрать SR-защёлку.
🎮 Фаза 1: Симулятор (10 мин)
Turing Complete
Пройди Level: Latch — построй защёлку из вентилей NOR.
Ключевой вопрос
Как комбинационная логика (выход зависит только от входов) может запоминать?
🧠 Фаза 2: Теория (15 мин)
Проблема: память
До сих пор все наши схемы были комбинационными:
- Выход зависит только от текущих входов
- Изменился вход → мгновенно изменился выход
- Нет “памяти” о прошлом
Но процессору нужна память!
Решение: обратная связь
Что если соединить выход обратно на вход?
┌─────────────────────────┐
│ │
│ ┌─────────┐ │
└────┤ │ │
│ OR ├──────────┴──── Q
S ───┤ │
└─────────┘
Нажал S → Q=1 → обратная связь держит Q=1 навсегда!
Но как сбросить? Нужна схема с двумя управляющими входами.
SR-защёлка на NOR
┌───────────────────────────────┐
│ │
R ────┤►o──┬─────────────────────────┴──── Q
│ │ ┌─────────┐
│ └────┤ │
│ │ NOR │
│ ┌────┤ │
│ │ └─────────┘
S ────┤►o─┴────────────────────────────── ~Q
│
└───────────────────────────────┐
│
Обратные связи создают память! │
Упрощённая схема:
R ───┤►o─────┬───── Q
NOR │
▲ │
└───────┼────┐
│ │
S ───┤►o─────┴────┼── ~Q
NOR │
▲ │
└────────────┘
Таблица истинности
| S | R | Q (следующее) | Действие |
|---|---|---|---|
| 0 | 0 | Q (без изменений) | Хранение |
| 1 | 0 | 1 | Set (установка) |
| 0 | 1 | 0 | Reset (сброс) |
| 1 | 1 | ❌ Запрещено | Неопределённость |
Почему работает?
Режим хранения (S=0, R=0):
Допустим Q=1:
R=0 ──┤NOR├── Q=1 (0 NOR 0 = 1? Нет! 0 NOR ~Q...)
Подождите, разберём подробнее:
Верхний NOR: входы R и ~Q
Если R=0 и ~Q=0, то Q = NOR(0,0) = 1
Нижний NOR: входы S и Q
Если S=0 и Q=1, то ~Q = NOR(0,1) = 0
Стабильно! Q=1, ~Q=0 держатся.
Режим Set (S=1, R=0):
Нижний NOR: S=1 → ~Q = NOR(1, Q) = 0 (независимо от Q)
Верхний NOR: R=0, ~Q=0 → Q = NOR(0,0) = 1
Результат: Q=1 установлен!
🔧 Фаза 3: Собираем (20 мин)
Компоненты
| Компонент | Количество |
|---|---|
| 74HC02 (NOR) | 1 |
| Кнопки | 2 (S и R) |
| LED | 2 (Q и ~Q) |
| Резистор 330 Ом | 2 |
| Резистор 10 кОм | 2 |
74HC02 — четыре вентиля NOR
┌───────────────────┐
1Y ──┤ 1 14 ├── VCC
1A ──┤ 2 13 ├── 4B
1B ──┤ 3 74HC02 12 ├── 4A
2Y ──┤ 4 11 ├── 4Y
2A ──┤ 5 10 ├── 3B
2B ──┤ 6 9 ├── 3A
GND ──┤ 7 8 ├── 3Y
└───────────────────┘
Схема соединений
Используем 2 вентиля из 74HC02:
Вентиль 1 (верхний NOR):
Pin 2 (1A) ── R (кнопка с подтяжкой к GND)
Pin 3 (1B) ── Pin 4 (выход вентиля 2, ~Q)
Pin 1 (1Y) ── Q ── LED ── GND
Вентиль 2 (нижний NOR):
Pin 5 (2A) ── S (кнопка с подтяжкой к GND)
Pin 6 (2B) ── Pin 1 (выход вентиля 1, Q)
Pin 4 (2Y) ── ~Q ── LED ── GND
Проверка
- Включи питание — один LED горит (случайное состояние)
- Нажми S — Q=1 (LED Q горит)
- Отпусти S — Q всё ещё =1! (запомнил)
- Нажми R — Q=0 (LED Q гаснет)
- Отпусти R — Q=0 (запомнил)
🎉 Поздравляю!Ты создал 1 бит памяти! Схема хранит информацию без внешнего питания… ой, с питанием, но без постоянного сигнала на входах!
⚠️ Запрещённое состояние
S=1 и R=1 одновременно:
Верхний NOR: R=1 → Q = 0
Нижний NOR: S=1 → ~Q = 0
Q = ~Q = 0 ??? Противоречие!
Когда отпустим обе кнопки — результат непредсказуем (гонки).
Правило: Никогда не подавай S=1 и R=1 одновременно!
💡 SR-защёлка на NAND
Можно построить и на NAND (входы инверсные):
~S ──┤NAND├──┬── Q
│ │
│ └──┤NAND├── ~Q
│ │
~R ───────┴───────────┘
| ~S | ~R | Q | Действие |
|---|---|---|---|
| 1 | 1 | Q | Хранение |
| 0 | 1 | 1 | Set |
| 1 | 0 | 0 | Reset |
| 0 | 0 | ❌ | Запрещено |
📝 Мини-задания
✅ Чеклист
- Понимаю роль обратной связи
- Знаю таблицу истинности SR
- Собрал защёлку на NOR
- Понимаю запрещённое состояние
