Нас трудности не пугают. Нам их только подавай! IE-ROBOPICA – для новичков в радиоделе

April 14, 2014 by admin Комментировать »

На диске в комплекте IE-ROBOPIC есть две среды программирования микроконтроллера PIC16F887

– это программа MicroC и программа MPLAB v836 Обе программы достойны внимания, обе программы поддерживают разработку на языке Си, первая, что называется, по  определению, вторая позволяет при установке загрузить и установить компилятор HI-TECH Я установил обе программы Но начну с программы MPLAB Вернее, начну с того, почему я выбрал конструктор IE- ROBOPIC

В набор входит программатор, совместимый с программатором PICkit2 А программа MPLAB работает с этим программатором «напрямую»:

Рис 387 Сообщение MPLAB при выборе программатора

Конечно, сам программатор я предварительно подключил к USB порту Так что, если мне захочется использовать эту среду программирования, будет удобно её использовать

Мало того, программа Flowcode тоже работает с программатором PICkit2, достаточно указать этот программатор при установке программы (начиная с версии 4) Но всё по порядку

С момента разработки конструктора прошло много времени У меня на компьютере операционная система Windows Vista И первый запуск среды разработки MicroC оказывается неудачным:

Рис 388 Запуск программы MicroC

При попытке загрузить библиотеку программа «виснет» Не собираюсь искать причины этого явления, но подозреваю, что проблемы связаны с версией операционной системы Следуя советам руководства, я удаляю эту версию и, загрузив с сайта производителя программы более свежую версию, намереваюсь работать далее с ней

Предварительно, читая руководство, пытаюсь загрузить hex-файл с помощью программы PICkit2 Но и здесь сталкиваюсь с непредвиденной ситуацией: файл загружается, но при проверке оказывается, что вся память обнулена Помогает решить проблему изменение настроек программы, обслуживающей программатор (сказать по правде, и версию программы я скачиваю последнюю):

Рис 389 Изменение настроек программы PICkit2

Программу Flowcode я устанавливал давно, переустанавливать не очень хочется, чтобы при установке выбрать программатор PICkit2 Но на форуме flowcodeinfo эту проблему уже обсудили

– достаточно изменить настройки В основном меню в разделе Чип есть подраздел:

Рис 3810 Раздел настройки программатора

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

Рис 3811 Область настройки программатора

В окно Размещение, используя кнопку Обзор, вписываем путь к программатору (поддержке программатора):

C:\Program Files\Matrix Multimedia\Flowcode V4\Tools\PICkit2\pk2cmdexe

А в окно Параметры добавляем:

-PPIC%p -F%fhex -M -A5 -T -R -BC:\Program Files\Matrix Multimedia\Flowcode V4\tools\PICkit2\

Галочку для Использовать настройки внешней программы снимаем (на всякий случай) И слово конфигурации (второе, думаю, получится по умолчанию) в разделе Чип подраздел Конфигурация тоже лучше, наверное, добавить: 0x2007,0x2ff2

Теперь можно из программы Flowcode компилировать непосредственно в микросхему, используя раздел Чип, подраздел Компиляция в Chip (или использовать кнопку на инструментальной панели)

Рис 3812 Загрузка программы в микросхему из Flowcode

Конечно, лучше бы при установке выбрать нужный программатор, но кто знал Я не работаю в программе, использовал её для написания книги о программе, и не намеревался покупать программатор

В любом случае, теперь можно использовать несколько сред программирования Обычно я советую использовать Flowcode хотя бы в демо-версии для того, чтобы быстрее можно было освоить программирование на языке Си Так программа включения светодиода, выполненная в среде разработки Flowcode, после компиляции в Си выглядит следующим образом (если убрать из неё все вспомогательные определения и включения):

void main()

{

//Initialisation ansel = 0

anselh = 0

//Interrupt initialisation code option_reg = 0xC0

trisb = trisb &amp 0xf7

//Program if (1)

portb = (portb &amp 0xf7) | 0x08

else

}

portb = portb &amp 0xf7

Файл  на  Си,  конечно,  значительно  длиннее,  и  ничего  ненужного  в  нём  нет,  но  пока  меня интересует собственно программа, которая начинается с void main()

Разобраться в том, что здесь написано, и почему написано так, очень полезно Возьмём этот же пример из руководства к конструктору IE-ROBOPICA

void main()

{

TRISBF3=0 // Вывод RB3 ==> Выход PORTBF3=1 // Включить RB3

}

Если этот пример вставить в среду разработки MicroC, то его можно откомпилировать и загрузить в микроконтроллер

Рис 3813 Самый простой пример в программе MicroC PRO

Начиная работу с MicroC PRO, как и с MicroC (описанной в руководстве), следует создать новый проект (основное меню, Project->New Project) В создании проекта помогает помощник:

Рис 3814 Помощник создания нового проекта

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

Рис 3815 Страница задания свойств проекта

Отмеченная частота (по умолчанию) относится к частоте внутреннего тактового генератора Во многих случаях удобно использовать этот встроенный генератор Однако на плате конструктора установлен кварцевый резонатор, поэтому частоту следует изменить на 20 МГц

