Диодная мигалка на пик контроллере. Самая простая схема на микроконтроллере. Выбор режима работы светодиодного стробоскопа

PIC микроконтроллеры, обладают гарвардской архитектурой и производятся фирмой Microchip Technology Inc. Название PIC является сокращением от английской фразы peripheral interface controllers -в переводи на великий и могучий "контроллеры интерфейса периферии". PIC контроллеры под маркой Microchip выпускают 8-, 16- и 32-битовые микроконтроллеры, а также цифровые сигнальные контроллеры DSC. Микроконтроллеры PIC имеют следующие значимые плюсы: хорошая преемственность разных семейств: полная программная совместимость и общие средства разработки, в том числе бесплатная среда IDE MPLAB, общие библиотеки, общие стеки популярных протоколов передачи, совместимость по периферии, выводам, питающим напряжениям. Номенклатура контроллеров насчитывает более 500 различных видов со всевозможными вариантами периферии, различными размерами памяти, производительностью, количеством выводов, диапазонами питающих напряжений, рабочими температурами и т.п.


Рассмотрим самый простой контроллер сери ПИК PIC16C84 или PIC16F84.

Наличие FLASH-памяти, позволяет перепрограммировать его за считанные секунды. Количество циклов перезаписи микроконтроллера 1000. Из его 18 выводов 13 можно использоваться как разряды ввода - вывода общего назначения. Когда они прошиты на вывод, то допускают ток уровня логической единицы "1" до 20мА и ток уровня логического нуля "0" до 25мА (более чем достаточный для подключения, например, светодиодов). Это дает возможноть разрабатывать на этом контроллере простые и дешевые электронные устройства и делает его идеальным кандидатом для желающих изучить и понять принципы работы с PIC микроконтроллером. Цоколевка выводов 8 битных микроконтроллеров показана ниже:


Контакты RA* и RB* - это ввод и вывод, связанные с регистрами контроллера PORTA и PORTB соответственно (вывод RA4 можно применять как вход внутреннего таймера, а RB0 - использовать в роли источника прерываний). VDD и VSS - питание (+Uпит и GND). Серия микроконтроллеров 16x84 работает в широком интервале напряжений, но обычно VSS подсоединен к 0 В, а VDD - +5В. Вывод главного сброса /MCLR обычно подсоединен к VDD (напрямую или через сопротивление), т.к МК содержит надежную схему сброса при подачи питающего напряжения. Контакты OSC1 и OSC2 подсоединяются к генератору тактовой частоты и могут быть настроены для различных его типов, включая режимы резонатора и RC-генератора. Простая схема, с применением контроллера PIC 16C84 представлена на рисунке ниже:


Схема, кроме микросхемы, имеет только RC-генератор и один вывод RB4 подключен к светодиоду. К нему имеется изумительно короткая (из 6 слов) программа для MPASM на асемблере - мигания светодиода.

Наберите этот код в любом текстовом редакторе, сохраните с расширением ASM (LIGHTS.ASM), затем проассемблируйте его с помощью программы MPASM (используйте команду "MPASM LIGHTS.ASM") для получения HEX файла, который можно залить с помощью программатора в микроконтроллер.

Подав питание на схему, светодиод будет мигать.

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

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

Эта фирменная и бесплатная утиита является отличной средой разработки и отладки программ для всех микроконтроллеров семейства PIC, выпускаемых компанией Microchip Technology. MPLAB состоит из отдельных приложений, но связанных друг с другом и состоит из компилятора с языка ассемблер, текстового редактора, симулятора работы прошивки контроллера, Кроме того можно использовать компилятор с CИ.

Автором Тавернье К. преподнесена техническая информация о программных средствах разработки на базе PIC-микроконтроллеров. В приложениях имеется коллекция схемных и программных решений на PIC-микроконтроллерах, реализованны типовые интерфейсы. В книге расписано очень много примеров программной реализации самых различных функций: организация прерываний, подпрограммы расширенной арифметики, арифметики с плавающей запятой и т.д. Для закрепления теории на практике даются несложные устройства, в том числе часы-будильник и многоканальный цифровой вольтметр.

Питание и тактирование PIC-микроконтроллеров
Разработка приложений. Какой микроконтроллер нужно выбрать
Схемные решения интерфейсов микроконтроллеров
Управление светодиодами и оптронами, реле, цифровыми иникаторами, АЦП
Взаимодействие с периферией по последовательному интерфейсу
Беззнаковое умножение 8-разрядных чисел
Знаковое и беззнаковое умножение 16-разрядных чисел
Деление, сложение и вычитание 16-розрядных чисел
Операции с плавающей запятой
Преобразование двоично-десятичных кодов в двоичные
Готовые схемотехнические решения: часы-будильник, реализация интрерфейса и2ц, вольтметр со светодиодной индикацией
Управление шаговыми двигателями

Что такое микроконтроллер и как он работает
Система команд PIC16F84A
Что такое программа и правила ее составления. Пример создания программы автоколебательного мультивибратора. Директивы.
Интегрированная среда проектирования MPLAB IDE и работа в ней
Пример создания программы
Работа в симуляторе. Отладка программы
Пример разработки программы с уходом в прерывания
Организация вычисляемого перехода.
Работа с EEPROM памятью данных
Как работает цифровой компаратор
Циклический сдвиг. Операция умножения
Введение в принцип построения подпрограммы динамической индикации. Косвенная адресация
Преобразование двоичных чисел в двоично-десятичные. Окончательное формирование текста подпрограммы динамической индикации
Принцип счета. Работа с таймером TMR0. Принцип установки групп команд счета в текст программы

Все четыре книги, кроме того в архив добавлены все исходники описываемых программ и другая дополнительная справочная информация. В архиве также вы найдете исходные тексты программ и «прошивки» контроллеров. Справочные материалы на все микроконтроллеры рассмотренные во всех четырех книгах (PIC12c67x PIC16c432 PIC16c433 PIC16c505 PIC16c54_58 PIC16c554_558 PIC16c620_622 PIC16c623_625 PIC16c62B_72A PIC16c63a_65b_73b_74b PIC16c64x_66x PIC16c6x PIC16c717_77x PIC16C71xx PIC16c72 PIC16c72_77 PIC16c745_765 PIC16c77x PIC16c781_782 PIC16c92x PIC16F630_676 PIC16f7x PIC16f84a PIC16f85_86 PIC16F87xA PIC16hv540 PIC16Lc74b PIC17c4x PIC17c752_756 PIC17c7xx PIC17LC752P16 PIC18c601_801 PIC18cXX8)
Введение в CAN 2.0 интерфейс
Модуль CAN в микроконтроллерах PIC
Програмная реализация I2C интерфейса и краткий его обзор
Микросхемы KeeLoq с технологией "прыгающего кода"
Универсальная последовательная шина USB в микроконтроллерах PIC и програмное обеспечение для работы с USB
Модули х-разрядного АЦП в микроконтроллерах PIC
Рекомендации по работе с АЦП в микроконтроллерах PIC
А также софт для програмирования описанных в книгах PIC-Микроконтроллеров IC-Prog и PonyProg2000

К вопросам отладки разработчики относятся по-разному. Одни считают, что достаточно внимательно проанализировать исходный текст программы, проверить формирование сигналов на выводах МК, и можно исправить все ошибки. Другие используют наборы специальных подпрограмм, которые вызываются в контрольных точках и выдают определённым способом (например, выводом на индикатор или последовательный канал связи) информацию о состоянии ресурсов МК. Кстати на этом основана технология ICD (In-Circuit Debugger - внутрисхемная отладка), реализуемая в некоторых МК фирм Motorola и Microchip. Но при любом из вышеуказанных способов отладки возникает одна существенная проблема - необходимость перепрограммирования МК после внесения в программу даже незначительных изменений. Особенно эта проблема актуальна для однократно программируемых МК. Правда в последнем случае отладку можно вести, скажем, на МК с FLASH-памятью, но всё равно время, затрачиваемое на программирование достаточно велико и порой достигает нескольких минут. Кроме того, МК,как правило, нужно извлечь из отлаживаемой схемы, подключить к программатору, а затем вставить обратно. Те, кто имел дело с программированием на ПК, особенно чувствуют разницу. Например, при программировании в среде Borland C++ 3.1 (BC++) для запуска отлаживаемой программы достаточно нажать комбинацию клавиш Ctrl+F9, и через несколько секунд она уже будет работать (если конечно не содержит ошибок). Хотелось бы получить подобный результат и при написании управляющих программ МК. И это возможно благодаря применению ВСЭ, представляющего собой программно-аппаратное средство, способное замещать собой эмулируемый МК в реальном устройстве, с которым его соединяют кабелем со специальной эмуляционной головкой. Использование такого эмулятора ничем не отличается от использования реального МК, за исключением того, что модифицированная программа перезагружается во ВСЭ почти мгновенно.

