Значение числа 2313

Счетчик на Attiny2313

Значение числа 2313

17 мая 2010.

:  4 / 5

Во многих устройствах бытовой техники и промышленной автоматики сравнительно недавних лет выпусков установлены механические счетчики. Они продукцию на конвейере, витки провода в намоточных станках и т.

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

Электронный счетчик, разрабатываемый на замену механическому, получается слишком сложным, если строить его на микросхемах малой и средней степени интеграции (например, серий К176, К561). особенно если необходим реверсивный счет. А чтобы сохранить результат при выключенном питании, необходимо предусмотреть резервную батарею питания.

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

Многие микроконтроллеры имеют особую область памяти — EEPROM.

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

В предлагаемом счетчике применен микроконтроллер Attiny2313 из семейства AVR фирмы Almel.

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

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

Схема счетчика представлена на рисунке.

Шесть линий порта В (РВ2— РВ7) и пять линий порта D (PDO, PD1, PD4—PD6) использованы для организации динамической индикации результата счета на светодиодный индикатор HL1.

Коллекторными нагрузками фототранзисторов VT1 и VT2 служат встроенные в микроконтроллер и включенные программно резисторы, соединяющие соответствующие выводы микроконтроллера с цепью его питания.

Увеличение результата счета N на единицу происходит в момент прерывания оптической связи между излучающим диодом VD1 и фототранзистором VT1, что создает нарастающий перепад уровня на входе INT0 микроконтроллера. При этом уровень на входе INT1 должен быть низким, т.

е. фототранзистор VT2 должен быть освещен излучающим диодом VD2. В момент нарастающего перепада на входе INT1 при низком уровне на входе INT0 результат уменьшится на единицу. Другие комбинации уровней и их перепадов на входах INT0 и INT1 результат счета не изменяют.

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

Как уже сказано, детектором снижения напряжения питания служит встроенный в микроконтроллер аналоговый компаратор. Он сравнивает нестабилизированное напряжение на выходе выпрямителя (диодного моста VD3) со стабилизированным на выходе интегрального стабилизатора DA1.

Программа циклически проверяет состояние компаратора. После отключения счетчика от сети напряжение на конденсаторе фильтра выпрямителя С1 спадает, а стабилизированное еще некоторое время остается неизменным. Резисторы R2—R4 подобраны так.

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

При последующем включении программа прочитает число, записанное в ЕЕРРОМ, и выведет его на индикатор. Счет будет продолжен с этого значения.

Ввиду ограниченного числа выводов микроконтроллера для подключения кнопки SB1, обнуляющей счетчик, использован вывод 13, служащий инвертирующим аналоговым входом компаратора (AIM) и одновременно — “цифровым” входом РВ1.

Делителем напряжения {резисторы R4, R5) здесь задан уровень, воспринимаемый микроконтроллером как высокий логический При нажатии на кнопку SB1 он станет низким.

На состояние компаратора это не повлияет, так как напряжение на входе AIN0 по-прежнему больше, чем на AIN1.

При нажатой кнопке SB1 программа выводит во всех разрядах индикатора знак “минус”, а после ее отпускания начинает счет с нуля. Если при нажатой кнопке выключить питание счетчика, текущий результат не будет записан в EEPROM, а хранящееся там значение останется прежним.

Программа построена таким образом, что ее легко адаптировать к счетчику с другими индикаторами (например, с общими катодами), с другой разводкой печатной платы и т. п. Небольшая коррекция программы потребуется и при использовании кварцевого резонатора на частоту, отличающуюся более чем на 1 МГц от указанной.

При напряжении источника 15 В измеряют напряжение на контактах 12 и 13 панели микроконтроллера относительно общего провода (конт.10). Первое должно находиться в интервале 4…4.5 В, а второе — быть больше 3,5 В, но меньше первого. Далее постепенно уменьшают напряжение источника. Когда оно упадет до 9… 10 В, разность значений напряжения на контактах 12 и 13 должна стать нулевой, а затем поменять знак.

Теперь можно установить в панель запрограммированный микроконтроллер, подключить трансформатор и подать на него сетевое напряжение. Спустя 1,5…2 с нужно нажать на кнопку SB1. На индикатор счетчика будет выведена цифра 0. Если на индикатор ничего не выведено, еще раз проверьте значения напряжения на входах AIN0.AIN1 микроконтроллера. Первое должно быть больше второго.

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

Источник: Журнал Радио №7, 2006 г.

Источник: http://radioparty.ru/device-avr/106-caunter-attiny2313

Счетчик на Attiny2313

Значение числа 2313Схема счетчика представлена на рисунке. Шесть линий порта В (РВ2— РВ7) и пять линий порта D (PDO, PD1, PD4—PD6) использованы для организации динамической индикации результата счета на светодиодный индикатор HL1.

