В статье рассматривается взаимодействие светодиодов с микроконтроллером pic и программирование «бегущей строки» с помощью Flowcode.
Ключевые слова: микроконтроллер, программирование, flowcode.
Практически любое инженерное устройство имеет целью своего функционирования то или иное преобразование энергии или преобразование информации. Задачей любой системы управления в самом общем смысле является обработка информации о текущем режиме работы управляемого объекта и выработка на основе этого управляющих сигналов с целью приближения текущего режима работы объекта к заданному.
Под обработкой информации в данном случае подразумевается решение тем или иным способом уравнений состояния системы. Многие современные электромеханические и электронные устройства, начиная от автомобиля и космическими кораблями, начинены программируемыми блоками на базе микроконтроллеров, а также МК применяются в агропромышленном и горнодобывающем комплексе, ряд отраслей промышленности (особенно металлургия), строительстве, и, как это ни парадоксально, в научно-производственном комплексе.
Микроконтроллер — это специализированный микрокомпьютер, выполненный в виде одной микросхемы, используемый в сотни раз чаще обычных компьютеров. Как следствие — наступил момент, когда изучением микроконтроллеров и основ их программирования должны заняться обычные инженеры.
Уровень распространенности, доступности по цене и методической поддержки современных микропроцессорных компонентов, позволяет широко и эффективно использовать их в составе различных робототехнических устройств, в том числе любительских. Учитывая повышающийся интерес к МК не только со стороны электронщиков и системных программистов, но и людей прикладных инженерных профессий, разработчики продумали возможность программирования МК с помощью языков высокого уровня.
Повышенный интерес к программированию МК привело к необходимости разработки соответствующих методов и средств обучения. Естественно, обучение программированию МК, кроме персонального компьютера, потребует наличия аппаратно-программного и методического обеспечения. Поэтому, мы поставили задачу: разработка и сборка лабораторного стенда по программированию МК производства Microchip или AVR, также включающего в себя 8–10 практикумов, с решенными примерами и упражнениями. [1,2]
Программирование МК (рис.1) состоит из этапов:
создание программного кода на компьютере — с помощью редактора и компилятора, (например, PicBasic — язык высокого уровня для программирования МК PIC, среда разработки MicroCode Studio и др.) создается программа в двоичных кодах, которая сохраняется на компьютере в формате.hex;
запись программы в МК — производиться с помощью специального устройства программатора и прилагаемого к нему программного обеспечения. Программатор для начального этапа изучения МК лучше купить отдельно, для своего типа МК. Схема программатора, например для COM-порта, достаточно проста и поэтому многие радиолюбители собирают его сами;
Рис. 1. Программирование микроконтроллера
В данной статье мы перейдем непосредственно к разработке программы «Бегущая строка на микроконтроллере», с использованием микроконтроллера PIC16F877А. В этом микроконтроллере имеется все необходимое для решения наших задач. Хотя Вы можете взять и другие микроконтроллеры, имеющие в своем составе необходимые аппаратные средства.
Наша программа «бегущий огонь» поочередно зажигает восемь светодиодов, имитируя бегущий огонь. Для управления этими восемью светодиодами используются все выводы порта PORTB. Эта программа может служить хорошим примером того, как можно управлять всеми восемью светодиодами, организовав только один бесконечный цикл. На рис. 2 приведена схема этого устройства.
Рис. 2. Принципиальная схема «Бегущий огонь» с микроконтроллером PIC16F877A и диодами
Возможно создание программы самостоятельно, но обратимся на сайт [4], где имеются готовые примеры и воспользуемся им, слегка модифицируя программу.
- Построение алгоритма.
Очистка порта. Это означает, что на всех выводах PORTB в начале работы программы будет логический 0. Отправляем 0 в порт В
Присвоение переменной k значения 1. В самом начале основной программы мы увеличиваем значение переменной k на единицу. Это значит, что на выводе 0 PORTB появится логическая единица и первый светодиод зажжется.
Начало бесконечного цикла
Проверка равна ли переменная k нулю, если да, присваиваем переменной единицу.
Если нет, отправляем переменную в порт В
Задержка. Для того чтобы заметить это, следующим стоит оператор паузы, который позволит программе остановится на время 100 мс.
Умножаем переменную на 2 (k = k * 2)
Возврат к началу цикла. Вернувшись в начало, программа снова увеличивает значение переменной k и тогда загорается второй светодиод, а первый гаснет. Таким образом, программа, работая в цикле, постоянно увеличивает значение указанной переменной.
- Реализация блок-схемы в Flowcode.
Рис. 3. Блок-схема Flowcode с микроконтроллером PIC16F877A и диодами
Программа Flowcode позволяет перевести «блок-схему» на языке С и ASM. Полученный в результате компиляции файл с расширением *.hex, можно записать с помощью программатора в микроконтроллер.
Изменяя константу команды Задержка, можно подстраивать временные интервалы и заставлять «бегущий огонь» бегать быстрее или медленнее.
Мы видим, что создание программы для микроконтроллера на Flowcode, для новичков, намного проще, чем на ассемблере или С. Достаточно знать базовые алгоритмические конструкции.
Литература:
- Абдулгалимов Г. Л. Лабораторный стенд для программирования микроконтроллеров. // Техника и технология. 2013. № 5–6 (59). С. 26–28
- Абдулгалимов Г. Л., Казагачев В. Н., Гибадулин Р. Я. Программно и аппаратно-методическое обеспечение учебного процесса как средство оценки компетентностной модели специалиста. Материалы V-й Международной научно-практической конференции «Технологии построения систем образования с заданными свойствами». МГГУ им. М. А. Шолохова. Москва, 2014. С. 38–41.
- Хилинский В. Н. Учимся программировать микроконтроллеры PIC на PicBasic Pro. 2007 г,- 186 с.
- Flowcode.info.