Счетчик на микроконтроллере с указанием параметров. Конструкторское бюро онлайн. Трехразрядный вычитающий счетчик с последовательным переносом

СЧЁТЧИК НА МИКРОКОНТРОЛЛЕРЕ

Во многих устройствах техники и автоматики всё ещё установлены механические счетчики. Они считают количество посетителей, продукцию на конвейере, витки провода в намоточных станках и так далее. В случае выхода из строя найти такой механический счетчик непросто, а отремонтировать невозможно ввиду отсутствия запчастей. Предлагаю заменить механический счетчик электронным с использованием микроконтроллера PIC16F628A.

Электронный счетчик получается слишком сложным, если строить его на микросхемах серий К176, К561. особенно если необходим реверсивный счет. Но можно построить счетчик всего на одной микросхеме — универсальном микроконтроллере PIC16F628A, имеющем в своем составе разнообразные периферийные устройства и способном решать широкий круг задач.

Вот и недавно меня попросил человек сделать счётчик импульсов на много разрядов. Я отказался от светодиодных индикаторов, так как они занимают много места и потребляют немало энергии. Поэтому реализовал схему на LCD. Счётчик на микроконтроллере может замерять входные импульсы до 15 знаков разрядности. Два первых разряда отделены точкой. EEPROM не использовалась, потому что не было необходимости запоминать состояние счётчика. Так-же имеется функция обратного счёта - реверса. Принципиальная схема простого счетчика на микроконтроллере:

Счетчик собран на двух печатных платах из фольгированного стеклотекстолита. Чертёж приведён на рисунке.

На одной из плат установлены индикатор LCD, на другой — 4 кнопки, контроллер и остальные детали счетчика, за исключением блока питания. Скачать платы и схему счётчика в формате Lay, а так-же прошивку микроконтроллера можно на форуме. Материал предоставил Samopalkin.

2006 г.

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

2006 г.

Установка и подключение электро-счетчика не вызывает затруднений. Щиток со счетчиком надо установить на четырех роликах (по углам щитка) в комнате, в близи того места, откуда проходит электропроводка от общего квартирного счетчика

2012 г.

Это устройство следит за использованием бытовой электросети и записывает показания на SD карту памяти. Простые аналоговые усилители усиливают сигнал с датчиков напряжения и тока, и, исходя из полученных, данных микроконтроллер ATmega168 вычисляет потребляемую мощность. Напряжение и ток измеряется с частотой 9615Гц, так что показания должны быть точными даже на несинусоидальных нагрузках, таких как компьютеры или люминесцентные лампы.

Счетчик импульсов — это последовательностное цифровое устройство, обеспечивающее хранение слова информации и выполнение над ним микрооперации счета, заключающейся в изменении значения числа в счетчике на 1. По существу счетчик представляет собой совокупность соединенных определенным образом триггеров. Основной параметр счетчика — модуль счета. Это максимальное число единичных сигналов, которое может быть сосчитано счетчиком. Счетчики обозначают через СТ (от англ. counter).

Счетчики импульсов классифицируют

● по модулю счета:
. двоично-десятичные;
. двоичные;
. с произвольным постоянным модулем счета;
. с переменным модулем счета;
. по направлению счета:
. суммирующие;
. вычитающие;
. реверсивные;
● по способу формирования внутренних связей:
. с последовательным переносом;
. с параллельным переносом;
. с комбинированным переносом;
. кольцевые.

Суммирующий счетчик импульсов

Рассмотрим суммирующий счетчик (рис. 3.67, а ). Такой счетчик построен на четырех JK-триггерах, которые при наличии на обоих входах логического сигнала «1» переключаются в моменты появления на входах синхронизации отрицательных перепадов напряжения.

Временные диаграммы, иллюстрирующие работу счетчика, приведены на рис. 3.67, б . Через К си обозначен модуль счета (коэффициент счета импульсов). Состояние левого триггера соответствует младшему разряду двоичного числа, а правого — старшему разряду. В исходном состоянии на всех триггерах установлены логические нули. Каждый триггер меняет свое состояние лишь в тот момент, когда на него действует отрицательный перепад напряжения.