Коллекторными нагрузками фототранзисторов VT1 и VT2 служат встроенные в микроконтроллер и включенные программно резисторы, соединяющие соответствующие выводы микроконтроллера с цепью его питания.

    Увеличение результата счета N на единицу происходит в момент прерывания оптической связи между излучающим диодом VD1 и фототранзистором VT1, что создает нарастающий перепад уровня на входе INT0 микроконтроллера. При этом уровень на входе INT1 должен быть низким, т. е.

фототранзистор VT2 должен быть освещен излучающим диодом VD2. В момент нарастающего перепада на входе INT1 при низком уровне на входе INT0 результат уменьшится на единицу. Другие комбинации уровней и их перепадов на входах INT0 и INT1 результат счета не изменяют.

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

    Как уже сказано, детектором снижения напряжения питания служит встроенный в микроконтроллер аналоговый компаратор. Он сравнивает нестабилизированное напряжение на выходе выпрямителя (диодного моста VD3) со стабилизированным на выходе интегрального стабилизатора DA1.

Программа циклически проверяет состояние компаратора. После отключения счетчика от сети напряжение на конденсаторе фильтра выпрямителя С1 спадает, а стабилизированное еще некоторое время остается неизменным. Резисторы R2—R4 подобраны так.

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

При последующем включении программа прочитает число, записанное в ЕЕРРОМ, и выведет его на индикатор. Счет будет продолжен с этого значения.

    Ввиду ограниченного числа выводов микроконтроллера для подключения кнопки SB1, обнуляющей счетчик, использован вывод 13, служащий инвертирующим аналоговым входом компаратора (AIM) и одновременно — «цифровым» входом РВ1.

Делителем напряжения {резисторы R4, R5) здесь задан уровень, воспринимаемый микроконтроллером как высокий логический При нажатии на кнопку SB1 он станет низким.

На состояние компаратора это не повлияет, так как напряжение на входе AIN0 по-прежнему больше, чем на AIN1.

    При нажатой кнопке SB1 программа выводит во всех разрядах индикатора знак «минус», а после ее отпускания начинает счет с нуля. Если при нажатой кнопке выключить питание счетчика, текущий результат не будет записан в EEPROM, а хранящееся там значение останется прежним.

    Программа построена таким образом, что ее легко адаптировать к счетчику с другими индикаторами (например, с общими катодами), с другой разводкой печатной платы и т. п. Небольшая коррекция программы потребуется и при использовании кварцевого резонатора на частоту, отличающуюся более чем на 1 МГц от указанной.

При напряжении источника 15 В измеряют напряжение на контактах 12 и 13 панели микроконтроллера относительно общего провода (конт.10). Первое должно находиться в интервале 4…4.

5 В, а второе — быть больше 3,5 В, но меньше первого. Далее постепенно уменьшают напряжение источника.

Когда оно упадет до 9… 10 В, разность значений напряжения на контактах 12 и 13 должна стать нулевой, а затем поменять знак.   

    Теперь можно установить в панель запрограммированный микроконтроллер, подключить трансформатор и подать на него сетевое напряжение. Спустя 1,5…2 с нужно нажать на кнопку SB1. На индикатор счетчика будет выведена цифра 0. Если на индикатор ничего не выведено, еще раз проверьте значения напряжения на входах AIN0.AIN1 микроконтроллера. Первое должно быть больше второго.

Источник: http://elektro-shemi.ru/schetchik_na_attiny2313.html

Простые часы на микроконтроллере Attiny2313. Схема и описание

Наверное, даже не просто простые часы на микроконтроллере, а даже очень простые. Этот проект на микроконтроллере Attiny2313 наверно можно назвать проектом одного  дня, поскольку на создание данных часов с начало и до конца ушло чуть больше одного дня.

Для создания данных часов нам понадобятся:

  • Кварцевый резонатор на 16 МГц – 1 шт;
  • Микроконтроллер Attiny2313 -1 шт;
  • Конденсатор от  22 пф до 27 пф –  2 шт;
  • Конденсатор 220 н –  1 шт;
  • Стабилизатор 7805 – 1 шт;
  • Транзистор КТ817Б – 4 шт;
  • Индикатор SA15-11GWA  – 4 шт  ( можно любой другой с общим анодом);
  • Кнопка – 2 шт;
  • Резистор  100 Ом – 8 шт;
  • Резистор  200 Ом – 4шт;
  • Резистор  10 кОм – 1 шт.
  • Питание осуществляется от простого надежного стабилизатора на LM317.

Описание работы простых часов на Attiny2313

Микроконтроллер Attiny2313 тактируется кварцевым резонатором с рабочей частотой 16 МГц. В качестве счетчика времени, в схеме  микроконтроллера Attiny2313 запущен 16 битный таймер с предделителем 256, сконфигурированный на создание прерывания по достижении счетчиком значения 625. Следовательно, получилось прерывания 100 раз в секунду.

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

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

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

Поскольку количество портов микроконтроллера не так много, то используем такую особенность зрения как инерционность.

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

