Технический Портал Левши Вторник, 19.12.2017, 01:23
| RSS
Меню сайта

Категории раздела
ПИТАНИЕ [17]
МЕТАЛЛО ДЕТЕКТОРЫ [1]
СВЯЗЬ [5]
НАЧИНАЮЩИМ [6]
МикроКонтроллеры [15]
АВТОМАТИКА [4]
АУДИО. [2]
СИСТЕМЫ ОХРАНЫ И БЕЗОПАСНОСТИ [6]
СИСТЕМЫ ДЛЯ САМООБОРОНЫ [1]
ТЕЛЕФОНИЯ [7]

Мини-чат

Главная » Статьи » РАДИОЭЛЕКТРОНИКА » МикроКонтроллеры

ПРОГРАММА FLOWCODE - полет третий.
Полет третий
Программа FlowCode позволяет быстро создавать программы достаточно интересные.
На инструментальной панели, где в прошлый раз обнаружились светодиоды, чуть ниже есть кнопка с иконкой семисегментного индикатора. Если ее нажать, то на рабочем поле появится этот самый индикатор.

Рис. 3.1. Начало работы с программой обслуживания семисегментного индикатора
Как мне помнится, есть светодиодные индикаторы с общим анодом и общим катодом. Если так, то при практической реализации легко можно сменить состояние общего вывода и инвертировать состояние выводов управления, если не так, то и менять ничего не придется.
Выходы микроконтроллера PIC16F628A рассчитаны на достаточно большие токи, но, если нет особой нужды в минимизации деталей схемы, можно в реальной схеме добавить токоограничительные резисторы. Будут или нет «резисторы безопасности», это никак не отразится на работе программы, поэтому при написании программы можно отложить решение этого вопроса до момента реализации схемы на макете.
Если на панельке индикатора нажать на кнопочку со стрелкой в правом верхнем углу, то появится выпадающее меню. Выбор раздела Component Connections... приводит нас в диалог настройки подключения индикатора.

Рис. 3.2. Диалог настройки подключения индикатора
При первом запуске вывод Anode оказывается не подключен (Unconnected). Для его подключения достаточно выбрать в окне Port:, скажем, порт А и Bit 3. Сегменты индикатора можно оставить подключенными так, как это сделано по умолчанию.
Теперь, подключив анод к выходу 3 порта А, мы можем установить вывод в «1», чтобы засветить все сегменты. Для этого используем элемент Output, как делали это прежде, и изменим свойства этого элемента.

Рис. 3.3. Диалог настройки элемента Output
В этот раз я хочу использовать только бит 3, который установлю в «1». Если такое подключение семисегментного индикатора засветит все сегменты, то мы должны получить цифру 8

Рис. 3.4. Запуск симуляции программы
Теперь постараемся превратить цифру 8 в цифру 0 (самая простая трансформация). За «перекладинку» отвечает сегмент G, подключенный к биту 6 порта B, который установим в «1».

Рис. 3.5. Изменение состояния вывода порта B.6
Запустив симуляцию можно проверить, что 8 превращается в 0, как мы и ожидали. Таким образом, манипулируя состоянием выводов порта B, мы можем высвечивать любую цифру на семисегментном индикаторе.

Рис. 3.6. Превращение 8 в 0 на индикаторе
Программа FlowCode, если заглянуть в папку, где она установлена, имеет много обучающих примеров. Если при первом знакомстве, например, с программированием микроконтроллера можно не заботиться о виде программы, довольствуясь полученными «по умолчанию» названиями, то в дальнейшем это может мешать. При взгляде на предыдущий рисунок трудно понять назначение первого элемента. Но это легко исправить. Двойной щелчок по нему, в окне Display name: пишем то, что нам понятно. Лучше, если это будут названия на английском, но можно на латинском сделать для себя понятное название элемента.

Рис. 3.7. Смена названия элементов программы
Несколько примеров в папке Examples показывают, как удобно для себя использовать возможности программы. Профессиональные программисты используют разные приемы оформления программы, но главное — обеспечить понятность для себя и других. Даже когда пишешь программу для себя, а программы имеют свойство повторного использования готовых модулей, важно сделать программу понятной, используя ясные названия переменных, комментарии. Увлекаясь работой, жалеешь время на обдумывание этих, в сущности нейтральных по отношению к коду программы атрибутов, но возвращение к уже написанной и отлаженной программе показывает, что это время было бы потрачено не зря. Переменные вида а1, а2, а3 и т.д. экономят время при написании программы, но их назначение трудно понять по прошествии месяца после завершения работы. Но это дело вкуса и личных предпочтений, а возможностям понятного описания программы посвящено несколько примеров в папке Examples.
На одном из сайтов, кажется «Паяльник», я видел просьбу помочь с устройством, на первый взгляд простым — несколько кнопок, при нажимании которых счетчик должен отображать количество нажатий. Все просто. Счетчик, кнопки, индикатор. Небольшая проблема — первое нажатие любой кнопки должно обнулять счетчик. И еще одна небольшая проблема — дребезг контактов кнопок. Две небольшие проблемы (а может и не две) существенно усложняют схемное решение. И совет, данный автору темы, использовать микроконтроллер, совершенно, как мне кажется, правилен.
Подключение индикатора к контроллеру ясно из предыдущего. Как подключаются кнопки, можно увидеть в примерах.