Таким образом, данный счетчик реализует суммирование входных импульсов. Из временных диаграмм видно, что частота каждого последующего импульса в два раза меньше, чем предыдущая, т. е. каждый триггер делит частоту входного сигнала на два, что и используется в делителях частоты.

Трехразрядный вычитающий счетчик с последовательным переносом

Рассмотрим трехразрядный вычитающий счетчик с последовательным переносом, схема и временные диаграммы работы которого приведены на рис. 3.68.
{xtypo_quote}В счетчике используются три JK-триггера, каждый из которых работает в режиме Т-триггера (триггера со счетным входом).{/xtypo_quote}

На входы J и К каждого триггера поданы логические 1, поэтому по приходу заднего фронта импульса, подаваемого на его вход синхронизации С, каждый триггер изменяет предыдущее состояние. Вначале сигналы на выходах всех триггеров равны 1. Это соответствует хранению в счетчике двоичного числа 111 или десятичного числа 7. После окончания первого импульса F первый триггер изменяет состояние: сигнал Q 1 станет равным 0, a ¯ Q 1 − 1.

Остальные триггеры при этом свое состояние не изменяют. После окончания второго импульса синхронизации первый триггер вновь изменяет свое состояние, переходя в состояние 1, (Q x = 0). Это обеспечивает изменение состояния второго триггера (второй триггер изменяет состояние с некоторой задержкой по отношению к окончанию второго импульса синхронизации, так как для его опрокидывания необходимо время, соответствующее времени срабатывания его самого и первого триггера).

После первого импульса F счетчик хранит состояние 11О. Дальнейшее изменение состояния счетчика происходит аналогично изложенному выше. После состояния 000 счетчик вновь переходит в состояние 111.

Трехразрядный самоостанавливающийся вычитающий счетчик с последовательным переносом

Рассмотрим трехразрядный самоостанавливающийся вычитающий счетчик с последовательным переносом (рис. 3.69).

После перехода счетчика в состояние 000 на выходах всех триггеров возникает сигнал логического 0, который подается через логический элемент ИЛИ на входы J и К первого триггера, после чего этот триггер выходит из режима Т-триггера и перестает реагировать на импульсы F.

Трехразрядный реверсивный счетчик с последовательным переносом

Рассмотрим трехразрядный реверсивный счетчик с последовательным переносом (рис. 3.70).

В режиме вычитания входные сигналы должны подаваться на вход Т в. На вход Т с при этом подается сигнал логического 0. Пусть все триггеры находятся в состоянии 111. Когда первый сигнал поступает на вход Т в, на входе Т первого триггера появляется логическая 1, и он изменяет свое состояние. После этого на его инверсном входе возникает сигнал логической 1. При поступлении второго импульса на вход Т в на входе второго триггера появится логическая 1, поэтому второй триггер изменит свое состояние (первый триггер также изменит свое состояние по приходу второго импульса). Дальнейшее изменение состояния происходит аналогично. В режиме сложения счетчик работает аналогично 4-разрядному суммирующему счетчику. При этом сигнал подается на вход Т с. На вход Т в подается логический 0.
В качестве примера рассмотрим микросхемы реверсивных счетчиков (рис: 3.71) с параллельным переносом серии 155 (ТТЛ):
● ИЕ6 — двоично-десятичный реверсивный счетчик;
● ИЕ7 — двоичный реверсивный счетчик.

Направление счета определяется тем, на какой вывод (5 или 4) подаются импульсы. Входы 1, 9, 10, 15 — информационные, а вход 11 используется для предварительной записи. Эти 5 входов позволяют осуществить предварительную запись в счетчик (предустановку). Для этого нужно подать соответствующие данные на информационные входы, а затем подать импульс записи низкого уровня на вход 11, и счетчик запомнит число. Вход 14 — вход установки О при подаче высокого уровня напряжения. Для построения счетчиков большей разрядности используются выходы прямого и обратного переноса (выводы 12 и 13 соответственно). С вывода 12 сигнал должен подаваться на вход прямого счета следующего каскада, а с 13 — на вход обратного счета.

