Реферат Курсовая Конспект
Однокристальные микроконтроллеры PIC 16С71 - раздел Высокие технологии, Однокристальные Микроконтро...
|
Однокристальные микроконтроллеры PIC 16С71
Стек
Микроконтроллер PIC16C71 имеет восьмиуровневый аппаратный стек шириной 13 бит. Область стека не принадлежит ни к программной области ни к области данных, а указатель стека пользователю недоступен. Текущее значение программного счетчика посылается в стек, когда выполняется команда CALL или производится обработка прерывания. При выполнении процедуры возврата из подпрограммы (команды RETLW, RETFIE или RETURN) в программный счетчик выгружается содержимое стека. Регистр PCLATH (0Ah) не изменяется при операциях со стеком.
Сброс
В PIC 16С71 существуют различия между вариантами сброса:
1) Сброс по включению питания.
2) Сброс по внешнему сигналу /MCLR при нормальной работе.
3) Сброс по внешнему сигналу /MCLR в режиме SLEEP.
4) Сброс по окончанию задержки таймера WDT при нормальной работе.
5) Сброс по окончанию задержки таймера WDT в режимеSLEEP.
Некоторые из специальных регистров при сбросе не инициализируются. Они имеют случайное состояние при включении питания и не изменяются при других видах сбросов. Другая часть специальных регистров инициализируются в «состояние сброса» при всех видах сброса, кроме сброса по окончанию задержки таймера WDT в режиме SLEEP. Просто этот сброс рассматривается как временная задержка в нормальной работе. Есть еще несколько исключений. Программный счетчик всегда сбрасывается в ноль (0000h). Биты статуса TO и PD устанавливаются или сбрасываются в зависимости от варианта сброса. Эти биты используются программой для определения природы сброса. Их значения после сброса приведены в табл. 3.5.
Таблица 3.5
Рис. 3.13. Общий формат команды
Таблица 3.7
Описание полей команд PIC 16C71
Поле | Описание |
f | Адрес регистра |
w | Рабочий регистр |
b | Номер бита в 8-ми разрядном регистре |
k | Константа |
x | Не используется, ассемблер формирует код с х=0 |
Окончание таблицы 3.7
Поле | Описание |
d | Регистр назначения: D=0 результат в регистре W D=1 результат в регистре f По умолчанию d=1 |
Label | Имя метки |
TOS | Вершина стека (Top Of Stack) |
PC | Счетчик команд (Program Counter) |
/TO | Тайм-аут (Time Out) |
/PD | Выключение питания (Power Down) |
Dest | Регистр назначения: рабочий регистр W или регистр, заданный в команде |
[ ] | Необязательные параметры |
( ) | Содержание |
? | Присвоение |
< > | Битовое поле |
Є | Из набора |
Таблица 3.8
Система команд PIC 16C71
Мнемокод | Название команды | Циклы | Код команды (14 бит) | Биты сос- тоя- ния | При- меча- ния |
Команды работы с байтами | |||||
ADDWF f,d | Сложение W с f | 00 0001 11df ffff | C,DC, Z | 2,3 | |
ANDWF f,d | Логическое И W и f | 00 0001 01df ffff | Z | 2,3 | |
CLRF f | Сброс регистра f | 00 0000 011f ffff | Z | ||
CLRW - | Сброс регистра W | 00 0000 0100 0000 | Z | - | |
COMF f,d | Инверсия регистра f | 00 0010 01df ffff | Z | - | |
DECF f,d | Декремент регистра f | 00 0000 11df ffff | Z | 2,3 | |
DECFSZ f,d | Декремент f, пропустить команду, если 0 | 1(2) | 00 0010 11df ffff | 2,3 |
Продолжение таблицы 3.8
Мнемокод | Название команды | Циклы | Код команды (14 бит) | Биты сос- тоя- ния | При- меча- ния |
INCF f,d | Инкремент регистра f | 00 0010 10df ffff | Z | 2,3 | |
INCFSZ f,d | Инкремент f, пропустить команду, если 0 | 1(2) | 00 0011 11df ffff | 2,3 | |
IORWF f,d | Логическое ИЛИ W и f | 00 0001 00df ffff | Z | 2,3 | |
MOVF f,d | Пересылка регистра f | 00 0010 00df ffff | Z | 2,3 | |
MOVWF f | Пересылка W в f | 00 0000 001f ffff | |||
NOP - | Холостая команда | 00 0000 0000 0000 | - | ||
RLF f,d | Сдвиг f влево через перенос | 00 0011 01df ffff | C | 2,3 | |
RRF f,d | Сдвиг f вправо через перенос | 00 0011 00df ffff | C | 2,3 | |
SUBWF f,d | Вычитание W из f | 00 0000 10df ffff | C,DC,Z | 2,3 | |
SWAPF f,d | Обмен местами тетрад в f | 00 0011 10df ffff | 2,3 | ||
XORWF f,d | Исключающее ИЛИ W и f | 00 0001 10df ffff | Z | 2,3 | |
Команды работы с битами | |||||
BCF f,b | Сброс бита в регистре f | 01 0100 bbbf ffff | 2,3 | ||
BSF f,b | Установка бита в регистре f | 01 0101 bbbf ffff | 2,3 | ||
BTFSC f,b | Пропустить команду, если бит в f равен нулю | 1(2) | 01 0110 bbbf ffff | - | |
BTFSS f,b | Пропустить команду, если бит в f равен единице | 1(2) | 01 0111 bbbf ffff | - | |
Команды передачи управления и операции с константами | |||||
ADDLW k | Сложение константы с W | 1 | 11 111x kkkk kkkk | C,DC, Z | 4 |
ANDLW k | Логическое И константы и W | 11 1110 kkkk kkkk | Z | ||
IORLW k | Логическое ИЛИ константы и W | 11 1101 kkkk kkkk | Z | - | |
SUBLW k | Вычитание W из константы. | 1 | 11 110x kkkk kkkk | C,DC, Z | 4 |
Окончание таблицы 3.8
Мнемокод | Название команды | Циклы | Код команды (14 бит) | Биты сос- тоя- ния | При- меча- ния |
CALL k | Вызов подпрограммы | 10 1001 kkkk kkkk | - | ||
CLRWDT | Сброс Watchdog таймера | 00 0000 0000 0000 | /TO, /PD | - | |
GOTO k | Переход по адресу | 10 1010 kkkk kkkk | - | ||
RETLW k | Возврат из подпрограммы с загрузкой константы в W | 11 1000 kkkk kkkk | - | ||
RETFIE | Возврат из прерывания. | 2 | 00 0000 0000 1001 | 4 | |
RETURN | Возврат из подпрограммы. | 2 | 00 0000 0000 1000 | 4 | |
SLEEP | Переход в режим SLEEP | 00 0000 0000 0011 | /TO, /PD | - | |
TRIS f | Загрузка TRIS регистра | 00 0000 0000 0ffff | |||
MOVLW k | Пересылка константы в W | 11 1100 kkkk kkkk | - | ||
XORLW k | Исключающее ИЛИ константы и W | 1111 kkkk kkkk | Z | - | |
OPTION | Загрузка W в OPTION регистр | 00 0000 0000 0000 |
Примечания:
1. Команды TRIS и OPTION помещены в перечень команд для совместимости с семейством PIC16C5X. Их использование не рекомендуется. В PIC16C71 регистры TRIS и OPTION доступны для чтения и записи как обычные регистры с номером. Эти команды могут не поддерживаться в дальнейших разработках PIC16CXX.
2. Когда модифицируется регистр ввода/вывода (например MOVF PORT, 1), используется значение, считываемое с выводов. Например, если в выходной защелке порта, включенного на ввод, находится "1", а внешнее устройство формирует на этом выводе "0", то в этом разряде данных будет записан "0".
3. Если операндом команды является регистр TMRO (и, если допустимо, d=1), то предварительный делитель, если он подключен к TMRO, будет обнулен.
4. Команды ADDLW, RETFIE, RETURN и SUBLW отсутствуют в системах команд PIC 12CXX и PIC 16C5X.
Более подробное описание команд с примерами их выполнения приведено в Приложении В (В1 и В2) пособия по разработке программ для ОМК PIC [8]. Данную систему команд имеют все микроконтроллеры расширенного семейства (PIC16CXX). Микроконтроллеры простейшего и базового семейств (PIC12CXX и PIC16C5X) имеют урезанную систему команд (Приложение В1). Микроконтроллеры высокопроизводительного семейства (PIC17CXX) имеют расширенную (по сравнению с PIC16CXX) систему команд, которая содержит до 57-ми команд [5,6].
– Конец работы –
Используемые теги: Однокристальные, Микроконтроллеры, PIC, 16С710.071
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Однокристальные микроконтроллеры PIC 16С71
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов