Реализация электронного счетчика электроэнергии на микроконтроллере серии MSP430FE42x. Простой счётчик числа оборотов - Конструкции простой сложности - Схемы для начинающих Реверсивный последовательный счётчик

Счетчик импульсов — это последовательностное цифровое устройство, обеспечивающее хранение слова информации и выполнение над ним микрооперации счета, заключающейся в изменении значения числа в счетчике на 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 — на вход обратного счета.

Конструкция выполнена только на одной микросхеме К561ИЕ16. Так как, для его правильной работы нужен внешний генератор тактовых импульсов, то в нашем случае мы его заменим простым мигающим светодиодом. Как только подадим напряжение питание на схему таймера, емкость С1 начнет заряжаться через резистор R2 поэтому на выводе 11 кратковременно появится логическая единица, сбрасывающая счетчик. Транзистор, подсоединенный к выходу счетчика, откроется и включит реле, которое через свои контакты подключит нагрузку.


Здесь используется второй триггер микросхемы К561ТМ2, который в первой схеме не задействован. Он включается последовательно первому триггеру образуя двухразрядный двоичный счетчик, отличающийся от «типового» только наличием цепи задержки R3-C2 в первом триггерном звене. Теперь состояние выходов триггеров будет меняться соответственно двоичному коду. При включении питания оба триггера устанавливаются в нулевое состояние, чтобы это происходило вход R второго триггера соединен с таким же входом первого. Теперь цепь C1-R2 действует на оба триггера, обнуляя их при подаче питания. С первым нажатием кнопки в единичное состояние устанавливается триггер D1.1, -включается лампа Н1.

Первый из описываемых далее счетчиков представляет собой генератор случайного числа. Его можно использовать для определения очередности ходов в различных игровых ситуациях, в качестве лототрона и др. В генераторе используются интегральные схемы серии К155. На элементах DD1.1 -DD1.4 интегральной схемы К155ЛН1 собран генератор прямоугольных импульсов с рабочей частотой порядка нескольких килогерц.


При нажатии на тумблер SB1 замыкаются контакты кнопки и импульсы с выхода генератора следуют на вход первого из 4 последовательно соединенных JK- триггеров. Их входы включены так, что JK-триггеры по сути работают в счетном режиме. Вход каждого триггера соединен с инверсным выходом предыдущего, поэтому все они переключаются с достаточно приличной частотой, в соответствие с ней вспыхивают и светодиоды HL1...HL4.

Этот процесс идет до тех пор, пока нажата SB1. Но как только ее отпускают, как все триггеры окажуться в каком-то устойчивом состоянии. При этом будут гореть только те светодиоды, которые подсоединены к выходам триггеров которые окажуться в нулевом состоянии 0.

Каждому светодиоду задается свой числовой эквивалент. Поэтому для определения выпавшей комбинации необходимо просуммировать числовые значения горящих светодиодов.

Схема генератора случайного числа настолько проста, что не требует никакой наладки и начинает работать сразу с подачей питания. Вместо JK-триггеров в конструкции можно применить двоичный счетчик К155ИЕ5.

Автомат обладает двумя идентичными каналами, каждый из которых содержит тактовый генератор на элементах DD1.1 -DD1.4 (DD2.1 - DD2.4), четырех разрядный двоичный счетчик DD3, DD5 (DD4, DD6), схемы управления на DD8.1, DD8.2 (DD8.3, DD8.4), узлы индикации DD10.1 (DD10.2).


Объединяет оба канала модуль контроля (DD7), реализующих формулу «исключающее ИЛИ». Логика работы DD7 очень проста: если на вход элемента приходят два одинаковых логических уровня, то на его выходе формируется уровень логического 0, иначе 1.

В момент включения питания и нажатия на кнопку «Сброс» (SB1) триггеры DD3...DD6 переключаются в единичное состояние и светодиоды тухнут. Параллельно на выходах DD8.1 и DD8.3 формируется логическая 1, разрешающая запуск тактовых генераторов. Импульсы с их выходов, следуют на триггеры и провоцируют их синхронное переключение. Вспыхивают и соответствующие светодиоды. Скоростью переключения последних можно упровлять сопротивлениями R1 и R2, расположенными в пультах игроков.

