Статья опубликована в рамках: XI Международной научно-практической конференции «Естественные и математические науки в современном мире» (Россия, г. Новосибирск, 14 октября 2013 г.)

Наука: Информационные технологии

Секция: Элементы и устройства вычислительной техники и систем управления

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Абузяров В.Н., Щудро И.А., Елисеев В.Н. ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ И ВИРТУАЛЬНОЕ ПРОГРАММИРОВАНИЕ PIC-КОНТРОЛЛЕРОВ В АВТОМАТИЧЕСКОМ УПРАВЛЕНИИ ТЕХНОЛОГИЧЕСКИХ ПРОЦЕССОВ // Естественные и математические науки в современном мире: сб. ст. по матер. XI междунар. науч.-практ. конф. № 9-10(10). – Новосибирск: СибАК, 2013.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов
Статья опубликована в рамках:
 
Выходные данные сборника:


 


ТЕХНОЛОГИИ  ПРОГРАММИРОВАНИЯ  И  ВИРТУАЛЬНОЕ  ПРОГРАММИРОВАНИЕ  PIC-КОНТРОЛЛЕРОВ  В  АВТОМАТИЧЕСКОМ  УПРАВЛЕНИИ  ТЕХНОЛОГИЧЕСКИХ  ПРОЦЕССОВ


Абузяров  Владимир  Николаевич


соискатель,  старший  преподаватель  Филиала  Московского  технологического  института  «ВТУ»  в  г.  Оренбурге,  г.  Оренбург


E-mailvnab@bk.ru


Щудро  Игорь  Анатольевич


канд.  техн.  наук,  зав.  кафедрой  информатики  и  автоматизации,  доцент  Филиала  Московского  технологического  института  «ВТУ»  в  г.  Оренбурге,  г.  Оренбург


E-mail


Елисеев  Владимир  Николаевич


соискатель,  старший  преподаватель  Московского  технологического  института  «ВТУ»  Филиал  в  г.  Оренбурге,  г.  Оренбург


E-mail: 


 


TECHNOLOGY  PROGRAMMING  AND  VIRTUAL  PROGRAMMING  PIC-CONTROLLER  IN  THE  AUTOMATIC  PROCESS


Abuzyarov  Vladimir


applicant,  a  senior  lecturer  of  the  Moscow  branch  of  Institute  of  Technology  "WTU"  in  Orenburg,  Orenburg


Schudro  Igor


Candidate  of  Science,  Head  of  Department  Informatics  and  Automation,  assistant  professor  of  the  Moscow  branch  of  Institute  of  Technology  "WTU"  in  Orenburg,  Orenburg


Eliseev  Vladimir


applicant,  a  senior  lecturer  of  the  Moscow  branch  of  Institute  of  Technology  "WTU"  in  Orenburg,  Orenburg


 


АННОТАЦИЯ


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


ABSTRACT


In  this  article  the  authors  examine  the  practical  application  of  the  method  of  programming  PIC-controllers.  Microcontrollers  are  the  basis  of  microprocessor  technology.  Of  great  importance  is  the  virtual  programming,  which  reduces  the  time  and  resources  to  experiment  and  use  a  variety  of  electrical  circuits  in  a  virtual  mode.


 


Ключевые  слова:  виртуальное  программирование;  микроконтроллер;  компиляция.


Keywords:  virtual  programming,  microcontroller;  compilation.


 


Основу  автоматических  систем  управления  составляют  различные  электронные  микроконтроллеры.  К  их  числу  относятся  AVR  и  PIC.  Несмотря  на  массовое  применение,  существуют  различные  трудности  при  программировании  таких  микроконтроллеров.  AVR  и  PIC-контроллеры  имеют  несколько  уровней  сложности:  низкий,  средний  и  высокий.  Такое  различие  требует  и  различные  действия  при  программировании,  что  вносит  путаницу  и  отнимает  массу  времени.


