Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

Рис. 17.2.Модульная структура программы таймера

Задача формирования временных отсчетов

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

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

Задача отображения времени

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

Фоновый (основной) процесс

Фоновый процесс осуществляет в цикле вывод на индикатор значение счетчика минут до тех пор, пока он не станет равным нулю. При замыкании кнопки СТОП происходит преждевременный выход из цикла.

Процесс установки интервала

Если в момент сброса микроконтроллера кнопка УСТ. находится в замкнутом состоянии, то вызывается подпрограмма SETT. Эта подпрограмма постепенно уменьшает выводимое на дисплей число до тех пор, пока кнопка не будет отпущена. Последнее показанное число сохраняется в EEPROM и используется всеми запускаемыми впоследствии фоновыми процессами в качестве начального значения для отсчета интервала.

Процесс самодиагностики

Если при сбросе кнопка ДИАГ. находится в замкнутом состоянии, то управление передается в подпрограмму диагностики. Основной задачей этой подпрограммы является проверка всех периферийных устройств, чтобы облегчить нахождение неисправного узла.

Все процессы зависят от задачи формирования временных отсчетов, которая предоставляет базовую информацию о реальном времени. Как показано в Программе 17.1, эта задача реализована в виде обработчика прерывания от Таймера 0. Предделитель таймера сконфигурирован таким образом, чтобы при системной тактовой частоте 3.2763 МГц переполнение таймера происходило бы каждые 1/50 с. Поскольку прерывание от Таймера 0 разрешено (см. Программу 17.3), микроконтроллер будет переходить к обработчику прерывания при каждом переполнении таймера — каждые 256 импульсов с выхода предделителя. Учитывая, что частота внутреннего тактового сигнала составляет 1/4 от частоты резонатора, коэффициент деления предцелителя, равный 64, позволит нам формировать отсчеты времени 50 раз в секунду, т. е. 3.2763x106/4x64x256 = 50

Итак, обработчик прерывания будет выполнять следующие задачи:

1. ЕСЛИ кнопка ПАУЗА отпущена, ТО

а) Декрементировать счетчики на один тик.

б) Если прошла секунда, то установить соответствующий флаг.

2. ИНАЧЕ

а) Переключить флаг состояния ПАУЗА.

б) ЕСЛИ он установлен, ТО показать, что работа таймера приостановлена.

в) ИНАЧЕ отобразить время (нормальная работа).

г) Ждать, пока не будет отпущена кнопка УСТ.

3. Выйти из прерывания.

Программа 17.1. Обработка времени

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

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

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника