Система команд микроконтроллера PIC16F877

Система команд аккумуляторного типа. Организация памяти программ, памяти данных. Самые важные и часто используемые регистры специального назначения, которые используются для конфигурирования, задания режимов и отслеживания состояния микроконтроллера.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид контрольная работа
Язык русский
Дата добавления 04.09.2010
Размер файла 5,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

система команд микроконтроллера PIC16F877

Рассмотрим особенности системы команд микроконтроллеров PIC16F87X.

Система команд аккумуляторного типа, ортогональна и разделена на три основных группы:

Байт ориентированные команды;

Бит ориентированные команды;

Команды управления и операций с константами.

Все команды выполняются за один машинный цикл, кроме команд условия, в которых получен истинный результат и инструкций изменяющих значение счетчика команд РС. В случае выполнения команды за два машинных цикла, во втором цикле выполняется инструкция NOP. Один машинный цикл состоит из четырех тактов генератора. Для тактового генератора с частотой 4 МГц все команды выполняются за 1мкс, если условие истинно или изменяется счетчик команд РС, команда выполняется за 2мкс.

Каждая команда микроконтроллеров РIС16F87Х состоит из одного 14-разрядного слова, разделенного на код операции (ОРСODЕ), определяющий тип команды и один или несколько операндов, определяющие операцию команды. Команды разделены на следующие группы: байт ориентированные команды, бит ориентированные команды, команды управления и операций с константами. Описание полей кода операции смотрите в таблице комманд

Для байт, ориентированных команд `f' является указателем регистра, а `d' указателем адресата результата. Указатель регистра определяет, какой регистр должен использоваться в команде. Указатель адресата определяет, где будет сохранен результат. Если 'd'=0, результат сохраняется в регистре W. Если 'd'=1, результат сохраняется в регистре, который используется в команде.

В бит ориентированных командах 'b' определяет номер бита участвующего в операции, а'f'- указатель регистра, который содержит этот бит.

В командах управления или операциях с константами 'к' представляет восемь или одиннадцать бит константы или значения литералов (табл. 1.1).

Таблица 1.1 - система команд МК РIС16F87Х

Структурная схема микроконтроллера PIC16F877A

Назначение выводов микроконтроллера PIC16F877

Организация памяти PIC16F87X

В микроконтроллерах PIC16F87X имеется два вида памяти. Память программ и память данных имеют раздельные шины данных и адреса, что позволяет выполнять параллельный доступ. Дополнительную информацию по организации памяти смотрите в технической документации Microchip DS33023 "PICmicro™ Mid-Range Reference Manual".

Организация памяти программ. Микроконтроллеры PIC16F87X имеют 13-разрядный счетчик команд PC, способный адресовать 8К х 14 слов памяти программ. Физически реализовано FLASH памяти программ 8К х 14 в PIC16F877/876 и 4К х 14 в PIC16F873/874. Обращение к физически не реализованной памяти программ приведет к адресации реализованной памяти.

Адрес вектора сброса - 0000H. Адрес вектора прерываний - 0004H.

Рис. 1-2 Организация памяти Рис. 1-3 Организация памяти в микроконтроллере PIC16F877/876 в микроконтроллере PIC16F874/873

Организация памяти данных

Память данных разделена на четыре банка, которые содержат регистры общего и специального (SFR) назначения. Биты RP1 (STATUS<6>) и RPO (STATUS<5>) предназначены для управления банками данных. В таблице показано состояние управляющих битов при обращении к банкам памяти данных.

Объем банков памяти данных до 128 байт (7Fh). В начале банка размещаются регистры специального назначения, затем регистры общего назначения выполненные как статическое ОЗУ. Все реализованные банки содержат регистры специального назначения. Некоторые, часто используемые регистры специального назначения могут отображаться и в других банках памяти. К регистрам общего назначения можно обратиться прямой или косвенной адресацией, через регистр FSR.

Рис. 1-4 Карта памяти данных микроконтроллеров PIC16F877/876

Регистры специального назначения

С помощью регистров специального назначения осуществляется управление функциями ядра и периферийными модулями микроконтроллера. Регистры специального назначения реализованы как статическое ОЗУ.

В этом разделе будут кратко описаны основные регистры, управляющие функциями ядра микроконтроллера. Более подробную информацию о регистрах специального назначения и регистрах периферийных модулей смотрите в технической документации по данному семейству микроконтролеров PIC16F87X.PDF.

Ниже, мы подробно рассмотрим самые важные и наиболее часто используемые регистры специального назначения, которые используются для конфигурирования, задания режимов и отслеживания состояния микроконтроллера и с которыми нам предстоит постоянно сталкиваться в процессе выполнения лабораторного практикума.

Регистр INTCON

Регистр INTCON доступен для чтения и записи. Он содержит биты разрешений и флаги прерываний: переполнение TMR0; изменения уровня сигнала на выводах PORTB; внешний источник прерываний RB0/INT.

Примечание. Флаги прерываний устанавливаются при возникновении условий прерываний вне зависимости от соответствующих битов разрешения и бита общего разрешения прерываний GIE (INTCON<7>).

Регистр INTCON (адрес OBh, 8Bh, 10Bh или 18Bh)

Регистр РIЕ1

Регистр PIE1 доступен для чтения и записи, содержит биты разрешения периферийных прерываний.

Примечание. Чтобы разрешить периферийные прерывания необходимо установить в '1' бит PEIE(INTCON<6>).

Регистр PIE1 (адрес 8Ch)

Регистр PIR1

Регистр PIR1 доступен для чтения и записи, содержит флаги прерываний периферийных модулей.

Примечание. Флаги прерываний устанавливаются при возникновении условий прерываний вне зависимости от соответствующих битов разрешения и бита общего разрешения прерываний GIE (INTCON<7>).

Программное обеспечение пользователя должно сбрасывать соответствующие флаги при обработке прерываний от периферийных модулей.

Модуль таймеров TMR0 и TMR1

TMR0 - таймер/счетчик, имеет следующие особенности:

· 8-разрядный таймер/счетчик;

· Возможность чтения и записи текущего значения счетчика;

· 8-разрядный программируемый предделитель;

· Внутренний или внешний источник тактового сигнала;

· Выбор активного фронта внешнего тактового сигнала;

· Прерывания при переполнении (переход от FFh к 00h).

Когда бит T0CS сброшен в “0” (OPTION_REG<5>), TMR0 работает от внутреннего тактового сигнала. Приращение счетчика TMR0 происходит в каждом машинном цикле (если предделитель отключен). После записи в TMR0 приращение счетчика запрещено два следующих цикла. Пользователь должен скорректировать эту задержку перед записью нового значения в TMR0.

Если бит T0CS установлен в “1” (OPTION_REG<5>), TMR0 работает от внешнего источника тактового сигнала с входа RA4/TOCKI. Активный фронт внешнего тактового сигнала выбирается битом T0SE в регистре OPTION_REG<4> (T0SE=0 - активным является передний фронт сигнала).

Предделитель может быть назначен для WDT или TMRO, в зависимости от состояния бита PSA (OPTION_REG<3>).

Прерывания от TMR0

Прерывания от TMR0 возникают при переполнении счетчика, т.е. при переходе его значения от FFh к 00h. При возникновении прерывания устанавливается в “1” бит T0IF(INTCON<2>). Само прерывание может быть разрешено/запрещено установкой/сбросом бита T0IE (INTCON<5>). Флаг прерывания от TMR0 - T0IF (INTCON<2>) должен быть сброшен в подпрограмме обработки прерываний. В SLEEP режиме микроконтроллера модуль TMR0 выключен и не может генерировать прерывания.

Предделитель

8-разрядный предделитель может быть назначен либо таймеру TMR0 или WDT. Т.е, если предделитель назначен для TMR0, то WDT работает без предделителя, и наоборот. Коэффициент деления предделителя определяется битами PSA и PS2:PS0 в регистре OPTION_REG<3:0>.

Если предделитель включен для TMR0, любые команды записи в TMR0 (например, CLRF , MOVWF , BSF и т.д.) сбрасывают предделитель. Когда предделитель подключен к WDT, команда CLRWDT сбросит предделитель вместе с WDT. Предделитель также очищается при сбросе микроконтроллера. Предделитель недоступен для чтения/записи.

Примечание. Запись в регистр TMR0 сбросит предделитель, если он подключен к TMR0, но не изменит его режима работы.

Модуль таймера TMR1

TMR1 - 16-разрядный таймер/счетчик, состоящий из двух 8-разрядных регистров (TMR1H и TMR1L) доступных для чтения и записи. Счет выполняется в спаренных регистрах (TMR1H : TMR1L), инкрементируя их значение от 0000h до FFFFh и далее считает с 0000h. При переполнении счетчика устанавливается в “1” флаг прерывания TMR1IF в регистре PIR1<0>. Само прерывание можно разрешить/запретить установкой/сбросом бита TMR1IE в регистре Р1Е1<0>. TMR1 может работать в двух режимах - режим таймера и режим счетчика.

Включение модуля TMR1 осуществляется установкой бита TMR1ON в “1” (Т1СОN<0>). Битом TMR1CS (T1CON<1>) выбирается источник тактовых импульсов. В режиме таймера, TMR1 инкрементируется на каждом машинном цикле. Если TMR1 работает с внешним источником тактового сигнала, то приращение происходит по каждому переднему фронту сигнала.

Управляющие биты TMR1 находятся в регистре T1CON.

Регистр T1CON (адрес 10h)

Литература

1. Кодчерин Н.Г. «Микроконтроллеры PIC16F87X». - М.: ПРОГА, 2005. - 221 с.: ил.


Подобные документы

  • Формирование кодовой таблицы аналогового сигнала. Общая характеристика микроконтроллера P83C51RB+. Дискретизация заданного сигнала генератора. Организация памяти и программная модель, регистры SFR микроконтроллера. Параллельные порты ввода/вывода.

    курсовая работа [1005,6 K], добавлен 07.08.2013

  • Исследование системы команд языка Assembler для микроконтроллера MSC-51. Выполнение каждого шага программы и фиксирование состояния регистров микроконтроллера с помощью скриншота экрана компьютера. Скриншоты работоспособности написанной программы.

    лабораторная работа [1,6 M], добавлен 18.05.2014

  • Изучение функциональных возможностей программы ISIS Proteus, системы команд и способов адресации данных в микро ЭВМ семейства МК51. Определение состояния регистров и внутренней памяти данных после выполнения программы. Сохранение содержимого в стеке.

    лабораторная работа [89,7 K], добавлен 16.04.2014

  • Общая характеристика микроконтроллера PIC16F873A, его корпус, технические параметры, структурная схема и организация памяти. Подключение питания и тактирование, анализ принципиальной схемы. Разработка рабочей программы для заданного микроконтроллера.

    курсовая работа [667,0 K], добавлен 23.04.2015

  • Понятие о микропроцессорах и микроконтроллерах. Блок управления и его функции. Структура разряда порта микроконтроллера. Структура внутренней памяти данных. Работа с внешней памятью данных и подключение внешней памяти. Принцип работы и настройка таймера.

    презентация [665,8 K], добавлен 06.02.2012

  • Использование микроконтроллеров AVR фирмы Atmel в проектируемой аппаратуре. Архитектура и общие характеристики прибора, предназначение арифметики логического устройства и понятие флэш-памяти. Формат пакета данных, алгоритм их передачи и система команд.

    контрольная работа [427,3 K], добавлен 12.11.2010

  • Функциональная спецификация и структурная схема электронных автомобильных часов-термометра-вольтметра. Разработка алгоритма работы и принципиальной электрической схемы. Получение прошивки программы для памяти микроконтроллера в результате ассеблирования.

    курсовая работа [2,0 M], добавлен 26.12.2009

  • Выбор структуры одноплатного микроконтроллера. Модули памяти микроконтроллера. Селектор адреса портов ввода/вывода и возможность изменения селектируемых адресов. Деление адресного пространства на окна. Нумерация точек в схеме цифрового фильтра.

    курсовая работа [204,3 K], добавлен 10.11.2013

  • Общая характеристика операций, выполняемых по командам базовой системы. Описание и мнемокоды команд, используемых при разработке программы на языке AVR Ассемблера. Основные принципы работы команд с обращением по адресу SRAM и к регистрам ввода–вывода.

    реферат [148,4 K], добавлен 21.08.2010

  • Функциональная спецификация и структурная схема автомобильных вольтметра-термометра-часов. Описание ресурсов микроконтроллера, назначение выводов микросхемы. Ассемблирование и разработка алгоритма работы, коды кнопок и описание команд управления.

    курсовая работа [2,0 M], добавлен 27.12.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.