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

Variable

ME[3..0] : DFF;

MD[2..0] : DFF;

WT: DFF;

WM: DFF;

BEGIN

WT.D=VCC;

WT.CLK=START;

WM.CLK=CLK;

WM.CLRN=RN;

WT.CLRN=RN&!WM.Q;

ME[].CLK=CLK & !UST & SQ # CLKU & UST;

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

ME[].CLRN=RN;

MD[].CLRN=RN;

SQ=WT.Q;

S=WM.Q;

IF WT.Q==1 THEN

CASE ME[].Q IS

WHEN B"0000" => ME[].D=9;

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

END CASE;

MD[].D=MD[].Q-1;

END IF;

IF WT.Q==0 THEN

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;

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

END CASE;

END IF;

IF ME[].Q==1 & MD[].Q==0 & WT.Q==1 THEN

WM.D=B"1";

ELSE WM.D=B"0";

END IF;

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

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

END;

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

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

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

UST – кнопка установки таймера;

START – кнопка запуска таймера;

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

S - выход сигнала на исполнительный механизм;

SQ - выход триггера управления (вспомогательный выход);

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

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

Для управления режимами работы служит триггер WT. В режиме ожидания триггер WT находится в нулевом состоянии. В этом режиме при нажатии кнопки UST счетчик минут начинает считать в прямом порядке импульсы с частотой CLKU, тем самым происходит установка начального значения таймера. При приходе положительного фронта сигнала START триггер перебрасывается в состояние «1», поскольку на вход этого триггера постоянно подаётся напряжение высокого логического уровня. Перейдя в состояние логической единицы триггер WT переводит схему в режим счёта импульсов по убыванию с частотой СLK.

После того, как счётчик досчитает до кода «000000», в выходной триггер WM записывается сигнал «1», а триггер WT перебрасывается в состояние «0» и схема опять переходит в режим ожидания.

Управление режимами счёта организовано с помощью условного оператора IF THEN. Внутри операторов находятся вложенные операторы CASE, которые и организовывают двоично-десятичный счёт минут.

Операторы

WT.CLK=START;

WM.CLK=CLK;

определяют тактовые сигналы, которые подаются на входы триггеров управления WT и WM.

Оператор

WT.CLRN=RN&!WM.Q;

определяет условия сброса триггера WT.

Операторы

ME[].CLK=CLK & !UST & SQ # CLKU & UST;

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

определяют правила подачи тактовых сигналов на младшие ME[].CLK и старшие MD[].CLK разряды счётчика минут. Из этих выражений видно, что на тактовый вход ME[].CLK поступают импульсы CLKU при сигнале UST равном логической единице и соответственно импульсы CLK при сигнале UST равном логическому нулю и сигнале SQ равному логической единице.

Примеры временной диаграммы работы таймера приведён на рис 4.5.2. и 4.5.3.

Рис 4.5.2. Примеры временной диаграммы работы таймера (установка начального значения и начало счёта).

На рисунке 4.5.2. показа первая фаза работы таймера. При подаче единичного сигнала на вход UST таймер с частой CLKU досчитывает до числа 23. Затем при подаче логической единицы на вход START таймер переходит в режим рабочего счёта.

Рис 4.5.3. Примеры временной диаграммы работы таймера (окончание счёта).

На рисунке 4.5.3. показа вторая фаза работы таймера. Досчитав до нулевого значения таймер выдаёт единичный сигнал на выход управления исполнительным механизмом S и переводит таймер в режим ожидания (сигнал SQ сбрасывается в логический «0»)

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

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