Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
эиуа экз шпоры.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
872.45 Кб
Скачать

30. Команды очистки clrf, bsf, bcf. Описание команд, назначение, используемые параметры. Примеры использования команд.

CLRF - Очистить f

Синтаксис: [label] CLRF

Операнды: 0 £f £ 127

Операция: 00h à (f); 1 àZ

Измененные флаги: Z

Описание: Очистить содержимое регистра f и установить флаг Z=1.

BCF - Очистить бит b в регистре f

Синтаксис: [label] BCF f,b

Операнды: 0£f£127; 0£b<£

Операция: 0  (f<b>)

Измененные флаги: Нет

BSF - Установить бит b в регистре f

Синтаксис: [label] BSF f,b

Операнды: 0£f£127; 0£b£7

Операция: 1f<b>

Измененные флаги: Нет

Примеры:

CLRF STATUS ; Очистить регистр status и выбрать банк 0.

CLRF PORTС ; Очистить порт С.

BCF PORTC,7 ; Сброс седьмого бита порта С

BSF STATUS, RP0 ; Выбрать банк 1.

31. Программа управления портом с. Описательная, установочная и исполнительная части программы. Назначение команд и используемые параметры.

Описательная часть программы

include<p16F877.inc>

R0 EQU B'00000001' ; R0 символьное имя, его значение 01h.

R1 EQU B'00000010' ; R1 символьное имя, его значение 02h.

Начало исполняемой части программы.

org 0 ; Код, следующий за этим выражением, начинается с нулевого адреса электрически программируемого постоянного запоминающего устройства (ЭППЗУ).

nop ; Пустая команда используемая для работы отладчика.

nop ;

nop

org 05 ; Код, следующий за этим выражением, начинается с 5-го адреса ЭППЗУ (метка START).

Установочная часть программы

START ; Метка начала программы.

CLRF STATUS ; Очистить регистр status и выбрать банк 0.

BSF STATUS, RP0 ; Выбрать первый банк.

CLRF TRISC ; Обнулить TRISC, и настроить PORTC на выход.

CLRF STATUS ; Выбрать нулевой банк.

Исполнительная часть программы

LOOP ; Метка.

CLRF PORTC ; Потушить светодиоды.

MOVLW B'11000011' ; Переслать в регистр W число В’11000011’.

MOVWF PORTC ; Переслать число из W в PORTC ,зажечь те светодиоды, которые подключены к биту, содержащему «1».

MOVLW B’00000001’ ; Записать в регистр W двоичное число.

MOVWF PORTC ; Переслать это число в регистр PORTC.

MOVLW R0 ; Переслать в регистр W число B’00000001’.

MOVWF PORTC ; Зажечь светодиоды, переслав в порт С число из W.

MOVLW R1 ; Переслать в регистр W число B’00000010’.

MOVWF PORTC ; Зажечь светодиоды.

GOTO LOOP ; Перейти на метку LOOP. END

32. Команды сложения addlw, addwf, andlw, andwf. Описание команд, используемые параметры, размещение результата. Примеры использования.

ADDLW - Сложить константу с W

Синтаксис: [label] ADDLW k

Операнды: 0 £ k £ 255

Операция: (W) + k  (W)

Измененные флаги: С, DC, Z

ADDWF - Сложение W и f

Синтаксис: [label] ADDWF f,d

Операнды: 0£f£127

Операция: (W) + (f) -»(dest)

Измененные флаги: C, DC, Z

ANDLW - Побитное 'И' константы и W

Синтаксис: [labef] ANDLW k

Операнды: 0£k£255

Операция: (W) .AND. k  (W)

Измененные флаги: Z

ANDWF - Побитное 'И’ W и f

Синтаксис: [label] ANDWF f,d

Операнды: 0 £ f £ 127

Операция: (W) .AND. (f)  (dest)

Измененные, флаги: Z

MOVWF R2 ; W à R2

SUBWF UMENSH,1 ; UMENSH=

; UMENSH – W=

; = R1 – R2

MOVF R2,0 ; Запись константы FAh в регистр W.

ANDWF R1,0 ; Логическое умножение R1 AND R2, результат в W.

MOVF R2,0 ; Запись константы FAh в регистр W.

ADDWF R1,0 ; Сложение R1+R2(W). Результат записывается в W.

MOVWF R1 ; Запись константы 02h в регистр R1.

SUBWF R2,0 ; Вычитание R2 - R1(W). Результат пересылаем в W.