Найти в Дзене
NPN&PNP

Программирование на Flowcode. Начало. Blink.

Оглавление
Логотип (источник - интернет)
Логотип (источник - интернет)
Как не крути, а приходится осваивать микроконтроллеры .

Практика показывает, для создания прошивки микроконтроллера есть несколько вариантов. В этой статье простой и наглядный метод - графический. Начнём с простого , включим - выключим светодиод. Так же проверим полученную прошивку в "железе". Написание алгоритма программы будет среде FLOWcode5 для микроконтроллера PIC16F628. На момент написания статьи есть версия FLOWcode9 , но принципиальных отличий для нашего примера нет. Выбор микроконтроллера обозначен тем что было под рукой, сменить микроконтроллер не сложно при создании проекта, а перенос проекта на микроконтроллер AVR тоже, в большинстве случаев для небольших проектов, не составит труда

Простой алгоритм.

Простым алгоритмом можно посчитать выполнение набора последовательных действий в бесконечном цикле. Итак, поехали ...

После запуска среды разработки FLOWcode5 для контроллеров Microchip PIC16, выбираем интересующий нас для проекта микроконтроллер ( в нашем случае PIC16F628) , жмем ОК и на главной странице видим пустой алгоритм как на рисунке ниже.

Алгоритм по умолчанию FLOWcode5.
Алгоритм по умолчанию FLOWcode5.

Первым делом необходимо проставить значения базовых настроек микроконтроллера, для этого заходим в меню ЧИП - ПАРАМЕТРЫ ПРОЕКТА, как на фото ниже. Выставляем тактовую частоту 4 000 000 Гц - от нее зависят все временные параметры работы микроконтроллера. Выбираем внутренний генератор тактовой частоты INTRC I/O, для простоты реализации нашего примера в "железе", особая стабильность по тактовой частоте в проекте не нужна.

Основные параметры проекта.
Основные параметры проекта.

Теперь нам необходимо указать в проекте к какому выводу микроконтроллера будет подключен светодиод. Для этого в строчке с компонентами выбираем светодиод.

Добавление компонента.
Добавление компонента.

В свойствах компонента (выбирается на правой панели свойств компонентов) указываем , что светодиод подключен к порту PORTB5.

Cветодиод подключен к порту PORTB5
Cветодиод подключен к порту PORTB5

Указав среде разработки что у нас в проекте по материальной составляющей (какой микроконтроллер и где подсоединён светодиод), начнем описание требуемого алгоритма поведения микроконтроллера. Сперва указываем бесконечный цикл - переносим в дерево алгоритма цикл WHILE с левого меню, как на картинке ниже , условия не меняем.

Добавление бесконечного цикла в алгоритм программы.
Добавление бесконечного цикла в алгоритм программы.

В тело цикла добавляем необходимые модули - Макрос Компонента и Задержка. В модуле Макрос Компонента необходимо выбрать модуль нашего светодиода (LED(0)) и необходимое действие сначала включить , затем выключить. В модуле задержка указываем паузу для включенного и выключенного состояния по одной секунде. Получившийся алгоритм представлен ниже на рисунке.

Созданный алгоритм.
Созданный алгоритм.

Теперь можно запустить моделирование (нажимаем F5) и посмотреть на работу алгоритма в реальном времени. Не забудьте включить панель с компонентами - на ней визуально расположен наш светодиод. Для этого необходимо поставить отметку в меню Вид->Панель.

Алгоритм с использованием таймера.

Для более корректного написания данного примера ( на мой взгляд ) необходимо использование прерывания по таймеру . Для этого необходимо активировать отслеживание события по таймеру. Добавим с левой панели инструментов соответствующий блок и укажем что работаем по таймеру №1, событие по переполнению , счет ведется от внутреннего генератора с делителем на 4 и на 8. На рисунке ниже отображены все настройки прерывания и получившийся частота срабатывания таймера - 1,907Гц. Не забываем указать название макроса , который будет вызываться при срабатывании прерывания, в нем будем писать обработчик события.

Добавление прерывания по таймеру.
Добавление прерывания по таймеру.

После нажатия "OK & Изменить макрос" появиться область ввода алгоритма обработки прерывания. Для нашего алгоритма добавим переменную - svet- логическая переменная , два состояния. В этой переменной будем хранить состояние светодиод - включен или выключен. Добавление переменных происходит в окне проекта , как на рисунке ниже.

Добавление логической переменной .
Добавление логической переменной .

При срабатывании прерывания будем начинать наш обработчик с опроса переменной svet и в зависимости от её состояния будем включать или выключать светодиод. Для этого добавим в алгоритм логический блог с панели слева, а условием будет наша переменная. Включение и выключение светодиода осуществляется встроенным макросом. После манипуляций со светодиодом инвертируем нашу переменную svet , добавляя блок вычисление как на рисунке ниже.

Алгоритм обработки прерывания.
Алгоритм обработки прерывания.

Работу описанного алгоритма можно при помощи моделирования (нажимаем F5), а так же "в железе".

Испытания в "железе"

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

Схема электрическая, проект Blink.
Схема электрическая, проект Blink.

После сборки устройства необходимо загрузить hex-файл в микроконтроллер и подать питание.

Демонстрация работы программы
Демонстрация работы программы
Спасибо за внимание, жду комментариев и подписку на канал, палец вверх.

#электроника начинающим #программирование микроконтроллера #8 бит #флокод #схемотехника #простым языком #своими руками