Изучение системы программирования микроконтроллеров dspic33f с помощью языка ассемблер

      Комментарии к записи Изучение системы программирования микроконтроллеров dspic33f с помощью языка ассемблер отключены

Цель работы

1 Изучить по [1] правила программирования МК dsPIC33F на языке Ассемблер ASM30 и особенности использования языка при разработке программ.

2 Создать проект, составить алгоритм и исходный код программы обработки для заданного выражения на языке программирования Ассемблер ASM30. Откомпилировать ее в среде MPLAB IDE и исследовать ход выполнения в симуляторе MPLAB SIM.

Подготовка к выполнению работы

1 Повторить по [1] систему команд и способы адресации МК dsPIC33F.

2 Изучить по [1] основные положения и конструкции языка программирования Ассемблер ASM30.

3 Создать проект, разработать алгоритм и исходный код программы в соответствии с вариантом индивидуального задания (см. пункт 6 данных методических указаний).

4 Изучить порядок работы в среде MPLAB IDE, используя руководство пользователя MPLAB IDE 8 (приложение А) и методические указания к данной лабораторной работе.

5 Подготовить ответы на вопросы для самоконтроля.

Вопросы для самоконтроля

1 Какие способы адресации применяются в МК dsPIC33F? Поясните их сущность.

2 Укажите выполняемую операцию и способ адресации для следующих команд МК dsPIC33F: mov #20, W0; mov W0, W1; mov #0x4301, W5; mov W0, [W1]; add W2, #6, [W1]; and W0, W1, W2.

3 Укажите какими директивами языка Ассемблер ASM30 указываются:

— модель используемого МК;

— начало и конец исходного файла кода программы.

4 Какой символ языка Ассемблер ASM30 обозначает числовое значение?

5 Укажите синтаксические правила записи числовых значений в двоичной, десятичной и шестнадцатеричной системах счисления.

6 Что понимают под вершиной стека?

7 Как можно выделить какую-нибудь тетраду результата?

Приборы, оборудование и документация

1 Персональный компьютер.

2 Методические указания к лабораторной работе.

3 MPLAB IDE. Руководство пользователя.

4 Система команд МК dsPIC33F.

Порядок выполнения работы

1 Проверка подготовки учащихся к занятию по вопросам для самоконтроля в виде фронтального или программированного опроса.

2 Проверка выполнения индивидуального домашнего задания.

3 Произвести внешний осмотр персонального компьютера (ПК) и убедиться визуально в отсутствии каких-либо повреждений и дефектов.

4 Включить ПК.

5 Выполнить тренировочное задание на примере программы вычисления значения выражения (25 + 13) ? (18 – 9). Результаты промежуточных вычислений хранить в рабочих регистрах. Выделить младшую тетраду результата и поместить ее в старшую. Проверить корректность выполнения алгоритма в симуляторе MPLAB IDE, а также проверить содержимое рабочих регистров МК.

5. 1 Запустите MPLAB IDE. Выберите пункт меню «ProjectProject Wizard…» (рисунок 18.1).

Рисунок 18.1 – Запуск мастера создания проекта

5. 2 В приветственном окне мастера создания проекта нажмите кнопку «Далее» (рисунок 18.2).

Рисунок 18.2 – Окно приветствия мастера создания проекта

5. 3 В окне выбора микроконтроллера установите dsPIC33fj32mc204

(рисунок 18.3) и нажмите кнопку «Далее».

Рисунок 18.3 – Выбор микроконтроллера

5. 4 В окне выбора языка программирования в качестве инструмента программирования (Active Toolsuite) установите «Microchip C30 Toolsuite», и выберите язык программирования Assembler ASM30 (рисунок 18.4) и нажмите кнопку «Далее».

Рисунок 18.4 – Выбор средства и языка программирования

5. 5 В окне выбора пути к каталогу сохранения файлов проекта выберите «Browse…» (рисунок 18.5).

Рисунок 18.5 – Выбор каталога для сохранения проекта