В  различных  публикациях  описывается  последовательность  действий  для  конкретного  микрочипа,  а  среда  разработки  программного  обеспечения  зачастую  недоступна  для  пользователей.  Данную  проблему  можно  решить  на  примере  микросхемы  PIC-16F877A,  которая  относится  к  среднему  уровню  сложности  [4].  В  техническом  описании  такие  изделия  программируются  на  языке  ASSEMBLER[2].  Вместе  с  тем  на  практике  можно  применить  язык  программирования  высокого  уровня  Си.  Необходимо  иметь  в  виду,  что  для  успешного  решения  такой  задачи  требуется  соответствующий  программатор.  Дорогим,  но  надежным  является  PIC‑KITтм2.  Программирование  можно  осуществить  в  среде  MPLABIDE8.46.  Используя  Интернет-ресурсы  применим  компилятор  PICCCOMPILER.  Большую  помощь  при  этом  могут  оказать  известные  публикации:  Шпак  Ю.А.  «Программирование  на  языке  С  для  AVR  и  PIC  микроконтроллеров»  (2011),  Крупник  А.Б.  «Изучаем  Си»  (2001). 


Интерес  к  микроконтроллерам  высок  благодаря  их  многофункциональности,  компактности,  доступности  для  изучения.  Но  вместе  с  тем  такие  электронные  технологии  для  своего  применения  требуют  и  определенных  знаний  в  области  и  информатики  и  электроники.  Данная  статья  имеет  своей  целью  не  только  ознакомить  читателя  с  техническими  возможностями  микрочипа  PIC-16F877A,  но  и  показать  возможность  его  программирования,  а  также  распространить  уже  имеющийся  опыт  изготовления  робота,  в  основе  которого  имеется  такой  PIC-контроллер.  Публикаций  на  данную  тему  не  достаточно  и  есть  уверенность,  что  новая  информация  поможет  развить  интерес  молодежи  к  изучению  и  программирования  таких  микрочипов. 


PIC-16F877A  —  это  микроконтроллер,  который  имеет  высокоскоростную  RISC  архитектуру.  Его  технические  характеристики  достаточно  высоки,  а  рыночная  цена  вполне  приемлема,  что  также  определяет  повышенный  спрос  этой  микросхемы.  Она  имеет:  35  инструкций,  20  МГц  тактовый  сигнал,  14  источников  прерываний,  8-уровневый  аппаратный  стек,  2  В—5,5  В  напряжение  питания,  малое  энергопотребление  (20мкА),  два  модуля  сравнение/захват/ШИМ  (CCP),  многоканальное  10-разрядное  АЦП,  последовательный  синхронный  порт  MSSP,  последовательный  синхронно-  асинхронный  приемопередатчик  USARTс  поддержкой  детектирования  адреса.  Микрочип  имеет  40  выводов,  несколько  входных  и  выходных  портов,  техническое  описание  переведено  на  русский  язык.


Задача  программирования  PIC-контроллера  не  тривиальна.  Трудность  заключается  в  том,  что  последовательность  его  действий  должна  быть  заранее  предопределена,  базовая  платформа  создана,  электронная  схема  исправна  и  работает  «в  ручном»  режиме.  Это  задача  инженера  и  она  мало  беспокоит  программистов.  Но  такой  подход  к  делу  приносит  мало  пользы.  Нужны  такие  специалисты,  для  которых  важен  весь  процесс  разработки  и  применения  робототехнических  изделий.  При  такой  постановке  вопроса  междисциплинарные  знания  приобретают  первостепенное  значение.  Не  вдаваясь  в  физическую  сущность  работы  микроконтроллера,  можно  предложить  уже  опробованный  на  конкретном  образце  вариант  действий  для  программирования  PIC-16F877A.


Рассмотрим  процесс  компиляции  программы.  Проект  компилируется  с  помощью  подключенного  компилятора  CCS-PICC  непосредственно  в  среде  MPLAB.  Выполнение  команды  меню  Project  Compile  позволит  открыть  окно  состояния  компилятора  CSS-PICC.  Исходный  файл  cod,  который  требуется  при  отладке,  можно  создать,  выполнив  несколько  манипуляций:  в  среде  MPLAB  необходимо  выполнить  команду  меню  Project-Build  Options.  В  этом  диалоговом  окне  требуется  перейти  на  вкладку  CCSC  Compiler.  В  группе  параметров  Debug  выбрать  переключатель  Expanded  COD  Format  и  нажать  «ОК».  Конкретный  микроконтроллер  выбирается  на  этапе  создания  проекта.  Для  перевода  MPLAB  в  режим  программной  эмуляции  выбирается  меню  Debugger-SelectTool-MPLABSIM.  Эти  манипуляции  позволяют  отобразить  панель  инструментов  Debug  с  кнопками  для  отладки.  Для  настройки  параметров  эмуляции  необходимо  выполнить  команду  меню  Debugger-Setting.  В  данном  окне  открыть  вкладку  OSC,в  которой  выбирается  частота  осциллятора.  Останов  эмуляции  осуществляется  с  помощью  команд  расположенных  во  вкладке  Break  Options.  В  меню  Debugger  имеются  команды  для  отладки  программы  в  случаях  прерывания.  Для  восстановления  или  удаления  точки  прерывания  необходимо  дважды  кликнуть  мышкой  на  сером  фоне  и  выполнить  команду  меню  Set  Break  Point.  Для  перехода  в  отладочный  режим  используют  команды  меню  Debugger.  Вызов  окон  отладчика  осуществляется  с  помощью  меню  New.  Эти  окна  способствуют  просмотру  содержимого  регистров  управления  во  время  выполнения  программы.  После  активации  кнопки  Add  SFR  создается  элемент  для  просмотра  регистра  управления.  После  всего  изложенного  уже  не  трудно  понять  весь  процесс  программирования  и,  как  следствие,  область  применения  PIC-16F877A. 


Фредерик  Жимарши  в  книге  «Сборка  и  программирование  мобильных  роботов»,  анализируя  сложившиеся  тенденции  программистов  в  написании  алгоритмов,  предостерегает  от  традиционного  подхода  моделирования  среды,  близкой  мобильному  роботу  [1].  Такой  вывод  закономерен,  так  как  он  подразумевает  использование  сложной  математической  системы  расчетов  и  как  следствие  большого  объема  памяти.  Используемые  датчики  должны  при  этом  обладать  исключительной  точностью,  что  невозможно  в  связи  с  возникающими  различными  погрешностями.  Предлагается  другой  подход,  а  именно  использовать  архитектуру  приоритетных  взаимодействий,  что  позволит  собрать  в  единую  согласованную  систему  все  элементы  управления  мобильным  роботом.  Идея  заключается  в  объединении  восприятия  и  движения,  что  потребует  лишь  незначительных  математических  ресурсов.  В  развитие  этой  идеи  предлагается  метод  приоритетного  взаимодействия  для  программирования  роботов.  Такая  технология  предполагает  использование  приоритетов:  реакции  поведения  высших  порядков  временно  блокируют  низшие  до  исчезновения  условий  вызвавших  этот  приоритет.  Таким  образом,  происходит  учет  каждого  события  и  соответствующей  реакции.  Преимущество  подхода  приоритетного  взаимодействия  очевидно,  так  как  данный  способ  программирования  разбивается  на  отдельные  задачи,  которые  работают  одновременно  в  параллельном  режиме,  что  позволит  программировать  каждую  задачу  отдельно,  а  значит,  появится  возможность  добавления  новых  функций  без  утраты  уже  существующих.  Трудность  может  возникнуть  при  увязке  и  расстановке  приоритетов.  В  случае  одновременной  работы  нескольких  программ  необходимо  использовать  систему  работы  в  режиме  реального  времени,  что  предполагает  использование  основной  программы,  которая  будет  выделять  одинаковое  количество  времени  для  выполнения  каждой  задачи.  При  применении  подхода  приоритетного  взаимодействия  используют  две  переменные:  одна  из  них  для  команды  на  микромоторчики,  а  другая  оповещает  систему  о  желаемой  передаче  сигнала  на  исполнительный  элемент.  Эта  переменная  называется  флагом.  Соответствующая  программа  имеет  вид: 


