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

clrw                       ; очистить рабочий регистр W

movwf   PORTB   ; переслать содержимое  W  в порт В

или

clrf   PORTB         ; очистить порт В

Задание 1 для самостоятельной работы. Напишите программу, которая выполняет следующие действия:

1)  переслать десятичное число 25 в регистр Temp1;

2)  вывести нули в порт В;

3)  очистить рабочий регистр W;

4)  переслать содержимое регистра  Temp1  в порт В;

5)  очистить регистр Temp1;

6)  выполнить команду, которая проверит на нуль содержимое регистра Temp1.

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

3.6.   Исследование команд сложения

Микроконтроллер PIC16F84A имеет две команды сложения:

addlw  k       ; сложение содержимого рабочего регистра W и

; константы  k, заданной  в команде, результат – в регистре W

addwf   f, d   ; сложение содержимого рабочего регистра W с

; содержимым любого регистра  f.

Символ  d  определяет регистр, куда будет помещен результат выполнения команды. Если  d = 0, то результат помещается в рабочий регистр  W, а если  d = 1, то результат записывается в использованный в команде регистр  f.  При написании команд удобнее вместо цифр 0 или 1 подставлять символы  W или  F, которые обозначают регистр результата.

Эти команды модифицирует биты признаков C, DC и Z  в регистре  STATUS. После выполнения команды можно проверить эти биты и определить, является ли результат нулевым, положительным или отрицательным.

Следующий пример демонстрирует работу команд  сложения:

clrw                         ; очистить рабочий регистр W

addlw   0x02           ; сложить содержимое регистра W с константой  02h

movwf   Temp1      ; переслать содержимое регистра W в регистр Temp1

movlw  0x45           ; загрузить в рабочий регистр число 45h

movwf   Temp2       ; переслать содержимое регистра W в регистр  Temp2

addwf    Temp2,W  ; сложить содержимое регистра W с содержимым

; регистра Temp2, результат – в регистре W

movlw  0x45            ; загрузить в рабочий регистр число 45h

movwf   Temp2       ; переслать содержимое регистра W в регистр  Temp2

addwf    Temp2,F    ; сложить содержимое регистра W с содержимым

; регистра Temp2, результат – в регистре Temp2

     Задание.  Запишите пример в базовую программу. Выполните ее компиляцию. Выполните программу в пошаговом режиме, наблюдая за изменением содержимого регистров.

3.7. Исследование команд вычитания

Микроконтроллер PIC16F84A имеет две команды вычитания:

sublw  k       ; вычитание содержимого рабочего регистра W из

; константы  k, заданной  в команде, результат – в регистре W

subwf   f, d   ; вычитание содержимого рабочего регистра W из

; содержимого любого регистра  f.

Символ  d  определяет регистр, куда будет помещен результат выполнения команды. Если  d = 0, то результат помещается в рабочий регистр  W, а если  d = 1, то результат записывается в использованный в команде регистр  f.  При написании команд удобнее вместо цифр 0 или 1 подставлять символы  W или  F, которые обозначают регистр результата.

Эти команды модифицирует биты признаков C, DC и Z  в регистре  STATUS. После выполнения команды можно проверить эти биты и определить, является ли результат нулевым, положительным или отрицательным.

Следующий пример демонстрирует работу команд вычитания.

movlw  0x45      ; загрузить число 45h в регистр W

sublw   0x65      ; вычесть содержимое регистра W из константы 65h

movlw  0x60     ; загрузить число 60h в регистр W

movwf  Temp1  ; переслать содержимое регистра W в регистр Temp1

movlw  0x80     ; загрузить число 80h в регистр W

subwf  Temp1,W ; выполнить вычитание, результат – в регистре W