«Бегущая строка» на микроконтроллере pic с помощью flowcode | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 26 октября, печатный экземпляр отправим 30 октября.

Опубликовать статью в журнале

Авторы: , ,

Рубрика: Технические науки

Опубликовано в Молодой учёный №21 (101) ноябрь-1 2015 г.

Дата публикации: 03.11.2015

Статья просмотрена: 1861 раз

Библиографическое описание:

Тлеубергенов, Алданышбай. «Бегущая строка» на микроконтроллере pic с помощью flowcode / Алданышбай Тлеубергенов, В. Н. Казагачев, У. С. Тлеуова. — Текст : непосредственный // Молодой ученый. — 2015. — № 21 (101). — С. 222-225. — URL: https://moluch.ru/archive/101/22967/ (дата обращения: 16.10.2024).

 

В статье рассматривается взаимодействие светодиодов с микроконтроллером pic и программирование «бегущей строки» с помощью Flowcode.

Ключевые слова: микроконтроллер, программирование, flowcode.

 

Практически любое инженерное устройство имеет целью своего функционирования то или иное преобразование энергии или преобразование информации. Задачей любой системы управления в самом общем смысле является обработка информации о текущем режиме работы управляемого объекта и выработка на основе этого управляющих сигналов с целью приближения текущего режима работы объекта к заданному.

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

Микроконтроллер — это специализированный микрокомпьютер, выполненный в виде одной микросхемы, используемый в сотни раз чаще обычных компьютеров. Как следствие — наступил момент, когда изучением микроконтроллеров и основ их программирования должны заняться обычные инженеры.

Уровень распространенности, доступности по цене и методической поддержки современных микропроцессорных компонентов, позволяет широко и эффективно использовать их в составе различных робототехнических устройств, в том числе любительских. Учитывая повышающийся интерес к МК не только со стороны электронщиков и системных программистов, но и людей прикладных инженерных профессий, разработчики продумали возможность программирования МК с помощью языков высокого уровня.

Повышенный интерес к программированию МК привело к необходимости разработки соответствующих методов и средств обучения. Естественно, обучение программированию МК, кроме персонального компьютера, потребует наличия аппаратно-программного и методического обеспечения. Поэтому, мы поставили задачу: разработка и сборка лабораторного стенда по программированию МК производства Microchip или AVR, также включающего в себя 8–10 практикумов, с решенными примерами и упражнениями. [1,2]

Программирование МК (рис.1) состоит из этапов:

создание программного кода на компьютере — с помощью редактора и компилятора, (например, PicBasic — язык высокого уровня для программирования МК PIC, среда разработки MicroCode Studio и др.) создается программа в двоичных кодах, которая сохраняется на компьютере в формате.hex;

запись программы в МК — производиться с помощью специального устройства программатора и прилагаемого к нему программного обеспечения. Программатор для начального этапа изучения МК лучше купить отдельно, для своего типа МК. Схема программатора, например для COM-порта, достаточно проста и поэтому многие радиолюбители собирают его сами;

Рис. 1. Программирование микроконтроллера

 

В данной статье мы перейдем непосредственно к разработке программы «Бегущая строка на микроконтроллере», с использованием микроконтроллера PIC16F877А. В этом микроконтроллере имеется все необходимое для решения наших задач. Хотя Вы можете взять и другие микроконтроллеры, имеющие в своем составе необходимые аппаратные средства.

Наша программа «бегущий огонь» поочередно зажигает восемь светодиодов, имитируя бегущий огонь. Для управления этими восемью светодиодами используются все выводы порта PORTB. Эта программа может служить хорошим примером того, как можно управлять всеми восемью светодиодами, организовав только один бесконечный цикл. На рис. 2 приведена схема этого устройства.

Рис. 2. Принципиальная схема «Бегущий огонь» с микроконтроллером PIC16F877A и диодами

 

Возможно создание программы самостоятельно, но обратимся на сайт [4], где имеются готовые примеры и воспользуемся им, слегка модифицируя программу.

  1. Построение алгоритма.

        Очистка порта. Это означает, что на всех выводах PORTB в начале работы программы будет логический 0. Отправляем 0 в порт В

        Присвоение переменной k значения 1. В самом начале основной программы мы увеличиваем значение переменной k на единицу. Это значит, что на выводе 0 PORTB появится логическая единица и первый светодиод зажжется.

        Начало бесконечного цикла

        Проверка равна ли переменная k нулю, если да, присваиваем переменной единицу.

        Если нет, отправляем переменную в порт В

        Задержка. Для того чтобы заметить это, следующим стоит оператор паузы, который позволит программе остановится на время 100 мс.

        Умножаем переменную на 2 (k = k * 2)

        Возврат к началу цикла. Вернувшись в начало, программа снова увеличивает значение переменной k и тогда загорается второй светодиод, а первый гаснет. Таким образом, программа, работая в цикле, постоянно увеличивает значение указанной переменной.

  1. Реализация блок-схемы в Flowcode.

 

Рис. 3. Блок-схема Flowcode с микроконтроллером PIC16F877A и диодами

 

Программа Flowcode позволяет перевести «блок-схему» на языке С и ASM. Полученный в результате компиляции файл с расширением *.hex, можно записать с помощью программатора в микроконтроллер.