int  Default  command;  //  Команда  на  двигатели 


int  Default  flag//  Флаг  для  системы 


void  Default  ()  Default  command  =  Shutdown  ;  //  Робот  остановлен


Defaul  tflag=1;//  Команда  активирована.


Такой  подход  программирования  вполне  применим  для  PIC-16F877A.


Пример  программы  PIC-16F877A  для  системы  слежения:  start:low0/  Низкий  уровень  шины  0  low1/Низкий  уровень  шины  1  pot2,255,b0/  Чтение  показаний  фотоэлемента  1  pot3,255,b1Чтение  показаний  фотоэлемента  2  if  b0  to  b1  then  startЕсли  показания  равны,  то  ничего  не  делать  if  b0  b1  then  greater/  Если  больше,  то  насколько  if  b0  b1  then  lesserЕсли  меньше,  то  насколько  greater:Процедура  больше  b2=b0-b1Определение  разницы  показаний  if  b2=10t  hen  cwВнутри  границ?  Если  нет,  перейти  на  cw  goto  start:Если  внутри  границ,  измерять  снова  lesser:Процедура  меньше  b2=b1–b0/Определение  разницы  показаний  if  b2≠10  then  ccw/  Внутри  границ?  Если  нет,  перейти  на  ccw  goto  start:Если  внутри  границ,  измерять  снова  cw:/  Поворот  блока  по  часовой  стрелке  hig  0/Включить  мост  pause  100Вращение  0,1  с  goto  startНовая  проверка  ccw:/  Поворот  блока  против  часовой  стрелки  hig  1/Включить  мост  pause  100/Вращение  0,1  с  goto  startНовая  проверка  [3].


В  данной  программе  задействованы  два  датчика  —  фотодиода.  При  их  разной  освещенности  происходит  поворот  всей  системы.  При  одинаковой  освещенности  поворота  не  происходит.


Конечно,  все  изложенное  требует  наличие  конкретных  электронных  устройств  и  денежных  затрат.  Вместе  с  тем  работу  отлаженного  кода  можно  проверить  виртуально,  используя  среду  Proteus.  Запускается  Proteus  ISIS,  в  режиме  Component  необходимо  нажать  Pic  from  libraries  и  в  списке  PIC  добавить  наш  PIC16F877A,  далее  выбирается  LED-RED,  RES  и  все  другие  компоненты  схемы,  которые  соответственно  добавляются  в  форму.


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


 


Описание: G:\Безымянный 1.jpg


Рисунок  1.  Виртуальная  электрическая  схема


 


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


 


Список  литературы:


1.Жимарши  Ф.  Сборка  и  программирование  мобильных  роботов  в  домашних  условиях  /  Ф.  Жимарши;  пер.  с  фр.  М.А.  Комаров.  М.:  НТ  Пресс,  2007.  —  288  с.  :  ил. 


2.Корабельников  А.А.  Самоучитель  по  программированию  PIC-контроллеров  для  начинающих  [Электронный  ресурс]  —  Режим  доступа.  —  URL:  http://ikarab.narod.ru/Kea_20.html  (дата  обращения  02.10.2013  г.). 


3.Ловин  Дж.  Создаем  робота  —  андроида  своими  руками.:  Пер.  с  анг.  Мельникова  Г.  М.:  Издательский  дом  ДМК-пресс,  2007  —  320  с.:  ил. 


4.PIC16  MCU  Products  [Электронный  ресурс]  —  Режим  доступа.  —  URL:  http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74  (дата  обращения  02.10.2013  г.).

Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий