Проект Eldigi.ru пережил своё новое становление. В связи с этим на сайте могут быть ошибки. Нашли ошибку? Помогите проекту, выделите её и нажмите Ctrl+Enter. Подробнее...

Счетчик на микроконтроллере (AT90S2313, asm)

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

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

В предлагаемом счетчике применен микроконтроллер AT90S2313 из семейства AVR фирмы Almel Подробнее о микроконтроллерах этого семейства можно прочитать в [1]. В приборе реализован реверсивный счет, вывод результата с гашением незначащих нулей на четырехразрядный светодиодный индикатор, хранение результата в EEPROM при выключенном питании. Встроенный в микроконтроллер аналоговый компаратор использован для своевременного обнаружения уменьшения напряжения питания. От аналогичного счетчика на микроконтроллере PIC16FB4 [2] рассматриваемый отличается меньшим числом микросхем и некоторыми дополнительными функциями. Например, он запоминает результат счета при отключении питания, восстанавливая его при включении, и аналогично механическому счетчику снабжен кнопкой обнуления показаний.

Схема счетчика представлена на рис. 1. Шесть линий порта В (РВ2— РВ7) и пять линий порта D (PDO, PD1, PD4—PD6) использованы для организации динамической индикации результата счета на четырех одноразрядных семисегментных светодиодных индикаторах HG1—HG4. Коллекторными нагрузками фототранзисторов VT1 и VT2 служат встроенные в микроконтроллер и включенные программно резисторы, соединяющие соответствующие выводы микроконтроллера с цепью его питания.

Счетчик работает согласно диаграмме, изображенной на рис. 2. Увеличение результата счета 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, а хранящееся там значение останется прежним.
Коды, которые необходимо загрузить в программную память микроконтроллера, приведены в таблице. Исходный текст программы написан на языке ассемблера AVR Assembler версии 1.3. Программа построена таким образом, что ее легко адаптировать к счетчику с другими индикаторами (например, с общими катодами), с другой разводкой печатной платы и т. п. Небольшая коррекция программы потребуется и при использовании кварцевого резонатора на частоту, отличающуюся более чем на 1 МГц от указанной.

Счетчик собран на двух односторонних печатных платах одинакового размера из фольгированного стеклотекстолита. Их чертежи приведены на рис. 3. На одной из плат установлены индикаторы HG1—HG4 и кнопка SB1, на другой — остальные детали счетчика, за исключением трансформатора Т1 с плавкой вставкой FU1, излучающих диодов VD1, VD2 и фототранзисторов VT1, VT2, размещенных отдельно.

Контактные площадки Х2.1—Х2.14 одной платы соединены с соответствующими площадками другой отрезками гибкого провода такой длины, чтобы при проверке и налаживании изготовленного прибора платы можно было положить рядом. По окончании налаживания платы складывают печатными проводниками внутрь и соединяют винтами МЗ через изолирующие шайбы.
К контактным площадкам Х1.1—Х1.6 подключают вторичную обмотку трансформатора, фототранзисторы и соединенные последовательно излучающие диоды. Расстояние между оптическими окнами излучающего диода и соответствующего ему фототранзистора не должно превышать 50 мм. Если по условиям применения счетчика этого недостаточно, нужно установить более мощные излучающие диоды, например, АЛ 106А или АЛ123А, и уменьшить номинал резистора R1.
Трансформатор Т1 — ТВК-70-Л2 от лампового телевизора. Подойдет и другой маломощный трансформатор с напряжением на вторичной обмотке 10...20 В.
Налаживание счетчика начинают, не устанавливая микроконтроллер в панель на плате. К контактным площадкам Х1.2, XI .5 вместо вторичной обмотки трансформатора временно подключают регулируемый источник постоянного напряжения.
При напряжении источника 15 В измеряют напряжение на контактах 12 и 13 панели микроконтроллера относительно общего провода (конт.10). Первое должно находиться в интервале 4...4.5 В, а второе — быть больше 3,5 В, но меньше первого. Далее постепенно уменьшают напряжение источника. Когда оно упадет до 9... 10 В, разность значений напряжения на контактах 12 и 13 должна стать кулевой, а затем поменять знак.
Теперь можно установить в панель запрограммированный микроконтроллер, подключить трансформатор и подать на него сетевое напряжение. Спустя 1,5...2 с нужно нажать на кнопку SB1. На индикатор счетчика будет выведена цифра 0. Если на индикатор ничего не выведено, еще раз проверьте значения напряжения на входах AIN0.AIN1 микроконтроллера. Первое должно быть больше второго.
Когда счетчик успешно запущен, остается проверить правильность счета, поочередно затеняя фототранзисторы непрозрачной для ИК лучей пластиной. Для большей контрастности индикаторы желательно закрыть светофильтром из красного органического стекла.

Исходный код на asm и прошивка (4 Кб). Загрузок: 425

Источник: Журнал Радио №7 2006г
Просмотров: 4260

Смотри тут. . Авто на контейнерных площадках и тентами.

Splan 7.0.0.9 Rus + Portable + Viewer Fiinal
26.04.2014
sPlan – удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены... подробнее...

Очень удобная программа для чтения pdf Foxit Reader
26.04.2014
Foxit Reader - Компактная и шустрая программа для чтения PDF файлов. Может служить альтернативой для популярного просмотрщика PDF - Adobe Reader.... подробнее...

Proteus 7.7 SP2 + Crack v1.0.2 + RUS
22.04.2014
Proteus VSM - программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры.... подробнее...

Новое становление сайта Eldigi.ru
01.04.2014
Проект Eldigi.ru который долгое время находился в застывшем состоянии снова принимается за работу с новымы силами, с новыми статьями и с... подробнее...

Proteus 7.7 SP2 + Crack v1.0.2 + RUS
22.04.2014
Proteus VSM - программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры.... подробнее...

Splan 7.0.0.9 Rus + Portable + Viewer Fiinal
26.04.2014
sPlan – удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены... подробнее...

Цифровая паяльная станция своими руками (ATmega8, C)
27.05.2012
Состав: ATmega8, LM358, IRFZ44, 7805, мост, 13 резисторов, один потенциометр, 2 электролита, 4 конденсатора, трехразрядный светодиодный семисегментный... подробнее...

Тахометр на AVR микроконтроллере (ATtiny2313, C)
13.01.2010
Данное устройство представляет собой неплохой тахометр, предел его измерений составляет 100 - 9990 об/мин. Точность измерения - ± 3 об/мин.... подробнее...

USB программатор микроконтроллеров AVR / 89S совместимый с AVR910 (ATmega8, C)
22.01.2012
Схема программатора приведена на рисунке ниже. Предохранитель F1 служит для защиты линий питания порта USB от случайного замыкания по... подробнее...

Частотомер - цифровая шкала с LCD (PIC16F84/PIC16F628, asm)
26.02.2011
Описание опубликовано в журнале «Радио» № 7 за 2004 г., стр. 64, 65 Частотомер - цифровая шкала с ЖК индикатором и «Радиолюбитель»... подробнее...

Простой VGA/Видео адаптер (ATmega8, C)
28.08.2010
Задавшись целью подключить VGA-монитор для вывода текстовых данных с микроконтроллерной системы сбора информации - я с удивлением... подробнее...

Микроконтроллерная система управления токарным станком 16Б25ПСп (PIC16F876, C)
02.12.2010
Штатная система управления станком 16Б25ПСп разработана в 70-е годы и была реализована на тиристорно - транзисторной элементной базе. В... подробнее...