Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРС_ПКИМС_ПЛИС.doc
Скачиваний:
35
Добавлен:
05.06.2015
Размер:
1.85 Mб
Скачать

4.5. Часы, счетчики времени, календари

Часы, счетчики времени, секундомеры, таймеры календари обычно выполняются на базе счетчиков, считающих в заданных пределах. Например, для счетчика минут нужны счетчики считающие от 0 до 5 и от 0 до 9, а для счетчика часов соответственно двоично-десятичный счетчик считающий от 0 до 23. Для управления работой устройств (установки, сброс, пуск и т.д.) используются дополнительные схемные узлы, управляющие работой счетчиков.

Рассмотрим несложную схему часов, описание которой на языке AHDL представлено ниже

SUBDESIGN WATCHMH

( CLK, CLKU, RN, MIN, HOURS :INPUT;

Q[6..0],H[5..0]:OUTPUT;

)

Variable

ME[3..0],RP : DFF;

MD[2..0] : DFF;

HE[5..0]: DFF;

BEGIN

RP.CLK=!CLK;

ME[].CLK=CLK&!MIN&!HOURS # CLKU&MIN;

MD[].CLK=!ME[3].Q;

ME[].CLRN=RN;

MD[].CLRN=RN;

HE[].CLRN=RN;

HE[].CLK=!RP&!HOURS # CLKU&HOURS;

CASE ME[].Q IS

WHEN 9 => ME[].D=0;

WHEN OTHERS => ME[].D=ME[].Q+1;

END CASE;

CASE MD[].Q IS

WHEN 5 => MD[].D=0; RP.D=B"1";

WHEN OTHERS => MD[].D=MD[].Q+1; RP.D=B"0";

END CASE;

CASE HE[].Q IS

WHEN 9 => HE[].D=H"10";

WHEN H"19" => HE[].D=H"20";

WHEN H"23" => HE[].D=0;

WHEN OTHERS => HE[].D=HE[].Q+1;

END CASE;

Q[6..4] = MD[].Q;

Q[3..0] = ME[].Q;

H[] = HE[].Q;

END;

. содержащую регистр минут и регистр часов.

Схема имеет следующие входные и выходные сигналы.

СLK - тактовый вход минут, имеющий частоту 1/60 Гц;

CLKU - тактовый вход установок, имеющий частоту 1 Гц;

MIN - вход установки минут;

HOURS - вход установки часов;

RN - вход сброса;

Q[6..0]- выходы двоично-десятичного счетчика минут;

H[5..0]- выходы двоично-десятичного счетчика часов.

В рабочем режиме на входы MIN и HOURS поданы сигналы «0». При нажатии кнопки MIN, работа часов приостанавливается и начинается меняться показание минут в темпе частоты коррекции CLKU. Аналогичным образом, при нажатии кнопки HOURS происходит установка текущего значения часов.

Информация о текущем значении минут хранится в регистрах ME[3..0] – единицы минут, MD[2..0]- десятки минут. Информация о текущем значении часов хранится в регистре HE[5..0]. HE[3..0] – единицы часов, HE[5..4] – десятки часов.

В рассматриваемом описании часов на базе вышеуказанных регистров организованы двоично-десятичные счётчики. Счётчик на базе регистра ME[3..0]

считает от 0 до 9, счетчик на базе регистра MD[2..0] считает от 0 до 5 а счетчик на базе регистра HE[5..0] обеспечивает двоично-десятичный счёт от 0 до 23.

Для обеспечения правильного счёта во всём диапазоне значений и отработки режимов установки для управляющих тактовых сигналов используются достаточно сложные логические выражения:

ME[].CLK=CLK&!MIN&!HOURS # CLKU&MIN;

MD[].CLK=!ME[3].Q;

HE[].CLK=!RP&!HOURS # CLKU&HOURS;

Логическое выражение для ME[].CLK обеспечивает счёт минут от стандартного генератора CLK в рабочем режиме и от генератора установки CLKU в режиме установки минут (при нажатии кнопки MIN).

Логическое выражение для HE[].CLK обеспечивает счёт часов от входа переноса счётчика минут RP в стандартном режиме работы и от генератора установки CLKU в режиме установки часов (при нажатии кнопки HOURS).

Логическое выражение для MD[].CLK обеспечивает счёт десятков минут от выхода переноса счётчика единиц минут ME[3].Q.

Ниже, на рисунке 4.5.1. приведён фрагмент временной диаграммы работы часов.

Рис 4.5.1. Фрагмент временной диаграммы работы часов.

На временной диаграмме, представленной на рис 4.5.1. показан момент окончания установки минут (сигнал MIN переходит из состояния “1” в состояние “0”), один рабочий такт (момент 750.0 ns) и начало установки часов (сигнал HOURS переходит из состояния “0” в состояние “1”).

Схемы секундомеров проектируются аналогичным образом. Они, обычно, не имеют сигналов установки, но имеют кнопки «старт» и «стоп». При подаче единичного сигнала на вход «старт» регистры времени сбрасываются в «0» и начинается отсчет времени. При подаче единичного сигнала на вход «стоп» отсчет времени прекращается.

Схемы таймеров позволяют отсчитывать заданные интервалы времени. Они работают в реверсивном режиме (считают время в обратном порядке) имеют входы установки заданного времени, вход начала работы. По окончании отсчета времени они подают «1» на исполнительный вывод, определяющий окончание отсчета временного интервала.

Рассмотрим несложную схему таймера минут, описание которой приведено ниже:

SUBDESIGN TIMER

( CLK, CLKU, UST, START, RN :INPUT;

Q[6..0], SQ,S :OUTPUT;

)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]