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

Инструкция к лабораторной работе № 9

Команды пересылки и арифметических операций

1.Цель работы

1.1.Использование команд пересылок и арифметических операций.

1.2.Работа с редакторами кода в симуляторе «PIC Simulator IDE»

2. Общие сведения

2.1. . Ядро МК PIC построено по RISC архитектуре, т. е. с раздельными шинами команд и данных, а так же раздельными памятью программ и памятью данных.

При такой архитектуре, во-первых, разрядность (количество разрядов в слове) слова команды может не совпадать с разрядностью слова данных, во вторых, извлечение команды может происходить одновременно с пересылкой данных.

Понятно, что эти особенности приводят к экономии ресурсов памяти и значительно увеличивает производительность ядра МК. Говорят, что PIC микроконтроллеры имеют ортогональную систему команд. Такая система позволяет любой команде обращаться к любому регистру МК. Все МК имеют 8-разрядную шину данных, 8-разрядное АЛУ для выполнения операций и 8-разрядые регистры для хранения данных, поэтому такие МК относятся к классу 8-разрядных. Шина команд МК PIC16 имеет 14 разрядов.

Все команды выполняются за один машинный цикл, кроме команд ветвления, которые выполняются за два машинных цикла

Основные особенности архитектуры микроконтроллеров pic.

  • Раздельные память и шины для команд и для данных. Разрядность ПП и шины команд - 14, ПД, регистров, АЛУ и шины данных - 8.

  • В арсенале всего 35 простых и компактных команд. Все команды выполняются за 1 машинный цикл, кроме команд ветвления, которые выполняются за 2 машинных цикла.

  • Все регистры МК делятся на две группы: специальные регистры и регистры общего назначения. Обе группы составляют единое пространство - память данных, поэтому для управления функциями и настройками МК не требуются специальные команды.

  • Ортогональная система команд позволяет выполнить любую операцию с любым регистром, используя любой метод адресации.

  • В состав разных типов МК входят различные стандартные периферийные модули, выполняющие типичные для цифровых систем функции. Они освобождают ресурсы МК, упрощают программу и удешевляют изделие.

  • Все выводы МК, кроме выводов питания и сброса, используются как порты общего назначения. Периферийные модули не занимают монопольно выводы МК. Все коммуникации осуществляются через альтернативные функции портов. Т.е. программа может подключать модуль к внешнему выводу МК только когда это необходимо. Если модуль не используется, то он и не использует никакие выводы МК.

  • Несколько типов тактовых генераторов. Тактовая частота 0…20МГц.

  • Диапазон напряжения питания не является архитектурной особенностью, и все-таки: 2…5,5В - для низковольтных вариантов МК (LC, LF) и 3,5(4,5)…5,5В - для остальных.

2.2. Дополнительные сведения можно получить в «Документация для PIC Simulator IDE»

КОМАНДЫ ПЕРЕСЫЛКИ

Сразу обратите внимание на следующую особенность: большинство команд состоит из 5-ти букв, причем корень слова состоит из 3-х букв, а последние две буквы показывают, откуда и куда копируется (переписывается) число или с какими регистрами нужно произвести определяемое командой действие.

MOVLW K

MOVWF F

MOVFW F

MOVLW K

Команда копирует байтовый литерал (константу) в рабочий регистрW.

Пример

команда MOVLW H’80’ инициализирует регистр W значением 10000000

MOVWF F

Команда копирует байт из рабочего регистра W в заданный регистрF.

Пример

команда MOVWF H’23’скопирует байт из регистра W в регистр 23Н.

MOVFW F

Команда копирует байт из заданного регистра F в рабочий регистр W

Пример

команда MOVFW H’22’ загрузит в W содержимое регистра 22Н.

Следующая программа записывает в рабочий регистр W значение 01010101 и затем выдает его содержимое в TEMP, сбрасывает W, а затем восстанавливает его значение:

MOVLW B'01010101' ;загрузить 01010101 в регистр W

MOVWF TEMP ;записать W в TEMP

CLRW ; сбросить W (очистить W)

MOVFW TEMP ; переслать TEMP вW (восстановить W)

SWAP F,d

Команда переставляет местами старшую и младшую тетрады содержимого регистров данных F и помещает результат либо в тот же регистр данных, либо в рабочий регистр.

Пример

Команда SWAP H’22’выполняет операцию

КОМАНДЫ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ

Процессоры микроконтроллеров РIС помимо сложения и вычитания могут выполнять и другие арифметические операции: операции сброса, инкрементирования и декрементирования.

Сложение

ADDLW К

Команда позволяет прибавить 8-битную константу к рабочему регистру W.

Пример: ADDLW b’10101010’

ADDWF f,d

Команда прибавляет переменную из памяти к содержимому рабочего регистра W. В отличии от команды ADDLW, в качестве адресата может использоваться как w, так и исходный регистр данных f.

Пример: ADDWF H’26’

MOVLW 0FFH ; Загpузить 0FHh в pегистpW

MOVWF TEMP ;Записать W в TEMP

MOVLW 1 ;Загрузить 01h в регистр W

ADDWF TEMP,F ;Выполнить сложение (результат 00 –переполнение, флаг Z = 1.

Вычитание

В системе команд есть две команды вычитания, операнды которых аналогичны командам сложения.

SUBWF f, d.

Команда вычитает содержимое рабочего pегистpа w из переменной f, хранящейся в памяти данных. Как обычно, результат помещается либо в рабочий регистр, либо обратно в исходный регистр памяти данных.

Пример

При выполнении команды SUB H’26’,f происходит следующее

Результат (f–w) представляет разность величин операндов, результат сохраняется в регистре H’26’ и изменяет регистр признаков.

Для определения большего из них достаточно контролировать состояние флагов Z и C.

Байт данных больше, чем рабочий регистр F-W>0 дает С=1, Z=0

Байт данных равен рабочему регистру F-W=0 дает С=1, Z=1

Байт данных меньше, чем рабочий регистр F-W<0 дает С=0, Z=0

SUBLW К

Команда SUBLW представляет собой один из источников ошибок, поскольку вычитает pабочий pегистpW из константы k, а не наоборот, как можно подумать.