Как и триггеры, счетчики совсем необязательно составлять из логических элементов вручную – сегодняшняя промышленность выпускает самые разнообразные счетчики уже собранные в корпуса микросхем. В этой статье я не буду останавливаться на каждой микросхеме-счетчике отдельно (в этом нет необходимости, да и времени займет слишком много), а просто кратко рассажу на что можно рассчитывать, во время решения тех или иных задач цифровой схемотехники. Тех же, кого интересует конкретные типы микросхем-счетчиков, я могу отправить к своему далеко неполному справочнику по ТТЛ и КМОП микросхемам.

Итак, исходя из полученного в предыдущем разговоре опыта, мы выяснили один из главных параметров счетчика – разрядность. Для того, чтобы счетчик смог считать до 16 (с учетом нуля – это тоже число) нам понадобилось 4 разряда. Добавление каждого последующего разряда будет увеличивать возможности счетчика ровно вдвое. Таким образом, пятиразрядный счетчик сможет считать до 32, шести – до 64. Для вычислительной техники оптимальной разрядностью является разрядность, кратная четырем. Это не есть золотым правилом, но все же большинство счетчиков, дешифраторов, буферов и т.п. строятся четырех (до 16) или восьмиразрядными (до 256).

Но поскольку цифровая схемотехника не ограничивается одними ЭВМ, нередко требуются счетчики с самым различным коэффициентом счета: 3, 10, 12, 6 и т.д. К примеру, для построения схем счетчиков минут нам понадобится счетчик на 60, а его несложно получить, включив последовательно счетчик на 10 и счетчик на 6. Может нам понадобиться и большая разрядность. Для этих случаев, к примеру, в КМОП серии есть готовый 14-ти разрядный счетчик (К564ИЕ16), который состоит из 14-ти D-триггеров, включенных последовательно и каждый выход кроме 2 и 3-го выведен на отдельную ножку. Подавай на вход импульсы, подсчитывай и читай при необходимости показания счетчика в двоичном счислении:

К564ИЕ16

Для облегчения построения счетчиков нужной разрядности некоторые микросхемы могут содержать несколько отдельных счетчиков. Взглянем на К155ИЕ2 – двоично-десятичный счетчик (по-русски – «счетчик до 10, выводящий информацию в двоичном коде»):

Микросхема содержит 4 D- триггера, причем 1 триггер (одноразрядный счетчик – делитель на 2) собран отдельно – имеет свой вход (14) и свой выход (12). Остальные же 3 триггера собраны так, что делят входную частоту на 5. Для них вход – вывод 1, выходы 9, 8,11. Если нам нужен счетчик до 10, то просто соединяем выводы 1 и 12, подаем счетные импульсы на вывод 14 а с выводов12, 9, 8, 11 снимаем двоичный код, который будет увеличиваться до 10, после чего счетчики обнулятся и цикл повторится. Составной счетчик К155ИЕ2 не является исключением. Аналогичный состав имеет и, к примеру, К155ИЕ4 (счетчик до 2+6) или К155ИЕ5 (счетчик до 2+8):

Практически все счетчики имеют входы принудительного сброса в «0», а некоторые и входы установки на максимальное значение. Ну и напоследок я просто обязан сказать, что некоторые счетчики могут считать и туда и обратно! Это так называемые реверсивные счетчики, которые могут переключаться для счета как на увеличение (+1), так и на уменьшение (-1). Так умеет, к примеру, двоично-десятичный реверсивный счетчик К155ИЕ6:

При подаче импульсов на вход +1 счетчик будет считать вперед, импульсы на входе -1 будут уменьшать показания счетчика. Если при увеличении показаний счетчик переполнится (11 импульс), то прежде чем вернуться в ноль, он выдаст на вывод 12 сигнал «перенос», который можно подать на следующий счетчик для наращивания равзрядности. То же назначение и у вывода 13, но на нем импульс появится во время перехода счета через ноль при счете в обратном направлении.

Обратите внимание, что кроме входов сброса микросхема К155ИЕ6 имеет входы записи в нее произвольного числа (выводы 15, 1, 10, 9). Для этого достаточно установить на этих входах любое число 0 — 10 в двоичном счислении и подать импульс записи на вход С.

-20 dB писал:
А почему не подойти к делу малой кровью? Если есть что-то вроде уже упомянутого выше ИЖЦ5-4/8, с раздельными выводами сегментов?

