Каталог статей

Главная » Все схемы » Схемы устройств на микроконтроллерах » Устройства на микроконтроллерах

Выбранная схема!!!


2355
Счетчик событий

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

Счетчик ведет подсчет с момента включения от 0 до 99. Схема счетчика (рис. 4.1) очень проста: IC1 — регистр 74НС164; IC2 — микроконтроллер Tiny 15 от компании Atmel [3]. Микроконтроллер оснащен Flash-памятью на 1 Кбайт, памятью EEPROM на 64 байт, шестью линиями ввода-вывода, встроенным RC-генератором, а так же АЦП, аналоговым компаратором и двумя таймерами/счетчиками. Этого набора вполне достаточно для полноценной работы устройства.

Питание счетчика осуществляется от батареи 4,5 В При включении питания светодиод LED1 светится, указывая о подаче питания. Микроконтроллер после сброса выполняет динамический опрос индикатора и устанавливает начальное положение в ноль. Индикатор счетчика опрашивает регистр IC1 при подаче импульсов управления от микроконтроллера. Регистр IC1 преобразует последовательную информацию в параллельную [6], в результате чего нулевой потенциал подается на необходимый сегмент индикатора.

Индикаторы подключены по схеме с общим анодом. Для включения индикатора DIS1 включаются транзисторы Q2, Q3; для индикатора DIS2 — транзистор Q1. Транзисторы включены по противофазной схеме, поэтому обоими индикаторами можно управлять одним выводом микроконтроллера. При включении одного из плеч транзисторов через сегменты индикатора протекает ток. Например, ток сегмента А индикатора DIS1 протекает по пути: +ВАТ1, эмиттер-коллектор Q2, сегмент А индикатора DIS1, R3, 3-й вывод IC1, "ноль" GND.


Недостатком схемы является непригодность регистра 74НС164 для коммутации сегментов индикаторов. Максимальный ток потребления IC1 — 40 мА, что почти достаточно для засветки восьми сегментов индикаторов.

Учитывая падение напряжения на выходных буферах микросхемы и на транзисторном переходе ЭК Q1 или Q2, а так же динамический режим работы, автор установил в схему гасящие резисторы R3-R9 номиналом 100 Ом. При этом яркость индикаторов уменьшится.

В схему введен разъем внутрисхемного программирования SV1 для оперативного перепрограммирования микроконтроллера. Протокол программирования через последовательный интерфейс SPI рассмотрен в книге [3]. Схему можно использовать в качестве индикатора от других устройств.

Программа

Счетчик событий имеет два индикатора. Для вывода цифр на индикатор используется динамический режим. В начале программы указан вектор прерывания от различных источников микроконтроллера. Используется только два прерывания: по сигналам RESET и TIME0.

Далее в программе настраивается режим работы таймера с тактовой частотой f/64 от внутреннего генератора микроконтроллера, а так же настройка выводов порта В на ввод-вывод данных. Для прерывания программы и вывода данных на индикатор с периодом в 0,738 мс автор использовал таймер 0 микроконтроллера.

Динамический вывод цифр на индикаторы полностью реализован в подпрограмме обработки прерывания, которая считывает данные из регистров R22, R23 микроконтроллера и декодирует их в последовательный семисегментный код (по таблице "прошивки") (табл. 4.1). Затем этот код последовательно с тактируемыми импульсами выводится на индикатор через регистр IC1. Далее подпрограмма возвращается из вектора прерывания в то место, где была прервана основная программа. В подпрограмме запоминаются все данные, использованные в основной программе. После перехода в основную программу данные восстанавливаются.

Алгоритм основной программы (рис. 4.2) проверяет, нажата кнопка или нет. Если кнопка нажата, то устраняется дребезг контактов (программным путем) и содержимое регистра R22 микроконтроллера увеличивается на единицу. На данном этапе алгоритм программы упрощен путем ограничения подсчета до девяти в R22 и увеличения следующего разряда десятичной функции в R23.

В программе выполняется проверка на достижение числа 99. Если регистр R23 микроконтроллера достиг 99, то результат регистров обнуляется. Однако для будущего использования в других приложениях необходим пересчет шестнадцатеричной системы исчисления в десятичную. Схему счетчика событий можно использовать для других приборов. Если добавить согласующий усилитель и немного модифицировать программу, то получится измеритель напряжения или температуры. В составе микроконтроллера Tiny 15 компании Atmel присутствует АЦП, необходимый для этих целей.

Индикация цифр имеет необычную структуру и организована через вектор прерывания от таймера TIME0 каждые 738 мкс. В подпрограмме прерывания реализован алгоритм, представленный на рис. 4.3.

1. Вывод в регистр кода первого разряда индикации.

2. Пауза в 130 мкс (отображение первой цифры).

3. Вывод в регистр кода второго разряда индикации.

4. Пауза в 130 мкс (отображение второй цифры).

5. Сброс регистра дважды.


На примере цифры 2 рассмотрена структура движения разрядов в последовательном коде. На обоих индикаторах выводится цифра 22. Сегменты на индикаторе расположены стандартно, вывод данных в регистр происходит, начиная с последнего (точка индикатора — сегмент р) и заканчивая первым сегментом (сегмент а).

На рис. 4.3 представлены примеры кодировки всех цифр. Во время вывода кода в регистр буфер регистра постоянно включен, а сегменты индикатора хаотически засвечиваются, что приводит к ненужной подсветке. Однако инертность человеческого глаза настолько высока, что при отображении полезной информации 80% от общего времени и ненужной — 20%, видна только полезная. Кроме того, частота отображения цифр индикатора составляет около 1355 Гц, тогда как предел распознавания мерцания человеческим глазом составляет 25 Гц.

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

Код программы на языке ассемблер представлен в листинге 4.1, шестнадцатеричный код — в листинге 4.2. Программа полностью проверена в симуляторе AVR Studio 4.

Программу можно ввести программатором STK200 с помощью программы AVReal32. Для работы в течении часа достаточно трех аккуму-

ляторов по 1,5 В (150 мАч), или от внешнего блока питания 5 В (100 мА). При включении загорается светодиод индикации питания. Индикатор счетчика в начальный момент должен показать "ноль-ноль". Если индикатор не светится, то неисправна схема индикации. Если светится восьмерка на одном из индикаторов, то не работает микроконтроллер. В случае нагрева микросхемы IC1 необходимо увеличить номинал гасящих резисторов R3-R9 от 100 Ом. до 900 Ом.

Плата

Монтажная схема счетчика показана на рис. 4.4, а схема разводки — на рис. 4.5.


Плата изготовлена из двухстороннего фольгированного текстолита. Автор для полной проверки схемы и программы использовал макетную плату (рис. 4.6). Компоненты:

• светодиод LED1 — любой на ток 5 мА;

• IC2 — микроконтроллера Tiny 15L-1 SI (для печатной платы Tiny 15L-1PI корпус DIP);

• IC1 — 74НС164 (К555ИР8) корпус DIP;

• DIS1, DIS2 — TOD2M (5263ВН) корпус DIP или любой на ток не более 5 мА.

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



Категория: Устройства на микроконтроллерах | Добавил: Администратор (23.10.2011)
Просмотров: 8173 | Комментарии: 1 | Рейтинг: 0.0/0


Всего комментариев: 1
0
1 Vovka   (23.10.2011 18:38) [Материал]
А чего тут коментировать , удобоусваемо и повторяемо .

Пожалуйста остав

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

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

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2024