Лекция № 4 (Лекции МП)

2018-01-12СтудИзба

Описание файла

Файл "Лекция № 4" внутри архива находится в папке "Лекции МП". Документ из архива "Лекции МП", который расположен в категории "". Всё это находится в предмете "микропроцессоры" из 7 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "микропроцессоры" в общих файлах.

Онлайн просмотр документа "Лекция № 4"

Текст из документа "Лекция № 4"

ЛЕКЦИЯ № 4.

3. Инкремент.

Увеличение на единицу содержимого заданного регистра F. Если d = 0, то результат сохраняется в регистре W. Если же d = 1, то результат сохраняется в регистре F.

F при d = 1

W при d = 0


INCF F,d (F) + 1 →

Если после выполнения команды регистр обнулится, то установится флаг Z.

4. Декремент.

Уменьшение на единицу содержимого заданного регистра F. Если d = 0, то результат сохраняется в регистре W. Если же d = 1, то результат сохраняется в регистре F.

F при d = 1

W при d = 0


DECF F,d (F) − 1 →

Если после выполнения команды регистр обнулится, то установится флаг Z.

5. Команды очистки.

5.1. Очистить содержимое заданного регистра F и установить флаг Z:

CLRF F 0 → (F) Z = 1

5.2. Очистить содержимое рабочего регистра W и установить флаг Z:

CLRW W 0 → (W) Z = 1

5.3. Сброс сторожевого таймера (Watch Dog) и установка флагов TO и PD в регистре STATUS:

CLRWDT 0 → (WDT)

III.) Команды логических операций.

Сюда входят:

  1. Команды конъюнкции (в двух вариантах).

  2. Команды дизъюнкции (в двух вариантах).

  3. Команды исключающего «ИЛИ» (в двух вариантах).

  4. Команда инверсии.

  5. Команды сдвига (в двух вариантах).

1. Команды конъюнкции.

1.1. Побитно выполняется логическое «И» содержимого рабочего регистра W и константы:

ANDLW L L (W) → (W)

Если после выполнения команды регистр обнулится, то установится флаг Z.

1.2. Побитно выполняется логическое «И» содержимого рабочего регистра W и содержимого заданного регистра F. Если d = 0, то результат сохраняется в регистре W. Если же d = 1, то результат сохраняется в регистре F.

F при d = 1

W при d = 0

ANDWF F,d (F) (W) →

Если после выполнения команды регистр обнулится, то установится флаг Z.

2. Команды дизъюнкции.

2.1. Побитно выполняется логическое «ИЛИ» содержимого рабочего регистра W и константы:

IORLW L L (W) → (W)

Если после выполнения команды регистр обнулится, то установится флаг Z.

2.2. Побитно выполняется логическое «ИЛИ» содержимого рабочего регистра W и содержимого заданного регистра F. Если d = 0, то результат сохраняется в регистре W. Если же d = 1, то результат сохраняется в регистре F.

F при d = 1

W при d = 0

IORWF F,d (F) (W) →

Если после выполнения команды регистр обнулится, то установится флаг Z.

3. Команды исключающего «ИЛИ».

3.1. Побитно выполняется исключающее «ИЛИ» содержимого рабочего регистра W и константы:

XORLW L L (W) → (W)

Если после выполнения команды регистр обнулится, то установится флаг Z.

3.2. Побитно выполняется исключающее «ИЛИ» содержимого рабочего регистра W и содержимого заданного регистра F. Если d = 0, то результат сохраняется в регистре W. Если же d = 1, то результат сохраняется в регистре F.

F при d = 1

W при d = 0


XORWF F,d (F) (W) →

Если после выполнения команды регистр обнулится, то установится флаг Z.

4. Команда инверсии.

Побитно инвертируются все разряды заданного регистра F. Если d = 0, то результат сохраняется в регистре W. Если же d = 1, то результат сохраняется в регистре F.

F при d = 1

W при d = 0

COMF F,d ( ) →

Если после выполнения команды регистр обнулится, то установится флаг Z.

5. Команды сдвига.

    1. Выполняется циклический сдвиг влево содержимого заданного регистра F через бит C