Если играющий, считая, что состояния светодиодов обоих каналов равнозначны, нажимает на кнопку SB2. Тогда на выходе элемента DD8 формируется логический ноль, запирающий генераторы и фиксирующий состояния триггеров. Уровень единицы, формируется на выходе DD8.2 и блокирует переключение триггера на DD8.3, DD8.4 и разрешая работу индикации. Благодаря этому можно выяснить, кто из двух играющих быстрее нажмет на кнопку.

Логические уровни с инверсных выходов триггеров следуют на узел контроля DD7.1 - DD7.4, где происходит сравнение. Если они равнозначны, то на выходах элементов узла контроля появляется уровень логического нуля.

Инвертируясь DD9.1- DD9.4, он вызывает возникновение высокого уровня на выходе схемы ИЛИ (VD1-VD4). Таким образом, обе единицы одновременно будут только на входе DD10.1. На его выходе формируется логический ноль и начинает гореть светодиод HL9 фиксирующей победу игрока, нажавшего на кнопку SB2.

Если при нажатии SB2 логические уровни были разными, то на выходе схемы ИЛИ формируется уровень нуля. При этом единичный уровень поступает только на вход DD10.2, и зажигание соответствуюшего светодиода фиксирующего победу другого игрока.

Аналогично схема будет вести себя и в случае если первой нажать кнопку SB3. Время переключения DD8.1 - DD8.4 достаточно низкое поэтому вероятность сбоя почти исключена.

Схема имеет узел автоматического отключения питания через полчаса, но при желании его можно отсоединить и раньше, коснувшись пальцем сенсора.

Для сборки конструкции необходимо семь транзисторов и три ИМС: К155ЛАЗ, и К155ИЕ8.

Приставка состоит из узла звукового сигнализатора на VT1, VT2 и DD1 - DD3 и узла коммутации питания на VT3-VT7.


Схема звукового сигнализатора состоитиз тактовый генератор на DD1.1, DD1.2 и VT1. Он генерирует прямоугольные импульсы с частотой следования около 1 Гц.

После включения питания тактовый генератор начинает посылать тактирующие импульсы, а импульс сброса, формируемый цепью R4, С2, сбрасывает счетчик и триггер, управляющий коэффициентом деления.

Уровень логической единицы, идет с шестого выхода триггера DD3.1, и блокирует диод VD1, включая тональный генератор на DD1.4 и транзисторе VT2. Параллельно импульсы, следуют на десятый вход элемента DD1.4 с тактового генератора частотой один Гц, включая и в отключая тональный генератор, формирующий прерывистый звуковой сигнал.

Кроме того уровень логической 1, идущий с выхода 6 триггера, задает коэффициент деления счетчика равный шестнадцати. После поступления на вход счетчика 17-го импульса на выходе шесть DD2 формируется положительный импульс, переключающий DD3.1 в единичное состояние. С выхода 6 низкий уровень этого триггера блокирует работу тонального генератора и устанавливает коэффициент деления счетчика 64. После прихода следующих 64 импульсов на выходе счетчика генерируется положительный импульс, переключающий триггер DD3.1 в нулевое состояние. Выходной сигнал триггера разрешает работу тонального генератора и устанавливает коэффициент деления равный шестнадцати. Таким образом, приставка через каждые 64 секунды генерирует прерывистый тональный звуковой сигнал длительностью 16 секунд. В таком режиме приставка может работать до выключения питания.

Питание схемы звуковой сигнализации происходит через «электронный выключатель» и устройство автоматической коммутации питания, на транзисторах VT3-VT7. Кроме того этот модуль, ограничивает ток, потребления приставки в дежурном режиме на уровне микроампер, что позволяет не использовать в конструкции механический выключатель питания.

