MPSystems
  MPSystems :: Ресурс посвященный предмету "Микропроцессорные системы" :: АВТ С-73 :: МГИЭМ
MPSystems
Главная
Лекции
Download
Help
Ссылки
Контакты
 
 Help :: Разработка электронных устройств на PIC-контроллерах


Для начала достаточно иметь документацию на PIC16F84A, который наиболее удобен для начала изучения всего семейства PIC-micro. Освоив этот контроллер легко можно перейти на любой другой.

Разработка устройств на микроконтроллерах обычно производится в несколько следующих этапов. Первый – это постановка задачи и составление алгоритма работы устройства. Как это делать, было хорошо описано в журнале «Радио» N11,12 за 2000г. Поэтому пока сильно заострять внимание на этом этапе не буду. Отмечу лишь, что это один из важнейших этапов, который определяет всю дальнейшую работу.

После того, как появился какой-то алгоритм, представляющийся работоспособным, разработчик садится за компьютер и начинает писать программу (обычно не всю сразу, а по частям). Параллельно с написанием программы собирается макет устройства, на котором будет производиться отладка. Как только текст программы готов, производится ассемблирование, т.е. перевод мнемонических ассемблерных кодов в двоичный формат, который затем можно «зашить» в ПЗУ контроллера с помощью специального программатора. Однако, обычно после первого ассемблирования в контроллер программа не «шьется», т.к. даже у самого квалифицированного программиста в ней наверняка будут логические ошибки. Поэтому прежде исполнение программы проверяется в специальном программном эмуляторе контроллера, в котором и устраняются найденные ошибки. Далее производится прошивка контроллера и отладка программы уже на работающем макете устройства.

В принципе текст программы можно писать в обычном текстовом редакторе, сохраняя его в файле с расширением .asm. Далее этот файл можно ассемблировать, загружать в программный эмулятор или «прошивать» ПЗУ контроллера. Лет пять назад примерно так и делалось. Однако сейчас существует так называемая интегрированная среда разработки (IDE – integrated development environment), в которой сосредоточены все инструментальные средства - MPLAB. Разработана она производителем PIC-контроллеров и распространяется бесплатно. Загрузить ее можно с сервера Microchip. На данный момент вышла уже версия 5.20.

Что же представляет собой PIC-контроллер с точки зрения программиста? Прежде всего это набор ячеек памяти, называемых регистрами. Все имеющиеся в распоряжении программиста команды в конечном счете предназначены для изменения содержимого регистров. Каждый регистр имеет свой уникальный адрес, зная который можно к нему обратиться и произвести с ним требуемую операцию. Все вместе адреса образуют адресное пространство контроллера, или иначе – ОЗУ. Физически регистры объединены между собой через шину данных. Так же к шине данных подключены АЛУ и рабочий регистр W, который собственного адреса не имеет, и через который производится большинство операций контроллера. Все регистры являются восьмибитными, хотя в некоторых из них реально доступно меньшее число бит. Шина данных так же восьмибитная. Поэтому контроллер и называется восьмибитным.

Регистры делятся на две категории: регистры общего назначения (РОН) и регистры специального назначения. Регистры общего назначения – это просто ячейки памяти, предназначенные для хранения байта информации. Регистры специального назначения определяют режимы работы самого контроллера. Например, порты ввода/вывода являются регистрами специального назначения. Для того, что бы, допустим, считать значение входного логического сигнала на выводе N8 контроллера PIC16F84A, необходимо прочитать значение бита 2 регистра специального назначения с адресом 0x06.

Помимо ОЗУ, на кристалле контроллера обязательно имеется память программ (ПЗУ). Именно в нее и записывается исполняющийся код, который получается после ассемблирования текста программы. У каждой ячейки, находящейся в ПЗУ так же имеется свой уникальный адрес. Непосредственного доступа к памяти программы у программиста нет. Он только может менять адрес той команды, которая должна быть исполнена. Этот адрес доступен через два регистра специального назначения, которые называются программным счетчиком. В этом счетчике находится адрес той команды, которая должна быть исполнена. По включению контроллера или после сброса, в счетчике будет записан 0 (для PIC16F84A). Таким образом, первой будет исполнена команда, находящаяся в ПЗУ по адресу 0. После исполнения команды, содержимое счетчика автоматически увеличивается на единицу, и далее будет выполнена команда, расположенная в ПЗУ по адресу 1. Так будет продолжаться до тех пор, пока не исполнится команда перехода, которая принудительно запишет в программный счетчик какое-нибудь другое значение.

Создано по материалам Subscribe.ru

Design by Krj   Support by Barmaley   Content by Leosya
Hosted by uCoz