1.3 Модуль предустановки
На рис.5 представим схему модуля предустановки, а на рис.6 символ этого блока. Данный блок предназначен для программирования таймера. Именно здесь пользователь задаёт, на сколько секунд завести таймер. Блок включает в себя три суммирующих счётчика 74162. При лог.1 на входе PRESET происходит загрузка в счётчики чисел по шинам PRE1x_IN, PRE10x_IN, PRE100x_IN, а влияние нажатий кнопок KEY_1x, KEY_10x и KEY_100x не учитывается. На выходы PRE1x_OUT, PRE10x_OUT, PRE100x_OUT в таком случае подаётся число, до которого досчитали счётчики.
Если на PRESET подан 0, то счётчики производят счёт. Так же будут учитываться нажатия кнопок KEY_1x, KEY_10x и KEY_100x. В таком случае счётчик будет прибавлять единицы/десятки/сотни.
Все кнопки подключены через уже рассмотренный блок защиты от дребезга клавиатуры. Блоки в свою очередь на вход получают тактовый сигнал с делителя частоты div_param, который делит исходную частоту 100Гц на 4.
Рисунок 5. Схема модуля предустановки.
Рисунок 6. Символ модуля предустановки.
В дальнейшем проектировании будем использовать созданный символ preset_cnt для упрощения вида схемы.
1.4 Модуль счётчиков
На рис.7 представим схему модуля счётчиков, а на рис.8 символ этого блока. Блок имеет вход тактового сигнала CLK, сигнала сброса nRST, предустановки RELOAD. На схеме присутствует настраиваемый делитель частоты, имеющий на выходе частоту 100/100=1Гц.
Основное тело модуля состоит из трёх реверсивных счётчиков, настроенных на счёт вниз. На вход счётчики получают тактовый сигнал 1Гц, следовательно пересчёт происходит 1 раз в секунду. У счётчиков есть опция предустановки, т.е. в них можно загрузить определённое число через шины PRE1x[3..0], PRE10x[3..0], PRE100x[3..0]. Это число берётся из модуля предустановки. Загрузку можно разрешить, подав лог.1 на вход RELOAD. Если на этот вход подан 0, счётчики начинают обратный отсчёт от числа, которое было подгружено в них.
Блок предназначен для осуществления отсчёта секунд. На выход подаётся число, до которого досчитали счётчики. Так же присутствует модуль ZERO, генерирующий на выходе единицу в случае, когда таймер досчитал до нуля.
Рисунок 7. Схема модуля счётчиков.
Рисунок 8. Символ модуля счётчиков.
В дальнейшем проектировании будем использовать созданный символ work_cnt для упрощения вида схемы.
1.5 Общая схема таймера
На рис.9 представим схему модуля счётчиков, а на рис.10 символ этого блока. На схеме присутствуют уже рассмотренные входы CLK и nRST. Присутствуют кнопки управления таймером KEY_10x, KEY_10x, KEY_10x, задающие число, от которого пойдёт отсчёт, кнопка KEY_SS, регулирующая пуск/паузу таймера.
Пользователь вводит необходимое число секунд и запускает / останавливает работу таймера. Есть возможность сброса таймера до нуля.
При достижении конца отсчёта таймер излучает сигнал частотой 2кГц. Устройство, генерирующее сигнал представлено внизу схемы.
Рисунок 9. Схема таймера
2. Моделирование схемы
2.1 Демонстрация работы делителя частоты
Покажем работу делителя частоты. Параметр деления — 4. Исходный сигнал 100 Гц. Сигнал CKE на выходе имеет частоту 25Гц.
Рисунок 10. Работа делителя частоты
2.2 Работа таймера
Рисунок 11. Работа таймера
На рисунке 11 представлена работа таймера. Как указано в задании, в таймер было загружено число 599. Загрузка велась нажатием кнопок KEY_1x, KEY_10x, KEY_100x. Работа таймера была запущена нажатием KEY_SS. На рисунке показаны только первые 4 счёта. Как видно из выделенного 598-го счёта, 1 такт занимает одну секунду.
2.3 Работа сброса
Загрузим в таймер число 12 и начнём отсчёт. В произвольный момент времени до завершения работы таймера нажмём nRST и вызовем сброс всех параметров. Продемонстрируем работу сброса на рис. 12.
Рисунок 12. Демонстрация работы сброса.
2.4 Излучение сигнала в конце работы таймера
Установим небольшое число секунд — 5. Дождёмся завершения работы таймера, после чего можно будет увидеть, что начал генерироваться сигнал частотой 2кГц. Результат моделирования представим на рис.13.
Рисунок 13. Демонстрация работы излучения сигнала.
ЗАКЛЮЧЕНИЕ
В ходе выполнения курсовой работы была построена схема обратного таймера. Таймер способен работать с 3-х значными десятичными числами. В процессе разработки указанного блока, так же были построены схемы блока защиты от дребезга клавиатуры, блока программируемого делителя частоты, а так же схемы со счётчиками, осуществляющими обратный отсчёт.
По заданию было необходимо подать на вход таймера число 599. Разработанный таймер обладает функцией постановки на паузу, а так же функцией сброса.
По окончании разработки построенные схемы были промодулированы. Полученные временные диаграммы представлены во второй части курсовой работы. Стоит отметить, что разработанный таймер удовлетворяет техническому заданию и выполняет все необходимые функции.