Рис. 3.8. Пример использования кнопок в программе FlowCode
Пример взят из программ, приходящих с FlowCode. А предыдущий пример показывает, как использовать элемент вычислений Calculation.

Рис. 3.9. Пример использования вычислений
Здесь переменная MY_OUTPUT увеличивается на 4. Собственно, есть все подсказки для того, чтобы начать работу над проектом: несколько кнопок, подсчет нажатий каждой кнопки в переменной, отображение результата на индикаторе. Если добавить условие такого рода, а элемент Decistion-условие в программе есть, чтобы при нажатии кнопки проверялось, нажата она впервые или нет, если впервые, то обнулять переменную подсчета отображаемую индикатором, если нет, то продолжать подсчет, если добавить это, то, практически, почти все требования к схеме будут соблюдены. Для программного устранения дребезга контактов можно вставлять паузы Delay длительностью 0.1-0.2 секунды в то место программы, где проверяется состояние контактов.
Реализацию первого проекта такого рода можно разбить на несколько этапов.
На первом этапе, например, можно использовать переменную, значение которой должно отобразиться на семисегментном индикаторе. Переменная должна меняться от 0 до 9. И на первом этапе это можно делать «ручками»: остановили отладку, изменили значение переменной, отобразили. Или сделать цикл (с паузами), в котором переменная наращивается от 0 по 1 до 9. Условие остановки цикла — переменная стала равна 10 (или 9).
На втором этапе можно использовать кнопку для увеличения значения переменной.
На следующем этапе можно обработать две кнопки, сразу добавив обнуление счета при первом нажатии любой из них, или сделать это на следующем этапе.
И, наконец, можно проверить работу «антидребезга», сделав паузу, например, длительностью в несколько секунд и нажимая кнопку несколько раз.
Думаю, и в этом случае, как подойти к созданию программы, зависит от личных вкусов и предпочтений. Полезно, если даже вы в первый раз приступили к работе, потратить некоторое время, чтобы разобраться в собственных вкусах и предпочтениях. Дело в том, что все люди разные. Что одному хорошо и удобно, как бы оно ни было правильно, другому может доставлять больше неудобств, чем комфорта. И если у него есть собственные удобные приемы, или подходы, или даже привычки — если это не сказывается на конечных результатах, то отчего бы ни использовать их?
Если в процессе работы появится необходимость обратиться за помощью, то в первую очередь можно заглянуть все в ту же папку Examples.

Рис. 3.10. Пример работы с семисегментным индикатором из примеров FlowCode
Программа FlowCode имеет еще ряд очень полезных качеств. Освоив работу с микроконтроллером на уровне алгоритмического построения программы, а многие профессиональные программисты небезосновательно считают, что создание алгоритма, это и есть создание программы, при желании освоить кодирование на языке Си можно видеть, как простые операции, использованные прежде, выглядят на этом языке. Не знаю, насколько удобно использовать FlowCode для работы с языком Си, но, заглянув в руководство, знаю, что компилятор языка может быть использован в программе MPLAB. То есть, все, что вы сделаете, можно перенести в MPLAB и использовать эту среду программирования с компилятором FlowCode без значительных изменений. Аналогично, мне кажется, можно поступить и ассемблером, если вас заинтересует такой вариант.
Но рассказ об MPLAB — это совсем другая история.

обсудить на форуме:  http://elektron.ucoz.ru/forum/9
Категория: МикроКонтроллеры | Добавил: ЛЕВША (30.07.2008)
Просмотров: 17459 | Рейтинг: 4.0/4
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск

Статистика

Наш опрос
КАКАЯ ОБЛАСТЬ ЭЛЕКТРОНИКИ ВАС ИНТЕРЕСУЕТ?
Всего ответов: 2470

Друзья сайта
  • Форумы Игростроя
  • CЛОВЕНСК
  • RemEXpert
  • ПАЯЛЬНИК
  • МЕДТЕХНИКА

  • Copyright MyCorp © 2017