В заначках с советских времён неиспользуемых К176ИЕ4 осталось море (счетчик/делитель на 10 с семисегментным дешифратором и выходом переноса, использовался для формирования единиц минут и часов в электронных часах, неполный аналог - CD4026 - в чём неполнота, не смотрел... пока) в классическом включении для управления ЖК. 4 шт - по 2 на канал, + 2 шт. 176(561)ЛЕ5 или ЛА7 - одна для формирователей одиночных импульсов (подавителей дребезга контактов), вторая - для формирования меандра для "засветки" ЖК индикатора?

Конечно, на МП решение красивее, но на мусоре - дешевле, и решается исключительно на коленке... С программированием МП, например, у меня туго (если только готовый дамп кто-то подсуетит) - мне с железяками проще.


Ну вот тут я готов поспорить. Давайте посчитаем. Для начала стоимость:
1. PIC12LF629 (SOIC-8) - 40руб. (~1,15$)
2. Дисплей от Моторола С200/С205/Т190/Т191 - около 90руб (~2.57$) Кроме того разрешение 98х64 - рисуй и пиши чо хочешь.
3. Рассыпуха (SMD-резюки, кнопочки, SMD-конденсаторы и прочее) на вскидку - около 50руб. (~1,42$)

Итого: ~180руб (~5$)

Корпус, аккум (я бы выбрал Lo-Pol акк от той же моторолки С200 - компактно, ёмко, недорого (сравнительно)) - не считаем, так как и то и другое нужно в обоих вариантах.

Теперь Ваш вариант:

1. ИЖЦ5-4/8 - около 50руб (~1.42$)
2. К176ИЕ4 (CD4026) - 15руб (~0,42$)x4=60руб(~1.68$)
3. К176ЛА7 - 5руб (~0,14$)x4=20руб(~0.56$)
4. Рассыпуха (SMD-резюки, кнопочки, SMD-конденсаторы и прочее) на вскидку - около 50руб. (~1,42$)

Итого: ~180руб(~5$)

В чём выгода?

Теперь прикинем ТТХ и функционал:

У варианта с МК поторебление будет максимум 20мА, в то время как в Вашем варианте, я думаю раза в 1,5...2 больше. Кроме того в Вашем варианте - сложность (относительная) печатной платы на 7 корпусах+многогогая ИЖЦ5-4/8 (наверняк - двусторонняя), невозможность модернизировать устройство (добавить или изменить функционал) не влезая в схему (только на программном уровне), отсутствие возможности организовать память на измерения (счёт), питание не менее 5В (с меньшего Вы не раскачаете ИЖЦ), вес и габариты. Можно много ещё привести доводов. Теперь вариант с МК. Про ток потребления уже написал - 20мА макс. + возможность спящего режима (потребление - 1...5 мА (в основном - LCD)), сложность платы для одной 8-ногой микросхемы и 5 выводного разъёмчика для мотороловского LCD - смешно даже говорить. Гибкость (можно программно, без изменения схемы и платы наворотить такого - волосы дыбом встанут), информативность графического 98х64 дисплея - ни в какое сравнение с 4,5 разрядами 7-сегментного ИЖЦ. питание - 3...3,5В (можно даже таблеточку CR2032, но лучше всё таки Li-Pol от мабылы). Возможность организации многоячейной памяти на результаты измерений (счёта) прибора - опять таки только на программном уровне без вмешательства в схему и плату. Ну и наконец - габариты и вес ни в какое сравнение с Вашим вариантом. Аргумент - "я не умею программировать" не принимется - кто хочет, тот найдёт выход. Я до вчерашнего дня не умел работать с дисплеем от мобильника Моторола С205. Теперь умею. Прошли сутки. Потому что мне это НАДО. В конце концов Вы правы - можно кого нибудь и попросить.)) Вот примерно так. И не в красоте дело, а в том, что дискретная логика безнадёжно устарела как морально так и технически в качестве основного элемента схемотехники. То, для чего требовались десятки корпусов с диким общим потреблением, сложностью ПП и огромными габаритами, теперь можно собрать а 28-40 ногом МК легко и непринуждённо - поверьте мне. Сейчас даже инфы по МК гораздо больше чем по дискретной логике - и это вполне объяснимо.