Примечания

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 Оформить отчет и сдать зачет.