Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

0 / ATiny15

.docx
Скачиваний:
16
Добавлен:
09.02.2016
Размер:
490.1 Кб
Скачать

Программа

      Счетчик событий имеет два индикатора. Для вывода цифр на индикатор используется динамический режим. В начале программы указан вектор прерывания от различных источников микроконтроллера. Используется только два прерывания: по сигналам RESET и Т1МЕ_0.       Далее в программе настраивается режим работы таймера с тактовой частотой f/64 от внутреннего генератора микроконтроллера, а так же настройка выводов порта В на ввод-вывод данных. Для прерывания программы и вывода данных на индикатор с периодом в 0,738 мс автор использовал таймер 0 микроконтроллера.

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

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

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

 Индикация цифр имеет необычную структуру и организована через вектор прерывания от таймера TIMEO каждые 738 мкс. В подпрограмме прерывания реализован алгоритм, представленный на рис. 4.3. 1.    Вывод в регистр кода первого разряда индикации. 2.    Пауза в 130 мкс (отображение первой цифры). 3.    Вывод в регистр кода второго разряда индикации. 4.    Пауза в 130 мкс (отображение второй цифры). 5.    Сброс регистра дважды.

  На примере цифры 2 рассмотрена структура движения разрядов в последовательном коде. На обоих индикаторах выводится цифра 22. Сегменты на индикаторе расположены стандартно, вывод данных в регистр происходит, начиная с последнего (точка индикатора — сегмент р) и заканчивая первым сегментом (сегмент а).       На рис. 4.3 представлены примеры кодировки всех цифр. Во время вывода кода в регистр буфер регистра постоянно включен, а сегменты индикатора хаотически засвечиваются, что приводит к ненужной подсветке. Однако инертность человеческого глаза настолько высока, что при отображении полезной информации 80% от общего времени и ненужной — 20%, видна только полезная. Кроме того, частота отображения цифр индикатора составляет около 1355 Гц, тогда как предел распознавания мерцания человеческим глазом составляет 25 Гц.       Дальнейшее наращивание числа индикаторов снизит частоту отображения, однако запас инертности очень велик. Изменяя время засветки полезной информации до 90%, можно программным путем увеличить яркость свечения сегментов индикатора. В программе не используется "спящий" режим микроконтроллера, а также отключен сторожевой таймер, предотвращающий зацикливание.       Программу можно ввести программатором STK200 с помощью программы AVReal32. Для работы в течении часа достаточно трех аккумуляторов по 1,5В (150 мАч), или от внешнего блока питания 5В (100мА). При включении загорается светодиод индикации питания. Индикатор счетчика в начальный момент должен показать "ноль-ноль". Если индикатор не светится, то неисправна схема индикации. Если светится восьмерка на одном из индикаторов, то не работает микроконтроллер. В случае нагрева микросхемы IC1 необходимо увеличить номинал гасящих резисторов R3-R9 от 100 Ом. до 900 Ом.

Плата

      Монтажная схема счетчика показана на рис. 4.4, а схема разводки— на рис. 4.5.       Плата изготовлена из двухстороннего фольгированного текстолита. Автор для полной проверки схемы и программы использовал макетную плату (рис. 4.6). Компоненты: •   светодиод LED1 — любой на ток 5 мА; •   IC2   —   микроконтроллера   Tinyl5L-lSI   (для   печатной   платы Tinyl5L-lPI корпус DIP); •   IC1 — 74НС164 (К555ИР8) корпус DIP; •   DIS1, DIS2 — TOD2M (5263ВН) корпус DIP или любой на ток не более 5 мА.       Микроконтроллер установлен на панельку, индикатор — на впаянный разъем (в случае неисправности индикатор легко заменяется, а также нет необходимости в соблюдении жестких условий пайки выводов).

Соседние файлы в папке 0