Главное меню

Карта сайта
Главная
Курсовые работы
Отчеты по практикам
Лабораторные работы
Методические пособия
Рефераты
Дипломы
Лекции



Лабораторные и практические работы по микропроцессорам

Встроенные процедуры

После прохождения сигнала “ RESET”, сформированного аппаратным путем, происходит обнуление внутренних регистров МП. Устанавливается машинный цикл М1 – чтение кода первой операции из ячейки ЗУ с нулевым адресом. С нулевого адреса микропроцессор начинает выполнение программ системного монитора и продолжает их выполнение в циклическом режиме, поддерживая работу клавиатуры, индикатора и других элементов структуры. В этом режиме УМК ожидает нажатия оператором одной из функциональных клавиш для выполнения стандартной процедуры, входящей в состав программ системного монитора. В состоянии ожидания выбора процедуры в старшем разряде индикатора формируется знак "-".

Выполнение (“ВП”)

Процедура “ВП” (аналог “Enter” в компьютере) подтверждает принятые ранее установки оператора.

Пробел (“_”)

Нажатие клавиши “_” разделяет элементы вводимой с клавиатуры информации, например, адрес и данные или два разных адреса. При записи в память или чтении из памяти процедура, вызываемая клавишей “_” , выполняет операцию “инкремент” для кода адреса .