5. 6 В открывшемся окне выберите путь: «Мой компьютер\Локальный диск D\Lan\DSPIC33\TE111\Ivanov\LR18\».

Примечание – Фамилию учащегося, набранную буквами английского алфавита, выбрать из списка своей учебной группы и создать папку для лабораторной работы №18.

В поле «Имя файла» задайте имя файла: LR18. Нажмите «Сохранить». В открывшемся окне (рисунок 18.5) в поле «Create New Project File» конечный пункт должен выглядеть так: «D:\Lan\DSPIC33\TE111\Ivanov\LR18\LR18». Нажмите кнопку «Далее».

5. 7 В открывшемся окне (рисунок 18.6) добавим существующие файлы в проект: «+C\+Program Files (x86)\+Microchip\+MPLAB ASM30 Suite\+bin». В открытой папке выбрать файл «pic30-as.exe» и добавить его, нажав «Add». Нажать кнопку «Далее».

Рисунок 18.6 – Добавление существующих файлов в проект

5. 8 В открывшемся окне суммарной информации по проекту убедитесь, что МК и средство программирования выбраны правильно и нажмите кнопку «Готово» (рисунок 18.7).

Рисунок 18.7 – Суммарная информация по проекту

5. 9 После создания проекта в него необходимо добавить файлы с исходным кодом программы МК. Для этого необходимо воспользоваться пунктом меню «FileNew». В открывшемся окне (рисунок 18.8) наберите листинг программы вычисления значения выражения (25 + 13) ? (18 – 9), которая приведена в методических указаниях к данной лабораторной работе.

Примечания

1 Метки (например, «__reset:») начинаются с первой колонки с двойного символа подчеркивания «__» и набираются строчными буквами, а мнемоники инструкций (команд) МК должны начинаться со второй (и далее) колонки.

2 Операнды должны быть отделены от мнемоники не менее чем одним символом пробела. Список операндов разделяется запятыми.

Рисунок 18.8 – Исходный код тренировочной программы

5. 10 После написания исходного кода тренировочной программы с помощью пункта меню «FileSave As…» откройте окно «Сохранить как» и в строке «Имя файла» задайте название исходного кода программы, как: «main.s», где «.s» – формат файла (рисунок 18.9) и нажмите «Сохранить».

Рисунок 18.9 – Сохранение исходного кода тренировочной программы

5. 11 В открывшемся окне «LR18.mсw» кликнуть правой кнопкой мыши по кнопке «Source Files» и выбрать пункт «Add Files…» (рисунок 18.10).

Рисунок 18.10 – Инспектор проекта

5. 12 В открывшемся окне «Add Files to Project» выбрать сохраненный файл «main.s» и нажать «Открыть» (рисунок 18.11). Результат открытия показан на рисунке 18.12.

Рисунок 18.11 – Открытие исходного кода тренировочной программы

Рисунок 18.12 – Инспектор результата открытия исходного файла проекта

5. 13 После написания исходного кода тренировочной программы для получения файла прошивки МК требуется скомпилировать проект. Для этого необходимо воспользоваться пунктом меню «ProjectBuild All» (рисунок 18.13).

Рисунок 18.13 – Компилирование проекта

В случае обнаружения ошибок в исходном коде соответствующие сообщения будут выведены в область уведомлений. В таком случае необходимо исправить ошибки и запустить заново компилирование проекта. В успешном случае в область уведомлений будет выведено сообщение «BUILD SUCCEEDED» (рисунок 18.14).

Рисунок 18.14 – Результат компилирования проекта

5. 14 Интегрированная среда MPLAB IDE имеет в своем составе встроенный симулятор, который позволяет отлаживать программу еще до программирования МК. Во время симуляции существует возможность просматривать состояние всех регистров МК, локальных переменных программы, а так же имитировать входные сигналы.

Для того чтобы воспользоваться симулятором, необходимо после компиляции проекта с помощью пункта меню «DebuggerSelect Tool» выбрать симулятор MPLAB SIM(рисунок 18.15).

