Объявление

Свернуть
Пока нет объявлений.

Набор команд PIC микроконтроллеров семейства PIC18XXXX

Свернуть
X
Свернуть

  • Набор команд PIC микроконтроллеров семейства PIC18XXXX

    Мнемоника Краткое описание Циклов 16-ти битный код Изменяет флаги Прим.
    БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ
    ADDWF f,d,a Сложение W и f 1 0010 01DA FFFF FFFF C, DC, Z, OV, N 1, 2, 6
    ADDWFC f,d,a Сложение W и f с использованием флага переноса 1 0010 00DA FFFF FFFF C, DC, Z, OV, N 1, 2, 6
    ANDWF f,d,a Поразрядная операция И W и f 1 0001 01DA FFFF FFFF Z, N 1, 2, 6
    CLRF f,a Очистка регистра f 1 0110 101A FFFF FFFF Z 2, 6
    COMF f,d,a Инверсия содержимого регистра 1 0001 11DA FFFF FFFF N,Z 1, 2, 6
    CPFSEQ f,a Операция сравнения f с W, пропуск след. команды если f=W 1(2,3) 0110 001A FFFF FFFF Нет 4, 6
    CPFSGT f,a Операция сравнения f с W, пропуск след. команды если f>W 1(2,3) 0110 010A FFFF FFFF Нет 4, 6
    CPFSLT f,a Операция сравнения f с W, пропуск след. команды если f 1(2,3) 0110 000A FFFF FFFF Нет 4, 6
    DCFSNZ f,d,a Уменьшение значения регистра f, пропуск следующей инструкции если результат не равен нулю 1(2,3) 0100 11DA FFFF FFFF Нет 1, 2, 3, 4, 6
    DECF f,d,a Уменьшение значения регистра f 1 0000 01DA FFFF FFFF C, DC, Z, OV, N 1, 2, 3, 4, 6
    DECFSZ f,d,a Уменьшение значения регистра f, пропуск следующей инструкции если результат равен нулю 1(2,3) 0010 11DA FFFF FFFF Нет 1, 2, 3, 4, 6
    INCF f,d,a Увеличение значения регистра f 1 0010 10DA FFFF FFFF C, DC, Z, OV, N 1, 2, 3, 4, 6
    INCFSZ f,d,a Увеличение значения регистра f, пропуск следующей инструкции если результат равен нулю 1(2,3) 0011 11DA FFFF FFFF Нет 1, 2, 3, 4, 6
    INFSNZ f,d,a Увеличение значения регистра f, пропуск следующей инструкции если результат не равен нулю 1(2,3) 0100 10DA FFFF FFFF Нет 1, 2, 3, 4, 6
    IORWF f,d,a Поразрядная операция ИЛИ W и f 1 0001 00DA FFFF FFFF Z, N 1, 2, 6
    MOVF f, d, a Пересылка f 1 0101 00DA FFFF FFFF Z, N 1, 6
    MOVFF fs, fd Пересылка из fs в fd 2(3) 1100 FFFF FFFF FFFFS
    1111 FFFF FFFF FFFFD
    Нет
    MOVWF f,a Пересылка содержимого регистра W в регистр f 1 0110 111A FFFF FFFF Нет 6
    MULWF f,a Умножение содержимого регистров W и f 1 0000 001A FFFF FFFF Нет 6
    NEGF f, a перевод в обратную форму записи содержимого регистра f 1 0110 110A FFFF FFFF C, DC, Z, OV, N 1, 2, 6
    RLCF f, d, a Сдвиг влево регистра f через перенос 1 0011 01DA FFFF FFFF C, N, Z 6
    RLNCF f, d, a Сдвиг влево регистра f (без переноса) 1 0100 01DA FFFF FFFF N, Z 6
    RRCF f, d, a Сдвиг вправо регистра f через перенос 1 0011 00DA FFFF FFFF C, N, Z 6
    RRNCF f, d, a Сдвиг вправо регистра f (без переноса) 1 0100 00DA FFFF FFFF N, Z 6
    SETF f,a Установка всех битов регистра f 1 0110 100A FFFF FFFF Нет 6
    SUBFWB f,d,a Вычитание f из W c заемом 1 0101 01DA FFFF FFFF C, DC, Z, OV, N 1, 2, 6
    SUBWF f,d,a Вычитание W из f 1 0101 11DA FFFF FFFF C, DC, Z, OV, N 6
    SUBWFB f,d,a Вычитание W из f c заемом 1 0101 10DA FFFF FFFF C, DC, Z, OV, N 1, 2, 6
    SWAPF f, d, a Обмен местами полу-байт регистра f 1 0011 10DA FFFF FFFF Нет 4, 6
    TSTFSZ f,a тест f, пропуск если ноль 1(2,3) 1011 BBBA FFFF FFFF нет 1, 2, 6
    XORWF f,d,a Поразрядная операция исключающего ИЛИ W и f 1 0001 10DA FFFF FFFF Z, N 1, 2, 6
    БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ
    BCF f,d,a Сброс бита в f 1 1001 BBBA FFFF FFFF Нет 1, 2, 6
    BSF f,d,a Установка бита в f 1 1000 BBBA FFFF FFFF Нет 1, 2, 6
    BTFSC f,b,a Пропуск следующей команды если бит сброшен 1(2,3) 1011 BBBA FFFF FFFF Нет 3, 4, 6
    BTFSS f,b,a Пропуск следующей команды если бит установлен 1(2,3) 1010 BBBA FFFF FFFF Нет 3, 4, 6
    BTG f,b,a Инвертирование бита в регистра f 1 0111 BBBA FFFF FFFF Нет 1, 2, 6
    СИМВОЛЬНЫЕ КОМАНДЫ
    ADDLW k Сложение W и k 1 0000 1111 KKKK KKKK C, DC, Z, OV, N
    ANDLW k Логическая операция И W и k 1 0000 1011 KKKK KKKK Z, N
    IORLW k Логическая операция ИЛИ W и k 1 0000 1001 KKKK KKKK Z, N
    LFSR f,k Загрузка регистра FSR 2 1110 1110 00FF KKKK
    1111 0000 KKKK KKKK
    Нет
    MOVLB k Пересылка литеры в регистр BSR 1 0000 0001 KKKK KKKK Нет
    MOVLW k Пересылка литеры в регистр W 1 0000 1110 KKKK KKKK Нет
    MULLW k Умножение константы и W 1 0000 1101 KKKK KKKK Нет
    RETLW k Возврат прерывания с записью константы в регистр W 2 0000 1100 KKKK KKKK Нет
    SUBLW k Вычитание W из константы 1 0000 1000 KKKK KKKK C, DC, Z, OV, N
    XORLW k Логическая операция исключающего ИЛИ W и k 1 0000 1010 KKKK KKKK Z, N
    ТАБЛИЧНЫЕ КОМАНДЫ
    TBLRD (*; *+; *-; +*) Чтение таблицы 2 0000 0000 0000 10NN
    NN=0 *
    NN=1 *+
    Нет
    TBLWT (*; *+; *-; +*) Запись в таблицу 2 0000 0000 0000 00NN
    NN=0 *
    NN=1 *+
    Нет
    КОМАНДЫ УПРАВЛЕНИЯ
    BC n Переход если установлен флаг переноса (CARRY) 1(2) 1110 0010 NNNN NNNN Нет
    BN n Переход если установлен флаг отрицательного результата (N) 1(2) 1110 0110 NNNN NNNN Нет
    BNC n Переход если сброшен флаг переноса (CARRY) 1(2) 1110 0011 NNNN NNNN Нет
    BNN n Переход если сброшен флаг отрицательного результата (N) 1(2) 1110 0111 NNNN NNNN Нет
    BNOV n Переход если сброшен флаг переполнения (OV) 1(2) 1110 0101 NNNN NNNN Нет
    BNZ n Переход если сброшен флаг нулевого результата (Z) 1(2) 1110 0001 NNNN NNNN Нет
    BOV n Переход если установлен флаг переполнения (OV) 1(2) 1110 0100 NNNN NNNN Нет
    BRA n Безусловный переход 2 1101 0NNN NNNN NNNN Нет
    BZ n Переход если установлен флаг нулевого результата (Z) 1(2) 1110 0000 NNNN NNNN Нет
    CALL k,s Вызов подпрограммы 2 1110 110S KKKK KKKK
    1111 KKKK KKKK KKKK
    Нет
    CLRWDT Сброс сторожевого таймера (WDT) 1 0000 0000 0000 0100 TO, PD
    DAW Десятичная коррекция регистра W 1 0000 0000 0000 0111 C
    GOTO k Безусловный переход 2 1110 1111 KKKK KKKK
    1111 KKKK KKKK KKKK
    Нет
    NOP Нет операции 1 0000 0000 0000 0000 Нет
    NOP Нет операции 1 1111 XXXX XXXX XXXX XXXX Нет 4
    POP Извлечение из стека 1 0000 0000 0000 0110 Нет
    PUSH Размещение в стеке 1 0000 0000 0000 0101 Нет
    RCALL n Относительный вызов подпрограммы 2 1101 1NNN NNNN NNNN Нет
    RESET Сброс 1 0000 0000 1111 1111 Команда влияет на все флаги
    RETFIE s Возврат из прерывания 2 0000 0000 0001 000S GIE/GIEH, PEIE/GIEL
    RETURN s Возврат из подпрограммы 2 0000 0000 0001 001S Нет
    SLEEP Переход в режим SLEEP 1 0000 0000 0000 0011 TO, PD
    Примечания:
    1. При выполнении операции чтение - модификация - запись с портом ввода вывода исходное значение считывается с выводов порта, а не из выходных защелок
    2. При записи в TMR0 предделитель TMR0 сбрасывается, если он подключен к TMR0
    3. Если условие истинно, или изменяется PC, команда выполняется за два цикла. Вторая команда NOP
    4. Некоторые команды имеют 2 16-ти разрядных слова. Если по каким-то причинам счетчик команд попадет на 2-е слово команды, то оно будет выполнено как NOP.
    5. Если производится запись во внутреннюю память, то следующая команда не начнет выполнятся до тех пор пока не закончится цикл записи.
    6. В ассемблере MASM по умолчанию d=1.

      Возможность размещать комментарии к сообщениям отключена.

    Метки статей

    Свернуть

    Меток пока нет.

    Новые статьи

    Свернуть

    • «NO EXCUSES» — специальная программа компании MOTOROLA
      admin
      Дмитрий Панфилов
      «NO EXCUSES» — специальная программа компании MOTOROLA

      Ни для кого не секрет, что микропроцессоры и микроконтроллеры находят самое широкое применение в различных областях науки и техники. Сегодня трудно указать область электроники, где не использовались бы микроконтроллеры. Количество простейших применений, требующих интеллектуального управления процессом, возрастает лавинообразно. Реализация гибких алгоритмов управления на базе микроконтроллеров дает широкому кругу разработчиков уникальный инструмент для создания «интеллектуальных» систем управления. Умение разумно его применять во многом определяет успех оборудования в конкурентной борьбе на рынке.

      MOTOROLA штурмует трехмиллиардный рубеж

      Статистика гласит, что наибольшую долю рынка встраиваемых систем управления занимают восьмиразрядные микроконтроллеры. Здесь показателен...
      10.02.2017, 14:56
    • Частотомер на PIC16F873 с двух строчным ЖКИ способный измерять частоты
      admin
      alt="" />Частотомер на PIC16F873 с двух строчным ЖКИ способный измерять частоты от 10Гц до 45МГц. Чувствительность по входу около 50мВ, входное сопротивление 250 Ком, входная ёмкость 15пФ. Питание девятивольтная батарея 6F22.В память можно вносить значения, которые будут, прибавлены к входной частоте или вычтены из неё.

      При входной частоте меньше 655.35 КГц вес младшего разряда 10Гц, при входной частоте меньше 6.5535 МГц вес младшего разряда 100Гц, при входной частоте больше 6.5535 МГц вес младшего разряда 1 КГц. Переключение диапазона измерения происходит автоматически.
      Схема прибора изображена на рис.1.Входной сигнал проходит через цепь J3, R8, R9, C7, C6...
      10.02.2017, 14:56
    • Управление нагрузкой 220В переменного напряжения с использованием симисторов
      admin
      Для плавного управления нагрузкой, например, лампой освещения, можно использовать симистор. Открывается симистор током при подачи на управляющий электрод импульса. Закрывается, когда ток, проходящий через него, становится равным нулю, когда переменное напряжение меняет знак.
      ...
      10.02.2017, 14:56
    • Управление модулем Ke-USB24A из Excel
      admin
      Всю прелесть программирования USB модуля Ke-USB24A можно оценить когда встает вопрос о необходимости написания программы на каком-либо не очень широко распространенном языке или для какой-либо среды, которая, казалось бы не предусматривает возможность работы с USB устройствами. Как тут быть? - разбираться с подключением библиотек, вызовами системных функци и т.д.? Все это зачастую бывает сложно. Модуль Ke-USB24A совсем другое дело!...
      10.02.2017, 14:55
    • Управление матрицей 8х8 - легко!
      admin
      Матрица управляется так же как и 7-сегментные индикаторы - динамически. Мега16 портом А управляет одной координатой (выбирает сторку для вывода инфы), порт С - выводит ту самую информацию. Информация берётся из массива.
      />

      />
      Что бы пользоваться редактором, нужно переменную STROKA из примера переименовать в rows_arr.
      Вложения: matrica8x8.fcf_avr (56 Кб) Любители ПИКов, вам не составит труда пореколбасить этот пример под ПИКи. Пришлось себя з...
      10.02.2017, 14:55
    • То, что улучшает нашу жизнь (микросхемы для домашних и игровых устройств)
      admin
      Журнал «Компоненты и технологии» №8 2001 г.
      Ракович Н. Н.

      "В человеке все должно быть прекрасно… и у него в доме тоже"
      (Почти по А. П. Чехову)
      В последнее время при чтении профессиональных электронных журналов и статей, посвященных использованию электронных компонентов, у меня возникло и окрепло унылое ощущение, что вся гигантская индустрия полупроводников существует лишь для создания компьютеров, интеллектуального промышленного оборудования и прочих столь же серьёзных изделий. Полное осознание этой тенденции произошло после знакомства с продукцией фирмы Holtek. Приятно удивило большое количество микросхем, которые не только улучшают быт или делают жизнь более безопасной, но и не дадут соскучиться при избытке свободного времени.
      Итак, что же предлагает Holtek для разработчиков бытовой электроники?
      Отдельной линейкой представлены микросхемы для цифровых медицинских термометров. Однокристальные КМОП ИС НТ7500, НТ7501, НТ7510 позволяют измерять температуру в диапазоне от +32°С до +42°С с точностью ±0,1°С. В приборах предусмотрена звуковая сигнализация окончания измерения, а автоматическое отключение питания и вывод информации на ЖКИ-дисплей в сочетании с 1,5 В батарейкой делают его очень экономичным. Модели НТ7500 и НТ7501 практически одинаковы, различаясь лишь тем, что в НТ7500 предусмотрены две шкалы (Цельсия и Фаренгейта), а в НТ7501 реализована только шкала Цельсия и функция самотестирования при включении. ИС НТ7510 идентична НТ7500, но при подключении к ней синтезатора речи НТ84018-0D можно создать "говорящий" термометр.
      Термометр фиксирует нездоровье. А причиной его могут стать самые разные проблемы, в том числе и расшалившиеся нервы. Помогая сохранить здоровье, Holtek предлагает семейство кодеров и декодеров, основное назначение которых - системы сигнализации и охраны: защита от взлома, противопожарная сигнализация, управление гаражными воротами, автомобильные охранные системы, системы безопасности, радиотелефоны и другие системы дистанционного управления.
      Рассмотрим кодеры и декодеры серий 212, 312, 318.
      Кодеры серии 212 (НТ12А/НТ12Е) - КМОП БИС для систем дистанционного управления. Они шифруют информацию, содержащую N адресных бит и 12-N бит данных. Каждый вход адреса/данных может быть установлен в одно из двух логических состояний (отсюда название серии). Зашифрованные адреса/данные передаются, начиная со старшего бита, через радиоканал или ИК-канал. Для увеличения функциональной гибкости предусмотрено управление передачей по сигналу ТЕ (НТ12Е) или по сигналам D8-D11. В НТ12Е дополнительно предусмотрен выход 38 кГц для ИК-систем.
      Декодеры серии 212 (НТ12D/НТ12F) - пара к кодерам этой же серии. Они принимают последовательные адреса и данные от кодера по радио- или по ИК-каналу. После троекратной проверки входных данных при отсутствии ошибок эти данные декодируются и поступают на выход. Декодеры серии 212 могут обрабатывать информацию, аналогичную для кодеров (N адресных бит и 12-N бит данных). НТ12D обеспечивает обработку 8 адресных бит и 4 бит данных, а НТ12F используется для декодирования 12-разрядной адресной информации.
      В кодерах серий 312 и 318 каждый вход адреса/данных может быть запрограммирован на три состояния, при...
      10.02.2017, 14:55
    Обработка...
    X