Для включения приставки кратковременно замыкаем точки А и Б. При этом на базу VT3 через сопротивление R9 идет положительный потенциал напряжения и составной транзистор образованный на VT4-VT5 отпирается, обеспечивая ток делителя напряжения на резисторах R10, R11. Падение напряжения на R10 и участке коллектор - эмиттер VT5 отпирает составной транзистор VT6- VT7.

Напряжение питания через VT7 проходит на узел звуковой сигнализации. Параллельно через R6, R7 и участок коллектор - эмиттер VT3 заряжается емкость С4. За счет падения напряжения в цепи заряда емкости составной транзистор VT4-VT5 поддерживается открытым, обеспечивая работу составного транзистора VT6-VT7.

По мере заряда емкости С4 потенциал в точке R6, VD2, С4, R7 падает и при определенной величине составной транзистор VT4- VT5 запирается, заним и закрывается VT6-VT7, отключая цепь питания звуковой сигнализации.

Емкость С4 быстро разряжается и приставка переходит в спящий режим. Время работы задается сопротивлением R6 и емкостью С4 и для указанных номиналов время составляет 30 мин. Можно отключить питание и вручную, коснувшись сенсорных контактов E1, Е2.

Отрицательный потенциал напряжения через сопротивление поверхности кожи и R8 попадает на базу транзистора VT3, отпирая его. Напряжение на коллекторе резко падает и запирает составной транзистор VT4-VT5, который закрывает VT6, VT7.

Счётчик на микроконтроллере довольно прост для повторения и собран на популярном МК PIC16F628A с выводом индикации на 4 семисегментных светодиодных индикатора. Счётчик имеет два входа управления: «+1» и «-1», а также кнопку «Reset». Управление схемой нового счётчика реализовано таким образом, что как бы долго или коротко не была нажата кнопка входа, счёт продолжится только при её отпускании и очередном нажатии. Максимальное количество поступивших импульсов и соответственно показания АЛС - 9999. При управлении на входе «-1» счёт ведётся в обратном порядке до значения 0000. Показания счётчика сохраняются в памяти контроллера и при отключении питания, что сохранит данные при случайных перебоях питающего напряжения сети.

Принципиальная схема реверсивного счётчика на микроконтроллере PIC16F628A:

Сброс показаний счётчика и одновременно состояния памяти в 0, осуществляется кнопкой «Reset». Следует помнить, что при первом включении реверсивного счётчика на микроконтроллере, на индикаторе АЛС может высветиться непредсказуемая информация. Но при первом же нажатии на любую из кнопок информация нормализируется. Где и как можно использовать эту схему - зависит от конкретных нужд, например установить в магазин или офис для подсчёта посетителей или как индикатор намоточного станка. В общем думаю, что этот счётчик на микроконтроллере кому-нибудь принесёт пользу.

Если у кого-то под рукой не окажется нужного индикатора АЛС, а будет какой-нибудь другой (или даже 4 отдельных одинаковых индикатора), я готов помочь перерисовать печатку и переделать прошивку. В архиве на форуме схема, плата и прошивки под индикаторы с общим анодом и общим катодом. Печатная плата показана на рисунке ниже:

Имеется также новая версия прошивки для счётчика на микроконтроллере PIC16F628A. при этом схема и плата счётчика остались прежними, но поменялось назначение кнопок: кнопка 1 - вход импульсов (например, от геркона), 2 кнопка включает счёт на вычитание входных импульсов, при этом на индикаторе светится самая левая точка, 3 кнопка - сложение импульсов - светится самая правая точка. Кнопка 4 - сброс. В таком варианте схему счётчика на микроконтроллере можно легко применить на намоточном станке. Только перед намоткой или отмоткой витков нужно сначала нажать кнопку "+" или "-". Питается счётчик от стабилизированного источника напряжением 5В и током 50мА. При необходимости можно питать от батареек. Корпус зависит от ваших вкусов и возможностей. Схему предоставил - Samopalkin

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

Итак, исходя из полученного в предыдущем разговоре опыта, мы выяснили один из главных параметров счетчика – разрядность. Для того, чтобы счетчик смог считать до 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 в двоичном счислении и подать импульс записи на вход С.

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

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

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

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

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

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