
Задание 2
Разработать схему включения таймера, программу инициализации ПТ и снять временные диаграммы для следующих вариантов использования:
2.1. Организовать автоматический перезапуск таймера в режиме 1.
Текст программы:
┌───┬─────────────────────────┬───┬───┬───┬───┬──────────────────────────────┐
│ N%│ Команда │CE0│CE1│CE2│CLK│ Комментарии │
├───┼─────────────────────────┼───┼───┼───┼───┼──────────────────────────────┤
│000│mov al,00110010b │ 1 │ 0 │ 0 │ 1 │ │
│001│out 43h,al │ 1 │ 0 │ 0 │ 1 │ │
│002│mov al,3 │ 1 │ 0 │ 0 │ 1 │ │
│003│out 40h,al │ 1 │ 0 │ 0 │ 1 │ │
│004│mov al,0 │ 1 │ 0 │ 0 │ 1 │ │
│005│out 40h,al │ 1 │ 0 │ 0 │ 1 │ │
│006│mov al,0 │ 1 │ 0 │ 0 │ 1 │ │
└───┴─────────────────────────┴───┴───┴───┴───┴──────────────────────────────┘
Схема подключения таймера:
MУ MA МD ┌───┬───┬───┬───┐
║ ║ ║ │CE0│CE1│CE2│CLK│
║ ║ ╠══════════╗ ┌────┬──────┬────┐ └───┴─┬─┴─┬─┴─┬─┘
║ ║ ║ ╟──┤z<->│ │ │ │ │ │
║ ║ ║ ╟──┤ D0 │ СТ │ CE0├──────────│───│───│─┐
║ ║ ║ ╟──┤ D1 │ │CLK0├──────────│───│───* │┌───────┐
║ ║ ║ ╟──┤ D2 │ │ │ │ │ │ ││ │
║ ║ ║ ╟──┤ D3 │ ВИ54 │OUT0├──────────────────│──┘ ┌───┐ │
║ ║ ║ ┌───┐ ╟──┤ D4 │ ├────┤ │ │ │ │ │ o─┘
║ ║ ║ 6 │ С │ ╟──┤ D5 │ │ CE1├──────────┘ │ │ └──o 1 │
║ ╟───║─/─┤ В o┐ ╟──┤ D6 │ │CLK1├──────────────│───* │ ├── Внеш.
║ ║ ║ │ А ││ ╟──┤ D7 │ │ │ │ │ └───┘ запуск
║ ║ ║ └───┘│ ├────┤ │OUT1│ │ │
║ ║───║────────┼────┤ A0 │ ├────┤ │ │
║ ║───║────────┼────┤ A1 │ │ CE2├──────────────┘ │
║ ║ ║ │ ├────┤ │CLK2├──────────────────┘
║ ║ ║ └────o CS │ │ │
║───║───║─────────────o RD │ │OUT2│
║───║───║─────────────o WR │ │ │
║ ║ ║ └────┴──────┴────┘
Временные диаграммы:
clk ─┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐
└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└
32 03 00
rd/wr──┐ ┌─┐ ┌─┐ ┌───────────────────────
└─┘ └─┘ └─┘
ce0 ────────────────┐ ┌┐ ┌─┐ ┌─┐
└─┘└─────┘ └─────┘ └
3 2 1 0 3 2 1 0 3
out0 ───────────────────┐ ┌─┐ ┌─┐
└─────┘ └─────┘ └
В режиме 1, запуск счетчика осуществляется фронтом сигнала CE, поэтому для запуска счетчика можно использовать внешний запуск ,и перезапускать счетчик инверсией сигнала OUT.
2.2. Организовать работу часов для подсчета секунд и минут (в минуте 8 секунд, в часе 5 минут, период 2 Гц).
Текст программы:
┌───┬─────────────────────────┬───┬───┬───┬───┬──────────────────────────────┐
│ N%│ Команда │CE0│CE1│CE2│CLK│ Комментарии │
├───┼─────────────────────────┼───┼───┼───┼───┼──────────────────────────────┤
│000│mov al,00010100b │ 0 │ 0 │ 0 │ 1 │ │
│001│out 43h,al │ 0 │ 0 │ 0 │ 1 │ │
│002│mov al,8 │ 0 │ 0 │ 0 │ 1 │ │
│003│out 40h,al │ 0 │ 0 │ 0 │ 1 │ │
│004│mov al,01010100b │ 0 │ 0 │ 0 │ 1 │ │
│005│out 43h,al │ 0 │ 0 │ 0 │ 1 │ │
│006│mov al,5 │ 0 │ 0 │ 0 │ 1 │ │
│007│out 41h,al │ 0 │ 0 │ 0 │ 1 │ │
│008│mov al,10010100b │ 0 │ 0 │ 0 │ 1 │ │
│009│out 43h,al │ 0 │ 0 │ 0 │ 1 │ │
│00A│mov al,2 │ 0 │ 0 │ 0 │ 1 │ │
│00B│out 42h,al │ 0 │ 0 │ 0 │ 1 │ │
│00C│nop │ 1 │ 1 │ 1 │ 1 │ │
└───┴─────────────────────────┴───┴───┴───┴───┴──────────────────────────────┘
Схема подключения таймера:
MУ MA МD ┌───┬───┬───┬───┐
║ ║ ║ │CE0│CE1│CE2│CLK│
║ ║ ╠══════════╗ ┌────┬──────┬────┐ └─┬─┴─┬─┴──┬┴─┬─┘
║ ║ ║ ╟──┤z<->│ │ │ │ │ │ │
║ ║ ║ ╟──┤ D0 │ СТ │ CE0├──────┘ │ │ │
║ ║ ║ ╟──┤ D1 │ │CLK0├──────────│───┐│ │
║ ║ ║ ╟──┤ D2 │ │ │ │ ││ │
║ ║ ║ ╟──┤ D3 │ ВИ54 │OUT0├──────┐ │ ││ │
║ ║ ║ ┌───┐ ╟──┤ D4 │ ├────┤ │ │ ││ │
║ ║ ║ 6 │ С │ ╟──┤ D5 │ │ CE1├──────│───┘ ││ │
║ ╟───║─/─┤ В o┐ ╟──┤ D6 │ │CLK1├──────┘ ││ │
║ ║ ║ │ А ││ ╟──┤ D7 │ │ │ ││ │
║ ║ ║ └───┘│ ├────┤ │OUT1│ ││ │
║ ║───║────────┼────┤ A0 │ ├────┤ ││ │
║ ║───║────────┼────┤ A1 │ │ CE2├──────────────│┘ │
║ ║ ║ │ ├────┤ │CLK2├──────────────│───┘
║ ║ ║ └────o CS │ │ │ │
║───║───║─────────────o RD │ │OUT2├──────────────┘
║───║───║─────────────o WR │ │ │
║ ║ ║ └────┴──────┴────┘
Временные диаграммы:
clk ─┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐
└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└
14 08 54 05 94 02
rd/wr──┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─────────────────────────────────────────────
└─┘ └─┘ └─┘ └─┘ └─┘ └─┘
ce0 ┌─────────────────────────────────────────────
────────────────────────┘
8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 8 8 7 7 6 6
out0 ───────────────────────────────────────────────────────┐ ┌──────────
└───┘
ce1 ┌─────────────────────────────────────────────
────────────────────────┘
5 5 5 5 5 5 5 5
out1 ──────────────────────────────────────────────────────────────────────
ce2 ┌─────────────────────────────────────────────
────────────────────────┘
2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
out2 ───────────────────────────┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌
└─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘
clk ─┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐
└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└
rd/wr────────────────────────
ce0 ────────────────────────
5 5 4 4 3 3 2 2 1 1 8 8
out0 ─────────────────┐ ┌──
└───┘
ce1 ────────────────────────
5 5 5 5 5 5 5 5 4 4 4 4
out1 ────────────────────────
ce2 ────────────────────────
1 2 1 2 1 2 1 2 1 2 1 2
out2 ─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌
└─┘ └─┘ └─┘ └─┘ └─┘ └─┘
Для реализации устройства счета времени с частотой 2Гц (1Гц – стандартная частота), устанавливаем для всех каналов режим 2 (удобен автоматическим перезапуском и запретом счета при CE=0). В соответствии с назначением канала загружаем счетчики: 0 канал – секунды; 1 канал – минуты; 2 канал – делитель частоты (значение 2). Счет 0 канала возможен лишь при перезапуске 2 канала (OUT2=0), Счет 1 канала – при перезапуске 0 канала (OUT0=0).
2.3. Выполнить перезапуск генератора импульсов в режиме 2 для заданного периода T=8
после выработки каждого 12-го импульса.
Текст программы:
┌───┬─────────────────────────┬───┬───┬───┬───┬──────────────────────────────┐
│ N%│ Команда │CE0│CE1│CE2│CLK│ Комментарии │
├───┼─────────────────────────┼───┼───┼───┼───┼──────────────────────────────┤
│000│mov al,00010100b │ 0 │ 0 │ 0 │ 1 │ │
│001│out 43h,al │ 0 │ 0 │ 0 │ 1 │ │
│002│mov al,12 │ 0 │ 0 │ 0 │ 1 │ │
│003│out 40h,al │ 0 │ 0 │ 0 │ 1 │ │
│004│mov al,01010100b │ 0 │ 0 │ 0 │ 1 │ │
│005│out 43h,al │ 0 │ 0 │ 0 │ 1 │ │
│006│mov al,8 │ 0 │ 0 │ 0 │ 1 │ │
│007│out 41h,al │ 0 │ 0 │ 0 │ 1 │ │
│008│mov al,0 │ 1 │ 0 │ 0 │ 1 │ │
└───┴─────────────────────────┴───┴───┴───┴───┴──────────────────────────────┘
Схема подключения таймера:
MУ MA МD ┌───┬───┬───┬───┐
║ ║ ║ │CE0│CE1│CE2│CLK│
║ ║ ╠══════════╗ ┌────┬──────┬────┐ └─┬─┴───┴─┬─┴─┬─┘
║ ║ ║ ╟──┤z<->│ │ │ │ │ │
║ ║ ║ ╟──┤ D0 │ СТ │ CE0├──────┘ │ │
║ ║ ║ ╟──┤ D1 │ │CLK0├──────────────│───*
║ ║ ║ ╟──┤ D2 │ │ │ │ │
║ ║ ║ ╟──┤ D3 │ ВИ54 │OUT0├──────┐ │ │
║ ║ ║ ┌───┐ ╟──┤ D4 │ ├────┤ │ │ │
║ ║ ║ 6 │ С │ ╟──┤ D5 │ │ CE1├──────┘ │ │
║ ╟───║─/─┤ В o┐ ╟──┤ D6 │ │CLK1├──────────────│───*
║ ║ ║ │ А ││ ╟──┤ D7 │ │ │ │ │
║ ║ ║ └───┘│ ├────┤ │OUT1│ │ │
║ ║───║────────┼────┤ A0 │ ├────┤ │ │
║ ║───║────────┼────┤ A1 │ │ CE2├──────────────┘ │
║ ║ ║ │ ├────┤ │CLK2├──────────────────┘
║ ║ ║ └────o CS │ │ │
║───║───║─────────────o RD │ │OUT2│
║───║───║─────────────o WR │ │ │
║ ║ ║ └────┴──────┴────┘
Временные диаграммы:
clk ─┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐
└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└
14 0C 54 08
rd/wr──┐ ┌─┐ ┌─┐ ┌─┐ ┌─────────────────────────────
└─┘ └─┘ └─┘ └─┘
ce0 ┌─────────────────────────────
────────────────┘
1211109 8 7 6 5 4 3 2 1 12111
out0 ───────────────────────────────────────┐ ┌────
└─┘
ce1 ───────────────────────────────────────┐ ┌────
└─┘
8 7 6 5 4 3 2 1 8 7 6 5 5 8 7
out1 ───────────────────────────────┐ ┌────────────
└─┘
ce2
──────────────────────────────────────────────
out2 ──────────────────────────────────────────────
Достаточно удобным является режим 2. На 0 канале реализуем подсчет импульсов декрементом, начиная с 12, а на 1 канале будем отсчитывать период равный 8. Для того чтобы каждый 12 импульс перезапускал 1 канал, нужно на CE1 подать OUT0.
2.4. Разработать схему, обеспечивающую цикл регенерации динамической памяти c периодом регенерации 8 мс после окончания очередного цикла регенерации, время регенерации 2 мс.
Текст программы:
┌───┬─────────────────────────┬───┬───┬───┬───┬──────────────────────────────┐
│ N%│ Команда │CE0│CE1│CE2│CLK│ Комментарии │
├───┼─────────────────────────┼───┼───┼───┼───┼──────────────────────────────┤
│000│mov al,00010100b │ 0 │ 0 │ 0 │ 1 │ │
│001│out 43h,al │ 0 │ 0 │ 0 │ 1 │ │
│002│mov al,2 │ 0 │ 0 │ 0 │ 1 │ │
│003│out 40h,al │ 0 │ 0 │ 0 │ 1 │ │
│004│mov al,01010100b │ 0 │ 0 │ 0 │ 1 │ │
│005│out 43h,al │ 0 │ 0 │ 0 │ 1 │ │
│006│mov al,4 │ 0 │ 0 │ 0 │ 1 │ │
│007│out 41h,al │ 0 │ 0 │ 0 │ 1 │ │
│008│mov al,0 │ 1 │ 1 │ 0 │ 1 │ │
└───┴─────────────────────────┴───┴───┴───┴───┴──────────────────────────────┘
Схема подключения таймера:
MУ MA МD ┌───┬───┬───┬───┐
║ ║ ║ │CE0│CE1│CE2│CLK│
║ ║ ╠══════════╗ ┌────┬──────┬────┐ └─┬─┴─┬─┴─┬─┴─┬─┘
║ ║ ║ ╟──┤z<->│ │ │ │ │ │ │
║ ║ ║ ╟──┤ D0 │ СТ │ CE0├──────┘ │ │ │
║ ║ ║ ╟──┤ D1 │ │CLK0├──────────│───│───*
║ ║ ║ ╟──┤ D2 │ │ │ │ │ │
║ ║ ║ ╟──┤ D3 │ ВИ54 │OUT0├──────┐ │ │ │
║ ║ ║ ┌───┐ ╟──┤ D4 │ ├────┤ │ │ │ │
║ ║ ║ 6 │ С │ ╟──┤ D5 │ │ CE1├──────│───┘ │ │
║ ╟───║─/─┤ В o┐ ╟──┤ D6 │ │CLK1├──────┘ │ │
║ ║ ║ │ А ││ ╟──┤ D7 │ │ │ │ │
║ ║ ║ └───┘│ ├────┤ │OUT1│ │ │
║ ║───║────────┼────┤ A0 │ ├────┤ │ │
║ ║───║────────┼────┤ A1 │ │ CE2├──────────────┘ │
║ ║ ║ │ ├────┤ │CLK2├──────────────────┘
║ ║ ║ └────o CS │ │ │
║───║───║─────────────o RD │ │OUT2│
║───║───║─────────────o WR │ │ │
║ ║ ║ └────┴──────┴────┘
Временные диаграммы:
clk ─┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐
└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└
14 02 54 04
rd/wr──┐ ┌─┐ ┌─┐ ┌─┐ ┌───────────────────────────────────
└─┘ └─┘ └─┘ └─┘
ce0 ┌───────────────────────────────────
────────────────┘
2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1
out0 ───────────────────┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐
└─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └
ce1 ┌───────────────────────────────────
────────────────┘
4 4 3 3 2 2 1 1 4 4 3 3 2 2 1 1 4
out1 ───────────────────────────────┐ ┌───────────┐ ┌
└───┘ └───┘
ce2
────────────────────────────────────────────────────
out2 ────────────────────────────────────────────────────
Числа 8 и 2 кратны, значит, на 0 канале реализуем счет от 2 в режиме 2 (с перезапуском). 1 канал должен считать с 4 в режиме 2 (с перезапуском), каждый раз при перезапуске канала 0. Реализуется это подачей OUT0 на CLK1.
Выводы
В ходе работы рассмотрен алгоритм работы микросхемы-таймера К580ВИ54.
Установлено, что у микросхемы 3 независимых канала, которые могут работать в 6 режимах. Вывод по каждому из режимов представлен в соответствующих разделах отчета.
Для получения навыка работы с микросхемой и закрепления результата исследования режимов были разработаны схемы: с автоматическим перезапуском счета в режиме 1, перезапуска генератора импульсов, часов, обеспечения регенерации памяти.
Благодаря различным режимам работы и наличию 3 независимых каналов микросхема просто и удобно применить в микропроцессорных системах для решения различных задач.