регистра STATUS. Если d = 0, то результат сохраняется в регистре W. Если же d = 1, то результат сохраняется в регистре F.

RLF F,d

Команда влияет на сдвиг переноса C.

Пример: RLF REG1,0

До выполнения команды: REG1 = 11100110

С = 0

После выполнения команды: REG1 = 11100110

W = 11001100

С = 1

5.2. Выполняется циклический сдвиг вправо содержимого заданного регистра F через бит C

регистра STATUS. Если d = 0, то результат сохраняется в регистре W. Если же d = 1, то результат сохраняется в регистре F.

RRF F,d

Команда влияет на сдвиг переноса C.

Пример: RRF REG1,0

До выполнения команды: REG1 = 11100110

С = 0

После выполнения команды: REG1 = 11100110

W = 01110011

С = 0

IV. Команды битовых операций.

4.1. Выполняется установка бита в заданном регистре F (номер разряда регистра указывает b):

BSF F,b

Пример: BSF STATUS,5 1 → STATUS.5

4.2. Выполняется сброс бита в заданном регистре F (номер разряда регистра указывает b):

BCF F,b

Пример: BCF STATUS,5 0 → STATUS.5

V. Команды передачи управления.

Сюда входят:

  1. Команда безусловного перехода.

  2. Команды условных переходов (в четырех вариантах).

  3. Команда вызова подпрограммы.

  4. Команды возврата из подпрограммы (в трех вариантах).

1. Команда безусловного перехода.

Одиннадцать бит адреса загружаются из кода команды в счетчик команд PC<10:0>. Счетчик команд модифицируется по метке. Метку ассемблер переведет в число. Это обеспечивает переход в пределах 1 страницы. Переход на другую страницу осуществляется с помощью регистра PCLATH. При этом, два старших бита загружаются в счетчик команд PC<12:11> из регистра PCLATH. Тогда команда GOTO перейдет на другую страницу, но её предварительно нужно указать. Команда GOTO выполняется за два цикла.

GOTO Метка

2. Команды условных переходов.

2.1. Если бит b в заданном регистре F равен нулю, то исполняется следующая команда. Если бит b в заданном регистре F равен единице, то следующая по порядку указанная команда пропускается и выполняется команда через одну.

BTFSS F,b Если (F.b) = 0, то (PC) + 1 → (PC)

Если (F.b) = 1, то (PC) + 2 → (PC)

2.2. Если бит b в заданном регистре F равен единице, то исполняется следующая команда. Если бит b в заданном регистре F равен нулю, то следующая по порядку указанная команда пропускается и выполняется команда через одну.

BTFSC F,b Если (F.b) = 1, то (PC) + 1 → (PC)

Если (F.b) = 0, то (PC) + 2 → (PC)

2.3. Выполняется декремент и проверка на ноль. Для этого: содержимое заданного регистра F декрементируется. Если d = 0, то результат сохраняется в регистре W. Если же d = 1, то результат сохраняется в регистре F. Независимо от того, куда отправили, результат проверяется на ноль. Если результат не равен нулю, то выполняется следующая по списку команда, а если результат равен нулю, то следующая по порядку указанная команда пропускается и выполняется команда через одну.

F при d = 1; Если (F) = 0, то (PC) + 2 → (PC)

Если (F) ≠ 0, то (PC) + 1 → (PC)

W при d = 0; Если (W) = 0, то (PC) + 2 → (PC)

Если (W) ≠ 0, то (PC) + 1 → (PC)


DECFSZ F,d (F) – 1 →

2.4. Выполняется инкремент и проверка на ноль. Для этого: содержимое заданного регистра F инкрементируется. Если d = 0, то результат сохраняется в регистре W. Если же d = 1, то результат сохраняется в регистре F. Независимо от того, куда отправили, результат проверяется на ноль. Если результат не равен нулю, то выполняется следующая по списку команда, а если результат равен нулю, то следующая по порядку указанная команда пропускается и выполняется команда через одну.

F при d = 1; Если (F) = 0, то (PC) + 2 → (PC)

Если (F) ≠ 0, то (PC) + 1 → (PC)

W при d = 0; Если (W) = 0, то (PC) + 2 → (PC)

Если (W) ≠ 0, то (PC) + 1 → (PC)


INCFSZ F,d (F) + 1 →

3. Команда вызова подпрограммы.

Команда CALL выполняется за два цикла. Сначала текущее значение счетчика команд помещается в стек по адресу, указанному указателем стека. Затем одиннадцать бит адреса расположения подпрограммы загружаются из кода команды в счетчик команд PC <10:0>, а два старших бита загружаются в счетчик команд PC <12:11> из регистра PCLATH.

(PC) → ((SP));

CALL “NAME” (PC<10:0>) ← “NAME”;

(PC<12:11>) ← (PCLATH<4:3>).

4. Команды возврата из подпрограммы.

4.1. Выполняется возврат из подпрограммы. Для этого: Указатель стека сначала модифицируется, а потом адрес возврата загружается в счетчик команд PC:

RETURN (SP) + 1→ (SP); ((SP)) → (PC)

4.2. Выполняется возврат из подпрограммы c загрузкой константы в W. Для этого: Указатель стека сначала модифицируется, а потом адрес возврата загружается в счетчик команд PC. Помимо этого, число, указанное в команде, записывается в рабочий регистр W.

RETLW L (SP) + 1→ (SP); ((SP)) → (PC); L → (W)

4.3. Выполняется возврат из подпрограммы с разрешением прерываний. Для этого: Указатель стека сначала модифицируется, а потом адрес возврата загружается в счетчик команд PC. Помимо этого, флаг глобального разрешения прерываний GIE (INTCON<7>) устанавливается в единицу.

RETFIE (SP) + 1→ (SP); ((SP)) → (PC); 1 → GIE

VI. Безадресные команды.

6.1. Нет операции. Пустая (холостая) команда:

NOP

Пример: HERE NOP

До выполнения команды: PC = адрес HERE

После выполнения команды: PC = адрес HERE + 1

6.2. Выполняется переход в энергосберегающий режим SLEEP. Для этого: Сбросить флаг включения питания PD в ноль. Установить флаг переполнения WDT – TO в единицу. Очистить таймер WDT и его предделитель. Перевести микроконтроллер в энергосберегающий режим SLEEP и выключить тактовый генератор.

Структурная схема подпрограммы задержки на заданный интервал.

Подпрограмма задержки на заданный интервал.

I. ВАРИАНТ:

DELAY:

MOVLW K1 ; K – число от 0 до 255

MOVWF COUNT1

AGAIN:

DECF COUNT1,F

BTFSS STATUS,2

GOTO AGAIN ; если Z = 0

RETURN ; если Z = 1

Определим, сколько времени выполняется

эта подпрограмма:

1 мкс + 1 мкс + 1 мкс + K1 ∙ 3 мкс + 1 мкс

II. ВАРИАНТ:

DELAY:

MOVLW K1

MOVWF COUNT1

DECFSZ COUNT1

GOTO $−1

RETURN

Определим, сколько времени выполняется

эта подпрограмма:

1 мкс + 1 мкс + 1 мкс + K1 ∙ 2 мкс + 1 мкс

Основные директивы Ассемблера для PIC – контроллеров.

Директивы (псевдокоманды) – это команды, которые входят в состав исходного текста программы, но не порождают машинный код.

1.) TITLE – определение заголовка программы. Есть ограничение: не более 60 символов (пробел – тоже символ). В заголовке указывается: автор, время или число, демонстрационная отладочная плата и используемые модули. Эта директива будет указана в листинге на каждой странице. Это необязательная директива. В комментариях после директивы TITLE: после точки с запятой русскими словами пишем в 5 строчек содержимое (определение) программы.

Например: TITLE "< title_text >" ; Вывод показания АЦП на ЖКИ.

2.) LIST – список параметров. Совершенно обязательная директива, в которой указывается тип микроконтроллера. Директива LIST должна быть размещена на отдельной строке. Причем, все параметры директивы LIST указываются в десятичных числах, а буква P – может писаться как прописная или как заглавная.

Например: LIST P = 16F873

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее