Директивой EQU можно любому символическому имени, используемому в программе, поставить в соответствие определенный операнд.
Например, запись
TMR0 equ 0x01
приводит к тому, что в процессе ассемблирования всюду, где встретится символическое имя TMR0, оно будет заменено числом 01h.
Директивой END программист дает программе-ассемблеру указание об окончании трансляции.
В результате трансляции должна быть получена карта памяти программ, где каждой ячейке памяти поставлен в соответствие хранящийся в ней код.
Ниже приведен фрагмент рабочей программы, содержащий операнды с различным способом задания и директивы Ассемблера:
Init1 equ b’11111111’ ; переменной с именем Init1 присвоить
; значение 11111111 в двоичной системе
……………….
movlw Init1 ; загрузить константу Init1 в регистр W
…………………
movlw .25 ; загрузить число 25 (десятичное)
…………………
movlw d’55’ ; загрузить число 55 (десятичное)
…………………
movlw 0x0A ; загрузить число 0Ah (шестнадцатиричное)
…………………
movlw h’CF’ ; загрузить число CFh (шестнадцатиричное)
…………………
end ; конец программы
Обычно программа для MK PIC16 состоит из трех основных секций:
1. Секция заголовка;
2. Секция описания;
3. Рабочая секция.
В секции заголовка обычно помещаются директивы Ассемблера, определяющие тип микропроцессора, имена подключаемых стандартных файлов и т.д.
В секции описания определяются логические имена для всех используемых в программе ресурсов: битовых и байтовых переменных, регистров пользователя.
Рабочая секция программы начинается с выражения org 0x000 (для PIC16F84A), которое является указателем для Ассемблера о том, что код следующий за этим выражением начинается с нулевого адреса памяти программ. Рабочая секция обязательно должна заканчиваться директивой end, означающей, что за ней отсутствуют исполняемые команды.
3. Порядок выполнения работы
3.1. Описание микроконтроллерного устройства
Для демонстрации работы команд МК PIC16F84A будем использовать простейшее микроконтроллерное устройство (МКУ), принципиальная схема которого приведена на рисунке.
Рисунок. Принципиальная схема микроконтроллерного устройства
МКУ имеет 8 светодиодов VD0 – VD7 с токоограничительными резисторами R0 – R7. Линии RA0 – RA4 порта A являются входами, а линии RB0 – RB7 порта B – выходами МКУ. Для упрощения рисунка цепи задания частоты генератора, сброса и питания МК не показаны.
Для включения светодиода необходимо на соответствующую линию порта В микроконтроллера вывести сигнал логической единицы (высокий уровень). Для выключения этого же светодиода нужно вывести сигнал логического нуля (низкий уровень).
3.2. Создание исходного файла базовой программы
Запустите MPLAB с помощью мыши, поместив курсор на ярлык MPLAB на рабочем столе компьютера.
Используя пункт меню File > New создайте исходный файл и с помощью пункта меню File > SaveAs… сохраните его под именем base.asm в вашей папке.
Примечание. Рекомендуем присваивать имя предполагаемого файла, даже если его еще нет в окне редактирования. Дело в том, что в этом случае редактор MPLAB IDE использует «цветное кодирование». Это означает, что команды ассемблера отображаются полужирным шрифтом синего цвета, комментарии – светло-зеленым, а директивы – светло-синим цветом. Это позволяет контролировать правильность набора текста программы.
Текст базовой программы с именем base, которая будет использоваться в данной лабораторной работе, имеет следующий вид.
; base – базовая программа для исследования команд МК
; секция заголовка
list p=16f84a ; директива, определяющая тип процессора
; и систему счисления hex по умолчанию
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.