- •Перечень условных обозначений и сокращений
- •Введение
- •1. Описание функционирования лвс с маркерным способом доступа
- •1.1 Маркерный доступ на структуре кольцо
- •1.2 Тип и форматы кадров
- •1.3 Расчет и описание тайм-аутов
- •2. Описание микропроцессорного комплекта pic 16c64
- •2.1 Общее описание pic 16c64
- •2.2 Свойства pic16c64
- •2.3 Назначение выводов pic16c64
- •2.4 Описание команд. Общий формат команд
- •3. Описание структурной схемы станции лвс, узлов приема и выдачи
- •4. Описание принципиальной схемы станции
- •5. Определение необходимого объема буферной памяти
- •6. Описание схемы заданного режима работы станции - прием
- •7. Описание программы реализации, заданного режима работы станции - прием
- •8. Оценка эффективности
- •Заключение
- •Список литературы
- •Приложение
2.4 Описание команд. Общий формат команд
Система команд микропроцессорного комплекта PIC 16CXX приведена в таблице 2.2.
Таблица 2.2. Система команд PIC 16CXX
Мнемоника |
Название |
Синтаксис |
Операнды |
Операция |
Статус |
Слова |
Циклы |
|||
ADDWF |
ADD W to f |
ADDWF f,d |
f,d |
(W)+(f)->W/f |
C,DC,Z |
1 |
1 |
|||
ANDWF |
AND W with f |
ANDWF f,d
|
f,d
|
(W).AND.(f)->W/f |
Z
|
1 |
1 |
|||
CLRF |
Clear f |
CLRF f |
f,d |
00h->f; 1->Z |
Z |
1 |
1 |
|||
CLRW |
Clear W register |
CLRW |
- |
00h->W; 1->Z |
Z |
1 |
1 |
|||
COMF |
Complement f |
COMF f,d |
f,d |
(f\)->W/f |
Z |
1 |
1 |
|||
DECF |
Decrement f |
DECT f,d |
f,d |
(f)-1->W/f |
Z |
1 |
1 |
|||
DECFSZ |
Decrement f, skip if 0 |
DECFSZ f,d |
f,d |
(f)-1->W/f skip if result=0 |
- |
1 |
1(2)
|
|||
INCF |
Increment f |
INCF f,d |
f,d |
(f)+1->W/f |
Z |
1 |
1 |
|||
INCFSZ |
Increment f, skip if 0 |
INCFZ f,d |
f,d |
(f)+1->W/f |
- |
1 |
1(2) |
|||
IORWF |
Inclusive OR W with f |
IORWF f,d |
f,d |
(W).OR.(f)->(W) |
Z\ |
1 |
1 |
|||
MOVF |
Move f |
MOVF f,d |
f,d |
(f)->W/f |
Z |
1 |
1 |
|||
MOVWF |
Move W to f |
MOVWF f |
F |
(W)->(f) |
- |
1 |
1 |
|||
NOP |
No operation |
NOP |
- |
- |
- |
1 |
1 |
|||
RLF |
Rotate Left f througt Carry |
RLF f,d |
f,d |
<- [C]<-register <- |
C |
1 |
1 |
|||
RRF |
Rotate Right through Carry |
RRF f,d |
f,d |
-> [C]->register -> |
C |
1 |
1 |
|||
SUBWF |
Subtract W from f |
SUBWF f,d |
f,d |
f-(W)->W/f |
C,DC,Z |
1 |
1 |
|||
SWAPF |
Swap f |
SWAPF f,d |
f,d |
f<0:3>->d<4:7> |
- |
1 |
1 |
|||
XORWF |
Exclusive OR with f |
XORWF f,d |
f,d |
(W).XOR.(f)->W/f |
Z |
1 |
1 |
|||
Бит-ориентированые операции |
||||||||||
BCF |
Bit Clear f |
BCF f,b |
f,b |
0->f(b) |
- |
1 |
1 |
|||
BSF |
Bit Set f |
BSF f,b |
f,b |
1->f(b) |
- |
1 |
1 |
|||
BTFSC |
Bit Test, skip,if Clear |
BTFSC f,b |
f,b |
skip if (f<b>)=0 |
- |
1 |
1(2) |
|||
BTFSS |
Bit Test, skip,if Set |
BTFSS f,b |
f,b |
skip,if (f<b>)=1 |
- |
1 |
1(2) |
|||
Литеральные операции и операции управления |
||||||||||
ADDLW |
Add Literal to W |
ADDLW k |
k |
(W)+k->W |
C,DC,Z |
1 |
1 |
|||
ANDLW |
And Literal and W |
ANDLW k |
k |
(W).AND.(k)->W |
Z\ |
1 |
1 |
|||
CALL |
Subrouutine Call |
CALL k |
k |
(PC)+1->TOS k ->PC<10: 0> (PCLATH<4:3>)-> PC<12:11> |
- |
1
1 |
2
1 |
|||
|
|
|
|
|
|
|
|
|||
Таблица 2.2. Система команд PIC 16CXX (продолжение) |
||||||||||
CLRWDT |
Clear Watching Timer |
CLRWDT |
- |
00h->WDT 0->WDT prescaler 1->TO\; 1->PD\ |
TO\, PD\ |
1 |
1 |
|||
GOTO |
Unconditional Branch |
GOTO k |
0<= k <=2047 |
k->PC<10:0> (PCLATH<4:3>)-> PC<12:11> |
- |
1 |
2 |
|||
IORLW |
Inclusive OR Literal with W |
IORLW k |
k |
(W).OR.(k)->W |
Z |
1 |
1 |
|||
MOVLW |
Move Literal to W |
MOVLW |
k |
k->(W) |
- |
1 |
1 |
|||
RETFIE |
Return from Interrupt |
RETFIE |
|
TOS->PC; 1->GIE |
- |
1 |
2 |
|||
RETLW |
Return Literal to W |
RETLW k |
|
k->W; TOS->PC |
- |
1 |
2 |
|||
RETURN |
Return from subtrroutine |
RETURN |
- |
TOS->PC |
- |
1 |
2 |
|||
SLEEP |
- |
SLEEP |
- |
00->WDT 0->WDT prescaler 1->TO\,0->PD\ |
TO\, PD\ |
1 |
1 |
|||
SUBLW |
Subtract W from Literal |
SUBLW k |
k |
k-(W)->(W) |
C,DC,Z |
1 |
1 |
|||
XORLW |
Exclusive OR W with f |
XOR |
f,d |
(W).XOR.(f)->W/f |
Z |
1 |
1 |
|||
Общий формат команд :
Формат байт-ориентированных операций приведен на рисунке 3.
13 8 |
7 |
6 0 |
Код операции |
d |
f (файл #) |
Рисунок 3 - Формат байт-ориентированных операций
Формат бит-ориентированных операций приведен на рисунке 4.
13 10 |
9 7 |
6 0 |
Код операции |
b (бит #) |
f (файл #) |
Рисунок 4 - Формат бит-ориентированных операций
Формат литерных операций и операций управления приведен на рисунке 5.
13 8 |
7 0 |
Код операции |
k (литерал) |
Рисунок 5 - Формат литерных операций и операций управления
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.
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.
COMF (Complement f) Содержимое регистра W инвертируется.
DECFSZ (Decrement f,skip if 0). Содержимое регистра ‘f’ декретируется.
Если результат есть 0 ,следующая команда, которая уже присоединена пропускается. Пустая операция выполняется, взамен, делая команду двухтактовой.
GOTO (Unconditional Branch). Команда безусловного перехода Непосредственное значение одиннадцати бит загружаются в биты PC< 10: 0>. Старшие биты загружаются из PCLATH <4: 3 >. Команда двухтактовая
INCFSZ (Increment f, skip if 0). Содержимое регистра ‘f’ инкреминируется.
Если результат равен 0, следующая команда, которая уже подсоединена, декремируется. Взамен выполняется пустая операция, делая команду двухтактовой.
INCF (Increment f). Содержимое регистра ‘f’ инкреминируется.
IORLW (Inclusive OR Literal with W).Операция ИЛИ содержимого регистра W и 8-битового литерала ‘k’. Результат помещается в регистр W.
IORWF (Inclusive OR W with f). Операция ИЛИ содержимого регистров W и ‘ 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’ циклически сдвигается на один бит вправо через флаг переноса.
RLF (Rotate Left f througgh Carry). Содержимое регистра ‘f’ перемещается на один бит влево через флаг переноса.
SLEEP. Бит признака понижения мощности (PD\) очищается. Бит признака истечения времени (TO\) устанавливается в 1. Сторожевой таймер и его предделитель очищаются. Процессор переводится в режим спячки и генератор останавливается.
SUBLW (Subtract W from Literal ). Содержимое регистра W вычитается (методом дополнительного кода ) из 8-битового литерала ‘k’. Результат помещается в регистр W.
SUBWF (subtract W from f). Вычитание (методом дополнительного кода) содержимого регистра W из содержимого регистра ‘f’ SWAPF (Swap f). Старшие и младшие части регистра ‘f’ обмениваются информацией.
XORLW (Exlusive OR Literal with W) (Исключающее ИЛИ, неравнозначность). Выполняется операция ‘ исключающее’ ИЛИ содержимого регистра W и 8-битового литерала ‘k’. Результат помещается в W регистр.
XORWF (Exlusive OR W with f) (Исключающее ИЛИ , неравнозначность). Выполняется операция исключающее ИЛИ содержимого регистра W и регистра ‘f’.
