
Инструкция к лабораторной работе № 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, а не наоборот, как можно подумать.