Как не крути, а приходится осваивать микроконтроллеры .
Практика показывает, для создания прошивки микроконтроллера есть несколько вариантов. В этой статье простой и наглядный метод - графический. Начнём с простого , включим - выключим светодиод. Так же проверим полученную прошивку в "железе". Написание алгоритма программы будет среде FLOWcode5 для микроконтроллера PIC16F628. На момент написания статьи есть версия FLOWcode9 , но принципиальных отличий для нашего примера нет. Выбор микроконтроллера обозначен тем что было под рукой, сменить микроконтроллер не сложно при создании проекта, а перенос проекта на микроконтроллер AVR тоже, в большинстве случаев для небольших проектов, не составит труда
Простой алгоритм.
Простым алгоритмом можно посчитать выполнение набора последовательных действий в бесконечном цикле. Итак, поехали ...
После запуска среды разработки FLOWcode5 для контроллеров Microchip PIC16, выбираем интересующий нас для проекта микроконтроллер ( в нашем случае PIC16F628) , жмем ОК и на главной странице видим пустой алгоритм как на рисунке ниже.
Первым делом необходимо проставить значения базовых настроек микроконтроллера, для этого заходим в меню ЧИП - ПАРАМЕТРЫ ПРОЕКТА, как на фото ниже. Выставляем тактовую частоту 4 000 000 Гц - от нее зависят все временные параметры работы микроконтроллера. Выбираем внутренний генератор тактовой частоты INTRC I/O, для простоты реализации нашего примера в "железе", особая стабильность по тактовой частоте в проекте не нужна.
Теперь нам необходимо указать в проекте к какому выводу микроконтроллера будет подключен светодиод. Для этого в строчке с компонентами выбираем светодиод.
В свойствах компонента (выбирается на правой панели свойств компонентов) указываем , что светодиод подключен к порту PORTB5.
Указав среде разработки что у нас в проекте по материальной составляющей (какой микроконтроллер и где подсоединён светодиод), начнем описание требуемого алгоритма поведения микроконтроллера. Сперва указываем бесконечный цикл - переносим в дерево алгоритма цикл WHILE с левого меню, как на картинке ниже , условия не меняем.
В тело цикла добавляем необходимые модули - Макрос Компонента и Задержка. В модуле Макрос Компонента необходимо выбрать модуль нашего светодиода (LED(0)) и необходимое действие сначала включить , затем выключить. В модуле задержка указываем паузу для включенного и выключенного состояния по одной секунде. Получившийся алгоритм представлен ниже на рисунке.
Теперь можно запустить моделирование (нажимаем F5) и посмотреть на работу алгоритма в реальном времени. Не забудьте включить панель с компонентами - на ней визуально расположен наш светодиод. Для этого необходимо поставить отметку в меню Вид->Панель.
Алгоритм с использованием таймера.
Для более корректного написания данного примера ( на мой взгляд ) необходимо использование прерывания по таймеру . Для этого необходимо активировать отслеживание события по таймеру. Добавим с левой панели инструментов соответствующий блок и укажем что работаем по таймеру №1, событие по переполнению , счет ведется от внутреннего генератора с делителем на 4 и на 8. На рисунке ниже отображены все настройки прерывания и получившийся частота срабатывания таймера - 1,907Гц. Не забываем указать название макроса , который будет вызываться при срабатывании прерывания, в нем будем писать обработчик события.
После нажатия "OK & Изменить макрос" появиться область ввода алгоритма обработки прерывания. Для нашего алгоритма добавим переменную - svet- логическая переменная , два состояния. В этой переменной будем хранить состояние светодиод - включен или выключен. Добавление переменных происходит в окне проекта , как на рисунке ниже.
При срабатывании прерывания будем начинать наш обработчик с опроса переменной svet и в зависимости от её состояния будем включать или выключать светодиод. Для этого добавим в алгоритм логический блог с панели слева, а условием будет наша переменная. Включение и выключение светодиода осуществляется встроенным макросом. После манипуляций со светодиодом инвертируем нашу переменную svet , добавляя блок вычисление как на рисунке ниже.
Работу описанного алгоритма можно при помощи моделирования (нажимаем F5), а так же "в железе".
Испытания в "железе"
Для проверки созданной программы в реальном микроконтроллере необходимо собрать простую схему на макетной плате, как на рисунке ниже.
После сборки устройства необходимо загрузить hex-файл в микроконтроллер и подать питание.
Спасибо за внимание, жду комментариев и подписку на канал, палец вверх.
#электроника начинающим #программирование микроконтроллера #8 бит #флокод #схемотехника #простым языком #своими руками