Лекция 1 - вводная

Microchip давно известна отечественным электронщикам благодаря широко распространенной линейке дешевых 8-битных микроконтроллеров, которые нашли огромное применение в различных устройствах терморегуляторов, приборов малой автоматизации, сенсоров и т.п. Чтобы не отстать от своих основных конкурентов, Microchip в 2007 году представила электронному миру свои новые 32-битные микроконтроллеры семейства PIC32.

В линейке PIC32MX имеется огромное количество устройств от PIC32MX1** до PIC32MX7** с различным объемом памяти (от 16 КБ флеша и 4096 байт ОЗУ до 512 КБ флеша и 131 КБ ОЗУ), периферийными возможностями и корпусными исполнением. В общем, присутствуют модели практически для любого приложения.

Полный вариант лекции с описанием типового подключения МК и примером его программирования можно взять здесь:

Лекция 2 - Микроконтроллеры семейства PIC32. Работа с таймерами.

С помощью таймеров реализовывают отсчет времени, организовывают прерывания, формируют сигналы с широтно-импульсной модуляцией и т.п. В контроллерах PIC-32 имеется два типа таймеров – таймеры A (по сути, он вроде как и один – TMR1) и таймеры типа B (TMR2, TMR3, TMR4, TMR5). Все таймеры 16-разрядные, тактируются от внешнего или внутреннего источника и вызывают прерывания.

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

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

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

Данное устройство можно назвать по-разному: лампой настроения, RGB-светильником, новогодней лампой, светодиодным маяком и пр. Как его использовать - подскажет фантазия.

Вот схема многоцветного RGB-светильника на микроконтроллере PIC12F629 (или PIC12F675). Для увеличения кликните по изображению.

Внешний вид собранного RGB-светильника.

Видео работы светильника в режиме "лампы настроения" (Mood Lamp).

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

    Медленная смена цветов. Зелёное, красное и синее свечение разной интенсивности смешиваются, что позволяет получить плавный перебор цветов радуги;

    Быстрое поочерёдное мигание красным, зелёным и синим цветом;

    Плавное увеличение белого свечения и затем 4 вспышки. Затем идёт повторение цикла;

    Поочерёдное резкое вспыхивание и медленное затухание основных цветов (синего, красного, зелёного). После цикл повторяется.

    Ровное свечение красным;

    Ровное свечение синим;

    Ровное свечение зелёным;

    Мигание синим;

    Ускоренная смена цветов;

    Ровное белое свечение;

    Ровное белое свечение с пониженной яркостью;

    Ровное белое свечение с минимальной яркостью;

    Ровное свечение фиолетовым (красный + синий);

    Ровное свечение оранжевым (красный + зелёный).

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

Чтобы оценить по достоинству всю богатую палитру режимов и работоспособность устройства лучше сначала его собрать на беспаечной макетной плате . Так называемой, "хлебной доске" (Breadboard).

Чтобы свечение от разных светодиодов смешивалось и образовывало ровный цветовой оттенок, светодиоды нужно размещать как можно ближе друг к другу. Также после макетирования схемы можно взять белый лист формата А4, свернуть его в цилиндр и закрепить по сторонам скрепками. Получившийся бумажный цилиндр устанавливаем на беспаечную макетную плату - закрываем светодиоды. В результате у нас получится своеобразный матовый плафон. Вот что из этого может получиться.

Микроконтроллер перед запайкой в плату нужно "прошить ". О том, как это сделать, я уже рассказывал на страницах сайта. Чем прошивать - отдельный вопрос. Если нечем, то сначала нужно собрать самостоятельно USB программатор микроконтроллеров PIC или купить уже готовый . Он ещё не раз пригодится.

Во время прошивки PIC12F629 или PIC12F675 нужно обратить внимание на калибровочную константу. Не лишним будет сначала считать (“Read” ) данные с чистого микроконтроллера и записать куда-нибудь на бумажину значение константы. После прошивки микроконтроллера нужно проверить соответствует ли значение константы в ячейке 0x3FF считанному ранее значению. Если оно отличается, то меняем константу. О том, что такое калибровочная константа я уже рассказывал .