Для запуска программы используется пункт меню «DebuggerRun». Во время выполнения программы симулятор MPLAB SIM позволяет отображать значения регистров и объявленных переменных. Для вывода окна регистров следует воспользоваться пунктом меню «ViewSpecial Function Registers» (рисунок 18.16).

Рисунок 18.15 – Выбор симулятора MPLAB SIM

Рисунок 18.16 – Окно регистров микроконтроллера

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

В случае, когда необходимо отображать значение не только специальных регистров, но и любых пользовательских переменных, следует воспользоваться инструментом «Watch». Запуск инструмента осуществляется с помощью пункта меню «ViewWatch». Инструмент подразумевает задание списка необходимых для мониторинга регистров и переменных. Для этого необходимо либо выбрать регистр из предлагаемого списка и нажать кнопку «Add SFR», либо ввести название переменной или регистра в столбце «Symbol Name» (рисунок 18.17).

Рисунок 18.17 – Окно инструмента «Watch»

6 Выполнить индивидуальное задание согласно заданному варианту (таблица 18.1).

Таблица 18.1 – Исходные данные к индивидуальному заданию

Номер варианта Номер задания Номер варианта Номер задания
1, 2 9, 10
3, 4 11, 12
5, 6 13, 14
7,8

6. 1 Составить алгоритм и исходный код программы на языке программирования Ассемблер ASM30, скомпилировать ее и проверить корректность выполнения алгоритма в симуляторе MPLAB SIM, а также проверить содержимое использованных рабочих регистров МК.

Задание 1. Загрузить в регистр число 15. Сложить его с 25 и результат поместить на вершину стека. Поместить по адресу 20 h внутренней памяти данных младшую десятичную цифру результата, а по адресу 21 h – старшую.

Задание 2. Найти разницу чисел 4836 и 2454. Младший байт результата поделить на 2. Поместить по адресу 30 h внутренней памяти данных младшую десятичную цифру результата, а по адресу 32 h – старшую.

Задание 3. Найти адрес ячейки памяти данных путем перемножения двух чисел 0С h и 0E h. В эту ячейку записать результат логической операции «Исключающее ИЛИ» между текущим содержимым регистра W0 и числа 09 h.

Задание 4. Найти частное чисел 236 и 59. Результат умножить на 8 используя операции сдвига. По вычисленному таким образом адресу ячейки внутренней памяти данных размесить результат двойного декремента полученного числа.

Задание 5. Загрузить регистр W7 числом 023 h. Найти сумму W7 + 32. В ячейку внутренней памяти данных, расположенную по вычисленному таким образом адресу, загрузить число десятичных единиц результата сложения.

Задание 6. Вычислить значение выражения (81 + 64) ? (112 — 25) OR 10011010 b, сохраняя промежуточные результаты в стеке.

Задание 7. Найти разницу чисел 4801 и 209. Число десятичных единиц старшего байта результата поместить в старшую тетраду порта RA. Младшую тетраду оставить без изменений.

6. 2 Создать проект LR18_X, где «Х» – номер варианта. Для этого выполнить указания пунктов 5. 1 …5. 14.

7 После проверки преподавателем результатов работы закрыть MPLAB IDE и выключить ПК.

8 Оформить отчет и сдать зачет.

Содержание отчета

1 Наименование, номер и цель работы.

2 Условия тренировочного и индивидуального заданий и результаты их выполнения.

3 Схемы алгоритмов и листинги программ для тренировочного и индивидуального заданий.

4 Ответы на контрольные вопросы.

Контрольные вопросы

1 Сколько команд (инструкций) включает в себя система команд МК dsPIC33F?

2 На какие группы разделены команды МК?

3 Из каких блоков состоит программа на языке программирования Ассемблер ASM30? Укажите их назначение.

4 Укажите назначение и правила записи метки «__reset:».

5 Какой символ использует для обозначения числового значения?

Методические указания

Статьи к прочтению:

#5. Предисловие! / 1. Введение в ассемблер / Программирование с нуля


Похожие статьи: