Программа-отладчикмикроконтроллера I8051 (К1816ВЕ51)
Введение
Программа-отладчик микроконтроллера I8051 (К1816ВЕ51)предназначена для программирования микроконтроллера на уровне языка ассемблера,компиляции программы в объектный код и тестирования разработанной программы.
В состав программы-отладчика входят:
· редактор языка ассемблерамикроконтроллера К1816ВЕ51;
· имитатор микроконтроллераК1816ВЕ51;
· внутрисхемный эмулятормикроконтроллера К1816ВЕ51.
Программа запускается в работу файлом«info8051.bat». Для записи пакета на компьютер необходимаинсталляционная дискета, с помощью которой программа инсталлируется на любойкомпьютер. В случае простого копирования программа-отладчик будет работать, ноне в полном объеме (не будут выполняться операции с диском).
1 РЕДАКТОР ЯЗЫКА АССЕМБЛЕРА
Редактор позволяет в удобной форме писать программы наязыке ассемблера и компилировать текст исходной программы в коды ПЗУ. Послекомпиляции программы машинные коды автоматически записываются в ПЗУпрограммы-имитатора.
Состояние редактора изображается на экране дисплея ввиде двух окон. В верхнем окне отражается текст программы. Нижнее окнопредназначено для выдачи служебных сообщений (местоположение курсора, ошибкипри компиляции и т.д.). В нижней строке экрана расположено меню редактора.
Перемещение курсора по экрану осуществляется с помощьюклавиш движения курсора и, кроме этого, следующими клавишами:
Home — в начало строки;
End — в конец строки;
PgUp — листать вверх;
PgDn — листать вниз;
Ctrl-Home — в начало файла;
Ctrl-End — в конец файла;
Сtrl-PgUp — в начало экрана;
Ctrl-PgDn — в конец экрана;
Ctrl-Left — роллинг вверх;
Ctrl-Right- роллинг вниз.
Для редактирования введенного текста используютсяклавиши:
Del — удаление символа под курсором;
BackSpace — удаление символа слева от курсора. Есликурсор находится в первой позиции строки, то текущая строка будет слита спредыдущей, но только в том случае, если длина результирующей строки непревосходит 128 знаков.
Ins (Вст) — переключение режима «вставка/замещение».При включении режима вставки в служебном окне высвечивается сообщение «ВСТ». Вэтом режиме при наборе символа в середине строки символы, стоящие справа откурсора сдвигаются на одну позицию вправо. В режиме замещения символ, стоящийнад курсором, заменяется на введеный.
F6 — стирание до конца строки;
F9 — вставка новой строки. Текст, стоящий нижестроки, в которой находится курсор, смещается на одну строку вниз;
Alt-Y — удаление текущей строки;
Alt-S — расщепление строки на две по курсору;
Alt-J — соединение двух строк по курсору;
Alt-Q — восстановление строки в первоначальном виде,если курсор еще не покинул строку.
Редактор предоставляет возможность работы с блокомтекста. Отмеченный блок можно переместить в любое место текста, скопировать илиудалить. Для работы с блоком используются клавиши:
Alt-L — отметка одной строки или целого блока. Приотметке одной строки курсор необходимо установить в нужную строку и нажать комбинацию «Alt-L». Для отметки нескольких строк необходимо сначала поместитькурсор в первую строку нужного блока и нажать «Alt-L», а затем в последнююстроку и также нажать «Alt-L». Отмеченный блок будет выделен;
Alt-U — снятие маркировки;
Alt-C — копирование блока вслед за текущей строкой.Отмеченный блок расположится вслед за строкой, в которой находится курсор, аостальной текст передвинется вниз. Исходный блок останется.
Alt-M — перенос блока вслед за текущей строкой.Отмеченный блок будет перенесен вслед за строкой, содержащей курсор, а исходныйблок будет удален.
Alt-D — удаление маркированного текста.
Для поиска последовательности символов, используетсяпоиск по образцу. Поиск осуществляется в строках, находящихся после курсора. Привведении образца для поиска введенные буквы воспринимаются как прописные и еслиискомая последовательность содержит строчные буквы, то она не будет найдена.При нахождении первой группы символов, совпадающей с заданным образцом, курсорустанавливается в это место экрана. Для поиска используются клавиши:
Alt-F — установление образца для поиска. В служебномокне появляется требование установить образец для поиска. Ввод образца должензакончиться нажатием клавиши «ENTER». После ввода образец высвечивается внизуэкрана в скобках;
Alt-X — продолжение поиска по образцу.
Ввод литеры со специальным кодом осуществляетсяодновременным нажатием клавиши «Alt» и набором шестнадцатеричного кода символана цифровой клавиатуре. Символ появляется после отпускания клавиши «Alt». Дляввода символа «ESC» используется комбинация «Alt- F1».
Работа с внешними устройствами ведется под управлениемклавиш:
F2 — сохранение текущего файла на диске;
F3 — загрузка нового текстового файла;
Alt-W — сохранение отмеченного блока строк на диске;
Alt-R — чтение с диска текстового файла. Файлвставляется в текст за текущей строкой;
Alt-P — вывод на печать отмеченного блока строк.Если блок не отмечен, то печатается весь текст.
Клавиша «F5» осуществляет переход к программной моделимикроконтроллера, а клавиша «F7» — к внутрисхемному эмулятору. Клавиша «F10»осуществляет переход в командное меню, которое дублирует указанные вышеоперации и предоставляет новые возможности.
Основное меню содержит пункты «Файлы», «Ассемблер»,«Эмулятор», «Опции» и «Выход».
Подменю «Файлы» содержит пункты:
· оглавление — выход в системууправления файлами;
· загруз текст — загрузка новоготекстового файла;
· сохран текст — сохранениетекущего файла на диске;
· вставить текст — вставка файла втекст за текущей строкой;
· сохран маркир — сохранениеотмеченного блока строк на диске;
· печать текста — вывод на печатьотмеченного блока строк;
· новый текст — очистка буфераредактора для ввода текста.
При выходе в систему управления файлами функциональныеклавиши изменяют свое назначение. Система управления файлами имитирует выход вDOS и функциональные клавиши принимают значение:
F2 — установка обpазца для высветки файлов;
F3 — пpосмотp файла;
F4 — чтение файла для pедактиpования;
F5 — копиpование файла;
F6 — пеpеименованиe файла;
F7 — создание директории;
F8 — удаление файла или директории;
F9 — смена дисковода;
F10 — создание файла;
ENTER — в зависимости от типа файла выполнится:
директория — смена директории;
COM, EXE, BAT-файл — выполнение файла;
файл — чтение файла;
— ESC — выход из системы упpавления файлами.
Подменю «Ассемблер» содержит пункты:
· ассемблер — компиляцияассемблерного текста из текущего файла;
· распечатка — вывод листингапрограммы на печать или в файл на диске;
· сохр. двоичн. формат — сохpанениедвоичного файла пpогpаммы;
· сохр. нex. формат — cохpанениефайла в HEX-фоpмате.
В подменю «Эмулятор» входят пункты:
· модель — отладка скомпилированной пpогpаммы на программной модели микроконтроллера;
· внутрисх. эмулятор — отладкапрограммы на внутрисхемном эмуляторе;
· дизассемблер кода — дизассемблирование ПЗУ эмулятора;
· дизассемблер данных — дизассемблирование данных ПЗУ эмулятора.
Подменю «Опции» содержит:
· 25/43 Строки — смена числа стpокна экpане (25 или 43 только для адаптера EGA);
· звук вкл/выкл — Включение/выключение звука.
В подменю «Выход» содержатся пункты:
· сохран.текст — выход ссохранением текущего файла;
· не сохранять — выход безсохранения текущего файла.
Для выхода из редактора ассемблера (как и для выходаиз программы-отладчика) используется клавиша «ESC». Она используется также дляотмены операции и возврата в редактор. Для указания системы счисления, вкоторой находится непосредственный операнд в конце операнда ставится буква,которая обозначает систему счисления:
B — двоичное;
O или Q — восьмиpичное;
D или ничего — десятичное;
H — шестнадцатиpичное ( должно начинатьсяобязательно с цифpы).
Опеpатоpы упpавления листингом программы:
EJECT — пеpеход на новую стpаницу;
LIST/NOLIST — печатать/нет стpоки исходного текста;
PRINT/NOPRINT — выводить/нет стpоки листинга;
PAGING/NOPAGING — разбивать/нет листинг на стpаницы;
PAGELENGTH(n) — установка макс.числа стpок настpанице;
PAGEWIDTH(n) — установка макс.числа символов встpоке.
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».