Список необходимых радиодеталей для сборки RGB-светильника.

Название Обозначение Параметры / Номинал Марка или тип элемента
Микроконтроллер DD1 8-битный микроконтроллер PIC12F629 или PIC12F675
Интегральный стабилизатор DA1 на выходное напряжение 5 вольт 78L05, MC78L05ACP (любой аналог)
MOSFET-транзисторы VT1 - VT3 - 2N7000 или КП501А (Внимание! У КП501А другая цоколёвка!)
Полупроводниковый диод VD1 (не обязателен) 1N4148, 1N4007 или аналог
Светодиоды HL1 - HL4 красного цвета свечения любые яркие диаметром 5 мм.
HL5 - HL7 зелёного цвета свечения
HL8 - HL10 синего цвета свечения
Резисторы R1 120 Ом МЛТ, МОН (на мощность рассеивания - 0,125 Вт)
R2, R3 68 Ом
Конденсаторы С2 220 нФ (0,22 мкФ) Керамические многослойные или любые аналоги
С3 100 нФ (0,1 мкФ)
Электролитический конденсатор C1 47 мкФ * 16 вольт любой алюминиевый (К50-35 или зарубежные аналоги)
Кнопка SB1 - любая тактовая кнопка (например, KAN0610-0731B)
Джампер J1 (не устанавливается) -

После подачи питания устройство начинает работать сразу. Нажатием кнопки SB1 можно переключать режим работы RGB-светильника. Кнопку можно нажимать хоть до бесконечности - переключение режимов происходит по кругу.

Печатную плату легко изготовить с помощью маркера для плат . Так делал я. Если маркера для плат нет, то можно применить "карандашный" метод или цапонлак . Умеете делать платы ЛУТ’ом - ещё лучше.

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

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

Пояснения к схеме.

Транзисторы 2N7000 можно заменить на КП501А. Но стоит учесть, что у КП501А другая цоколёвка! Вот такая.

Защитный диод VD1 можно не впаивать в схему. Он служит для защиты схемы при неправильном подключении питания - переполюсовке. Если такая защита не нужна, то диод VD1 тоже не нужен.

Резисторы можно подобрать с номиналами, близким к указанным на схеме (стандартное допустимое отклонение ±20%). Я, например, устанавливал R1 на 130 Ом, а R2, R3 - 82 Ом.

Для питания схемы потребуется стабилизированный блок питания с выходным напряжением 12 вольт. Подойдёт, например, регулируемый блок питания, схема которого описана . Также для питания устройства можно использовать

Данная схема представляет собой простой светодиодный стробоскоп , построенный на микроконтроллере PIC12f629. В стробоскопе имеются 4 перемычки при помощи которых можно выбрать один из вариантов работы светодиода.

Есть следующие режимы: интервал между импульса (30 мсек и 10 мсек), частота повторений (1, 2, 3 и 4 сек), создание одинарных или двойных вспышек.

Поскольку выход микроконтроллера PIC12F629 способен выдержать максимальную нагрузку в районе 25 мА, то в схему стробоскопа включен транзистор, способный разгрузить выход микроконтроллера и увеличить ток, проходящий через светодиод. Этот транзистор имеет максимальный ток коллектора 100 мА, достаточный для питания большинства типов 5 мм светодиодов.

Резистор R4 выполняет роль ограничителя тока для светодиода. При питании стробоскопа в 5 вольт и падении напряжении на светодиоде в 1,8 вольта, ток протекающий через светодиод ограничен 47 мА.

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

Длительность импульса, интервал и режим стробоскопа могут быть выбраны пользователем с помощью блок перемычек. Как уже было сказано выше, в схеме реализовано два режима: одиночные вспышки и двойные (пауза между двойными вспышками составляет по умолчанию – 175 мсек).

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

Выбор режима работы светодиодного стробоскопа

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

Примеры изменения значений в памяти микроконтроллера PIC12F629

Изменение длительности вспышки. Предположим, вы хотите получить длительность импульса вспышки (вместо 30 мсек по умолчанию) 40 мсек. Тогда значение, которое нужно записать в EEPROM определяется следующим образом: 40 мсек / 1 мсек = 40. Теперь переведем 40 в шестнадцатеричную систему, получим 28, которое и нужно записать в 00 адрес EEPROM.