Изменяя константу команды Задержка, можно подстраивать временные интервалы и заставлять «бегущий огонь» бегать быстрее или медленнее.

Мы видим, что создание программы для микроконтроллера на Flowcode, для новичков, намного проще, чем на ассемблере или С. Достаточно знать базовые алгоритмические конструкции.

 

Литература:

 

  1. Абдулгалимов Г. Л. Лабораторный стенд для программирования микроконтроллеров. // Техника и технология. 2013. № 5–6 (59). С. 26–28
  2. Абдулгалимов Г. Л., Казагачев В. Н., Гибадулин Р. Я. Программно и аппаратно-методическое обеспечение учебного процесса как средство оценки компетентностной модели специалиста. Материалы V-й Международной научно-практической конференции «Технологии построения систем образования с заданными свойствами». МГГУ им. М. А. Шолохова. Москва, 2014. С. 38–41.
  3. Хилинский В. Н. Учимся программировать микроконтроллеры PIC на PicBasic Pro. 2007 г,- 186 с.
  4. Flowcode.info.
Основные термины (генерируются автоматически): PORTB, программирование МК, микроконтроллер, программа, ASM, AVR, PIC, бесконечный цикл, высокий уровень, обработка информации.


Похожие статьи

Особенности изучения линейного алгоритма на flowcode

В статье рассматривается линейный алгоритм на микроконтроллере с помощью Flowcode.

Разработка программы для оптического распознавания символов с помощью Tesseract

В данной статье наглядно и подробно рассмотрен пример работы с библиотекой Tesseract ORC, создана программа для распознавания текста с фото.

Многопоточность в языке Swift

В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.

Работа с элементами GUI на примере приложения с использованием кроссплатформенного фреймворка Qt

В статье подробно разобран код приложения, написанного с использованием кроссплатформенного фреймворка Qt основанного на языке C++. Приложение Dynamic Layouts является одним из примеров, входящих в пакет Qt Creator. На примере данного приложения расс...

Разбор многоступенчатой конвертации на примере форматов sb3 и exe

В данной статье рассматриваются многоступенчатая конвертация, а также «нестандартный» способ конвертации на примере проектов, написанных на языке Scratch, в exe файл.

Неформальный алгоритм сортировки файла с применением битового сжатия в языке программирования C++

В статье автор рассматривает сортировку файла при помощи битового массива на C++. А также сравнивает затраты оперативной памяти без использования битового массива.

Разработка программного модуля защиты информации методом стеганографии

В данной статье рассматривается процесс разработки программного модуля для шифрования текстовой информации в реальном изображении, с помощью языка программирования Rust, описываются основные аспекты стеганографии, в частности метод LSB.

Использование Dapper C# в программировании

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

Обзор отладочных плат с программируемой логической интегральной схемой Altera, применяемых для обучения в университете

В данной работе рассматриваются платы Altera на базе ПЛИС.

Концепция калибровки потока экструдера для 3D-принтеров на базе FDM-технологии на примере модели Anycubic Chiron

В статье описывается концепция и пошаговая методика калибровки потока на экструдерах типа «Боуден» с описанием команд для работы в терминале и изменения конфигуратора прошивки контроллера.

Похожие статьи

Особенности изучения линейного алгоритма на flowcode

В статье рассматривается линейный алгоритм на микроконтроллере с помощью Flowcode.

Разработка программы для оптического распознавания символов с помощью Tesseract

В данной статье наглядно и подробно рассмотрен пример работы с библиотекой Tesseract ORC, создана программа для распознавания текста с фото.

Многопоточность в языке Swift

В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.

Работа с элементами GUI на примере приложения с использованием кроссплатформенного фреймворка Qt

В статье подробно разобран код приложения, написанного с использованием кроссплатформенного фреймворка Qt основанного на языке C++. Приложение Dynamic Layouts является одним из примеров, входящих в пакет Qt Creator. На примере данного приложения расс...

Разбор многоступенчатой конвертации на примере форматов sb3 и exe

В данной статье рассматриваются многоступенчатая конвертация, а также «нестандартный» способ конвертации на примере проектов, написанных на языке Scratch, в exe файл.

Неформальный алгоритм сортировки файла с применением битового сжатия в языке программирования C++

В статье автор рассматривает сортировку файла при помощи битового массива на C++. А также сравнивает затраты оперативной памяти без использования битового массива.

Разработка программного модуля защиты информации методом стеганографии

В данной статье рассматривается процесс разработки программного модуля для шифрования текстовой информации в реальном изображении, с помощью языка программирования Rust, описываются основные аспекты стеганографии, в частности метод LSB.

Использование Dapper C# в программировании

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

Обзор отладочных плат с программируемой логической интегральной схемой Altera, применяемых для обучения в университете

В данной работе рассматриваются платы Altera на базе ПЛИС.

Концепция калибровки потока экструдера для 3D-принтеров на базе FDM-технологии на примере модели Anycubic Chiron

В статье описывается концепция и пошаговая методика калибровки потока на экструдерах типа «Боуден» с описанием команд для работы в терминале и изменения конфигуратора прошивки контроллера.

Задать вопрос