Главная » Бытовая электроника » Проект простых и надежных цифровых часов на базе CMOS-логики. Часть 1

Проект простых и надежных цифровых часов на базе CMOS-логики. Часть 1

У меня в закромах есть целый «грузовик» микросхем CMOS-логики. Большинству из них уже более 30 лет. Не пора ли использовать некоторые из них? Я мог бы легко создать очень сложные часы, используя современный микроконтроллер.

Но это испортит удовольствие от создания цифровых часов моей молодости. Поэтому давайте построим цифровые часы с помощью простых и понятных компонентов CMOS-логики.

В интернете на удивление мало подобных проектов по созданию CMOS-часов на микросхемах серии 4000. Надеемся, что этот проект привлечет внимание и будет собран многими.

Проект, который я здесь представляю, объясняет всё, что нужно знать об этих моих маленьких часах. Я не купил для них ни одного компонента. Все было взято прямо из моих запасов. А нет, мне все же пришлось купить плату, на которой собраны часы. Так что, с технической точки зрения, эти CMOS-часы все равно обошлись дешевле, чем готовые из магазина. И собирать их было гораздо веселее.

Часть 1. Аппаратное обеспечение

Принципиальную схему можно скачать в конце статьи. Схема представлена на двух листах, на одном из которых находится база времени и счетчики секунд, минут и часов. На другом листе — схема дисплея и источника питания. В данной статье будет подробно описан первый лист, а в следующей — второй лист схемы.

Как обычно, для такого одного проекта я не стал заморачиваться с созданием печатной платы. Все собрано на монтажной плате с использованием проводов.

Кнопки

Начнем с самого простого — с кнопок, которые используются для установки времени. Часы могут находиться в одном из двух режимов: в режиме работы «RUN» или в режиме установки «SET». В режиме Run действует только кнопка SET, остальные 3 кнопки заблокированы.

Кнопки

Кнопки SET и RUN используются для переключения между двумя режимами работы. Неудивительно, что для этого мы используем традиционный R/S триггер, который построен на IC1A и IC1B (4093N).

Не является ошибкой то, что кнопка S2 не имеет параллельно подключенного конденсатора. Этим мы заставим начальное состояние R/S триггер перейти в состояние SET после включения питания. Нам все при подаче питания потребуется перейти в режим установки времени.

При нажатии кнопки SET на выходе SET будет высокий уровень, а на выходе -SET — низкий. При нажатии кнопки RUN выход SET становится низким, а выход -SET — высоким.

Кнопки HOUR и MIN используются для увеличения счетчиков часов и минут в режиме установки. Обе кнопки имеют параллельно установленный конденсатор, чтобы каждое нажатие кнопки приводило только к одному импульсу.

При каждом нажатии кнопок HOUR или MIN на выходах IC1C или IC1D генерируется положительный импульс в течение всего времени, пока кнопка удерживается нажатой.
Все выходы кнопок обрабатываются триггерами Шмитта, чтобы сделать медленно нарастающие сигналы исключительно цифровыми.

Временная база

Микросхема IC2 (4060) образует генератор временной базы и первый каскад предварительного масштабирования. Осциллятор построен в соответствии с описанием, приведенным в спецификации на HEF4060. В качестве прецизионного генератора временной базы выбран часовой кварц с частотой 32,768 кГц.

Временная база

Резисторы R6, R7 и R8 вместе образуют резистор обратной связи сопротивлением 15 МОм, поскольку резисторы такого высокого значения найти довольно сложно. У меня в запасе был резистор 12MОм, который, как оказалось, тоже отлично работает. Точность сопротивления резистора не влияет на точность временной базы. Очень важно использовать в качестве C4 термостабильный конденсатор. Это повысит точность работы часов.

TP1 — это тестовая точка, в которой вы с помощью частотомера с высоким разрешением можете измерить буферизованную частоту 32,768 кГц. Это поможет настроить частоту временной базы на нужное значение. Конденсатор C5 используется для подстройки частоты.

IC2 содержит 14-битный делитель. В итоге микросхема на своем выводе 3 выдает точную частоту в 2 Гц. Но нам нужна частота 1 Гц, а не 2 Гц, чтобы подать ее на наш секундный счетчик. По этой причине для деления частоты до 1 Гц используется IC3A (4013N). Сигнал с него подается на счетчик секунд, как будет описано ниже.

Кроме того, делитель выдает еще несколько значений частоты. Нас интересуют только две из них — это 128 Гц и 64 Гц, которые используются в дисплейном модуле часов.

Счетчик секунд

Счетчик секунд построен на основе сдвоенного декадного счетчика IC4A и IC4B (4518N). Счетчик IC4A делит импульс частотой 1 Гц на 10. IC4B делает то же самое для десятичного значения 0,1 Гц, но оба счетчика сбрасываются, когда второй счетчик достигает 6, что происходит каждые 60 секунд.

Счетчик секунд

Когда второй счетчик достигнет 6, на выходе IC10A установится низкий уровень. Это вызовет импульс сброса высокого уровня на выходе IC10B. Этот импульс сброса очень короткий, потому что, как только он достигнет высокого уровня, счетчики будут сброшены, и импульс сброса снова исчезнет. В моем случае импульс составлял около 170 нс.

