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

  • Project Build All

  • Project Install Language Tool

  • Tool Name

  • Build Result

  • Debug. Нажмите кнопку Reset Processor

  • Step

  • Reset. Рис. 3.20.

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

  • 3.4. ОПИСАНИЕ МИКРОКОНТРОЛЛЕРА PIC16F627

  • Устройства управления роботами, схемотехника и программирование (М. Предко, 2004). Устройства управления роботами, схемотехника и программирование. Устройствауправления роботамисхемотехника и микроконтроллеров picmicro


    Скачать 6.79 Mb.
    НазваниеУстройствауправления роботамисхемотехника и микроконтроллеров picmicro
    АнкорУстройства управления роботами, схемотехника и программирование (М. Предко, 2004).pdf
    Дата29.08.2017
    Размер6.79 Mb.
    Формат файлаpdf
    Имя файлаУстройства управления роботами, схемотехника и программирование .pdf
    ТипРеферат
    #8441
    КатегорияПромышленность. Энергетика
    страница6 из 33
    1   2   3   4   5   6   7   8   9   ...   33
    File
    Open (Файл
    Открыть). После выбора файла окно MPLAB примет вид, показанный на рис. 3.14.
    Рис.
    исходного текста программы на языке С
    Для того чтобы выполнить компиляцию приложения, нажмите клавиши или выберите команды меню Project
    Build All (Проект
    Компи- лировать все). В результате будет вызван компилятор
    Наша про- грамма содержит синтаксическую ошибку - отсутствует точка с запятой после оператора
    . RBO RB1 " 1
    Если будет выдано сообщение «Unable to find build tool» (He компилятор), необходимо выполнить команду меню Project
    Install Language Tool (Проект
    Инсталлировать инструмен- тальное средство), после чего указать в поле Language Suit (Инструментальное средство) компиля- тор HI-TECH PICC Lite, в поле Tool Name (Имя инструментального средства) - PICC Lite Compiler,
    а в поле Executable (Имя исполняемого файла) - путь к исполняемому файлу PICL.EXE. Анало- гично следует задать путь к компоновщику PICC Lite Linker и имя соответствующего исполняемого
    HLINK.EXE.
    Прим. перев.

    76 Устройства управления роботами
    Поэтому компилятор выдаст сообщение
    32 : ; expected
    Здесь 32 - это номер строки, в которой обнаружена ошибка. Часто бывает (как и в нашем случае), что ошибка на самом деле содержится в предыдущей строке.
    Двойной щелчок мыши по строке сообщения об ошибке позволяет переключить- ся в окно исходного текста программы, причем курсор будет указывать то место,
    где она замечена.
    Добавим точку с запятой. Заодно исправим еще одну ошибку: укажем нулевой бит регистра В вместо первого, чтобы получилось
    = RBO "
    Сохраним изменения и снова выполним компиляцию — теперь она должна пройти без ошибок. Будут выведены на экран следующие обычные в таких случа- ях сообщения:
    Memory Usage Map:
    Program ROM
    Program ROM
    $0000 - $0005 $0006 (
    - $03FF $0004 (
    $OOOA (
    Config Data $2007 - $2007 $0001 (
    6) words
    4) words
    10) words total Program ROM
    1) words total Config Data
    Program statistics:
    Total ROM used
    Total RAM used
    10 words (1.0%)
    0 bytes (0.0%)
    Build completed successfully.
    После успешной компиляции можно закрыть окно Build Result (Результаты компиляции).
    Теперь все готово для запуска симулятора. Выполните команды меню Window
    Watch Windows
    Load Watch Window (Окно
    Окна просмотра
    Загрузить окно просмотра) и укажите файл Code\Procwat\PIC16F84.WAT. Появившееся в результате окно просмотра можно растянуть, чтобы в нем отображались одно- временно все указанные регистры, и перетащить на любое удобное место, чтобы окно не мешало отладке программы (рис
    Нажатием на самую левую кнопку панели инструментов MPLAB можно быстро переключать эту панель в режим от- ладки и обратно. Название текущего режима отображается в строке состояния в правом нижнем углу.
    Переключитесь в режим Debug.
    Нажмите кнопку Reset Processor (Сброс процессора), чтобы осуществить сброс микроконтроллера (названия кнопок отображаются в строке состояния).
    Для сброса можно также использовать клавишу F6. В строке состояния можно узнать адрес текущей команды, то есть содержимое счетчика команд (PC -
    Program Counter). После сброса он хранит значение
    Это адрес начала

    Микроконтроллеры PICmicro 77
    Рис.
    Проект готов к отладке с помощью встроенного
    программы. Первой исполняемой строкой нашей программы является та, в кото- рую мы не так давно внесли небольшие исправления. Именно эта строка будет сейчас выделена черным цветом (рис. 3.16).
    Теперь можно использовать команды Step или Step Over (соответствую- щие клавиши - F7 и F8), чтобы выполнять программу по шагам. Однако мо- жет показаться, что при этом ничего не происходит. Подсвеченной остается та же строка исходного текста программы, содержимое окна просмотра не няется.
    Как мы узнаем чуть позже в данной главе, для управления выполнением опе- раций ввода-вывода используется специальный регистр
    (tri-state buffer enable). Такой регистр существует для каждого порта ввода-вывода, имеющегося в контроллере. Каждый его бит после сброса по умолчанию устанавливается в
    Это означает, что все линии соответствующего порта используются для ввода
    информации. Нам необходимо сконфигурировать младший бит порта В для ра- боты в режиме вывода, поэтому придется сбросить младший бит регистра

    78 Устройства управления роботами
    IOE С
    Рис.
    Окно
    после подачи сигнала сброса
    в нулевое состояние. Для этого добавим к нашей программе (перед оператором бесконечного цикла) строку
    TRISBO = 0;
    Снова выполним компиляцию подадим сигнал сброса (F6) и вы- полним несколько шагов отладки (F7 или F8). Теперь все в порядке: содержимое регистров в окне просмотра с каждым шагом изменяется, для привлечения вни- мания изменившиеся значения выделяются красным цветом (рис.
    Убедитесь, что состояние младшего бита регистра PORTB меняется на каждом шаге отладки. При этом также будет «мигать» второй (считая с бит регис- тра STATUS.
    Надеюсь, что после такого элементарного вы без труда сможете использовать компилятор и отладчик для создания приложений на языке С.
    Напомним, что биты нумеруются справа налево. Во втором разряде регистра STATUS находится при- знак нулевого результата. - Прим. перев.

    Микроконтроллеры PICmicro 79
    Рис.
    Процесс отладки приложения
    3.3. ПРОСТЫЕ СХЕМЫ
    В своей книге «Handbook of я утверждал, что если какой-либо микроконтроллер требует напряжения питания более +5 В, а также применения сложных внешних схем сброса и тактирования, лучше отказаться от использова- ния такого МК. И сейчас готов повторить то же самое - наша жизнь слишком коротка, чтобы растрачивать ее на проектирование специальных схем, которые должны обеспечивать работу микроконтроллеров.
    Это тем более верно, если учесть, что в распоряжении разработчика имеется
    МК PIC16F627 с большим числом встроенных функций, при использовании кото- рого можно полностью сосредоточиться на процессе разработки программы и не тратить усилия на подключение дополнительных схем.
    Русский перевод: Предко
    Руководство по микроконтроллерам. В 2-х тт. -
    Постмаркет,
    перев.

    80 Устройства управления роботами
    Микроконтроллер PIC16F627 весьма неприхотлив, его работоспособность со- храняется при изменении напряжения питания от 2,5 до 6 В. Некоторые модели работают даже при 2,5 В. Но, как правило, разумно использовать в проектах ис- точник +5 В, чтобы избежать возможных проблем с питанием других микросхем.
    Для обеспечения такого питания я обычно применяю микросхему или стабилитрон на 5,1 В. Пример включения микросхемы 7805 показан на рис.
    Простой стабилизатор напряжения на основе стабилитрона представлен на рис. 3.19.
    Рис.
    микросхемы 7805
    в качестве источника питания микроконтроллера
    Источник питания на стабилитроне
    Для выбора номинала дополнительного резистора можно использовать фор- мулу
    R = (U -U
    Стабилитрон должен иметь максимальную рассеиваемую мощность более ст
    Кроме источника питания для работы микроконтроллера необходимо сформи- ровать сигнал начального сброса (RESET). Он должен генерироваться каждый раз при включении источника питания, а также в случае, если надо заново начать выполнение программы. Микроконтроллеры PICmicro поддерживают несколько способов формирования сигнала сброса. Сигнал RESET всегда подается низким уровнем на вход
    При этом сбрасываются все таймеры, регистры ввода- вывода и программный счетчик PC.
    Отечественный аналог
    - Прим. перев.

    Микроконтроллеры PICmicro 81
    Сброс может быть сформирован источниками трех типов: внешними, внутрен- ними и детектором падения напряжения питания (brown-out detection - BOD).
    Внутренний источник сигнала сброса, имеющийся у многих микроконтролле- ров PICmicro, срабатывает во время включения источника питания, когда напря- жение питания достигает нужного уровня. Если такая возможность отсутствует,
    можно использовать простую внешнюю схему, показанную на рис. 3.20. Она не только подает сигнал низкого уровня на вход _MCLR, но также может обеспечить ручной сброс при нажатии кнопки Reset.
    Рис. 3.20. Внешняя схема формирования сигнала RESET
    Следует помнить, что вход также используется для подачи напряжения
    Vpp. Поэтому необходимо позаботиться о том, чтобы выход- ной сигнал, формируемый схемой сброса, не достиг
    В. У некоторых микрокон- троллеров (например,
    и PIC16C505) вывод запрограммирован- для работы в качестве входного, по умолчанию используется для подачи цифровых импульсов, и необходимо записать специальное значение в регистр
    OPTION, чтобы иметь возможность использовать этот вход для сигнала сброса.
    В некоторых микроконтроллерах имеется специальный детектор падения на- пряжения питания (BOD), который формирует сигнал в случае, если напряже- ние на выводах Vdd или падает ниже заданного уровня (обычно 4,5 В).
    Хотя сами микроконтроллеры нормально работают при напряжении питания 4,5 В,
    многие другие микросхемы, которые могут использоваться совместно с МК, при таком напряжении часто неработоспособными.
    Если микроконтроллер не имеет встроенного детектора падения напряжения питания, то его несложно реализовать с помощью простой схемы, показанной на рис. 3.21.
    Некоторые микроконтроллеры имеют программируемый детектор падения напряжения питания, а другие требуют для этого использования внешних элемен- тов. Для регулирования напряжения срабатывания детектора можно собрать схе- му, подобную той, что изображена на рис.
    но проще применить специальную микросхему - помимо прочего она обеспечивает дополнительную задержку сра- батывания, за время которой напряжение питания имеет возможность принять свое стабильное значение. Такие микросхемы обычно дешевле, чем весь набор элементов, входящих в схему на рис. 3.21.

    82 Устройства управления роботами
    Рис.
    Внешняя схема формирования сигнала сброса
    при падении напряжения источника питания
    detection)
    Наконец, в микроконтроллерах может присутствовать специальный таймер PWRT (Power-up Wait Reset Timer, он упомянут в комментариях к нашей программе example.c). С его помощью микроконтроллер начинает работать не сразу, а спустя 72 мс после как сигнал на входе примет неактивный
    (высокий) уровень. Такая задержка гарантирует, что напряжение питания мик- роконтроллера и всех других схем успело стабилизироваться.
    В заключение обсудим подключение генератора тактовых импульсов. Именно эти импульсы управляют процессом выполнения всех операций в микроконтрол- лере и синхронизируют работу всех его таймеров. Существует восемь способов обеспечить тактирование микроконтроллеров PlCmicro. Каждый из этих спосо- бов проявляет свои достоинства в различных ситуациях.
    Проще всего применить релаксационный
    (рис. 3.22). Такая вне- шняя схема использовалась с первыми микроконтроллерами PIC. Здесь частота генерируемых импульсов определяется сопротивлением резистора и емкостью конденсатора. Схема очень простая, но ее стабильность невысока.
    Рис. 3.22. Использование RC-генератора
    импульсов

    Микроконтроллеры
    83
    В более поздних микроконтроллерах используется встроенный RC-генератор
    : регулировочным резистором (для частоты). Обычно стабильность работы такого генератора составляет около
    Если этого недостаточно, то все- можно использовать внешний генератор, для подключения которого имеются вывода.
    RC-генератор некоторых микроконтроллеров (например, PIC16F627) имеет встроенный конденсатор, но требует подключения внешнего резистора, номинал которого можно выбирать исходя из требуемой частоты генерации. Такое реше- ние обеспечивает малую стоимость тактового генератора, но позволяет получить очень высокую стабильность частоты. Следует помнить, что резистор с одним и тем же сопротивлением при использовании разных микроконтроллеров может соответствовать различной частоте генерации.
    Для повышения стабильности можно использовать кварцевые или керамичес- кие резонаторы, которые подключаются к микроконтроллеру по схеме, показан- ной на рис. 3.23.
    Тактовые синхроимпульсы микроконтроллера
    Рис. 3.23. Использование керамического резонатора для генерации тактовых импульсов
    Три различных варианта резонаторов, применяемые для тактирования микро- контроллеров PICmicro, перечислены в табл. 3.4. Нужный режим задается в слове конфигурации директивой CONFIG.
    Таблица 3.4. Керамические и кварцевые резонаторы
    Обозначение
    Частота
    0-200 кГц
    200 кГц
    - 4
    Более 4 МГц
    Примечание
    Низкая потребляемая мощность
    Обычная частота тактирования
    Повышенная частота
    Speed)
    Сигнал с вывода OSC2 может быть использован для тактирования других КМОП
    микросхем. Однако следует иметь в виду, что при подключении к генератору других

    84 Устройства управления роботами входов его частота изменится, а в некоторых случаях генерация может прекра- титься.
    Наконец, можно взять тактовые импульсы от внешнего источника, подключен- ного к входу OSC1. Неиспользуемый в этом случае вход OSC2 в некоторых микро- контроллерах PIC можно запрограммировать на ввод или вывод информации.
    В новых микроконтроллерах PIC18C/Fxx существует еще один режим, осно- ванный на применении контура фазовой автоподстройки частоты (ФАПЧ). С его помощью невысокая частота тактового генератора перед тем, как она будет ис- пользована для тактирования микроконтроллера, умножается в несколько раз.
    Такой способ снижает мощность, потребляемую тактовым генератором от источ- ника питания, а также уменьшает уровень электромагнитных помех.
    3.4. ОПИСАНИЕ МИКРОКОНТРОЛЛЕРА PIC16F627
    Чтобы читатель без проблем разбирать примеры программ на языке С для микроконтроллера PIC16F627, представленные в этой книге, необходимо пони- мать некоторые особенности его устройства и принципа работы. Этот МК под- держивает большое число функций ввода-вывода - они характерны для многих представителей семейства микроконтроллеров PICmicro, в том числе и для более ранней модели
    Поэтому приведенное здесь описание основных особен- ностей PIC16F627 будет полезно всем, кто хочет разрабатывать свои устройства на основе любого МК фирмы Microchip.
    Разводка выводов микроконтроллера PIC16F627 показана на рис. 3.24. Как можно видеть, многие выводы предназначены для выполнения двух-трех различ- ных функций.
    Рис. 3.24.
    микроконтроллера
    Все МК PICmicro основаны на гарвардской архитектуре, поэтому структурная схема PIC16F627, показанная на рис. 3.25, характерна для всех микроконтролле- ров фирмы Microchip. Для обеспечения высокой эффективности выполнения функций ввода-вывода процессор и периферийные устройства интегрированы на одном кристалле.

    Микроконтроллеры PICmicro 85
    Микро- контроллер
    PIC16LF627
    памяти данных
    Flash- памяти программ
    Объем памяти данных RAM
    Объем памяти
    EEPROM
    128x8 128x8 128x8 128x8 1
    Рис. 3.25.
    Работая с компилятором
    Lite, программист не должен досконально разбираться в особенностях архитектуры микроконтроллера. Но необходимо четко осознавать связь между аппаратными устройствами МК и форматом его

    86 Устройства управления роботами программно доступных регистров, предназначенных для управления работой этих устройств.
    Регистры микроконтроллера PIC16F627 показаны на рис. 3.26. Для хранения данных, необходимых для программы, предназначены регистры общего
    Нереализованные ячейки памяти, читаются как О
    * Регистр адресации (физически не существует)
    Рис. 3.26. Карта памяти микроконтроллера

    Микроконтроллеры PICmicro 87
    назначения
    General Purpose Registers - GPR). Компилятор
    Lite авто- матически в этих регистрах все переменные, описанные в программе.
    Особенность микроконтроллеров PICmicro - наличие специального конфи- гурационного каждый бит которого определяет один из следующих ре- жимов:
    • тип используемого тактового генератора;
    • режим защиты кода программы;
    • параметры сброса;
    • режим работы сторожевого таймера (Watch-Dog Timer - WDT);
    • режим отладки PIC16F87x.
    Программист должен позаботиться о том, чтобы корректно установить состо- яния всех разрядов регистра конфигурации; в противном случае правильная ра- бота микроконтроллера может быть нарушена. Указанное в программе значение автоматически записывается в этот регистр программатором.
    В микроконтроллерах младшего у конфигурационного регистра нет собственного адреса, поэтому программист не имеет к нему непосредственного до- ступа и не может, скажем, в своей программе прочитать записанное в него значе- ние. В
    среднего этот регистр всегда имеет адрес 0x02007. Однако он также недоступен для чтения.
    Включаемые файлы .inc, всегда используемые в ассемблерных программах,
    содержат необходимые определения каждого значения, записываемого в конфи- гурационный регистр, поэтому в директиве CONFIG программист может ис- пользовать имена режимов и поразрядную операцию AND.
    Компилятор PICC Lite имеет псевдофункцию где
    - это значение (слово конфигурации), предназначенное для записи в конфигурационный регистр. После компиляции оно попадает в НЕХ-файл и используется програм- матором, как и все остальные содержащиеся там команды и данные. Разумеется,
    для этого программатор должен быть специально спроектирован для работы с микроконтроллерами PICmicro. Некоторые программаторы требуют, чтобы про- граммист осуществил запись слова конфигурации вручную; если вы забудете сде- лать это, могут возникнуть проблемы.
    По умолчанию все биты конфигурационного регистра установлены в
    Выше мы описали возможные типы генераторов, используемых для тактиро- вания микроконтроллеров PICmicro. Если реально имеющийся в системе такто- вый генератор не соответствует тому, который записан в слове конфигурации, то микроконтроллер может работать неустойчиво (если вообще будет
    При программировании МК разработчик должен решить, будет ли он исполь- зовать сторожевой таймер (WDT). В большинстве микроконтроллеров PICmicro единичное значение бита разрешения, устанавливаемое в регистре конфигурации по умолчанию, означает, что сторожевой таймер включен. Это приводит к тому,
    ваш микроконтроллер (если не предпринять специальных действий) будет
    К нему относятся 12-разрядные МК PIC12 и
    - Прим.
    К нему относятся 14-разрядные МК PIC16. -
    перев.

    88 Устройства управления роботами выполнять общий сброс каждые 18 мс - 2,3 с. Чтобы этого не происходило, необ- ходимо либо запретить работу сторожевого таймера, либо обеспечить выполне- ние машинной команды
    (clear WDT — сброс сторожевого таймера) через определенное время. Длительность интервала обычно выбирается равной поло- вине длительности промежутка времени, которое требуется сторожевому тайме- ру, чтобы вызвать сброс
    Разработчик должен помнить, что у различных микроконтроллеров PICmicro существуют некоторые особенности реализации конфигурационного регистра,
    игнорирование которых может привести к тому, что микроконтроллер будет без- надежно испорчен. У старых МК, имеющих для хранения программ память
    EEPROM с ультрафиолетовым стиранием, защита кода программы выполнена в виде специального металлического экрана, который предотвращает попадание ультрафиолетовых лучей на поверхность чипа через специальное окошко, распо- ложенное на корпусе микроконтроллера.
    В новых МК защита кода осуществляется путем установки нужного значения в разряде
    (code protection) регистра конфигурации. В результате исключается возможность умышленного частичного стирания памяти микроконтроллера (на- пример, переустановки бита которое позволило бы прочитать записанную в МК программу с целью ее последующего «пиратского» использования.
    Если при программировании вы случайно установите такую защиту, то уже и сами не сможете изменить код программы, а тем более записать в МК новую программу. Чтобы иметь возможность использовать микроконтроллер в своих дальнейших разработках, в директиве CONFIG следует указывать параметр
    CP_OFF (защита выключена).
    Некоторые МК PICmicro имеют возможность
    программирова-
    ния (Low Voltage Programming - LVP). Некорректное использование этого режи- ма может привести к неправильной работе микроконтроллера, так как при включенном LVP порт RB4 неспособен выполнять свои обычные функции ввода- вывода.
    В табл. 3.5 показано назначение различных разрядов регистра конфигурации,
    а в табл. 3.6 приведены четыре наиболее часто используемых значения, записыва- емые в этот регистр с помощью псевдофункции CONFIG. Во всех четырех слу- чаях защита кода программы и данных выключена.
    3.5. Назначение разрядов конфигурационного
    Номер бита Имя Значение
    Эти разряды
    битами 11 и 10, которые
    иметь то же состояние.
    1х — защита программы выключена;
    адресов
    00 - защищен весь диапазон адресов программы
    Если из-за программных ошибок или какого-либо аппаратного сбоя управляющая программа завис- то команда сброса сторожевого таймера не выполнится вовремя. В результате произойдет сброс,
    и контроллер снова продолжит выполнение своих функций. - Прим.

    Микроконтроллеры
    89
    Таблица 3.5.
    разрядов конфигурационного регистра (окончание)
    Номер бита Имя Значение
    • Не используется
    CPD
    1 —
    памяти данных выключена;
    1 - защита памяти данных включена
    LVP
    1 — включен
    режим программирования
    для управления
    О — низковольтный режим программирования выключен
    используется в качестве порта
    6
    5
    3
    BODEN
    1 — включен
    падения напряжения
    0 —
    выключен
    1 — вывод RA5/ MCLR используется для подачи сигнала сброса
    _MCLR;
    Разрешение работы таймера PWRT, обеспечивающего задержку
    (72
    отпускания сигнала сброса после включения питания:
    1 — таймер
    включен;
    О —
    PWRT выключен
    1 — сторожевой таймер
    включен;
    О — сторожевой таймер
    выключен
    FOSC2:FOSCO Выбор типа тактового генератора:
    используется внешний резистор, подключаемый к выводу
    RA7. При этом вывод RA6 может использоваться для подачи
    на внешние
    тактовых импульсов,
    которых
    в четыре раза меньше, чем частота тактирования
    период
    на каждую выполняемую машинную
    — то же, но RA6 используется для обычного ввода-вывода;
    101 - внутренний RC-генератор. Вывод RA6 используется как
    выход тактовых импульсов
    и в случае
    100 - внутренний RC-генератор, но RA6 используется
    для обычного ввода-вывода;
    - внешний тактовый генератор, подключаемый к выводу RA7.
    Вывод RA6 используется для обычного ввода-вывода;
    - генератор HS
    табл. 3.4);
    001 - генератор XT;
    000 - генератор LP
    3.6. Часто используемые
    записываемые в конфигурационный регистр
    1   2   3   4   5   6   7   8   9   ...   33


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