Программа Flowcode и программатор Microchip PICkit 2
Введение
Компания Microchip предлагает стартовый набор разработчика PICkit 2 Debug Express, включающий демонстрационную плату с 44-выводным контроллером и самый маленький программатор в мире. А компания Matrix Multimedia создала среду разработки Flowcode с интуитивно понятным графическим интерфейсом, позволяющим разрабатывать программу для микроконтроллера на уровне блок-схем.
Данная статья предназначена для начинающих разработчиков, которые только осваивают программирование микроконтроллеров. На начальной стадии среда разработки Flowcode, позволяющая реализовать простейшие операции на основе PIC-контроллеров,— отличная альтернатива более сложной и профессиональной MPLAB IDE. Для получения базовых навыков по использованию программатора PICkit2 и программы Flowcode рассмотрим построение простейшего проекта по управлению светодиодом.
Для ознакомительных целей компания Matrix Macromedia предлагает бесплатную демонстрационную версию Flowcode — http://www.matrixmultimedia.com/temp/FlowcodeV3.exe.
Примечание. Единственное ограничение— допустимый объем скомпилированного кода не более 2 кбайт.
Шаг первый — построение блок-схемы
Обычно создание проекта начинается с планирования последовательности действий (алгоритма), которые должен выполнять микроконтроллер. В среде разработки Flowcode для данных целей предусмотрен наглядный интерфейс по созданию блок-схемы программы.
В качестве первого примера разработаем систему, которая будет приводить в действие один из двух режимов «моргания» светодиодами в соответствии с положением внешнего переключателя. Алгоритм программы приведен на рис. 1.
Шаг второй — реализация блок-схемы в Flowcode
Этапы реализации блок-схемы в Flowcode (рис. 2):
- Запустите программу Flowcode.
- Нажмите ОК, когда откроется окно Reminder Screen.
- Создайте новый проект (Create a new FlowCode flowchart).
- Выберите в качестве контроллера (Choose a target) PIC16F887 (он установлен на демонстрационной плате 44-pin Demo Board комплекта PICkit 2 Debug Express).
- Откройте новую рабочую область (workspace) с названием “Main”.
- Добавьте необходимые блоки для блок-схемы. Для этого наведите курсор на нужную иконку в левой панели и, удерживая левую кнопку мыши, перетащите ее в рабочую область.
- Добавьте необходимые элементы (светодиоды LED, переключатель). Для этого щелкните мышью по иконке соответствующего элемента в верхней панели.
- В выпадающем меню окна LEDs («Светодиоды») выберите пункт Component Connections. В меню Connect to Port («Соединение с портом») выберите PORT D (светодиоды демонстрационной платы 44-pin Demo Board выведены на PORT D). Данный диалог должен принять вид, который представлен на рис. 3.
- В выпадающем меню окна Switches («Переключатели») выберите пункт Properties («Свойства») и укажите количество кнопок — 1 (рис. 4).
- В пункте Connect to Port выпадающего меню выберите PORT B (кнопка на плате 44-pin Demo Board подключена к PORT B, бит 0). Диалог Connect to Port примет вид, который представлен на рис. 5.
Настройка элементов блок-схемы
Теперь настало время настройки элементов, составляющих блок-схему. Для настройки элемента нужно дважды щелкнуть на его иконке мышью. Для удобства чтения блок-схемы в строке Display name напишите короткое пояснение о функциональном назначении блока.
Loop («Основной цикл»)
Input
Для начала необходимо создать переменную, отвечающую за информацию о положении кнопки. Щелкните по Variables («Переменные»), чтобы открыть диалог Variables Manager. Щелкните по Add New Variable («Добавить новую переменную») и добавьте новую переменную с названием Input (рис. 7).
Нажмите OK. Вернувшись в окно Variables Manager, нажмите кнопку Use Variable. Вернувшись в окно Properties, выберите PORT B, Single Bit (рис. 8).
Decision
В окне Properties нажмите на Variables и выберите Input, затем щелкните на Use Variable. Дайте название (Display name) — “Is switch pressed?” (рис. 9).
Ветка No/Output
Чтобы зажечь крайние светодиоды, необходимо выставить в единицу биты 0 и 7 порта PORT D, то есть ввести в PORT D число 129 (27+20) (рис. 10).
Ветка Yes / Первый блок Output
Чтобы зажечь светодиоды с 0 по 3, необходимо ввести в PORT D число 15 (20+21+22+23) (рис. 11).
Оба блока Delay
Длительность задержки может быть задана в миллисекундах и секундах. Необходимо задать задержку в полсекунды (рис. 12).
Второй блок Output
Чтобы зажечь светодиоды с 4 по 7, необходимо ввести в PORT D число 240 (24+25+26+27) (рис. 13).
Теперь блок-схема должна иметь вид, представленный на рис. 14.
Симуляция программы
Программа Flowcode позволяет проверить ее работу при помощи симуляции. Симуляция возможна в двух режимах: непрерывная и пошаговая, блок за блоком. В обоих режимах в окнах Variables и Call Stack отображаются текущие значения. Когда вы запускаете симуляцию программы на полной скорости, данные в этих окнах не обновляются. Если же скорость симуляции ниже полной или выполнение программы ведется пошагово, созданные переменные отображаются в окне Variables на каждой итерации.
Теперь посмотрим на симуляцию на полной скорости. Нажмите Run на панели инструментов. Используйте возможность остановки и продолжения работы программы (F5 или Go/Continue в меню Run). При этом можно увидеть текущие значения в окнах Variables и Call Stack, а также крайние светодиоды (0-й и 7-й светятся). Щелкните по иконке кнопки и убедитесь, что светодиоды 0–3 моргают в противофазе со светодиодами 4–7. Программа работает корректно.
Если вы не получили нужного результата, вернитесь к началу и повторите все заново.
Программирование PIC-контроллера
Подготовительная часть закончена, вы получили полнофункциональную программу, работающую по заданному алгоритму. Выполните следующие инструкции для программирования контроллера:
- Подключите PICkit2 к ПК через USB.
- Подключите PICkit2 к демонстрационной плате 44-pin Demo Board.
- В меню Chip выберите пункт Compile to Chip (для компиляции необходимо сохранить созданную программу).
- Откроется окно Compile Messages, в котором отображается текущий прогресс. При программировании контроллера засветятся индикаторы Target и Busy на PICkit2. Когда программирование закончится, появится строка Finished, после чего следует нажать кнопку Close.
- Ваша программа должна запуститься. Светодиоды 0–3 должны мигать в противофазе со светодиодами 4–7. При нажатии кнопки должны светиться только светодиоды 0 и 7.
- Незаметно для пользователя программа Flowcode сформировала по графической блок-схеме C-файл и компилировала его в ассемблер. Полученный C- и asm-код можно просмотреть, выбрав в меню Chip соответственно команды “View C” и “View ASM” либо просмотрев содержание файлов prog1name.c и prog1name.asm в папке, где сохранен данный проект.
Заключение
В данной статье показано, как просто создать программу для контроллера по заданному алгоритму. При этом пример охватывает лишь малую часть функциональных возможностей Flowcode. Незатронутыми остались такие возможности, как вычислительные операции, манипуляции со строковыми переменными, создание пользовательских макросов, вставки C-кода и т. д. Для их освоения программа Flowcode снабжена подробными справочными материалами и описаниями (меню Help). О всех возможностях, предоставляемых Matrix Multimedia, можно узнать на сайте http://www.matrixmultimedia.com/.