Рассчитаем изменение интервала между двойными вспышками на 0,2 сек (вместо 175 мсек по умолчанию) . Для этого 200 мсек/ 1 мсек = 200. Переводим в шестнадцатеричную систему получим C8 которое записываем в адресс 02.

Чтобы изменить интервал между серией вспышек на 1,3 сек (вместо 1 сек по умолчанию) нужно сделать следующее: 1,3 сек / 100 мсек = 13. Переводим в шестнадцатеричный вид получаем 0D. Данное значение прописываем в адрес 03 EEPROM.

Необходимо заметить, что 255 это максимальное значение, которое можно прописать в один адрес памяти.

Самый простой способ перевести число из десятичной в шестнадцатеричную систему (к примеру, число 40), это в поисковике google.com набрать: 40 to HEX. Получим ответ: 0x28. Приставка 0x в результате просто указывает нам, что значение приведено в шестнадцатеричной системе.

В схеме стробоскопа можно применить микроконтроллер как PIC12F629, так и PIC12F675.

Модификация схемы светодиодного стробоскопа (азбука Морзе – SOS)

Это модифицированная версия стробоскопа, позволяющая в системе азбуки Морзе организовать световую передачу сигнала SOS. Длина точки может быть установлена в одном из четырех периодов, а время между двумя последовательностями ‘SOS’ также может быть скорректирована.

Итак, пришло время изучать микроконтроллеры, а потом и их программировать, а так же хотелось собирать устройства на них, схем которых сейчас в интернете ну просто море. Ну нашли схему, купили контроллер, скачали прошивку….а прошивать то чем??? И тут перед радиолюбителем, начинающим осваивать микроконтроллеры, встает вопрос – выбор программатора! Хотелось бы найти оптимальный вариант, по показателю универсальность - простота схемы - надёжность. «Фирменные» программаторы и их аналоги были сразу исключены в связи с довольно сложной схемой, включающей в себя те же микроконтроллеры, которые необходимо программировать. То есть получается «замкнутый круг»: что бы изготовить программатор, необходим программатор. Вот и начались поиски и эксперименты! В начале выбор пал на PIC JDM. Работает данный программатор от com порта и питается от туда же. Был опробован данный вариант, уверенно запрограммировал 4 из 10 контроллеров, при питании отдельном ситуация улучшилась, но не на много, на некоторых компьютерах он вообще отказался что либо делать да и защиты от «дурака» в нем не предусмотрено. Далее был изучен программатор Pony-Prog. В принципе, почти тоже самое что и JDM.Программатор «Pony-prog», представляет очень простую схему, с питанием от ком-порта компьютера, в связи с чем, на форумах, в Интернете, очень часто появляются вопросы по сбоям при программировании того, или иного микроконтроллера. В результате, выбор был остановлен на модели «Extra-PIC». Посмотрел схему – очень просто, грамотно! На входе стоит MAX 232 преобразующая сигналы последовательного порта RS-232 в сигналы, пригодные для использования в цифровых схемах с уровнями ТТЛ или КМОП, не перегружает по току COM-порт компьютера, так как использует стандарт эксплуатации RS232, не представляет опасности для COM-порта.Вот первый плюс!
Работоспособен с любыми COM-портами, как стандартными (±12v; ±10v) так и с нестандартными COM-портами некоторых моделей современных ноутбуков, имеющих пониженные напряжения сигнальных линий, вплоть до ±5v – еще плюс! Поддерживается распространёнными программами IC-PROG, PonyProg, WinPic 800 (WinPic800) и другими – третий плюс!
И питается это все от своего собственного источника питания!
Было решено – надо собирать! Так в журнале Радио 2007 №8 был найден доработанный вариант этого программатора. Он позволял программировать микроконтроллеры в двух режимах.
Известны два способа перевода микроконтроллеров PICmicro в режим программирования:
1.При включённом напряжении питания Vcc поднять напряжение Vpp (на выводе -MCLR) от нуля до 12В
2.При выключенном напряжении Vcc поднять напряжение Vpp от нуля до 12В, затем включить напряжение Vcc
Первый режим - в основном для приборов ранних разработок, он накладывает ограничения на конфигурацию вывода -MCLR, который в этом случае может служить только входом сигнала начальной установки, а во многих микроконтроллерах предусмотрена возможность превратить этот вывод в обычную линию одного из портов. Это еще один плюс данного программатора. Схема его приведена ниже:

Крупнее
Все было собрано на макетке и опробовано. Все прекрасно и устойчиво работает, глюков замечено небыло!
Была отрисована печатка для этого программатора.
depositfiles.com/files/mk49uejin
все было собрано в открытый корпус, фото которого ниже.




Соединительный кабель был изготовлен самостоятельно из отрезка восьмижильного кабеля и стандартных комовских разьемах, никакие нуль модемные тут не прокатят, предупреждаю сразу! К сборке кабеля следует отнестись внимательно, сразу избавитесь от головной боли в дальнейшем. Длина кабеля должна быть не более полутора метров.
Фото кабеля


Итак, программатор собран, кабель тоже, наступил черед проверки всего этого хозяйства на предмет работоспособности, поиск глюков и ошибок.
Сперва наперво устанавливаем программу IC-prog, которую можно скачать на сайте разработчика www.ic-prog.com, Распакуйте программу в отдельный каталог. В образовавшемся каталое должны находиться три файла:
icprog.exe - файл оболочки программатора.
icprog.sys - драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы.
icprog.chm - файл помощи (Help file).
Установили, теперь надо бы ее настроить.
Для этого:
1.(Только для Windows XP): Правой кнопкой щёлкните на файле icprog.exe. «Свойства» >> вкладка «Совместимость» >> Установите «галочку» на «Запустить программу в режиме совместимости с:» >>выберите «Windows 2000».
2.Запустите файл icprog.exe. Выберите «Settings» >> «Options» >> вкладку «Language» >> установите язык «Russian» и нажмите «Ok».
Согласитесь с утверждением «You need to restart IC-Prog now» (нажмите «Ok»). Оболочка программатора перезапустится.
Настройки" >> «Программатор

1.Проверьте установки, выберите используемый вами COM-порт, нажмите „Ok“.
2.Далее, „Настройки“ >> „Опции“ >> выберите вкладку „Общие“ >> установите „галочку“ на пункте „Вкл. NT/2000/XP драйвер“ >> Нажмите „Ok“ >> если драйвер до этого не был устновлен на вашей системе, в появившемся окне „Confirm“ нажмите „Ok“. Драйвер установится, и оболочка программатора перезапустится.
Примечание:
Для очень „быстрых“ компьютеров возможно потребуется увеличить параметр „Задержка Ввода/Вывода“. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы.
3.»Настройки" >> «Опции» >> выберите вкладку «I2C» >> установите «галочки» на пунктах: «Включить MCLR как VCC» и «Включить запись блоками». Нажмите «Ok».
4.«Настройки» >> «Опции» >> выберите вкладку «Программирование» >> снимите «галочку» с пункта: «Проверка после программирования» и установите «галочку» на пункте «Проверка при программировании». Нажмите «Ok».
Вот и настроили!
Теперь бы нам протестировать программатор в месте с IC-prog. И тут все просто:
Далее, в программе IC-PROG, в меню, запустите: Настройки >> Тест Программатора

Перед выполнением каждого пункта методики тестирвания, не забывайте устанавливать все «поля» в исходное положение (все «галочки» сняты), как показано на рисунке выше.
1.Установите «галочку» в поле «Вкл. Выход Данных», при этом, в поле «Вход Данных» должна появляться «галочка», а на контакте (DATA) разъёма X2, должен установиться уровень лог. «1» (не менее +3,0 вольт). Теперь, замкните между собой контакт (DATA) и контакт (GND) разъёма X2, при этом, отметка в поле «Вход Данных» должна пропадать, пока контакты замкнуты.
2.При установке «галочки» в поле «Вкл. Тактирования», на контакте (CLOCK) разъёма X2, должен устанавливаться уровень лог. «1». (не менее +3,0 вольт).
3.При установке «галочки» в поле «Вкл. Сброс (MCLR)», на контакте (VPP) разъёма X3, должен устанавливаться уровень +13,0… +14,0 вольт, и светиться светодиод D4 (обычно красного цвета).Если переключатель режимов поставить в положение 1 то будет светится светодиод HL3
Если при тестировании, какой-либо сигнал не проходит, следует тщательно проверить весь путь прохождения этого сигнала, включая кабель соединения с COM-портом компьютера.
Тестирование канала данных программатора EXTRAPIC:
1. 13 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
2. 12 вывод микросхемы Da1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
3. 6 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
3. 1 и 2 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
4. 3 вывод микросхемы DD1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
5. 14 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
Если все тестирование прошло успешно, то программатор готов к эксплуатации.
Для подключения микроконтроллера к программатору можно использовать подходящие панельки или же сделать адаптер на основе ZIF панельки (с нулевым усилием прижатия), например как здесь radiokot.ru/circuit/digital/pcmod/18/.
Теперь несколько слов про ICSP - Внутрисхемное программирование
PIC-контроллеров.
При использовании ICSP на плате устройства следует предусмотреть возможность подключения программатора. При программировании с использованием ICSP к программатору должны быть подключены 5 сигнальных линий:
1. GND (VSS) - общий провод.
2. VDD (VCC) - плюс напряжение питания
3. MCLR" (VPP)- вход сброса микроконтроллера / вход напряжения программирования
4. RB7 (DATA) - двунаправленная шина данных в режиме программирования
5. RB6 (CLOCK) Вход синхронизации в режиме программирования
Остальные выводы микроконтроллера не используются в режиме внутрисхемного программирования.
Вариант подключения ICSP к микроконтроллеру PIC16F84 в корпусе DIP18:

1.Линия MCLR" развязывается от схемы устройства перемычкой J2, которая в режиме внутрисхемного программирования (ICSP) размыкается, передавая вывод MCLR в монопольное управление программатору.
2.Линия VDD в режиме программирования ICSP отключается от схемы устройства перемычкой J1. Это необходимо для исключения потребления тока от линии VDD схемой устройства.
3.Линия RB7 (двунаправленная шина данных в режиме программирования) изолируется по току от схемы устройства резистором R1 номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R1. При необходимости обеспечить максимальный ток, резистор R1 необходимо заменить (как в случае c VDD) перемычкой.
4.Линия RB6 (Вход синхронизации PIC в режиме программирования) так же как и RB7 изолируется по току от схемы устройства резистором R2, номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R2. При необходимости обеспечить максимальный ток, резистор R2 необходимо заменить (как в случае с VDD) перемычкой.
Расположение выводов ICSP у PIC-контроллеров:


Эта схема только для справки, выводы программирования лучше уточнить из даташита на микроконтроллер.
Теперь рассмотрим прошивку микроконтроллера в программе IC-prog. Будем рассматривать на примере конструкции вот от сюда rgb73.mylivepage.ru/wiki/1952/579
Вот схема устройства


вот прошивка
Прошиваем контроллер PIC12F629. Данный микроконтроллер для своей работы использует константу osccal - представляет собой 16-ти ричное значение калибровки внутреннего генератора МК, с помощью которого МК отчитывает время при выполнении своих программ, которая записана в последней ячейке данных пика. Подключаем данный микроконтроллер к программатору.
Ниже на сриншоте красными цифрами показана последовательность действий в программе IC-prog.


1. Выбрать тип микроконтроллера
2. Нажать кнопку «Читать микросхему»
В окне «Программный код» в самой последней ячейке будет наша константа для данного контроллера. Для каждого контроллера константа своя! Не сотрите ее, запишите на бумажку и наклейте ее на микросхему!
Идем далее


3. Нажимаем кнопку «Открыть файл...», выбираем нашу прошивку. В окне программного кода появится код прошивки.
4. Спускаемся к концу кода, на последней ячейке жмем правой клавишей мыши и выбираем в меню «править область», в поле «Шестнадцатеричные» вводим значение константы, которую записали, нажимаем «ОК».
5. Нажимаем «программировать микросхему».
Пойдет процесс программирования, если все прошло успешно, то программа выведет соответствующее уведомление.
Вытаскиваем микросхему из программатора и вставляем в собранный макет. Включаем питание. Нажимаем кнопку пуск.Ура работает! Вот видео работы мигалки
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
С этим разобрались. А вот что делать если у нас есть файл исходного кода на ассемблере asm, а нам нужен файл прошивки hex? Тут необходим компилятор. и он есть - это Mplab, в этой программе можно как писать прошивки так и компилировать. Вот окно компилятора


Устанавливаем Mplab
Находим в установленной Mplab программу MPASMWIN.exe, обычно находится в папке - Microchip - MPASM Suite - MPASMWIN.exe
Запускаем ее. В окне (4) Browse находим наш исходник (1) .asm, в окне (5) Processor выбираем наш микроконтроллер, нажимаем Assemble и в той же папке где вы указали исходник появится ваша прошивка.HEX Вот и все готово!
Надеюсь эта статья поможет начинающим в освоении PIC контроллеров! Удачи!

1 схема
Предлагаю вам для повторения принципиальную схему световых эффектов, сделанных на основе популярного микроконтроллера Pic12f629. Схема представляет 15 различных световых эффектов, включая эффект имитирующий полицейский проблесковый сигнал. Для увеличения - клик на картинку.

Эта схема очень проста в сборке и не требует налаживания. При нажатии кнопки "Старт " включается автоматический режим воспроизведения.


Автоматический режим воспроизведения - это когда воспроизводятся все световые эффекты поочередно. Для остановки воспроизведения эффектов еще раз нажмите кнопку "Старт".


При нажатии кнопок "Вперед " или "Назад " при остановленным воспроизведением, включится первый эффект и будет работать постоянно.


Чтобы переключить эффект нажмите кнопку "Назад " - для перехода к предыдущему световому эффекту, "Вперед " - для перехода к следующему.


Устройство собранно на печатной плате, рисунок и прошивка для контроллера в архиве. На плате собран и простой стабилизатор 5В, для питания контроллера (на схеме он не показан). Корпус - пластмассовая небольшая коробочка. Сами светодиоды выбираем любых типов и цветов, подходящих по напряжению и току. Их располагаем в любом виде - тут уже подключите свою фантазию. А если нужно сделать на основании этого девайса эффекты для дискотеки - просто усиливаем выходы микроконтроллера мощными полевыми транзисторами типа IRF. Автор конструкции: Пелех.М
2 часть
В данной статье предлагается 2 схемы светодиодных эффектов на микроконтроллерах PIC и AVR .

1) PIC12F629

Существует 4 функции:

* Chaser MODE
* Brake MODE
* Chaser / Brake MODE
* OFF

Режимы переключаются при последовательном нажатии на кнопку.

2) Attiny2313

Светодиодная гирлянда на микроконтроллере ATtiny231320PI

Данный проект светодиодной гирлянды на микроконтроллере хорошо подходит для начинающих. Схема отличается своей простотой и содержит минимум элементов.

Данное устройство управляет 13 светодиодами, подключенными к портам микроконтроллера. В качестве микроконтроллера используется МК фирмы ATtiny231320PI. Благодаря использованию внутреннего генератора, выводы 4 и 5 задействованы как дополнительные порты микроконтроллера PA0,PA1. Схема обеспечивает выполнение 12 про- грамм эффектов, 11 из которых - индивидуальные комбинации, а 12-тая про- грамма – последовательный однократный повтор предыдущих эффектов. Переключение на другую программу осуществляется нажатием на кнопку SB1. Программы эффектов включают в себя и бегущий одинарный огонь, и нарастание огня, и бегущую тень и многое другое.

Устройство имеет возможность регулировки скорости смены комбинаций при выполнении программы, которая осуществляется нажатием на кнопки: SB2 – увеличение скорости и SB3 – уменьшение скорости при условии, что переключатель SA1 находиться в положении "Скорость программы”. Также имеется возможность регулировать частоту горения светодиода (от стабилизированного свечения до легкого мерцания), которая осуществляется нажатием на кнопки: SB2 – уменьшение (до мерцания) и SB3- увеличение при условии, что переключатель SA1 находиться в положении "Частота мерцания”. У переключателя SA2 замкнутое положение соответствует режиму регулировки скорости выполнения программ, а разомкнутое - режиму регулировки частоты горения светодиодов.
Порядок нумерации светодиодов в схеме соответствует их порядку зажигания при выполнении программы. При необходимости вывод RESET может быть использован для сброса, а в качестве порта PA2 он не задействован. В устройстве выбрано при программировании тактовая частота 8 МГц от внутреннего генератора (фузы CKSEL3..0 - 0100).Хотя возможно использование частоты в 4 МГц(фузы CKSEL3..0 - 0010) с соответствующими изменениями временных интервалов работы схемы.
Тип светодиодов, указанный на схеме использовался в опытном образце, для схемы подойдут любые светодиоды с напряжением питания 2-3 вольта, резисторами R1-R17 можно регулировать яркость свечения светодиодов.



Понравилась статья? Поделиться с друзьями: