Объявление

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

Система команд PIC-контроллеров серии PIC16C8X

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

  • Система команд PIC-контроллеров серии PIC16C8X

    Каждая команда контроллеров серии PIC16C8X представляет собой 14-разрядное слово, содержащее поле кода операции OPCODE и поле операндов. Система команд включает в себя команды работы с байтами, команды работы с битами, команды управления и операции с константами.
    Для команд работы с байтами "f" обозначает регистр, с которым производится действие, а бит "d" определяет регистр назначения. При "d"=0 результат помещается в регистр W, при "d"=1 результат помещается в регистр "f", заданный в команде.
    Для команд работы с битами "b" обозначает номер бита, участвющего в команде, а "f" - регистр, в котором этот бит расположен.
    Для команд управления и операций с константами "k" обозначает 8- или 11-битовую константу или идентификатор.
    Все команды выполняются в течение одного командного цикла, кроме следующих двух случаев:
    • Переход по проверке условия, если результат проверки условия - истина.
    • Изменение счетчика команд как результат выполнения команды.
    В этих случаях команда выполняется за два цикла с выполнением второго цикла как NOP. Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время выполнения команды составит 1 мкс. Если выполняется переход по проверке условия или в результате выполнения команды изменился счетчик команд, время выполнения этой команды при тактовой частоте 4 МГц составит 2 мкс.
    Принятые обозначения

    f: Адрес регистра
    W: Рабочий регистр
    b: Номер бита в 8-ми разрядном регистре
    k: Константа
    x: Не используется. Ассемблер формирует код с х=0
    d: Регистр назначения:
    d=0 - результат в регистре W
    d=1 - результат в регистре f.
    По умолчанию d=1
    label: Имя метки
    TOS: Вершина стека
    РС: Счетчик команд
    ТО: Тайм-аут
    PD: Выключение питания
    dest: Регистр назначения: рабочий регистр W или регистр, заданный в команде
    []: Необязательные параметры
    (): Содержание
    -->: Присвоение
    <>: Битовое поле
    О: Из набора
    Обозначение Функция Циклы Код команды Биты состояния Примечания
    ADDLW Сложение константы и W 1 11 111x kkkk kkkk C, DC, Z
    ADDWF Сложение W c f 1 00 0111 dfff ffff C, DC, Z 1, 2
    ANDLW Логическое И константы и W 1 11 1001 kkkk kkkk Z
    ANDWF Логическое И W и f 1 00 0101 dfff ffff Z 1, 2
    BCF Сброс бита в регистре f 1 01 00bb bfff ffff 1, 2
    BSF Установка бита в регистре f 1 01 01bb bfff ffff 1, 2
    BTFSC Пропустить команду, если бит в f равен нулю 1 (2) 01 10bb bfff ffff 3
    BTFSS Пропустить команду, если бит в f равен единице 1 (2) 01 11bb bfff ffff 3
    CALL Вызов подпрограммы 2 10 0kkk kkkk kkkk
    CLRF Сброс регистра f 1 00 0001 1fff ffff Z 2
    CLRW Сброс регистра W 1 00 0001 0xxx xxxx Z
    CLRWDT Сброс сторожевого таймера WDT 1 00 0000 0110 0100 __ __
    TO, PD
    COMF Инверсия регистра f 1 00 1001 dfff ffff Z 1, 2
    DECF Декремент регистра f 1 00 0011 dfff ffff Z 1, 2
    DECFSZ Декремент f, пропустить команду, если 0 1 (2) 00 1011 dfff ffff 1, 2, 3
    GOTO Переход по адресу 2 10 1kkk kkkk kkkk
    INCF Инкремент регистра f 1 00 1010 dfff ffff Z 1, 2
    INCFSZ Инкремент f, пропустить команду, если 0 1 (2) 00 1111 dfff ffff 1, 2, 3
    IORLW Логическое ИЛИ константы и W 1 11 1000 kkkk kkkk Z
    IORWF Логическое ИЛИ W и f 1 00 0100 dfff ffff Z 1, 2
    MOVF Пересылка регистра f 1 00 1000 dfff ffff Z 1, 2
    MOVLW Пересылка константы в W 1 11 00xx kkkk kkkk
    MOVWF Пересылка W в f 1 00 0000 1fff ffff
    NOP Холостая команда 1 00 0000 0xx0 0000
    OPTION Загрузка регистра OPTION 1 00 0000 0110 0010
    RETFIE Возврат из прерывания 2 00 0000 0000 1001
    RETLW Возврат из подпрограммы с загрузкой константы в W 2 11 01xx kkkk kkkk
    RETURN Возврат из подпрограммы 2 00 0000 0000 1000
    RLF Сдвиг f влево через перенос 1 00 1101 dfff ffff C 1, 2
    RRF Сдвиг f вправо через перенос 1 00 1100 dfff ffff C 1, 2
    SLEEP Переход в режим SLEEP 1 00 0000 0110 0011 __ __
    TO, PD
    SUBLW Вычитание W из константы 1 11 110x kkkk kkkk C, DC, Z
    SUBWF Вычитание W из f 1 00 0010 dfff ffff C, DC, Z 1, 2
    SWAPF Обмен местами тетрад вf 1 00 1110 dfff ffff 1, 2
    TRIS Загрузка регистра TRIS 1 00 0000 0110 0fff
    XORLW Исключающее ИЛИ константы и W 1 11 1010 kkkk kkkk Z
    XORWF Исключающее ИЛИ W и f 1 00 0110 dfff ffff 1, 2
    Примечание:
    1. Если модифицируется регистр ввода/вывода (например, MOVF PORTB,1), то используется значение, считываемое с выводов. Например, если в выходной защелке порта, включенного на ввод, находится "1", а внешнее устройство формирует на этом выводе "0", то в этом разряде данных будет записан "0".
    2. Если операндом команды является содержимое регистра TMRO (и, если допустимо, d=1), то предварительный делитель, если он подключен к TMRO, будет сброшен.
    3. Если в результате выполнения команды изменяется счетчик команд, или выполняется переход по проверке условия, то команда выполняется за два цикла. Второй цикл выплняется как NOP.

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

    Метки статей

    Свернуть

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

    Новые статьи

    Свернуть

    • «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