Примечания
1 Метки (например, «__reset:») должны начинаться с первой колонки с двойного символа подчеркивания «__», мнемоники инструкций (команд) МК должны начинаться со второй (и далее) колонки.
2 Операнды должны быть отделены от мнемоники не менее чем одним символом пробела. Список операндов разделяется запятыми.
5. 5. 10 После написания исходного кода тренировочной программы с помощью пункта меню «File → Save As…» откройте окно «Сохранить как» и в строке «Имя файла» задайте название листинга программы, как: «main.s», где «.s» – формат файла (рисунок 9) и нажмите «Сохранить».
Рисунок 9 – Сохранение исходного кода тренировочной программы
5. 5. 11 В открывшемся окне «LR3.mсw» кликнуть правой кнопкой мыши по кнопке «Source Files» и выбрать пункт «Add Files…» (рисунок 10).
Рисунок 10 – Инспектор проекта
5. 5. 12 В открывшемся окне «Add Files to Project» выбрать сохраненный файл «main.s» и нажать «Открыть» (рисунок 11). Результат открытия показан на рисунке 12.
Рисунок 11 – Открытие исходного кода тренировочной программы
Рисунок 12 – Инспектор результата открытия исходного файла проекта
5. 5. 13 После написания исходного кода тренировочной программы для получения файла прошивки МК требуется скомпилировать проект. Для этого необходимо воспользоваться пунктом меню «Project → Build All» (рисунок 13).
Рисунок 13 – Компилирование проекта
В случае обнаружения ошибок в исходном коде соответствующие сообщения будут выведены в область уведомлений. В таком случае необходимо исправить ошибки и запустить заново компилирование проекта. В успешном случае в область уведомлений будет выведено сообщение «BUILD SUCCEEDED» (рисунок 14).
Рисунок 14 – Результат компилирования проекта
5. 5. 14 Интегрированная среда MPLAB IDE имеет в своем составе встроенный симулятор, который позволяет отлаживать программу еще до программирования МК. Во время симуляции существует возможность просматривать состояние всех регистров МК, локальных переменных программы, а так же имитировать входные сигналы.
Для того чтобы воспользоваться симулятором, необходимо после компиляции проекта с помощью пункта меню «Debugger → Select Tool» выбрать симулятор MPLAB SIM(рисунок 15).
Рисунок 15 – Выбор симулятора MPLAB SIM
Пошаговое исполнение программы в симуляторе осуществляется двумя командами: «Debugger → Step Into» и «Debugger → Step Over». Однократный вызов команд приводит к выполнению одной (текущей) строки исходного кода. Отличие в командах заключается в том, что первая команда выполняет вызываемые функции так же построчно, а при запуске второй – вызываемая функция выполняется полностью за один вызов команды.
Во время выполнения программы симулятор MPLAB SIM позволяет отображать значения регистров и объявленных переменных. Для вывода окна регистров следует воспользоваться пунктом меню «View → Special Function Registers» (рисунок 16).
Рисунок 16 – Окно регистров микроконтроллера
Просмотреть содержимое рабочих регистров, используемых в тренировочной программе, и записать их значения в отчет.
В случае, когда необходимо отображать значение не только специальных регистров, но и любых пользовательских переменных, следует воспользоваться инструментом «Watch». Запуск инструмента осуществляется с помощью пункта меню «View → Watch». Инструмент подразумевает задание списка необходимых для мониторинга регистров и переменных. Для этого необходимо либо выбрать регистр из предлагаемого списка и нажать кнопку «Add SFR», либо ввести название переменной или регистра в столбце «Symbol Name» (рисунок 17).
Рисунок 17 – Окно инструмента «Watch»
5. 6 Выполнить индивидуальное задание согласно заданному варианту (номер варианта соответствует номеру рабочего места).
5. 6. 1 Составить алгоритм и программу на языке программирования Ассемблер ASM30, скомпилировать ее и проверить корректность выполнения алгоритма в симуляторе MPLAB SIM, а также проверить содержимое использованных рабочих регистров МК.
Вариант 1. Загрузить в регистр число 15. Сложить его с 25 и результат поместить на вершину стека. Поместить по адресу 20h внутренней памяти данных младшую десятичную цифру результата, а по адресу 21h – старшую.
Вариант 2. Найти разницу чисел 4836 и 2454. Младший байт результата поделить на 2. Поместить по адресу 30h внутренней памяти данных младшую десятичную цифру результата, а по адресу 32h – старшую.
Вариант 3. Найти адрес ячейки памяти данных путем перемножения двух чисел 0Сh и 0Eh. В эту ячейку записать результат логической операции «исключающее или» между текущим содержимым регистра W0 и числа 09h.
Вариант 4. Найти частное чисел 236 и 59. Результат умножить на 8 используя операции сдвига. По вычисленному таким образом адресу ячейки внутренней памяти данных размесить результат двойного декремента полученного числа.
Вариант 5. Загрузить регистр W7 числом 023h. Найти сумму W7 + 32. В ячейку внутренней памяти данных, расположенную по вычисленному таким образом адресу, загрузить число десятичных единиц результата сложения.
Вариант 6. Вычислить значение выражения (81 + 64) × (112 - 25) OR 10011010b, сохраняя промежуточные результаты в стеке.
Вариант 7. Найти разницу чисел 4801 и 209. Число десятичных единиц старшего байта результата поместить в старшую тетраду порта RA. Младшую тетраду оставить без изменений.
5. 6. 2 Создать проект LR3_X, где «Х» – номер варианта. Для этого выполнить указания пунктов 5. 5. 1 … 5. 5. 14.
6 Ответить на вопросы зачетного теста.
7 После проверки преподавателем результатов работы закрыть MPLAB IDE и выключить ПК.
8 Оформить отчет и сдать зачет.