На следующих страницах можно добавить файлы в проекты и включить всё необходимое из библиотеки Завершается диалог окном, где можно выбрать опцию:

Рис 3816 Опция вызова диалога задания слова конфигурации

В этом случае, нажав кнопку Finish, вы получите возможность задать необходимые установки слова конфигурации:

Рис 3817 Диалог задания слова конфигурации

Вернёмся к простейшей программе на языке Си Загрузив программу, созданную в MicroC PRO, с помощью программы PICkit2 в микросхему на макетной плате, вы можете убедиться, что обе программы работают одинаково Можно проверить это и в программе ISIS (Proteus)

Рис 3818 Проверка программы в Proteus

Но вид двух одинаково работающих программ очень различен Дело в том, что программа на Си от Flowcode – это результат трансляции с графического языка на язык Си Поэтому программа имеет очень общий вид Вид пригодный для всех случаев А в программе для MicroC операции совершенно конкретны

Из практики работы с «железом» все мы знаем, что одинаково работающие устройства могут быть построены из разных компонентов Тоже можно сказать и о программах

Строка: trisb = trisb &amp 0xf7 выделяет третий бит регистра TRISB и устанавливает его в ноль, определяя работу этого бита на выход А строка: portb = (portb &amp 0xf7) | 0x08 устанавливает этот бит в единицу, выделив этот бит с помощью операции И, а операцией ИЛИ переводя его в единицу Условие if(1) выполняется всегда, таким образом, else выполняться не будет

Чтобы убедиться в том, что и компилятор Си программы Flowcode понимает не только общий вид кода, можно создать такую программу:

Рис 3819 Программа, использующая вставку на языке Си, в программе Flowcode

Её можно проверить на макетной плате, можно проверить в программе Proteus, чтобы убедиться

–      результат работы всех трёх программ одинаков А что же MPLAB

Я не забыл об этой среде программирования После запуска программы, выбрав в пункт Project Wizard раздела Project основного меню, можно, как и с MicroC PRO указать имя проекта, выбрать модель микроконтроллера, указать компилятор (я выбрал HI-TECH) и место расположения проекта

Не забудем и слово конфигурации (Configure->Configuration Bits)

Рис 3820 Установка битов в словах конфигурации

Для изменения бита используются выпадающие списки: рядом с каждым битом есть кнопка для получения списка Теперь можно создать новый файл текста (File->New), записать текст, сохранить файл, задав его расширение – c, и добавить в проект Для последнего можно использовать окно менеджера проекта: щёлкнуть правой клавишей мышки по Source Files и выбрать Add Files, указав сохранённый файл на языке Си

Остаётся оттранслировать файл (Project->Build) и выбрать программатор

Рис 3821 Трансляция кода программы

Обратите внимание – версия компилятора имеет ограничение на объём текста до 2000 байт После подключения программатора (необходимо включить питание на плате, как и при работе с программой PICkit2) можно программировать микросхему Как показывает вывод операций, программирование проходит успешно:

Рис 3822 Вывод сообщения о работе программатора

Однако на плате не видно результата работы программы Если прочитать микросхему с помощью программы PICkit2, то видно, что слово конфигурации не было записано Можно его, конечно, записать в текст программы:

#include <htch>

  CONFIG(0x2FF2)

void main() {

TRISB = 0xF7 RB3 = 1

}

Но и теперь после записи программы в микросхему светодиод на плате не зажигается Но зажигается сразу после подключения программатора с включённой платой к программе PICkit2 Очень интересно Нужно почитать описание этой версии MPLAB

А сейчас отметим, что и компилятор HI-TECH требует знания синтаксиса, характерного для этого компилятора И, наконец, последнее, что касается среды программирования MPLAB

Выключим питание на плате конструктора Изменим первое слово конфигурации на 0x0FF2 (в этом случае разрешается режим отладки, который поддерживает PIC16F887)

Оттранслируем программу в режиме отладки и выберем отладчик:

Рис 3823 Включение платы в режиме отладки

Используя горячие клавиши, основное меню программы или кнопки инструментальной панели, которые в этом режиме появляются в верхней части можно  по  шагам проверить программу, задать точки остановки, короче, отладить программу на макетной плате При этом в тексте программы появляется маркер, отмечающий строки программы

И это интересно

Мы привели к сегодняшнему состоянию операционной системы все необходимые программные средства для продолжения работы с конструктором

Мы ещё раз убедились в том, что можно использовать графический язык программирования для освоения работы с микроконтроллером Мы убедились, что знание языка программирования Си

полезно Без знания этого языка программирования работа с конструктором окажется скучна: завинчивание гаек и копирование готовых текстов Впрочем, и не только работа с конструктором Программа Flowcode позволяет сделать очень много полезных устройств, но, время от времени, требует вставок на языке Си

Источник: Гололобов ВН,- Самоучитель игры на паяльнике (Об электронике для школьников и не только), – Москва 2012

Оставить комментарий

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