p align="left"> PIC16C5X - базовое семейство с 12- разрядными командами; PIC16C6X / 7X / 8X - расширенное семейство с 14- разрядными командами. PIC17CXX - высокопроизводительное семейство с 16- разрядными командами. В данном курсовом проекте разработка станции ЛВС ведется на микропроцессорном комплекте PIC16C64. Условное графическое изображение микроконтроллера PIC16C64 приведено на рис.2.1. Описание выводов PIC16C64 приведено в табл. 2.1. 2.1. Описание команд PIC16C64 Каждая команда PIC16C64 представляет собой четырнадцати битное слово, состоящее из кода команды, который соответствует типу команды и одного или более операндов [5]. Общий формат команд Байт-ориентированные операции |
13 8 | 7 | 6 0 | | Код операции | d | f (файл #) | | |
Таблица 2.2 Описание поля кода команды |
Значение | Описание | | f | Адрес файлового регистра | | w | Аккумулятор | | b | Адрес бита в регистре | | k | Литерал, константа или метка | | x | Ассемблер сгенерирует код, когда x = 0. Это рекомендуемая форма использования для совместимости со всеми программными средствами. | | d | D=0 результат хранится в регистре W D=1 результат хранится в регистре f По умолчанию d=1 | | label | Имя метки | | TOS | Вершина стека | | PC | Программный счетчик команд | | PCLATH | Программный счетчик | | GIE | Общее разрешение прерываний | | WDT | Сторожевой счетчик времени | | TO | Тайм-аут | | PD | Выключение питания | | |
Описание системы команд МК PIC16C64 приведено в табл.2.3. Таблица 2.3 Описание команд PIC16C64 |
Мнемоника команды | Описание | Цик-лы | Код команды | | Прим | | ADDWF f, d | сложение W c f | 1 | 00 0111 dfff ffff | C,DC, Z | 1,2 | | ANDWF f, d | логическое И W и f | 1 | 00 0101 dfff ffff | Z | 1,2 | | CLRF f | сброс регистра f | 1 | 00 0001 lfff ffff | Z | 2 | | CLRW - | сброс регистра W | 1 | 00 0001 0xxx xxxx | Z | | | COMF f, d | инверсия регистра f | 1 | 00 1001 dfff ffff | Z | 1,2 | | DECF f, d | декремент регистра f | 1 | 00 0011 dfff ffff | Z | 1,2 | | DECFSZ f, d | декремент f, пропустить команду, если 0 | 1(2) | 00 1011 dfff ffff | | 1,2,3 | | INCF f, d | инкремент регистра f | 1 | 00 1010 dfff ffff | Z | 1,2 | | INCFSZ f, d | инкремент регистра f, пропустить, если 0 | 1(2) | 00 1111 dfff ffff | | 1,2,3 | | IORWF f, d | логическое ИЛИ W и f | 1 | 00 0100 dfff ffff | Z | 1,2 | | MOVF f, d | пересылка регистра f | 1 | 00 1000 dfff ffff | Z | 1,2 | | MOVWF f | пересылка W в f | 1 | 00 0000 lfff ffff | | | | NOP - | холостая команда | 1 | 00 0000 0xx0 0000 | | | | Мнемоника команды | Описание | Цик-лы | Код команды | | Прим | | RLF f, d | сдвиг f влево через перенос | 1 | 00 1101 dfff ffff | C | 1,2 | | RRF f, d | сдвиг f вправо через перенос | 1 | 00 1100 dfff ffff | C | 1,2 | | SUBWF f, d | вычитание W из f | 1 | 00 0010 dfff ffff | C, DC,Z | 1,2 | | SWAPF f, d | обмен тетрад в f | 1 | 00 1110 dfff ffff | | 1,2 | | XORWF f, d | Исключающее ИЛИ W и f | 1 | 00 0110 dfff ffff | Z | 1,2 | | Команды работы с битами регистров (бит-ориентированные) | | BCF f, b | сброс бита в регистре f | 1 | 00 00bb bfff ffff | | 1,2 | | BSF f, b | Установка бита в регистре f | 1 | 01 01bb bfff ffff | | 1,2 | | BTFSC f, b | Пропустить команду, если бит равен 0 | 1(2) | 01 10bb bfff ffff | | 3 | | BTFSS f, b | Пропустить команду, если бит равен 1 | 1(2) | 01 11bb bfff ffff | | 3 | | Команды работы с константами и операции перехода | | ADDLW k | Сложение константы с W | 1 | 11 111x kkkk kkkk | C, DC, Z | | | ANDLW k | Логическое И W и f | 1 | 11 1001 kkkk kkkk | Z | | | CALL k | вызов подпрограммы | 2 | 10 0kkk kkkk kkkk | | | | CLRWDT - | сброс сторожевого таймера WDT | 1 | 00 0000 0110 0100 | TO, PD | | | GOTO k | переход по адресу | 2 | 10 1kkk kkkk kkkk | | | | IORLW k | Логическое ИЛИ константы и W | 1 | 11 1000 kkkk kkkk | Z | | | MOVLW k | пересылка константы в W | 1 | 11 00xx kkkk kkkk | | | | RETFIE - | возврат из прерывания | 2 | 00 0000 0000 1001 | | | | RETLW k | возврат из подпрограммы с загрузкой константы в W | 2 | 11 01xx kkkk kkkk | | | | RETURN - | возврат из подпрограммы | 2 | 00 0000 0000 1000 | | | | SLEEP - | переход в режим SLEEP | 1 | 00 0000 0110 0011 | TO, PD | | | SUBLW k | вычитание W из константы | 1 | 11 110x kkkk kkkk | C,DC, Z | | | XORLW k | Исключающее ИЛИ конс-танты и W | 1 | 11 1010 kkkk kkkk | Z | | | |
Примечание: 1. Во всех командах операнд f принимает значения от 0 до 127, а операнд d значения 0 или 1. 2. В бит-ориентированных операциях операнд b принимает значения от 0 до 7. 3. В литеральных операциях и операциях управления, кроме оговоренных случаев, операнд k принимает значения от 0 до 255. Обозначения: С: Carry bit - бит переноса / заема (для команд ADDWF, ADDLW, SUBLW, SUBWF) (для заема полярность инверсная): 1 - в результате операции имеет место выход переноса из наиболее значащего бита результата; 0 - нет переноса из наиболее значащего бита результата. DC: Digit Carry bit - бит десятичного переноса /заема (для команд ADDWF, ADDLW,SUBLW, SUBWF) (для заема полярность инверсная ) : 1 - выход переноса из 4-го младшего бита при образовании результата; 0 - выход переноса из 4-го младшего разряда результата Z - Zero bit - бит результата: 1 - результат арифметической или логической операции есть 0; 0 - результат арифметической или логической операции есть не 0; \ - инверсия W/f - результат помещается в регистр W, если d=0, и в регистр f, если d=1 3. ОПИСАНИЕ СТРУКТУРНОЙ СХЕМЫ СТАНЦИИ ЛВС Структурная схема станции ЛВС представлена на рис.3.1.[1] В состав станции входят следующие устройства:
Страницы: 1, 2, 3
|