В этой статье я хочу вам представить собственную разработку часов с несколькими полезными функциями: будильник, календарь, таймер, а также самый простой секундомер. Проект выполнен с использованием микроконтроллера ATmega8 - 16pu. Для отображения символов используется 4 разрядный семисегментный индикатор. Управление производится с помощью 6 тактовых кнопок.
Работа и принцип работы, а также описание устройства будут продемонстрированы в видео.
Теперь, что касается на счёт схемы. Так как я использовал печатную плату 5*7 см, то дорожки там было трудно сделать, и я соединил на прямую тоненькими проводами, и из - за для этого устройства я не стал рисовать плату.
Вот как выглядит схема в Proteus.
Для PonyProg и CodeVisionAVR нужно выставлять следующие значения фьюз-битов:
Для UniProf:
Фото часов:
Прошивка и проект в proteus в архиве.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | МК AVR 8-бит | ATmega8-16PU | 1 | Поиск в магазине Отрон | ||
D1 | Светодиод | 3В | 1 | зелёный (3мм) | Поиск в магазине Отрон | |
C1-C3 | Конденсатор | 22 пФ | 3 | Поиск в магазине Отрон | ||
R1-R8 | Резистор | 220 Ом | 8 | Поиск в магазине Отрон | ||
R9-R11 | Резистор | 10 кОм | 3 | Поиск в магазине Отрон | ||
R12 | Резистор | 470 Ом | 1 | Поиск в магазине Отрон | ||
Индикатор | cl5642bh | 1 | Поиск в магазине Отрон | |||
LS1 | Динамик | 50Ом 1Вт | 1 | Поиск в магазине Отрон | ||
X1 | Кварцевый резонатор | 4МГц | 1 | Поиск в магазине Отрон | ||
Тактовая кноппа | 6 | Поиск в магазине Отрон | ||||
Скачать список элементов (PDF)
Прикрепленные файлы:
- для часов.zip (28 Кб)
Комментарии (16) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]
[Автор]
[Автор]
RTC отсутствует, используется кварц на 4 мГЦ.
[Автор]
Затем в прерывание по переполнению таймера счётчика 2 убрать строку flag_dinamik = 0 .Далее в прерывании по совпадению таймера счётчика 2 заменить это
{
flag_dinamik = 1;
}
if (((bud_2 > 0)&&(bud_2 < 60))|((bud_2 > 600)&&(bud_2 < 660))|((bud_2 > 1200)&&(bud_2 < 1260)))
{
flag_dinamik = 1;
}
if (flag_signala == 1)
{
flag_dinamik = 1;
}
на это
if ((bud_1 > 0) || (((bud_2 > 0) && (bud_2 < 60)) | ((bud_2 > 600) && (bud_2 < 660)) | ((bud_2 > 1200) && (bud_2 < 1260))) || (flag_signala == 1))
{
PORTB |= 0b00010000;
}
else {
PORTB &= 0b11101111;
}
По идее должно сработать
В программировании не силен, поэтому, если Вам не трудно, то вышлите изменённую прошивку на почту.
Что-то не доделанный проект
[Автор]