Микроконверторы фирмы Analog Devices в микропроцессорных приборных комплексах. Виноградов А.Б - 274 стр.

UptoLike

274
Для работы этой программы, как и в случае экспериментов с Flash/EE-
памятью данных, требуется макет, содержащий только подключенные к
ADuC824 кнопки управления и ЖКИ. Программа выводит на ЖКИ значение
текущего времени в десятичном представлении и формате {часы : минуты : се-
кунды}. Ручная установка значения часов производится путем нажатия на
кнопку «0», значения минут путем нажатия на кнопку «1». При нажатии на
кнопку «2» производится обнуление регистров счета секунд и сотых долей се-
кунд, что позволяет синхронизировать часы по внешнему эталонному источни-
ку времени. После сброса программа начинает счет времени со значения
{23:55:00}. Поскольку заданные аппаратно диапазоны величин специальных
регистров отсчета времени SEC, MIN, HOUR соответствуют требуемым диапа-
зонам для 24-часового счета, то прерывания от TIC в этой программе использо-
вать нет необходимости. Программная организация процесса отсчета времени
сводится к инициализации специального регистра управления модулем TIC
TIMECON, производимой в подпрограмме Pod_INIT_RSN. Константа инициа-
лизации задает базовый временной интервал (часы) и разрешает прохождение
счетных импульсов на вход предварительного делителя TIC. Однако, помимо
счета и индикации программа должна обеспечивать пользователю возможность
ручной установки содержимого счетчиков времени. Поскольку запись в любой
из счетчиков HTHSEC, SEC, MIN, HOUR возможна только при сброшенном
бите TCEN регистра TIMECON, а его сброс автоматически вызывает очистку
всех счетчиков (табл. 1.19), то для проведения корректной установки счетчиков
часов и минут в программе производится предварительное сохранение всех
счетчиков с последующим их восстановлением.
24-часовой отсчет времени является самым простым случаем использова-
ния TIC, однако зачастую требуется иметь счетчик времени с другим значением
главного цикла счета. Программа, исходный текст которой содержится в файле
tic12.asm (листинг 3.21), в качестве примера реализует часы реального времени
с 12-часовым отсчетом (1…12) и возможностью ручной установки показаний.
Листинг 3.21. Часы реального времени с 12-часовым отсчетом
;-----------------------------------------------------------------------------
;Демонстрационная программа использования модуля счетчика временных
;интервалов (TIC) ADuC824.
;
;Программа реализует часы реального времени с возможностью ручной установки
;показаний. Отсчет времени 12-часовой.
;При нажатии на кнопку 0 производится установка часов.
;При нажатии на кнопку 1 производится установка минут.
;При нажатии на кнопку 2 производится обнуление счетчиков секунд и сотых долей
;секунд (установка точного времени).
;Текущие значения счетчиков часов, минут и секунд индицируются на ЖКИ.
;Используется прерывание от TIC.
;------------------------------------------------------------------------------
$INCLUDE (C:\ADuC\mod824)
$INCLUDE (C:\PR_ADUC\TIC12\824.inc)
;-----------------------------------------------------------------------------
;Описание битов, регистров и констант
;-----------------------------------------------------------------------------
;Порты и линии ввода-вывода