Быстро переключая порт B микроконтроллера, к которому подключены катоды и быстро переключая аноды,  можем организовать видимость, что отображаются все 4 цифры, несмотря на то, что единовременно работает всего лишь одна.

Другими  словами, если текущее время 10:43, то выводим цифру 1 на первый индикатор часов, через небольшой интервал времени (порядка 1 мс) выводим цифру 0 на второй индикатор, через 1 мс отображаем 4 на 3 индикатор, спустя 1 мс отображаем 3 на 4 индикатор и снова по кругу.

Кнопки управления часов опрашиваются после каждого очередного цикла отображения (приблизительно 40 раз в секунду), процесс нажатия кнопок снабжен антидребезгом и  защелкой  в виде флага, что позволяет считать собственно само нажатие, не отвлекаясь на удержание.

Скачать печатку, файл прошивки и исходник (1,2 Mb, скачано: 5 754)

Источник: http://www.joyta.ru/3283-prostye-chasy-na-mikrokontrollere-attiny2313/

Прямой, обратный и дополнительный коды двоичного числа

Прямой, обратный и дополнительный коды двоичного числа

Доброго дня уважаемые друзья!
Приветствую Вас на сайте «Мир микроконтроллеров»

Прямой код двоичного числа
Обратный код двоичного числа
Дополнительный код двоичного числа

Прямой, обратный и дополнительный коды двоичного числа — способы представления двоичных чисел с фиксированной запятой в компьютерной (микроконтроллерной) арифметике, предназначенные для записи отрицательных и неотрицательных чисел

Мы знаем, что десятичное число можно представить в двоичном виде. К примеру, десятичное число 100 в двоичном виде будет равно 1100100, или в восьмибитном представлении 0110 0100.

А как представить отрицательное десятичное число в двоичном виде и произвести с ним арифметические операции? Для этого и предназначены разные способы представления чисел в двоичном коде.

Сразу отмечу, что положительные числа в двоичном коде вне зависимости от способа представления (прямой, обратный или дополнительный коды) имеют одинаковый вид.

Прямой код

Прямой код — способ представления двоичных чисел с фиксированной запятой. Главным образом используется для записи неотрицательных чисел

Прямой код используется в двух вариантах.
В первом (основной) — для записи только неотрицательных чисел:

В этом варианте (для восьмибитного двоичного числа) мы можем записать максимальное число 255 (всего чисел 256 — от 0 до 255)

Второй вариант — для записи как положительных, так и отрицательных чисел.
В этом случае старший бит (в нашем случае — восьмой) объявляется знаковым разрядом (знаковым битом).
При этом, если:
— знаковый разряд равен 0, то число положительное
— знаковый разряд равен 1, то число отрицательное

В этом случае диапазон десятичных чисел, которые можно записать в прямом коде составляет от — 127 до +127:

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

 Использование прямого кода для представления отрицательных чисел является неэффективным — очень сложно реализовать арифметические операции и, кроме того, в прямом коде два представления нуля — положительный ноль и отрицательный ноль (чего не бывает):

Обратный код

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

Обратный двоичный код положительного числа состоит из одноразрядного кода знака (битового знака) — двоичной цифры 0, за которым следует значение числа.

Обратный двоичный код отрицательного числа состоит из одноразрядного кода знака (битового знака) — двоичной цифры 1, за которым следует инвертированное значение положительного числа.

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

Для отрицательных чисел обратный код получается из неотрицательного числа в прямом коде, путем инвертирования всех битов (1 меняем на 0, а 0 меняем на 1).

Для преобразования отрицательного числа записанное в обратном коде в положительное достаточного его проинвертировать.

При 8-битном двоичном числе — знаковый бит (как и в прямом коде) старший (8-й)

Диапазон десятичных чисел, который можно записать в обратном коде от -127 до + 127

Арифметические операции с отрицательными числами в обратном коде:

(Арифметические операции с двоичными числами)

1-й пример (для положительного результата)
Дано два числа:
100 = 0110 0100
-25 = — 0001 1001
Необходимо их сложить:
100 + (-25) = 100 — 25 = 75

1-й этапПереводим число -25 в двоичное число в обратном коде:

25 = 0001 1001

-25= 1110 0110и складываем два числа:

0110 0100 (100) + 1110 0110 (-25) = 1 0100 1010, отбрасываем старшую 1 (у нас получился лишний 9-й разряд — переполнение), = 0100 1010

2-й этапОтброшенную в результате старшую единицу прибавляем к результату:

0100 1010 + 1 = 0100 1011 (знаковый бит =0, значит число положительное), что равно 75 в десятичной системе

Источник: http://microkontroller.ru/programmirovanie-mikrokontrollerov-avr/pryamoy-obratnyiy-dopolnitelnyiy-kod-dvoichnogo-chisla/

Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

×
Рекомендуем посмотреть