Выходной импульс с IC10A также поступает на счетчик минут, который должен обновляться при каждом переполнении счетчика секунд. Здесь не имеет значения, используем ли мы нарастающий или спадающий фронт, потому что этот импульс переноса очень короткий.

В режиме RUN сигнал -SET постоянно высокий, что позволяет секундному счетчику нормально считать секунды. Однако при переключении часов в режим SET линия -SET переходит в низкий уровень, в результате чего линия сброса счетчика секунд остается постоянно высокой, не позволяя счетчику секунд вести счет.

Это не только предотвращает минутный ход часов в режиме SET, но и начинает отсчет новой минуты, как только часы снова переходят в режим RUN. Это позволяет точно синхронизировать часы с заведомо исправным источником времени.

Мне не нужен выход самого счетчика секунд, поскольку у меня нет дисплея секунд. Однако один выход мы можем использовать. Это выход Q0 первого декадного счетчика IC4A. Это отличный выход с частотой 0,5 Гц и рабочим циклом 50%. Этот импульс используется для мигания двоеточия между цифрами часа и минут на дисплее.

Счетчик минут

Следующий пункт — счетчик минут. Этот счетчик также образован двумя декадными счетчиками (4518N). IC5A ведет свободный счет от 0 до 9, а когда он переполняется, то сдвигает IC5B. Как только этот второй декадный счетчик достигнет 6, он будет сброшен обратно в 0 с помощью логического элемента «И» IC7B.

Счетчик минут

Этот импульс сброса также используется в качестве переноса для счетчика часов. Уровень его сигнала постоянно низкий, и лишь очень короткий импульс нарастает, когда счетчик доходит до 60 минут. Этот импульс очень короткий, поскольку практически мгновенно устраняется сбросом.

Элемент IC9B используется для отключения переброса минут в часы, когда часы находятся в режиме SET. В противном случае переброс минутного счетчика перевел бы и часовой счетчик. Пока часы находятся в режиме работы, SET имеет высокий уровень, открывая ворота для импульса переноса.

Когда импульс переноса становится высоким, выход IC9B кратковременно переходит в низкий уровень.
Мы еще не говорили о переносе данных со счетчика секунд на счетчик минут. В режиме RUN сигнал SET низкий, поэтому на выходе IC10D всегда высокий уровень.

Перенос от счетчика секунд постоянно высокий, только во время переноса происходит короткий импульс каждые 60 секунд. Это делает выход IC10C постоянно низким, за исключением импульса переноса. В режиме SET сигнал SET высокий, и перенос секунд в минуты не может произойти, так как счетчик секунд находится в состоянии сброса.

При нажатии кнопки MIN сигнал MIN также становится высоким. При нажатии кнопки оба входа IC10D находятся на высоком уровне, что делает его выход низким. В итоге при нажатии кнопки на выходе IC10C появляется высокий уровень. Таким образом, вы можете перевести счетчик минут в режим SET, многократно нажимая кнопку MIN.

Счетчик часов

А теперь счетчик часов. Этот счетчик построен на основе двух декадных счетчиков IC6A и IC6B (4818N). Но на этот раз максимальное значение счета ограничено 24. К счастью, 24 — довольно простое для проверки число, поскольку оно является функцией AND между сигналами HR2 и HR5. Как только счетчики достигают этого состояния, они снова сбрасываются в 0 с помощью IC7A (4018N).

Счетчик часов

Перенос в счетчик часов контролируется IC9D и IC9C (4011N). Обычно, когда часы находятся в режиме RUN, на выходе IC9D постоянно высокий уровень, поскольку вход SET этого элемента низкий. Поэтому IC9C будет инверсно следовать за сигналом переноса низкого уровня, поступающим от счетчика минут.

Пока часы находятся в режиме SET, никаких импульсов переноса от счетчика минут не поступает, и этот сигнал постоянно высокий. Теперь IC9D будет инвертировать импульсы, поступающие с кнопки. При каждом нажатии кнопки HOUR на выходе IC9D будет низкий уровень, а на выходе IC9C — высокий. Это позволяет сдвигать счетчик часов вперед.

Вот и все. Или нет? Что там делает IC3B (4013N)? Давайте посмотрим.

Когда счетчик часов сбрасывается, сбрасывается и триггер, делая его выход -Q высоким. На входе CLK триггер низкий уровень, потому что счетчик часов только что был сброшен в 0. Но когда старший разряд счетчика часов увеличивается, тактовый вход триггер повышается, что приводит к установке триггер, делая выход -Q низким.

С этого момента триггер остается в этом состоянии, пока счетчик часов снова не будет сброшен в 0. Выход -Q будет использоваться индикаторной частью схемы для подавления ведущего 0 в счетчике часов.

Ладно, для этой страницы достаточно. Собственно говоря, на листе номер один больше ничего объяснять не нужно. Здесь я рассказал о базе времени и счетчиках. На следующей странице я расскажу о схеме индикации и источнике питания часов.

Скачать схемы (123,6 KiB, скачано: 22)

Оставить комментарий

Ваш email нигде не будет показан. Обязательные для заполнения поля помечены *

*

..