2 ИМИТАТОР МИКРОКОНТРОЛЛЕРА I8051

Имитатор микроконтроллера I8051 (К1816ВЕ51) представляет собой математическую модель микроконтроллера I8051 (К1816ВЕ51). Программа имитирует работу микроконтроллера, что позволяет вести отладку программ.

В окно имитатора можно попасть из редактора языка ассемблера. В ходе работы программа отображает содержимое регистров микроконтроллера на экране дисплея и позволяет редактировать их содержимое в ходе программы. Отслеживание программы может вестись в пошаговом или непрерывном режиме. В ходе выполнения программы ПЗУ возможна имитация внешних прерываний или внешних событий. Время, затраченное на выполнение программы (или части программы), подсчитывается в счетчике машинных циклов.

Содержимое составных частей микроконтроллера выводится не экран в виде окон, показанном на рис.1.

Окно регистров микроконтроллера Окно счетчика команд
Окно дизассемблера Окно входных сигналов Окно дампа памяти 1
Окно дампа памяти 2 Окно выбора дампов
Основное меню имитатора

Рис.1 - Отображение содержимого микроконтроллера на экране

В окне состояния регистров микроконтроллера (рис.1) отражено шестнадцатеричное содержимое регистров специальных функций, регистров общего назначения текущего банка РОНов и содержимое ячеек памяти, адрес которых находится в регистрах косвенной адресации.

По желанию пользователь может изменить порядок расположения регистров в окне либо удалить некоторые регистры. Для этого достаточно исправить имя регистра (или заменить его пробелами), а затем нажать клавишу «Enter».

В окне счетчика команд показано текущее содержимое счетчика команд, счетчика машинных циклов и выходных шин микроконтроллера. В отличие от всех других окон, информация этого окна не редактируется.

В окне дизассемблера показаны девять дизассемблированных команд, начиная с команды, адрес которой записан в счетчике команд. Адрес счетчика команд не всегда совпадает с адресом первого байта команды и поэтому в окне дизассемблера может быть отражена совсем другая команда. Окно дизассемблера позволяет редактировать программу, не выходя из имитатора. Для этого курсор устанавливается на нужную команду и вводится новая команда. После нажатия клавиши «Enter» команда транслируется в машинный код, в противном случае – восстанавливается в исходное состояние. При редактировании необходимо учитывать количество байт старой и вводимой команды, так как остальная часть программы не сдвигается вверх или вниз. При редактировании программы в окне непосредственный операнд должен вводиться только в шестнадцатеричном виде, поэтому не требуется ввод символа "#" и буквы, обозначающей систему счисления.

В окне входных сигналов устанавливается значение входных шин микроконтроллера.

В окнах дампа 1 и 2 отражается шестнадцатеричное состояние двух из четырех областей (по одной в каждом окне) памяти. В окне дампа 2 показано содержимое памяти и в текстовом представлении (в кодах ASCII).

Выбор областей памяти для дампов осуществляется в окне выбора дампов. В нем выбирается отдельно для каждого окна область памяти, необходимая для отражения. Клавишами движения курсора «Left» и «Richt» выбирается требуемое окно, а клавишами «RgUp» и «PgDown» одна из четырех областей памяти:

ROM - внутренняя память программ;

InROM - внешняя память программ;

SFRAM - внутренняя память данных;

RAM - внешняя память данных.

В основном меню программы показано назначение функциональных клавиш для управления работой имитатора.

Для перехода между окнами используются клавиши:

Tab - переход к следующему окну;

Shift+Tab- переход к предыдущему окну;

Ctrl+Enter - переход к окну дизассемблера.

Перемещение курсора в пределах окна осуществляется клавишами:

Left - курсор на одну строку влево;

Right - курсор на одну строку вправо;

Up - курсор на одну строку вверх (в окнах дампа роллинг);

Down - курсор на одну строку вниз (в окнах дампа роллинг);

Home - курсор в начало окна;

PgUp - просмотр предыдущей страницы дампа;

PgDn - просмотр следующей страницы дампа;

Enter - курсор в начало следующей строки.

Программа ПЗУ может выполняться в пошаговом или непрерывном режиме. В пошаговом режиме каждый раз выполняется очередная команда ПЗУ, после чего обновляется содержимое всех ячеек памяти и регистров. Пошаговый режим реализуется нажатием клавиши F2.

Для запуска программы в непрерывном режиме используется клавиша F3. При работе программы в непрерывном режиме на экране обновляется только информация о текущем цикле процессора и текущем значении РС. Вся остальная информация (дампы, окно регистров, окно дизассемблера) обновляется после останова программы. В непрерывном режиме изменяется назначение клавиш для возможности имитации подачи внешних сигналов:

F4 - подача сигнала Int0 (переходом 1 в 0);

F5 - подача сигнала Int1 (переходом 1 в 0);

F6 - подача сигнала T0 (переходом 1 в 0);

F7 - подача сигнала T1 (переходом 1 в 0);

F8 - подача сигнала сброса;

Esc - останов программы.

По окончании выполнения программы нажатием клавиши F6 можно просмотреть список последних 16 выполненных команд ПЗУ.

В ходе работы программы возможно задание точек останова, по достижении которых выполняемая программа приостанавливается. Точку останова можно задать по адресу команды либо по содержимому ячейки памяти или регистра специального назначения. Можно задать до 8 точек останова программы, объединенных функцией «ИЛИ».

Вход в режим задания точек останова осуществляется клавишей F4, после чего на экране появляется окно, в котором показаны все действующие точки останова. Если предполагается задание точки останова в виде адреса команды, то необходимо ввести требуемый адрес и нажать пробел для установки точки останова.

Если требуется более сложное условие останова, то после нажатия клавиши «End» курсор перескакивает на пустое место для задания точки останова.

Более сложное условие останова задается в виде:

NAME1 = / <> XX & ... & NAMEn = / <> XX,

где: NAMEk - имя одного из регистров области SFR, регистр Rn или @Ri или выражение [XX] (содержимое внутреннего ОЗУ), XX - значение байта в шестнадцатеричном представлении;

= / <> - означает, что можно выбрать один из знаков = (равно); или <> (не равно);

& - символ, соединяющий части условия останова.

Примером условия останова может служить выражение:

R5=20 & R6=FF;

Условие останова выполняется, если выполняются все его части.

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

Нажатие клавиши F8 имитирует сброс микроконтроллера и производит все необходимые действия. Клавишей F9 обнуляется счетчик машинных циклов. Меню имитатора (клавиша F10) содержит пункты:

·  звук вкл/выкл - включение/выключение звука;

·  загр.текст - загрузка текстового файла в HEX-формате;

·  выгр.текст - cохранение текста программы в HEX-формате.

Выход в редактор ассемблера осуществляется клавишей «ESC».


Информация о работе «Программа-отладчик микроконтроллера I8051 (К1816ВЕ51)»
Раздел: Информатика, программирование
Количество знаков с пробелами: 14927
Количество таблиц: 1
Количество изображений: 0

0 комментариев


Наверх