26. 🏆 Проект: Цифровые часы
🏆 Проект: Цифровые часы
🎯 Цель проектаСобрать работающие цифровые часы из таймера, счётчиков и 7-сегментных индикаторов.
📋 Техническое задание
Функции
- Отображение времени ЧЧ:ММ:СС (или ЧЧ:ММ)
- Мигающий разделитель (:)
- Кнопка установки минут
- Кнопка установки часов
Спецификация
- Точность: ±2 сек/сутки (с часовым кварцем)
- Дисплей: 4-6 цифр 7-сегментный
- Питание: 5V
🏗️ Архитектура
┌─────────────────────────────────────────────────────────────────────────┐
│ ЦИФРОВЫЕ ЧАСЫ │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Генератор │────►│ Делитель │────►│ 1 Hz │ │
│ │ 32768 Hz │ │ 74HCT4060 │ │ │ │
│ │ (кварц) │ │ ÷32768 │ │ │ │
│ └─────────────┘ └─────────────┘ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Счётчик │◄────│ Счётчик │◄────│ Счётчик │ │
│ │ часов │ │ минут │ │ секунд │ │
│ │ 0-23 │ │ 0-59 │ │ 0-59 │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ДИСПЛЕЙ │ │
│ │ [H] [H] : [M] [M] : [S] [S] │ │
│ │ ↑ ↑ ↑ ↑ ↑ ↑ │ │
│ │ ┌─┴───┴─┐ ┌─┴───┴─┐ ┌─┴───┴─┐ │ │
│ │ │BCD→7seg│ │BCD→7seg│ │BCD→7seg│ │ │
│ │ │74HC4511│ │74HC4511│ │74HC4511│ │ │
│ │ └───────┘ └───────┘ └───────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
🔧 Вариант 1: Минимальные часы (ММ:СС)
Компоненты
| Компонент | Количество | Назначение |
|---|---|---|
| 74HCT4060 | 1 | Генератор + делитель |
| Кварц 32768 Hz | 1 | Точный источник |
| 74HC390 | 2 | Счётчики (÷10, ÷6) |
| 74HC4511 | 4 | BCD→7-сегмент |
| 7-сегментный индикатор | 4 | Дисплей |
| Конденсатор 22 пФ | 2 | Для кварца |
| Резистор 330 Ом | 28 | Для сегментов |
Счётчик секунд (0-59)
1 Hz ─► [74HC390 #1] ─► единицы секунд (0-9)
│
└─► [74HC390 #1] ─► десятки секунд (0-5)
│
└─► выход "60 секунд"
74HC390 содержит два счётчика: ÷2 и ÷5 (можно комбинировать в ÷10).
Для десятков: сбрасываем при достижении 6 (используем вентиль для детекции).
Схема соединений (секунды)
74HCT4060 Q14 (Pin 3) ─── 1 Hz
│
▼
74HC390 #1 (единицы):
CP0 (Pin 1) ─── 1 Hz
MR (Pin 2) ─── Reset при 10
Q0-Q3 ─── BCD выход → 74HC4511 → Дисплей
74HC390 #1 (десятки):
CP1 (Pin 15) ─── Q3 единиц (÷10)
MR (Pin 14) ─── Reset при 6 (AND: Q1 AND Q2)
Q0-Q2 ─── к 74HC4511
🔧 Вариант 2: Полные часы на микроконтроллере
💡 АльтернативаЕсли хочется сложные часы с будильником — проще использовать микроконтроллер. Но для понимания логики — собери на дискретных чипах!
📊 Схема дисплея
74HC4511 — BCD в 7-сегмент
┌───────────────────┐
B ───┤ 1 16 ├── VCC
C ───┤ 2 15 ├── f
~LT ──┤ 3 74HC4511 14 ├── g
~BL ──┤ 4 13 ├── a
~LE ───┤ 5 12 ├── b
D ───┤ 6 11 ├── c
A ───┤ 7 10 ├── d
GND ──┤ 8 9 ├── e
└───────────────────┘
| Пин | Подключение |
|---|---|
| A-D | BCD вход от счётчика |
| a-g | К сегментам через резисторы |
| ~LT | VCC (тест выкл) |
| ~BL | VCC (гашение выкл) |
| ~LE | GND (защёлка выкл) |
Подключение 7-сегментного индикатора
74HC4511 7-сегментник (общий катод)
a (Pin 13) ──[330Ω]──┐ ┌─────────────┐
b (Pin 12) ──[330Ω]──┤ │ ──a── │
c (Pin 11) ──[330Ω]──┤ │ │ │ │
d (Pin 10) ──[330Ω]──┼────►│ f b │
e (Pin 9) ──[330Ω]──┤ │ │ │ │
f (Pin 15) ──[330Ω]──┤ │ ──g── │
g (Pin 14) ──[330Ω]──┤ │ │ │ │
│ │ e c │
GND────│ │ │ │
│ ──d── •dp│
└─────────────┘
✅ Тестирование
Шаг 1: Генератор
- Собери 74HCT4060 с кварцем 32768 Hz
- Проверь Q14 осциллографом → 2 Hz
- Подключи LED → мигает ≈2 раза/сек
Шаг 2: Счётчик единиц
- Подключи 74HC390 к Q14
- LED на Q0-Q3 должны считать 0-9
- Проверь сброс при 10
Шаг 3: Дисплей
- Подключи 74HC4511 к счётчику
- 7-сегментник должен показывать 0-9
- После 9 → 0
Шаг 4: Каскадирование
- Соедини единицы → десятки → минуты → часы
- Проверь переносы (59:59 → 00:00)
🏅 Уровни сложности
⭐ Базовый: Секундомер
- Только секунды (0-59)
- 2 цифры, без установки
⭐⭐ Средний: ММ:СС
- Минуты и секунды
- 4 цифры
- Мигающее двоеточие
⭐⭐⭐ Продвинутый: ЧЧ:ММ:СС
- Часы, минуты, секунды
- 6 цифр
- Кнопки установки
⭐⭐⭐⭐ Эксперт: С будильником
- Установка будильника
- Звуковой сигнал
- Режим отображения даты
🎓 Чему научились в Акте III
| Тема | Компонент | Навык |
|---|---|---|
| SR-защёлка | NOR | Хранение 1 бита |
| D-защёлка | NAND | Устранение запрещённого состояния |
| D-триггер | 74HC74 | Edge-triggered логика |
| Регистр | 74ACT377 | Хранение байта |
| Сдвиговый регистр | 74HC595 | Serial→Parallel |
| Счётчик | 74HCT4060 | Деление частоты |
| Таймер | TLC555 | Генерация CLK |
🚀 Дальше: Акт IV
В финальном акте мы соберём процессор:
- ALU
- Программный счётчик
- Регистры
- Управляющая логика
🏆 Поздравляю!
Ты завершил Акт III: Память!
Прогресс курса:
━━━━━━━━━━━━━━━━━━━━━━━━░░░░░░ 76%
Акт I: ██████████ 10/10 ✓
Акт II: ██████████ 8/8 ✓
Акт III: ████████ 8/8 ✓
Акт IV: ░░░░░░░░░░ 0/8
