Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

На сортировку / 2102172 / otchet_lab3_ZHB_right_one

.doc
Скачиваний:
29
Добавлен:
21.02.2017
Размер:
178.18 Кб
Скачать

Некоммерческое акционерное общество

«АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ»

Кафедра электроснабжения промышленных предприятий

Отчет

по лабораторной работе № 3

Дисциплина: Основы микропроцессорной техники

Тема: «Сложение, вычитание. Деление, умножение. Логика»

Специальность: 5В081200-Энергообеспечение сельского хозяйства

Выполнили: ст.группы ЭСХк-14-1

Қайролла Ә,Тұрсынбек Н

Принял: Жағыпаров Е.

______ ________________ «____»______________2017г.

Алматы, 2017

Введение

Цель работы: изучение инструкций ADDWF, ANDWF, IORWF, XORWF, SUBWF, RRF, RLF, а также изменения содержания бит в регистре STATUS от результата выполнения предыдущей инструкции. Выполнение сложения, вычитания, умножения, деления и применение логических функций.

В таблице 3.1 представлены логические функции, их таблицы истинности, условные обозначения и интерпретация на электрической схеме. Все логические операции выполняются поразрядно.

Таблица 3.1 – Логические функции Y=f(X1,X2)

Инструкция

Таблица

истинности

Условное обозначение

Интерпретация на электрической схеме

Х1

Х2

Y

IORWF

Функция OR

(ИЛИ)

0

0

1

1

0

1

0

1

0

1

1

1

Х1

Y

Х2

Х1

Х2

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

ANDWF Функция AND (И)

0

0

1

1

0

1

0

1

0

0

0

1

Х1

Y

Х2

X1 X2

Ток в цепи будет только при замыкании обоих контактов

XORWF Функция XOR (Исключи- тельное ИЛИ)

0

0

1

1

0

1

0

1

0

1

1

0

Х1

Y

Х2

Ток в цепи будет только тогда, когда переключатели X1 и X2 будут в разном положении

Задание: вариант №4

Include <p16F877A.inc>;в этом файле описаны символьные имена РСН

R1 EQU h'21'; R1 - символьное имя регистра с адресом h’21’

R2 EQU h'22'; R2 - символьное имя регистра с адресом h’22’

R3 EQU h'23'; R3 - имя регистра с адресом h’23’

REZ EQU h'24'; REZ - имя регистра для записи результатов;

Инструкции для настройки МК

ORG h'00'; следующая инструкция NOP будет записана по адресу h’00’

NOP; пишется для настройки отладчика

NOP

NOP

ORG h'05'; следующая инструкция CLRF запишется по адресу h’05’

CLRF STATUS; очищаем регистр от мусора, выбираем нулевой банк; сохранить окно

BSF STATUS, 5; переходим в первый банк в нём регистр TRISC

CLRF TRISC; настраиваем все биты PORTC на вывод данных

BCF STATUS, 5; возвращаемся в нулевой банк; Рабочая часть программы. Ввод данных

MOVLW D'132'; запись константы в аккумулятор W

MOVWF R1; запись содержимого W в регистр R1

MOVLW D'69'; запись константы в аккумулятор W

MOVWF R2; запись содержимого W в регистр R2

MOVLW D'64'; запись константы в W

MOVWF R3; запись содержимого W в регистр R3

; сохранить окно; Выполнение вычислений

MOVF R1, W; запись константы из R1 в регистр W

SUBWF R2, W; вычитание W=R2-W=R2- R1

MOVWF REZ; переслать содержимое W в регистр REZ; сохранить окно

MOVF R2, W; запись константы из R2 в регистр W

ADDWF R1, W; W=R2+W=R1+R2

MOVWF REZ; сохранить окно

MOVF R2, W; копируем содержимое R2 в W

SUBWF R1, W; вычитание W=R1-W=R1-R2. Результат оставляем в W

MOVWF REZ; переслать содержимое W в регистр REZ; сохранить окно

MOVF R2, W; запись константы в регистр W из R2

ADDWF R3, W; W=R3+W=R2+R3

MOVWF REZ; сохранить окно

MOVF R2, W; запись константы в регистр W из R2

SUBWF R2, W

MOVWF REZ; сохранить окно

MOVF R2, W; запись константы в регистр W из R2

ANDWF R1, W; операция W=R1 AND W(R2), результат в W

MOVWF REZ; сохранить окно

MOVF R2, W; запись константы в регистр W из R2

IORWF R1, W; операция W=R1 OR W(R2), результат в W

MOVWF REZ; сохранить окно

MOVF R2, W; запись константы в регистр W из R2

XORWF R1, W; операция W=R1 XOR W(R2), результат в W

MOVWF REZ; сохранить окно

RRF R1,w;деление на 2 без очистки бита С регистра STATUS. После ;выполнения сдвига вправо сдвигаемый бит 0 из регистра R1 переместился в ;бит С регистра STATUS, а единица из бита С регистра STATUS добавилась ;слева к значению регистра R1 и сохранилась в аккумуляторе W. Значение ;неверно.

MOVWF REZ; сохранить окно

RLF R1,w; 24. 2=480, произошло переполнение регистра, в нем ;осталось 480-256=224, в бите С регистра STATUS появилась 1, чтобы ;операция деления выполнилась верно, надо его обнулить

MOVWF REZ; сохранить окно

BCF STATUS,C

RRF R1,w

MOVWF REZ; сохранить окно

END; конец программы.

Т а б л и ц а 3.3 - Пример записи результатов работы команд

Числа на входе

Действие

Результат

Значение в Status

Форма B

Форма B или D

Форма B или D

REZ(D)

Wreg(B)

CLRF STATUS

00011111

R1=D’132’

R2=D’69’

R2-R1=69-132

D’193’

-

00011010

R1=D’132’

R2=D’69’

R1+R2=132+69

D’201’

-

00011000

R1=D’132’

R2=D’69’

R1-R2=132-69

D’63’

-

00011001

R2=D’69’

R3=D’64’

R2+R3=69+64

D’73’

-

00011000

R2=D’69’

R2=D’69’

R2-R2=69-69

D’0’

-

00011111

R1=b’10000100’

R2=b’01000101’

R1 AND R2

-

00000100

00011011

R1=b’10000100’

R2=b’01000101’

R1 OR R2

-

11000101

00011011

R1=b’10000100’

R2=b’01000101’

R1 XOR R2

-

11000001

00011011

R1=b’10000100’

R1/2

RRF

194

11000010

00011010

R1=b’10000100’

R1*2

RLF

8

00001000

00011011

BCF STATUS,C

00011010

R1=b’10000100’

R1/2

RRF

66

01111000

00011010

Вывод

При выполнении данной лабораторной работы мы научились использовать команды ADDWF, ANDWF, IORWF, XORWF, SUBWF, RRF, RLF, а также изменения содержания бит в регистре STATUS от результата выполнения предыдущей инструкции. Выполнили сложения, вычитания, умножения, деления и применение логических функций.

Соседние файлы в папке 2102172