| Главная страница | | Архитектура микроЭВМ | | Принципы обмена данными | | Лабораторные работы | | Примеры систем | | Программно-логическая модель | | Справочная информация |
 
Однокристальная микроЭВМ МК51 Реализация временных диаграмм

   ЗАДАНИЕ НА РАЗРАБОТКУ СИСТЕМЫ

    После появления логической "1" на входе Р1.0 микроЭВМ на 4-х выходах порта Р2 формирует временную диаграмму изменения 4-х сигналов. Диаграмма содержит 4 временных интервала длительностью 1 мс каждый и периодически повторяется до появления логического "0" на входе Р1.0. Состояние каждого сигнала на каждом временном интервале задать самостоятельно.

   ПРИМЕР ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ

    Выберем вариант временной диаграммы, когда на выходы порта Р2 с периодом 1 мс будут выдаваться двоичные коды чисел, равных 4, 1, 10 и 6 (десятичное представление). Для воспроизведения диаграммы эти числа следует предварительно занести в память микроЭВМ, например, в регистры R7, R6, R5 и R4 соответственно.
    Для формирования временного интервала 1 мс используем таймер/счетчик T/C 0. Нужно подобрать константу пересчета так, чтобы переполнение таймера возникало через 1 мс.
    Таймер, при его работе в режиме 1, имеет разрядность 16 двоичных разрядов и при тактовой частоте в 12 МГц (процессорный цикл равен 1 мкс) временной интервал между началом счета и переполнением выражается формулой
    Следовательно для получения 1 мс необходимо загрузить константу пересчета, равную 65535-1000=64535. В 16-ричном представлении константа равна FC17h.
Выходные сигналы
    Демонстрация работы программы
    Программа работы микроЭВМ на языке Ассемблера представлена ниже на имитации копии экрана программно-логической модели микроЭВМ.
    Последовательность выполнения команд программы имитируется верно до первого выполнения команды ajmp CONT.

Загрузка константы в память
Загрузка константы в память
Загрузка константы в память
Загрузка константы в память
Начальный адрес памяти данных
Начальное состояние счетчика временных 
интервалов
Настройка таймера на режим 1
Ожидание сигнала разрешения на выходе Р1.0
Выдача кода на выходы порта Р2
Загрузка константы пересчета таймера
Загрузка константы пересчета таймера
Запуск таймера установкой бита TR0 регистра 
ТCON
Ожидание переполнения таймера - установки 
бита TF0 регистра TCON
Останов таймера - сброс бита TR0
Сброс флага переполнения - бита TF0
Выведены все временные интервалы или нет?
Все интервалы отсчитаны, возврат на начало
Получение адреса очередного кода для 
вывода
Переход на метку CONT - на выдачу очередного 
кода
Состояние регистров
Память данных
F10ТактF6
Меню модели микроЭВМ

    Отладка программы
    Так как при отладке программы в пошаговом режиме на программно-логической модели микроЭВМ изменение состояния таймера/счетчика на единицу происходит при каждом нажатии клавиши Enter, то невозможно дождаться тысячи таких изменений. Поэтому следует на каком-то этапе отладки принудительно устанавливать таймер в состояние, близкое к переполнению.
Задание состояния
таймера/cчетчика

| На главную страницу | На начало раздела | На начало страницы | © КСиТ МИФИ, 2000 г.