Обращение к внутренним регистрам (“РГ")

После нажатия клавиши "РГ" микропроцессор выполняет процедуру обращения к регистрам и находится в режиме ожидания имени регистра. Для ввода имени регистра используется основная шестнадцатеричная клавиатура УМК. Список регистров и их обозначения на клавиатуре:

  • "А"- регистр аккумулятор, поддерживающий работу АЛУ;
  • " B,C,D,E,H,L"- регистры общего назначения;
  • " SL,SH"- регистры младшего и старшего байта счетчика стека;
  • "РL,PH"- регистры младшего и старшего байта счетчика команд.

После ввода имени регистра, в двух младших разрядах индикатора УМК появляется содержимое данного регистра, представленное в шестнадцатеричной системе счисления. В старших разрядах - имя регистра.

Очередность действий при модификации содержимого регистров:

  • нажатие "РГ" для входа в процедуру обращения к регистрам ввод имени регистра чтение содержимого регистра на светодиодном индикаторе;
  • набор нового байта данных на шестнадцатеричной клавиатуре;
  • нажатие клавиши "-" для записи нового байта данных в регистр или подтверждения существующего байта данных и перехода к режиму ожидания имени нового регистра;
  • нажатие клавиши "ВП" для подтверждения сделанных изменений и выхода из процедуры.

Содержимое регистров сохраняется до нажатия клавиши “СБРОС”.

Обращение к ячейкам памяти (“П”)

Очередность действий при модификации содержимого ОЗУ:

  • нажатие "П" для входа в процедуру обращения к памяти набор начального адреса на шестнадцатеричной клавиатуре и ввод адреса нажатием клавиши "-";
  • чтение содержимого данной ячейки ЗУ на светодиодном индикаторе;
  • набор нового байта данных на шестнадцатеричной клавиатуре;
  • нажатие клавиши "-" для записи нового байта данных или подтверждения существующего и перехода к следующему адресу массива (операция инкремент для кода адреса);
  • нажатие клавиши "ВП" для подтверждения сделанных изменений в содержимом ячеек памяти и выход из процедуры.

Начать выполнение программы ("СТ")

Процедура "СТ" предназначена для запуска любой программы, расположенной в массиве ОЗУ или ПЗУ.

Очередность действий при запуске программы:

  • нажатие "СТ" для входа в процедуру;
  • набор начального адреса программы на шестнадцатеричной клавиатуре и ввод адреса нажатием клавиши "-";
  • набор конечного адреса программы на шестнадцатеричной клавиатуре;
  • ввод адреса и запуск программы пользователя нажатием клавиши "ВП".

В момент нажатия клавиши "ВП" микропроцессор выходит из программ системного монитора и выполняет программу пользователя. После окончания выполнения программы пользователя микропроцессор возвращается в системный монитор и в старших разрядах индикатора появляется адрес ячейки ЗУ, где расположен последний код выполненной программы. До нажатия клавиши "СБРОС" состояние всех регистров микропроцессора соответствует их состоянию на момент окончания программы пользователя. Состояние регистров сохраняется в стеке и восстанавливается при обращении к ним.

Подсчет контрольной суммы ("КС")

Очередность действий при запуске процедуры определения контрольной суммы:

  • нажатие "КС" для входа в процедуру;
  • набор начального адреса массива ЗУ на шестнадцатеричной клавиатуре и ввод адреса нажатием клавиши "-";
  • набор конечного адреса массива ЗУ на шестнадцатеричной клавиатуре;
  • ввод адреса и подсчет контрольной суммы при нажатии "ВП".

После выполнения директивы в младших разрядах индикатора выводится значение контрольной суммы. Директива используется для проверки правильности загрузки программ пользователя.

Запись константы ("ЗК")

Процедура предназначена для заполнения константой заданного массива ЗУ.

Очередность действий при запуске процедуры для записи константы:

  • нажатие "ЗК" для входа в процедуру;
  • набор начального адреса массива ЗУ на шестнадцатеричной клавиатуре и ввод адреса нажатием клавиши "-";
  • набор конечного адреса массива ЗУ на шестнадцатеричной клавиатуре и ввод нажатием клавиши "-";
  • набор однобайтовой константы на шестнадцатеричной клавиатуре;
  • ввод и запись в массив нажатием клавиши "ВП".

Перемещение массива данных ("ПМ")

Очередность действий при запуске процедуры перемещения:

  • нажатие "ПМ" для входа в процедуру;
  • набор начального адреса перемещаемого массива ЗУ на шестнадцатеричной клавиатуре и ввод адреса нажатием клавиши "-";
  • набор конечного адреса перемещаемого массива ЗУ на шестнадцатеричной клавиатуре и ввод адреса нажатием клавиши "-";
  • набор начального адреса размещения на шестнадцатеричной клавиатуре;
  • ввод адреса и выполнение перемещения нажатием клавиши "ВП".

При размещении программ в новом массиве ЗУ, например, при копировании в пространство ОЗУ системных программ, необходимо учитывать, что адреса ветвления и адреса, формируемые на основе заданных базовых адресов не будут модифицированы под новое адресное пространство, что приведет к ошибкам в работе программы.

Средства отладки программ, аппаратная и программная реализация шагового режима

Учебный микропроцессорный комплекс обладает набором средств для отладки и редактирования программ, представленных в машинных кодах. Для облегчения этого процесса при ограниченных возможностях УМК рекомендуется использовать модульный принцип при подготовке программ в ассемблере. Используемый в лабораторном курсе ассемблер не имеет средств для компоновки программы из отдельных модулей. При модульном принципе создания сложных программ каждый модуль должен быть скомпилирован в отдельную программу и отлажен средствами УМК. Для отладки программных модулей в УМК предусмотрен режим пошагового выполнения программы по машинным циклам и по командам. В шаговом режиме к шине данных и шине адреса микропроцессора подключаются двоичные индикаторы (см. Рис. 14). Двоичные индикаторы шины адреса и шины данных разбиты на тетрады для удобства восприятия двоичных чисел в шестнадцатеричной форме. Кроме того, предусмотрен двоичный индикатор кода состояния микропроцессора.

Рис. 16 Схема формирования сигнала "STEP" и устранения дребезга контактов аппаратными средствами

Рис. 17 Схема порта шагового режима

Шаговый режим выполнения программы устанавливается аппаратным путем при фиксации клавиши "РБ/ШГ" (Рис. 17) и может быть сброшен или восстановлен программным путем. Шаговый режим реализуется в микропроцессорных устройствах за счет использования внутреннего цикла ожидания микропроцессора. В цикл ожидания микропроцессор входит по сигналу на входе “RDY” (“ГОТОВНОСТЬ”). Окончательное формирование сигнала “ RDY” происходит в системном генераторе КР580ГФ24. Формирование входного сигнала “RD” Y для системного генератора выполнено программно-аппаратными средствами. На Рис. 17 приведен фрагмент схемы формирования сигнала “RDY” и порта шагового режима, доступного для программного управления.

В шаговом режиме переключатель S2 коммутирует низкий логический уровень на вход D-триггера D14-1. Низкий логический уровень на выходе инвертора D-19 появится при наличии стробирующего фронта по входу С триггера D14-1 (переход из 1 в 0) с выхода элемента D11. Стробирующие импульсы для записи информации в триггер выбираются переключателем S1 и соответствуют машинным или командным циклам микропроцессора. Условием прохождения импульсов является наличие высокого уровня на верхнем входе элемента D11. Высокий уровень на верхнем входе элемента D11 образуется после прохождения через счетчик D13 определенного числа импульсов машинных циклов МП (импульсов с выхода SYN МП ). Задержка включения шагового режима необходима для выполнения в непрерывном режиме процедуры "СТ" системного монитора при запуске программы пользователя в шаговом режиме.

Запрет счета импульсов машинных циклов, т.е. фактически сброс шагового режима, происходит при наличии высокого уровня на инверсном выходе триггера D12. Элементы D22,D23,D20, D12 образуют порт шагового режима. Выполнение машинного цикла или команды в шаговом режиме происходит при нажатии клавиши "ШАГ", инициирующей управляющий сигнал “ STEP”. Процесс формирования сигнала “STEP” можно проследить по схемам на рис.15 и рис.16. Сигнал “STEP” выводит микропроцессор из режима ожидания. Возврат в режим ожидания происходит в момент прихода очередного импульса начала машинного цикла или начала команды.

Процесс отладки программ значительно упрощается при использовании подпрограмм или процедур, в т.ч. имеющихся в составе системного монитора. Основой для использования подпрограмм является условие сохранения (восстановления) состояния микропроцессора при выполнении подпрограммы или целенаправленное изменение этого состояния по результату работы подпрограммы. В микропроцессоре ВМ80 автоматически (на микропрограммном уровне) сохраняется только содержимое программного счетчика (“ PC”), т.е. адрес возврата из подпрограммы. Для этого используется стековая память, организованная в массиве ОЗУ с помощью регистра стека “SP”.

Для сохранения содержимого других регистров МП используются программные средства обращения к стеку. При начальной установке микропроцессора в регистр стека загружается адрес, являющийся нижней границей ОЗУ. Каждое обращение к стеку для записи информации уменьшает содержимое регистра “SP” на единицу. Каждое обращение для чтения информации из стека увеличивает содержимое регистра “SP” на единицу. При выполнении операции “ RET” микропроцессор считывает в качестве адреса возврата текущие значения двух байтов из вершины стека.