- •Список сокращений:
- •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.3 Свойства периферииpic16c6x
Периферия микропроцессорного комплекта PIC16C64 характеризуется следующими свойствами:
Таймер 0 (TMR0): 8 битовый таймер/счетчик с предварительным делителем.
Таймер 1 (TMR1): 16 битовый таймер/счетчик с предварительным делителем. TMR1 может быть инкрементирован во время паузы через внешний кристалл/синхроимпульс.
Таймер 2 (TMR2): 8 битовый таймер/счетчик с регистром периода предделителем и постделителем.
Модуль Захват/Сравнение/Широтноимпульсная модуляция CCP (Capture/Compare/Pulse with modulation - PWM). Захват - 16 разрядный, максимальное разрешение 125 нс. Сравнение – 16 разрядное, максимальное разрешение 100 нс, максимальная PWM разрешающая способность - 10 бит.
Синхронный последовательный порт с последовательным интерфейсом (Synchronous Serial Port - SSP with SPI and I2C bus).
Универсальный синхронно-асинхронный приемник - передатчик (Universal Synchronous Asynchronous Receiver Transmitter - USART/SCI).
Параллельный порт для подчиненного (Parallel Slave Port - PSP) - 8 битовый с внешним управлением по чтению (RD\), записи (WR\) и выбору кристалла (CS\).
Схемы определения границ с перезапуском на границах (Braun-out detection circuitry for Braun-out Reset).
2.4 Система команд pic 16cxx
Система команд микропроцессорного комплекта PIC 16CXX приведена в таблице 2.1.
Таблица 2.1 Система команд 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 | ||||
|
Продолжение таблицы 2.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 | ||||
|
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 | ||||
Примечание к таблице 2.1:
Во всех командах операнд f принимает значения от 0 до 127, а операнд d значения 0 или 1.
В бит-ориентированных операциях операнд b принимает значения от 0 до 7
В литеральных операциях и операциях управления, кроме оговоренных случаев, операнд k принимает значения от 0 до 255.
Обозначения в таблице 2.1:
f - Register file address (0*00 to 0*7F) - адрес файлового регистра
W - Working register (accumulator) - рабочий регистр (аккумулятор)
b - Bit adress withyin an 8 bit file register - адрес бита в пределах 8 битового файлового регистра
k - поле литерала, константа или метка
d - Destination select - выбор назначения
d=0 - запоминание результата в регистре W
d=1 - запоминание результата в файловом регистре f
По умолчанию d =1
PC - program counter - счетчик команд
TOS - Top of Stack - вершина стека
GIE - Global Interrapt Enable - разрешение общего прерывания
PCLATH - буфер записи для старших 5 бит PC
WDT - Watchdog Timer Counter - сторожевой таймер счетчик
TO\ - Time out Bit - бит истечения тайм -аута:
1 - интервал времени истек;
0 - истечение тайм-аута
PD\ - Power-down Bit - бит понижения мощности:
1 - после повышения мощности или команды CLRWDT;
0 - при выполнении команды SLEEP
С - Carry/ borrow bit - бит переноса/заема (для команд ADDWF, ADDLW, SUBLW, SUBWF) (для заема полярность инверсная):
1 - в результате операции имеет место выход переноса из наиболее значащего бита результата;
0 - нет переноса из наиболее значащего бита результата
DC - Digit Carry/borrow bit - бит десятичного переноса/заема (для команд ADDWF, ADDLW, SUBLW, SUBWF) (для заема полярность инверсная):
1 - выход переноса из 4-го младшего бита при образовании результата;
0 - выход переноса из 4-го младшего разряда результата
Z - Zero bit - бит результата:
1 - результат арифметической или логической операции есть 0
0 - результат арифметической или логической операции есть не 0
\ - инверсия
W/f - результат помещается в регистр W, если d=0, и в регистр f, если d=1
Замечание к таблице 2.1: Вычитание выполняется путем сложения операндов в дополнительном коде на второй операции.
