Однокристальные PIC-микроконтроллеры. Технология разработки и отладки программ для микроконтроллеров PIC16, страница 2

        Директивой 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                            ; конец программы

2.3. Структура рабочей программы

Обычно программа для 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 по умолчанию