- •Список сокращений:
- •1. Описание принципов функционирования лвс на технологииfddi
- •Исходные данные для расчётов:
- •2. Описание микропроцессорного комплектаpic16c64
- •2.1 Общее описаниеpic16c6x
- •2.2 Свойстваpic16c64
- •2.3 Свойства периферииpic16c6x
- •2.4 Система команд pic 16cxx
- •2.5 Описание команд
- •2.6 Описание выводовpic16c64
- •4. Описание принципиальной электрической схемы станции
- •5. Определение требуемого объема буферной памяти
- •6. Описание графической схемы заданного режима работы станции – прием
- •7. Описание программы заданного режима работы станции – прием
- •Текст программы
- •8. Оценка эффективности
- •Список литературы
2.5 Описание команд
Общий формат команд :
Формат байт-ориентированных операций приведен на рисунке 2.1
|
13 8 |
7 |
6 0 |
|
Код операции |
d |
f (файл #) |
Рисунок. 2.1 Формат байт-ориентированных операций
Формат бит-ориентированных операций приведен на рисунке 2.2
|
13 10 |
9 7 |
6 0 |
|
Код операции |
b (бит#) |
f (файл #) |
Рисунок. 2.2 Формат бит-ориентированных операций
Формат литерных операций и операций управления приведен на рисунке 2.3
|
13 8 |
7 0 |
|
Код операции |
k (литерал) |
Рисунок. 2.3 Формат литерных операций и операций управления
ADDLW (Add literal to W) - Содержимое регистра W добавляется к 8-битовому литералу ‘k’ и результат помещается в регистр W.
ANDLW (AND Literal and W) - Содержимое регистра W логически умножается с 8-битовым литералом ‘k’. Результат помещается в регистр W/
ADDWF (Add W to f) - Сложение содержимого регистра W и регистра ‘f’. Если d равно 0, то результат запоминается в регистре W. Если d есть 1, то результат помещается в регистре ‘f’. ANDWF (AND W with f) - Сложение содержимого регистра W и регистра ‘f’. Если d есть 1, то результат помещается в регистре ‘f’.
BCF (Bit Clear f) - Очистка бита ‘b’ в регистре ‘f’.
BTFSC (Bit Test, skip if Clear) - Если бит ‘b’ в регистре равен 0, то следующая команда пропускается. Если бит ‘b’ равен 1, то следующая команда присоединяется к текущей команде и выполнение ее отменяется, а пустая операция выполняется взамен. Команда получается двухтактовой.
BSF (Bit Set f) - Установка бита ‘b’ в регистре ‘f’ в единицу.
BTFSS (Bit Test, skip if Set) - Если бит ‘b‘ в регистре ‘f’ равен 1, то следующая команда пропускается. Если бит ‘b’ есть 1, то следующая команда присоединяется к текущей команде и выполнение ее отменяется, а взамен выполняется пустая операция. Команда получается двухтактовой.
CLRF (Clear f) - Содержимое регистра ‘f’ очищается и бит Z устанавливается в единицу.
CALL (Subroutine Call) - Вызов подпрограммы. Адрес возврата (PC +1) помещается сверху в стек. 11 бит непосредственного адреса загружаются в биты (10; 0) счетчика команд PC. Старшие биты PC загружаются из PCLATH. Команда двухтактовая.
CLRW (Clear W Register) - Регистр W очищается. Бит Z устанавливается в 1.
CLRWDT (Clear Watching Timer) - Эта команда перезапускает сторожевой таймер. Она также перезапускает предделитель сторожевого таймера. Устанавливаются в единицу биты признаков TO\, PD\.
DECF (Decrement f) - Декремент в регистре W. Если d есть 1, то результат помещается в регистре ‘f’.
COMF (Complement f) - Содержимое регистра W инвертируется. Если d есть 1, то результат помещается в регистре ‘f’.
DECFSZ (Decrement f, skip if 0) - Содержимое регистра ‘f’ декрементируется. Если d есть 1, то результат помещается в регистре ‘f’. Если результат есть 0, следующая команда, которая уже присоединена, пропускается. Пустая операция выполняется, взамен, делая команду двухтактовой.
GOTO (Unconditional Branch) - Команда безусловного перехода. Непосредственное значение одиннадцати бит загружаются в биты PC< 10:0 >. Старшие биты загружаются из PCLATH<4: 3>. Команда двухтактовая.
INCFSZ (Increment f, skip if 0) - Содержимое регистра ‘f’ инкрементируется. Если d есть 1, то результат помещается в регистре ‘f’. Если результат равен 0, следующая команда, которая уже подсоединена, декрементируется, а взамен выполняется пустая операция, делая команду двухтактовой.
INCF (Increment f) - Содержимое регистра ‘f’ инкрементируется. Если d есть 1, то результат помещается в регистре ‘f’.
IORLW (Inclusive OR Literal with W) - Операция ИЛИ содержимого регистра W и 8-битового литерала ‘k’. Результат помещается в регистр W.
IORWF (Inclusive OR W with f) - Операция ИЛИ содержимого регистров W и ‘f’. Если d есть 1, то результат помещается в регистре ‘f’.
MOVF (Move f) - Содержимое регистра ‘f’ перемещается по назначению d. Если d =0, назначается регистр W. Если d =1, назначается сам файловый регистр. d=1 полезен для тестирования файлового регистра.
MOVLW (Move Literal to W) - Восьмибитовый литерал ‘k’ загружается в регистр W. Не надо осторожничать при ассемблировании 0.
MOVWF (Move W to f) - Перемещение данных из регистра W в регистр ‘f’.
NOP (No operation) - Нет операции.
RETFIE (Return from Interrupt) - Возврат от прерывания. Стек разгружается и верхушка стека (TOS) загружается в PC. Прерывания возможны установкой бита разрешения общего прерывания (Global Interrupt Enable GIE). GIE-бит разрешения общего прерывания. Это двухтактовая команда.
RETLW (Return Literal to W) - Регистр W загружается 8-битовым литералом ‘k’. Счетчик команд загружается из верха стека (возврат адреса). Это двухтактовая команда.
RETURN (Return from Subroutine) - Возврат из подпрограммы. Стек разгружается и верхушка стека (TOS) загружается в счетчик команд. Эта команда двухтактовая.
RTF (Rotate Right) - Содержимое регистра ‘f’ циклически сдвигается на один бит вправо через флаг переноса. Если d есть 1, то результат помещается в регистре ‘f’.
RLF (Rotate Left through Carry) - Содержимое регистра ‘f’ перемещается на один бит влево через флаг переноса. Если d есть 1, то результат помещается в регистре ‘f’.
SLEEP - Бит признака понижения мощности (PD\) очищается. Бит признака истечения времени (TO\) устанавливается в 1. Сторожевой таймер и его предделитель очищаются. Процессор переводится в режим спячки и генератор останавливается.
SUBLW (Subtract W from Literal) - Содержимое регистра W вычитается (методом дополнительного кода) из 8-битового литерала ‘k’. Результат помещается в регистр W.
SUBWF (Subtract W from f) - Вычитание (методом дополнительного кода) содержимого регистра W из содержимого регистра ‘f’. Если d есть 1, то результат помещается в регистре ‘f’.
SWAPF (Swap f) - Старшие и младшие части регистра ‘f’ обмениваются информацией. Если d есть 1, то результат помещается в регистре ‘f’.
XORLW (Exlusive OR Literal with W) - Выполняется операция ‘исключающее’ ИЛИ содержимого регистра W и 8-битового литерала ‘k’. Результат помещается в регистр W.
XORWF (Exlusive OR W with f) - Выполняется операция ‘исключающее’ ИЛИ содержимого регистра W и регистра ‘f’. Если d есть 1, то результат помещается в регистре ‘f’.
