Главная страница
Навигация по странице:

  • Таблица 5.10. Описания полей команд МК семейства PIC16CXXX. Поле

  • Таблица 5.11. Система команд МК подгруппы PIC16F8X. Мнемоника

  • Философия микропроцессорной техники. Философия микропроцессорной техники


    Скачать 2.23 Mb.
    НазваниеФилософия микропроцессорной техники
    АнкорФилософия микропроцессорной техники.doc
    Дата13.11.2019
    Размер2.23 Mb.
    Формат файлаdoc
    Имя файлаФилософия микропроцессорной техники.doc
    ТипГлава
    #94952
    страница23 из 34
    1   ...   19   20   21   22   23   24   25   26   ...   34

    5.3. Система команд микроконтроллеров подгруппы PIC16F8X

    5.3.1. Перечень и форматы команд


    Микроконтроллеры подгруппы PIC16F8X имеют простую и эффективную систему команд, состоящую всего из 35 команд.

    Каждая команда МК подгруппы PIC16F8X представляет собой 14-битовое слово, разделенное на код операции (OPCODE), и поле для одного и более операндов, которые могут участвовать или не участвовать в этой команде. Система команд PIC16F8X является ортогональной и включает в себя команды работы с байтами, команды работы с битами и операции с константами и команды управления. В таблице 5.10 приведены описания полей команд.

    Таблица 5.10. Описания полей команд МК семейства PIC16CXXX.

    Поле

    Описание

    f

    Адрес регистра

    w

    Рабочий регистр

    b

    Номер бита в 8-разрядном регистре

    k

    Константа

    x

    Не используется. Ассемблер формирует код с x=0

    d

    Регистр назначения:

    d=0 – результат в регистре w

    d=1 – результат в регистре f

    По умолчанию d=1

    label

    Имя метки

    TOS

    Beршина стека

    PC

    Счетчик команд

    PCLATH

    Регистр PCLATH

    GIE

    Бит разрешения всех прерываний

    WDT

    Сторожевой таймер

    /TO

    Тайм-аут

    /PD

    Выключение питания

    dest

    Регистр назначения: рабочий регистр w или регистр, заданный в команде

    [ ]

    Необязательные параметры

    ( )

    Содержание



    Присвоение

    < >

    Поле номера бита



    Из набора

    Для команд работы с байтами f обозначает регистр, с которым производится действие; d – бит, определяющий, куда положить результат. Если d =0, то результат будет помещен в регистр w, при d=1 результат будет помещен в регистр «f», упомянутый в команде.

    Для команд работы с битами b обозначает номер бита, участвующего в команде, а f – это регистр, в котором данный бит расположен.

    Для команд передачи управления и операций с константами, k обозначает восьми- или одиннадцатибитную константу.

    Почти все команды выполняются в течение одного командного цикла. В двух случаях исполнение команды занимает два командных цикла:

    • проверка условия и переход;

    • изменение программного счетчика как результат выполнения команды.

    Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время исполнения командного цикла будет 1 мкс.

    Основные форматы команд МК изображены на рис. 5.15.

    Система команд МК подгруппы PIC16F8X приведена в табл. 5.11.


    Рис. 5.15.  Основные форматы команд.

    Таблица 5.11. Система команд МК подгруппы PIC16F8X.

    Мнемоника

    Описание команды

    Циклы

    Биты состояния

    Прим.

    ADDWF f, d

    Сложение W с f

    1

    C ,DC ,Z

    1, 2

    ANDWF f, d

    Логическое И W и f

    1

    Z

    1, 2

    CLRF f

    Сброс регистра f

    1

    Z

    2

    CLRW

    Сброс регистра W

    1

    Z




    COMF f, d

    Инверсия регистра f

    1

    Z

    1, 2

    DECF f, d

    Декремент регистра f

    1

    Z

    1, 2

    DECFSZ f, d

    Декремент f, пропустить команду, если 0

    1(2)




    1, 2, 3

    INCF f, d

    Инкремент регистра f

    1

    Z

    1, 2

    INCFSZ f, d

    Инкремент f, пропустить команду, если 0

    1(2)




    1, 2, 3

    IORWF f, d

    Логическое ИЛИ W и f

    1

    Z

    1, 2

    MOVF f, d

    Пересылка регистра f

    1

    Z

    1, 2

    MOVWF f

    Пересылка W в f

    1







    NOP -

    Холостая команда

    1







    RLF f, d

    Сдвиг f влево через перенос

    1

    C

    1, 2

    RRF f, d

    Сдвиг f вправо через перенос

    1

    C

    1, 2

    SUBWF f, d

    Вычитание W из f

    1

    C,DC,Z

    1, 2

    SWAPF f, d

    Обмен местами тетрад в f

    1




    1, 2

    XORWF f, d

    Исключающее ИЛИ W и f

    1

    Z

    1, 2




    BCF f, b

    Сброс бита в регистре f

    1




    1, 2

    BSF f, b

    Установка бита в регистре f

    1




    1, 2

    BTFSC f, b

    Пропустить команду, если бит в f равен нулю

    1(2)




    3

    BTFSS f, b

    Пропустить команду, если бит в f равен единице

    1(2)




    3




    ADDLW k

    Сложение константы и W

    1

    C, DC, Z




    ANDLW k

    Логическое И константы и W

    1

    Z




    CALL k

    Вызов подпрограммы

    2







    CLRWDT -

    Сброс сторожевого таймера WDT

    1

    /TO, /P




    GOTO k

    Переход по адресу

    2







    IORLW k

    Логическое ИЛИ константы и W

    1

    Z




    MOVLW k

    Пересылка константы в W

    1







    RETFIE -

    Возврат из прерывания

    2







    RETLW k

    Возврат из подпрограммы с загрузкой константы в W

    2







    RETURN -

    Возврат из подпрограммы

    2







    SLEEP -

    Переход в режим SLEEP

    1

    /TO, /P




    SUBLW k

    Вычитание W из константы

    1

    C, DC, Z




    XORLW k

    Исключающее ИЛИ константы и W

    1

    Z







    Примечания к таблице:

    1. Если модифицируется регистр ввода/вывода (например, MOVF PORTB,1), то используется значение, считываемое с выводов. Например, если в выходной защелке порта, включенного на ввод, находится «1», а внешнее устройство формирует на этом выводе «0», то в разряде данных будет записан «0».

    2. Если операндом команды является содержимое регистра TMRO (и, если допустимо, d=1), то предварительный делитель, если он подключен к TMRO, будет сброшен.

    3. Если в результате выполнения команды изменяется счетчик команд или выполняется переход по проверке условия, то команда выполняется за два цикла. Второй цикл выполняется как NOP.
    1   ...   19   20   21   22   23   24   25   26   ...   34


    написать администратору сайта