Схемы на pic12f629: Устройства на микроконтроллерах семейства PIC.

Содержание

Автоматическое управление светом на PIC12F629

Схемы устройств на микроконтроллерах

материалы в категории

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


Схема устройства управления фарами

Схема выполнена на недорогом микроконтроллере pic12f629. Сама схема показана на рисунке ниже

Алгоритм работы схемы управления фарами

1.Питание 12в 
2.При вкл зажигания после прохождения 6 импульсов с датчика скорости вкл ДХО 
3.При вкл габаритов все переходит в штатный режим 
4.При выкл габаритов переходим п.2 
5.При остановке (например в пробке) ДХО выключится через 3 мин при начале движения п.2 
6.При остановке и выключении зажигания, ДХО горит ещё 20 секунд и выключается.

Устройство работает следущим образом

1. Когда выключено зажигание, светодиод HL1 моргает с частотой 1раз в секунду (1Hz), сигнализируя о том ,что устройство находится в дежурном режиме (режим ожидания).

2. При включении зажигания светодиод HL1 начинает светится постоянно,микроконтроллер ждёт прихода импульсов с датчика скорости,и при начале движения автомобиля, через 1 секунду автоматически зажигаются ДХО и горят всё время движения до остановки.

3. Во время остановки, включается режим выдержки времени выключения ДХО (3 минуты), об этом сигнализирует встроенный Бипер (2 коротких звуковых сигнала – это при включёном зажигание и остановки автомобиля), если в это время выключить замок зажигания (например при длительной стоянке), прозвучат 4 коротких звуковых сигнала, сигнализируя о том, что включился режим выдержки времени включения ДХО 20 секунд и затем они выключатся (режим вежливой подсветки), устройство переходит в дежурный режим.

 

4. При включении Габаритных огней, устройство автоматически переходит в режим ожидания, ДХО выключаются (правила ПДД), всё работает в штатном режиме. 

5. Режим вежливой подсветки можно включить так: включить зажигание, при этом прозвучат 2 коротких сигнала и сразу его выключить, (прозвучат 4 звуковых сигнала) при этом устройство автоматически перейдёт в режим вежливой подсветки. Если требуется выключить ДХО не дожидаясь выдержки времени, следует включить и тут же выключить Габаритные огни. 

6. Светодиод HL2 сигнализирует о состоянии ДХО ( Светится – ДХО работают, выключен – ДХО не работают)


Применёное реле, на максимальный ток проходящий через контакты 10А, если Вы вдруг захотите применить это устройство для Автоматического включения БС, лучше установить дополнительное реле типа SLC – 12VDC – SL – C , максимальный ток контактов 30А, этого вполне достаточно для управления БС. Светодиоды HL1 и HL2 устанавиваются в удобном месте, например в приборной панели . Пишалка ( BUZZER ) так же устанавливается в удобном для водителя месте. На фотографии собраного устройства видно что светодиоды стоят на самой печатной плате, но это сделано было только для отладки схемы. Установка произвольная!

 

Внимание! При прошивке микроконтроллера сохраните калибровочную константу…, без неё работа устройства не возможна.

Во вложении- печатная плата и прошивка для микроконтроллера

Источник: http://meandr.org/

Вложения к странице
ФайлОписаниеРазмер файла:
avto_dho.rar 33 Кб

Автомобильные охранные системы на PIC12F629

Материал предоставлен журналом Радиолюбитель  

 

В продолжении темы автомобильных охранных систем на микроконтроллерах фирмы MICROCHIP [1], [2] предлагается еще две схемы автомобильных охранных систем на PIC12F629, модернизированных с целью повышения надежности работы как в неблагоприятных климатических условиях, так и в условиях взлома автомобиля, при попытках вывода из строя автомобильной охранной системы.

    Схема на рис. 1 представляет собой модернизированный вариант автомобильной охранной системы АОС [1] с использованием новой элементной базы. Модернизация коснулась коррекции алгоритма работы охранной системы для микроконтроллера PIC12F629, изменения входных цепей приема сигналов от дверных включателей освещения, концевых выключателей капота и багажника, изменения схемы подключения светодиода.

Рис.1. Принципиальная схема автомобильной охранной системы

    Автомобильная охранная система АОСМ выполнена на основе микроконтроллера PIC12F629 фирмы MICROCHIP с энергонезависимой памятью. Наличие энергонезависимой памяти позволяет сохранять текущее состояние АОСМ при нормальном или умышленном отключении питания и переходить в него при восстановлении питания. Изменения алгоритма работы АОС коснулись в основном режима ПОДГОТОВКА [1]. В новом варианте алгоритм работы АОСМ в этом режиме будет следующий:

    ПОДГОТОВКА — после высадки пассажиров и закрытия всех дверей, визуальной проверки состояния капота и багажника, водитель, сидя в кабине, включает потайной тумблер питания SA1 (рис. 1) блока АОСМ и, если питание системы АОСМ было выключено водителем в режиме СНЯТИЕ С ОХРАНЫ, то загорится и будет гореть непрерывно светодиод VD1 (рис. 1).

    Примечание: если питание системы АОСМ было отключено в режиме ОХРАНА, то при восстановлении питания система АОСМ немедленно перейдет в режим ОХРАНА.

    Если питание системы АОСМ было отключено в режиме ОХРАНА после взлома, то при восстановлении питания система АОСМ немедленно перейдет в режим ОХРАНА с блокировкой зажигания.

    Если питание блока АОСМ было отключено во время состояния ВЗЛОМ, то при подаче питания система АОСМ немедленно перейдет в режим ВЗЛОМ с соответствующей звуковой сигнализацией. И только после отработки этого режима и перехода в режим ОХРАНА возможен режим СНЯТИЕ С ОХРАНЫ.

    Таким образом, попытки умышленного вывода из строя системы АОСМ путем вскрытия капота и снятия проводов с клемм аккумулятора и последующего их подключения, будут сопровождаться звуковой сигнализацией при каждом подключении проводов к аккумулятору в режиме ВЗЛОМ.

    Последующий алгоритм работы модернизированной автомобильной охранной системы АОСМ совпадает с алгоритмом работы системы АОС [1].

    Изменение входных цепей приема сигналов от концевых датчиков вызвано необходимостью повышения надежности работы охранной системы в условиях повышенной влажности и в зимних условиях. При срабатывании одного из концевых выключателей, катод VD3 или VD4 (рис. 1) [1] замыкается на корпус. Напряжение на одном из входов PIC-контроллера уменьшается при этом с 4…5 В до 0,5…0,7 В за счет падения напряжения на диоде. В этом случае микроконтроллер будет работать в соответствии с алгоритмом работы, приведенным в [1].

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

    В итоге охранная система не будет становиться на охрану либо не будет реагировать на срабатывание каких-то выключателей. Для исключения подобных ситуаций и проведена доработка входных цепей охранной системы.

    Изменена и схема подключения светодиода на тот случай, если взломщику станут доступны провода подключения к светодиоду, и он попытается вывести из строя АОСМ путем подачи на провод, подключенный к катоду светодиода, напряжения величиной, например в 100 В. В этом случае будет выгорать резистор R12, но работоспособность автомобильной охранной системы не будет нарушена. Способ изготовления датчика удара, другие технические подробности приведены в статье [1].

    Схема на рис. 2 представляет собой один из вариантов технической реализации иммобилайзера — автомобильной охранной системы с двумя каналами блокировки работы двигателя.

Рис.2. Схема подключения

    Иммобилайзер блокирует пуск двигателя при включении зажигания. Постановка на охрану и снятие с охраны осуществляется бесконтактным способом с помощью брелка на ИК-лучах. Схема брелка и описание его работы приведены в [2]. Для передачи команд от брелка блоку иммобилайзера используется 32-разрядный код, индивидуальный для каждого образца автомобильной охранной системы, и фазоимпульсная модуляция инфракрасных лучей.

    Включатель SA1 размещается в труднодоступном месте и предназначен для аварийного отключения блока иммобилайзера при выходе его из строя. Сам блок вместе с фотоприемником и реле размещаются за приборной панелью. Фотоприемник прикрепляют изнутри к приборной панели любым способом, предварительно высверлив в месте крепления отверстие диаметром 1…3 мм для прохождения ИК-лучей. Хотя можно предварительно проверить работу иммобилайзера без сверления отверстия. Возможно, мощности излучения брелка хватит для преодоления препятствия в виде стенки приборной панели.

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

    Алгоритм работы иммобилайзера следующий:

  1. ВЫКЛЮЧЕНО — питание блока выключено, и охранная система в этом режиме не влияет на электрооборудование автомобиля.
  2. ПОДГОТОВКА — при первоначальной подаче питания на блок иммобилайзера загорается и горит непрерывно светодиод VD1. Реле К1 и К2 при этом отключены. Иммобилайзер запоминает это текущее состояние системы в своей энергонезависимой памяти и при последующих отключениях и включениях питания возвращается в это состояние. В это же состояние иммобилайзер переходит и по команде с брелка при снятии с охраны.
  3. ПОСТАНОВКА НА ОХРАНУ — при включенном зажигании в состоянии ПОДГОТОВКА направить брелок на фотоприемник и нажать кнопку брелка один раз. Система переходит при этом в режим БЛОКИРОВКА.
  4. БЛОКИРОВКА — в этом режиме светодиод VD1 (рис. 2) мигает с частотой 2 Гц, включаются реле К1 и К2 и своими контактами К1.1 и К2.1 разрывают выбранные цепи блокировки. Иммобилайзер запоминает это текущее состояние системы в своей энергонезависимой памяти и, при последующих отключениях и включениях зажигания, возвращается в это состояние, блокируя работу двигателя.
  5. СНЯТИЕ С ОХРАНЫ — при включенном зажигании в режиме БЛОКИРОВКА направить брелок на фотоприемник и нажать кнопку брелка один раз. Иммобилайзер перейдет при этом в режим ПОДГОТОВКА.

    Во время работы в режиме БЛОКИРОВКА микроконтроллер постоянно проводит контроль наличия сигнала с фотодатчика. При пропадании сигнала с фотодатчика частота мигания светодиода уменьшается с 2 Гц до 0,5 Гц, но блокировка двигателя не снимается при выключении и включении зажигания. Для снятия блокировки двигателя необходимо устранить возникшую неисправность либо отключить питание иммобилайзера выключателем SA1 (рис. 2). При появлении сигнала с фотодатчика частота мигания светодиода возвращается к исходной частоте.

    При включении питания и переходе в режим ПОДГОТОВКА микроконтроллер также проводит контроль наличия сигнала с фотодатчика, и при его отсутствии светодиод начинает мигать еще реже с частотой 0,2 Гц, указывая на возникшую неисправность, но не блокируя работу двигателя. Необходимо и в этом случае оперативно устранить возникшую неисправность.

    Фотоприемник DA1 типа ILMS5360 можно заменить фотоприемниками SFH506-36, TFMS5360 и т.д. Выключатель SA1 может быть любого типа, желательно малогабаритный.

    Реле К1 и К2 — любые реле на 12 В с допустимым током через контакты 8…15 А и более, в зависимости от коммутируемой нагрузки.

    Остальные технические подробности работы дистанционного управления на ИК-лучах приведены в статье [2].

    За консультацией по поводу работы описанных схем и со своими пожеланиями и предложениями обращаться к автору статьи.

Источники

  1. «Простая автомобильная охранная система на PIC12C508A», — Радиолюбитель, 2002, №2.
  2. «Простая автомобильная охранная система на PIC12F629 с дистанционным управлением на ИК-лучах», — Радиолюбитель, 2003, №5.

Автор: Н. КУПРЕЕВ, г. Минск, Тел. 283-30-06, E-mail: [email protected]

ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ

   Как то попался мне на глаза телефон Nokia 3310 — внук бегал с ним игрался, естественно давно не рабочий. И тут вспомнил, что где-то видел схемы на дисплей от него. Погуглил, выдало несколько ссылочек, на устройства, мне понравился градусник, порывшись в коробочках нашел нашел термодатчик DS18B20, ну и решил собрать по этой схеме, тем более деталей в ней минимум. ЖК дисплей поддерживает два варианта работы: нормальный (на светлом фоне) и противоположный (на темном фоне). Менять режимы можно перемычкой JP1. Ниже смотрим саму схему термометра на микроконтроллере PIC12F629:

   Технические параметры устройства: 

 * Voltage ………………….. 3 — 3.3 В 
 * Мин. шаг темп…………. 0,1 ‘ C 
 * Погрешность ………………. +/- 0,5 ‘ C Темп. 
 * Обновляется каждые …. 1,2 sec. 
 * Amperage …………….. 0,2 mA — 0,8 mA 
 * Диапазон измеряемых температур … от -55 до 125°C

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

   Протравил плату, в архиве есть рисунок для технологии ЛУТ. Прошил микроконтроллер и просто спаял. Прошивку для термометра можно скачать тут. Сначала датчик подключил через разъем, но он иногда отключался, поэтому его просто припаял.

   Самое трудное было припаять проводки к дисплею, на это ушло часа 2 сначала использовал компьютерный шлейф 40 пиновый — очень тяжело и не удобно, так что отказался от него и взял 80 пиновый шлейф, распустил, и все удачно получилось за 5 минут. Подал питание и… термометр заработал.

   Дальше осталось придумать, как все это облагородить. Порывшись по полочкам нашел вот такой пластиковый коробок 70х40х16.

   После небольших манипуляций с дрелью и напильником получилось такое окошко.

   Осталось закрепить там родное стекло, даже не стекло, а пластик, но со свойством увеличения. Далее силиконовым пистолетом делаем точечную сварку — тут главное не перегреть дисплей. Так как аккумулятора на 3.6 вольта не было, поставил пока три слабенькие батарейки, они тоже дают 3.3 вольта. Со временем поставлю аккумулятор.

   А вот весь термометр на микроконтроллере в сборе:

   Работает без глюков и меряет температуру с точностью, не хуже чем у промышленных аналогов. Поэтому данную схему можно смело рекомендовать для повторения. Автор статьи: Ear.

Originally posted 2019-02-03 08:24:43. Republished by Blog Post Promoter

Цикличный таймер. Версия 4. На PIC12F629 с фиксированными временными интервалами. Простой 2 часа и с регулируемым временем работы двигателя + реверс двигателя. Схема предназначена для авто переворота лотков в инкубаторе и не только.

В версии 4 алгоритм программирования не изменился.

Отличие только в наличии реверса.

 

Время паузы: дефолтное 2 часа, не меняется.

Время работы (длительность импульса) программируется: от 1 сек. до 5 минут.

 

// Алгоритм задания времени работы в вер.4

// ===============================

// Зажать кнопку на контроллере, и, не отпуская ее, включить его питание.

// Контроллер войдет в режим программирования времени работы — светодиод начнет быстро мигать.

// Сразу начать отсчет необходимого времени (можно, например, запустить секундомер),

// по истечении, которого кнопку на контроллере отпустить.

// После отпускания кнопки светодиод перестанет мигать,

// и моргнет 3 раза, подтверждая запись заданного времени в память ЕЕПРОМ.

// После третьего моргания контроллер перейдет в стандартный режим работы.

//==================================

//

// Примечания:

//

// Если при включении питания кнопка не нажата — это режим отсчета заданного времени,

// то есть стандартный режим работы.

// Максимальная выдержка времени до 5 минут !

// После выставления времени работы необходимо провести контрольный цикл для проверки.

 

Схема.

Внимание!

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

 

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

 

Для упрощения подключения микроконтроллера к программатору выкладываю распиновку МК. Может, кому то пригодиться.

 

Программатор PICkit2, назначение выводов на программаторе

1 VPP

2 VCC

3 GND

4 Data

5 Clock

 

 

 

 

 

 

 

 

Архив содержит всё необходимое. Схема, прошивка, печатная плата.

Автор схемы и прошивки QASANDR

Сайт автора https://vrtp.ru/index.php?showtopic=22955&st=30

Архив скачать.

 

“Умная подсветка” на базе микроконтроллера PIC12F629 – Поделки для авто

Для реализации «умной подсветки» в своем автомобиле не представляет особо труда рассмотрим такое устройство на базе микроконтроллера PIC12F629. Устройство обеспечит нам следующие функции освещения в автомобиле:

1. Открытие любой двери автомобиля приводит к включению света в нем;
2. После закрытия всех дверей, освещение в автомобиле продолжает светить в течение 10 секунд с последующем плавным угасанием в течение 2 секунд;
3. При включенном зажигании и закрытии всех дверей свет гасится в течение 2 секунд;

Схема установки обвесных элементов на микросхему и ваттность резисторов указаны в схеме ниже.

Принцип работы прост, при открывании дверей сигнал с дверных концевиков замыкается и на выводе микроконтроллера GP1 устанавливается логический 0.

Это приводит к тому, что на выводе GP0 начинает генерироваться импульсы с постепенным увеличением длинны импульса (с помощью постоянного включения/выключения транзистора VT1 имитируется плавное включение света) в значении логической 1, в итоге через заданное программой время на выводе GP0 устанавливается постоянная логическая 1, что соответствует постоянному свечению ламп. Закрытие дверей приводит к обратному эффекту размыкание концевиков устанавливает на выводе GP1 постоянную логическую 1, что приводит к генерации последовательности импульсов на выводе GP0 с постепенным уменьшением длинны импульсов до момента пока на выводе GP0 не устанавливается постоянный логически 0, что соответствует отключению света в автомобиле. Но при этом программно задается 10 секундная задержка до начала формирования импульсов на GP0 висит логическая 1.

Это произойдет при условии, если на выводе Gp2 не будет «висеть» логическая 1 от зажигания. Т.е. выполняется требование что при включенном зажигании угасание света будет происходить немедленно, а не с 10 секундной задержкой.

Напряжение питания микроконтроллера составляет 5 В, для питания от бортовой сети задействован стабилизатор напряжения (на схеме DA1) и фильтрующие конденсаторы. Для снижения значения напряжения с зажигания, до уровня логической 1 микроконтроллера, применен делитель на резисторах R2, R4. Диод VD1 выполняет роль защиты от обратных токов и напряжений.

Перечень элементов к схеме:

DD1 – микроконтроллер PIC12F629;
VT1 – транзистор IRF640;
R1 – 510 Ом
R2 – 5,1 кОм;
R3 – 510 Ом;
C1 – 0,1 мФ, 16В;
C2 – 10 мФ, 16В;
C3 – 10 мФ, 16В;
C4, C5 – 20 пФ, 16В;
ZQ1 – кварцевый резонатор на 20 МГц;
DA1 – стабилизатор напряжения LM7805;
VD1 – любой диод с обратным напряжение до 5,1 В.

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

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

Архив к статье…

Часы на PIC16F690 с радиодатчиком DS18B20



Часы на PIC16F690 с радиодатчиком DS18B20Простые часы на PIC16F690 с радиодатчиком DS18B20 RF, беспроводная температура улицы на PIC12F629

Предлогаю к рассмотрению схемы простых часов. При подаче питания на схему происходит автоопрделение датчика температуры ds18b2. Наастройка типа индикатора выполняется редактированием EPROMa «Данные», перед программированием ПИКа.
Настройка функции часов в ЕЕПРОМ:
— адрес 2118 в hex формате, первый полубайт выбор одна или две мигающие точки часов «1*» или «2*»; второй полубайт тип индикатора «*0″=ОА(тр), «*1″=ОК(тр), «*2″=ОАТр2, «*3″=ОКТр2;
— адрес 2119 в hex формате, вид термодатчиков «00» — два проводных на одной шине, «01»- один проводной и один беспроводной.
Если две мигающие точки часов то 3 и 4 индикатор перевернуть схемотехнически для диагональных точек, при этом маркировка ножек 3 и 4 индикатора поменяется (см. 4asy690lcd.lay). Датчики температуры DS18B20 в данной схеме могут работать как по трёх проводной схеме так и по двухпроводной (режим паразитного питания). При срабатывании будильника на 1/4сек на выводах 10,11, 12 и 13 одновременно выставляется высокий уровень в течении минуты, при этом мигает дисплей (будильник не реализован в полной мере). Для схемы с общим анодом достаточно элемента 2И, для схемы ОК 4И.
Функции отображения девайсом: \выбор времени\, секунд\, температуры датчик №1\, датчика №2 (внешний RF)\, будильник\,текущая освещённость (0…5) и заданная яркость\. Выбор отображения информации выполняется однократным нажатием клавиши. Вход в настройки и переход между настройками выполняется при длительном удержании клавиши. Редактирование настроек — однократное нажатие. Переход по настройкам идёт по циклу: часы / минуты / секунды / датчик №1 / датчик №2 / будильник / коррекция яркости / коррекция хода часов(cr) / выбор попеременно-отображаемой информации(Lcd) / «выход». Автовыход через 63 сек.
Настройка датчиков температуры выполняется с каждым по отдельности. Входим в настройки первого датчика, подключаем его ногу управления к схеме и жмём кратковременно клавишу, должны появиться его показания. Переходим в настройки второго (длительно удержав клавишу), подключаем его ногу управления к схеме и жмём кратковременно клавишу, должны появиться его показания. Для радиодатчика показания считываются с радиопередатчика при первой передачи им данных и не требуется программирование второго датчика DS. В настройках только можно обнулить адерес RF передатчика. Выходим из настроек и оба датчика подключаем к схеме. При этом в PIC-контроллер записывается уникальный серийный номер каждого из датчиков по которому и будет дальнейший их опрос.
Имеется функция попеременного отображения информации (Lcd). «Lcd0» — отображается выбранная вами функция. «Lcd1» — попеременно время и термодатчик №1. «Lcd2» — попеременно время и термодатчик №2. «Lcd3» — попеременно термодатчик №1 и термодатчик №2. «Lcd4» — по кругу время, термодатчик №1, термодатчик №2. Коррекция хода часов(cr) плюс минус одна единица соответствует плюс минус 1 сек за ~3 суток. При попеременном отображении информации реализовано плавное затухание индикатора. Радиопередатчик 12f629 считывает показания DS и посылает данные по RF один раз в 2 минуты или по изменению состояния кнопки S1, остальное время спит обесточив RF i DS (9мкА). Время пробуждения радиопередатчика можно изменить в Eprome 12f629 в ячейке 2108, по умолчанию записано 34h (т.е. дес. число 52, коэффициент для расчёта 2,3 [52*2,3=~120сек]). Адрес радиопередатчика храниться в Eprome 12f629 в ячейке 2110, по умолчанию записан адрес 55h. В ячейках Eprom с 2100 по 2107 — серийник DS18b20. Радиоприёмник, часы 16F690, автоматически распознают адрес первого принятого радиопередатчика и сохраняют его в Eprome в ячейке 2110. Принятый адрес можно очистить в режиме настройки датчика №2 . Запись значений по умолчанию в указанные выше ячейки Eproma выполняется при программировании PICa.
Сообщения по радио и термодатчикам:
«OFrF» — в течении 12мин. отсутствует сигнал (ошибка) радиопередатчика,
«OF’C» — не подключён термодатчик DS,
«Er’C» — ошибка в чтении термодатчика.
Схема: Питание схемы от 5В. Измерение напряжения питания непосредственно пик контроллера 16F690, при питании менее 3,6В переход в режим энергосбережения, при более 5,5В — сообщение U Er. Возможность работы схемы от батареек 3В с переходом в режим энергосбережения (менее 1млА).
Схема реализована с минимумом деталей. RF-передатчик и DS18b20 запитываются от пик 12F629. Питание схемы передатчика я реализовал от батареек CR2016 и CR1616 в одном корпусе под 2032, склеив по контуру плюсом CR1616 к минусу CR2016. И поместил всё это дело в корпус из под киндер-сюрприза с отверстием под антенну.
Прошивка и схема часы PIC16F690 с 2 DS18B20 по RF — скачать в одном архиве new! 25.02.15.
Частые проблемы: датчик DS врёт на +2С (на плате 16F690) — т.к. подогревается от соседних деталей, вынести подальше.

Передатчик.

RF transmitter and receiver брал на ebay.

[email protected]

Сайт создан в системе uCoz

Простой модуль управления светодиодной RGB-лентой (PIC12F629)

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

Это устройство предназначено для управления RGB-светодиодной лентой или тремя светодиодными блоками с общими анодами.

Режимы работы

Устройство обеспечивает 13 режимов работы светодиодной ленты:

  1. Выключенное состояние.
  2. Включены все светодиоды.
  3. Включены красные светодиоды.
  4. Включены зеленые светодиоды.
  5. Включены синие светодиоды.
  6. Включены красные и зеленые.
  7. Включены красные и синие.
  8. Включены зеленые и синие.
  9. Плавное переключение цветов.
  10. Переключение цветов.
  11. Пульсирование красных.
  12. Пульсирование зеленых.
  13. Пульсирование синих.

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

Принципиальная схема

Схема построена на основе недорогого микроконтроллера PIC12F629. Для плавного изменения яркости светодиодов использован метод широтно-импульсной модуляции. Данный микроконтроллер не имеет PWM-блока, поэтому ШИМ здесь реализован программным способом.

Данный микроконтроллер имеет небольшой объем памяти, поэтому её пришлось экономить. В результате было решено отказаться от ручной регулировки яркости свечения, и использовать низкочастотную ШИМ с частотой 400Гц.

После подачи питания микроконтроллер инициализирует свои внутренние регистры и периферийные устройства и загружает последний режим работы. Выводы 5, 6 и 7 посылают сигналы на полевые транзисторы Q1, Q2 и Q3, которые управляют цветами светодиодной ленты.

Для питания светодиодной ленты обычно применяется 12-вольтовый источник питания. Поэтому для обеспечения питания микроконтроллера в схеме установлен стабилизатор напряжения 5V на микросхеме А1.

Детали и монтаж

Монтаж выполнен на небольшой печатной плате с односторонним расположением печатных дорожек.

Рис. 2. Печатная плата контроллера.

Рис. 3. Расположение деталей на печатной плате.

Транзисторы IRLU024N можно заменить какими-то аналогами, например, такими — STD12NF06L, STD20NF06L, 2SK2229, 2SK2782, 2SK2926.

Кнопка S1 — круглая миниатюрная с выводами под провода. На плате для её установки отверстия сделаны овальными (два отверстия рядом и выковырять материал между ними).

Прошивка для МК: Скачать (2 КБ).

Горчук Н. В.

% PDF-1.4 % 35036 0 объект > эндобдж xref 35036 251 0000000016 00000 н. 0000005400 00000 н. 0000005639 00000 п. 0000005794 00000 н. 0000005829 00000 н. 0000005886 00000 н. 0000009504 00000 н. 0000017746 00000 п. 0000017987 00000 п. 0000018060 00000 п. 0000018217 00000 п. 0000018319 00000 п. 0000018453 00000 п. 0000018522 00000 п. 0000018641 00000 п. 0000018710 00000 п. 0000018829 00000 п. 0000018898 00000 п. 0000019007 00000 п. 0000019076 00000 п. 0000019236 00000 п. 0000019305 00000 п. 0000019445 00000 п. 0000019586 00000 п. 0000019735 00000 п. 0000019917 00000 п. 0000020125 00000 н. 0000020250 00000 п. 0000020366 00000 п. 0000020555 00000 п. 0000020707 00000 п. 0000020858 00000 п. 0000021066 00000 п. 0000021281 00000 п. 0000021471 00000 п. 0000021666 00000 п. 0000021879 00000 п. 0000022061 00000 п. 0000022240 00000 п. 0000022429 00000 п. 0000022619 00000 п. 0000022810 00000 п. 0000022972 00000 п. 0000023133 00000 п. 0000023303 00000 п. 0000023464 00000 п. 0000023624 00000 п. 0000023805 00000 п. 0000023991 00000 п. 0000024194 00000 п. 0000024382 00000 п. 0000024510 00000 п. 0000024667 00000 п. 0000024838 00000 п. 0000025001 00000 п. 0000025172 00000 п. 0000025335 00000 п. 0000025501 00000 п. 0000025651 00000 п. 0000025819 00000 п. 0000025984 00000 п. 0000026200 00000 н. 0000026367 00000 п. 0000026568 00000 н. 0000026725 00000 п. 0000026869 00000 п. 0000027032 00000 п. 0000027189 00000 п. 0000027393 00000 п. 0000027498 00000 п. 0000027693 00000 п. 0000027856 00000 п. 0000028019 00000 п. 0000028183 00000 п. 0000028346 00000 п. 0000028540 00000 п. 0000028738 00000 п. 0000028936 00000 п. 0000029120 00000 н. 0000029270 00000 п. 0000029402 00000 п. 0000029559 00000 п. 0000029703 00000 п. 0000029860 00000 п. 0000030022 00000 п. 0000030167 00000 п. 0000030321 00000 п. 0000030470 00000 п. 0000030635 00000 п. 0000030789 00000 п. 0000030941 00000 п. 0000031098 00000 п. 0000031245 00000 п. 0000031424 00000 п. 0000031602 00000 п. 0000031747 00000 п. 0000031890 00000 п. 0000032050 00000 п. 0000032187 00000 п. 0000032346 00000 п. 0000032499 00000 н. 0000032630 00000 н. 0000032818 00000 п. 0000032990 00000 н. 0000033113 00000 п. 0000033243 00000 п. 0000033377 00000 п. 0000033531 00000 п. 0000033709 00000 п. 0000033825 00000 п. 0000033990 00000 н. 0000034180 00000 п. 0000034288 00000 п. 0000034415 00000 п. 0000034552 00000 п. 0000034681 00000 п. 0000034866 00000 п. 0000035047 00000 п. 0000035172 00000 п. 0000035318 00000 п. 0000035452 00000 п. 0000035591 00000 п. 0000035761 00000 п. 0000035927 00000 п. 0000036049 00000 п. 0000036183 00000 п. 0000036330 00000 н. 0000036516 00000 п. 0000036674 00000 п. 0000036828 00000 п. 0000037015 00000 п. 0000037200 00000 н. 0000037360 00000 п. 0000037530 00000 п. 0000037703 00000 п. 0000037865 00000 п. 0000038017 00000 п. 0000038159 00000 п. 0000038305 00000 п. 0000038485 00000 п. 0000038611 00000 п. 0000038775 00000 п. 0000038940 00000 п. 0000039132 00000 п. 0000039349 00000 п. 0000039450 00000 п. 0000039634 00000 п. 0000039781 00000 п. 0000039911 00000 н. 0000040037 00000 п. 0000040184 00000 п. 0000040332 00000 п. 0000040473 00000 п. 0000040649 00000 п. 0000040770 00000 п. 0000040928 00000 п. 0000041068 00000 п. 0000041178 00000 п. 0000041365 00000 п. 0000041555 00000 п. 0000041662 00000 п. 0000041803 00000 п. 0000041932 00000 п. 0000042123 00000 п. 0000042285 00000 п. 0000042448 00000 п. 0000042579 00000 п. 0000042710 00000 п. 0000042845 00000 п. 0000042982 00000 п. 0000043161 00000 п. 0000043337 00000 п. 0000043468 00000 п. 0000043665 00000 п. 0000043792 00000 п. 0000043976 00000 п. 0000044082 00000 п. 0000044201 00000 п. 0000044338 00000 п. 0000044459 00000 п. 0000044631 00000 п. 0000044755 00000 п. 0000044928 00000 п. 0000045059 00000 п. 0000045197 00000 п. 0000045357 00000 п. 0000045532 00000 п. 0000045661 00000 п. 0000045772 00000 п. 0000045911 00000 п. 0000046080 00000 п. 0000046193 00000 п. 0000046344 00000 п. 0000046493 00000 п. 0000046613 00000 п. 0000046788 00000 п. 0000046917 00000 п. 0000047096 00000 п. 0000047223 00000 п. 0000047394 00000 п. 0000047531 00000 п. 0000047669 00000 п. 0000047814 00000 п. 0000047958 00000 п. 0000048100 00000 н. 0000048242 00000 н. 0000048385 00000 п. 0000048554 00000 п. 0000048741 00000 п. 0000048914 00000 н. 0000049041 00000 п. 0000049225 00000 п. 0000049350 00000 п. 0000049491 00000 п. 0000049633 00000 п. 0000049772 00000 п. 0000049905 00000 н. 0000050044 00000 п. 0000050198 00000 п. 0000050410 00000 п. 0000051062 00000 п. 0000051385 00000 п. 0000051498 00000 п. 0000052408 00000 п. 0000052669 00000 п. 0000053355 00000 п. 0000053379 00000 п. 0000054290 00000 п. 0000054722 00000 п. 0000055007 00000 п. 0000055416 00000 п. 0000055746 00000 п. 0000055770 00000 п. 0000056642 00000 п. 0000056666 00000 п. 0000057457 00000 п. 0000057481 00000 п. 0000058250 00000 п. 0000058274 00000 п. 0000059021 00000 п. 0000059045 00000 п. 0000059808 00000 п. 0000059832 00000 п. 0000060602 00000 п. 0000060626 00000 п. 0000061321 00000 п. 0000061402 00000 п. 0000065109 00000 п. 0000070141 00000 п. 0000009549 00000 н. 0000017721 00000 п. трейлер ] >> startxref 0 %% EOF 35037 0 объект > эндобдж 35038 0 объект a_

% PDF-1. 2 % 927 0 объект > эндобдж xref 927 151 0000000016 00000 н. 0000003391 00000 н. 0000003570 00000 н. 0000003711 00000 н. 0000003823 00000 н. 0000003880 00000 н. 0000003937 00000 н. 0000004004 00000 п. 0000004071 00000 н. 0000004139 00000 п. 0000004207 00000 н. 0000004274 00000 н. 0000004341 00000 п. 0000004409 00000 н. 0000004476 00000 н. 0000004534 00000 н. 0000005237 00000 п. 0000005588 00000 н. 0000005655 00000 н. 0000005775 00000 н. 0000005870 00000 н. 0000005974 00000 н. 0000006040 00000 п. 0000006233 00000 н. 0000006299 00000 н. 0000006467 00000 н. 0000006617 00000 н. 0000006785 00000 н. 0000006888 00000 н. 0000007018 00000 н. 0000007139 00000 н. 0000007300 00000 н. 0000007423 00000 н. 0000007521 00000 н. 0000007682 00000 н. 0000007810 00000 п. 0000007930 00000 п. 0000008069 00000 н. 0000008231 00000 п. 0000008402 00000 п. 0000008567 00000 н. 0000008713 00000 н. 0000008862 00000 н. 0000009017 00000 н. 0000009173 00000 п. 0000009321 00000 п. 0000009475 00000 н. 0000009623 00000 н. 0000009775 00000 н. 0000009916 00000 н. 0000010061 00000 п. 0000010216 00000 п. 0000010339 00000 п. 0000010503 00000 п. 0000010630 00000 п. 0000010760 00000 п. 0000010910 00000 п. 0000011007 00000 п. 0000011103 00000 п. 0000011201 00000 п. 0000011297 00000 п. 0000011392 00000 п. 0000011486 00000 п. 0000011581 00000 п. 0000011675 00000 п. 0000011770 00000 п. 0000011866 00000 п. 0000011961 00000 п. 0000012055 00000 п. 0000012151 00000 п. 0000012246 00000 п. 0000012341 00000 п. 0000012435 00000 п. 0000012530 00000 п. 0000012628 00000 п. 0000012726 00000 п. 0000012823 00000 п. 0000012920 00000 н. 0000013017 00000 п. 0000013114 00000 п. 0000013211 00000 п. 0000013310 00000 п. 0000013408 00000 п. 0000013505 00000 п. 0000013604 00000 п. 0000013702 00000 п. 0000013799 00000 п. 0000013898 00000 п. 0000013996 00000 п. 0000014093 00000 п. 0000014192 00000 п. 0000014290 00000 п. 0000014388 00000 п. 0000014487 00000 п. 0000014585 00000 п. 0000014682 00000 п. 0000014781 00000 п. 0000014879 00000 п. 0000014977 00000 п. 0000015076 00000 п. 0000015174 00000 п. 0000015271 00000 п. 0000015367 00000 п. 0000015464 00000 п. 0000015562 00000 п. 0000015659 00000 п. 0000015756 00000 п. 0000015854 00000 п. 0000015951 00000 п. 0000016047 00000 п. 0000016145 00000 п. 0000016242 00000 п. 0000016339 00000 п. 0000016435 00000 п. 0000016533 00000 п. 0000016630 00000 п. 0000016727 00000 п. 0000016827 00000 н. 0000016927 00000 н. 0000017027 00000 п. 0000017127 00000 п. 0000017227 00000 п. 0000017327 00000 п. 0000017427 00000 п. 0000017527 00000 п. 0000017626 00000 п. 0000017787 00000 п. 0000017873 00000 п. 0000017962 00000 п. 0000018056 00000 п. 0000018080 00000 п. 0000019276 00000 п. 0000019299 00000 н. 0000020288 00000 п. 0000020397 00000 п. 0000021795 00000 п. 0000021819 00000 п. 0000023131 00000 п. 0000023155 00000 п. 0000024430 00000 п. 0000024453 00000 п. 0000025344 00000 п. 0000025367 00000 п. 0000026280 00000 п. 0000026370 00000 п. 0000026394 00000 п. 0000027705 00000 п. 0000027729 00000 н. 0000028893 00000 п. 0000004575 00000 н. 0000005214 00000 н. трейлер ] >> startxref 0 %% EOF 928 0 объект > эндобдж 929 0 объект a_

Схема драйвера светодиода

PIC12F629 PWM

Схема драйвера светодиода RGB может управляться с помощью PIC12F629 pic12f675 В качестве альтернативы можно использовать PIC12F683 PIC GP0, GP1, GP2 STP36NF06 на выходе MOSFET-транзисторы управляются внутренним генератором PWM микроконтроллера используется вместо… Электронные проекты, Схема драйвера светодиода RGB PIC12F629 PWM «Светодиодные проекты, проекты микрочипов, проекты микроконтроллеров, схемы ШИМ», Дата 2019/08/03

Схема драйвера светодиода RGB может управляться с помощью PIC12F629 pic12f675 Как В качестве альтернативы можно использовать PIC12F683 PIC GP0, GP1, GP2 STP36NF06 в выходных полевых МОП-транзисторах, управляемых методом ШИМ, вместо внешнего кристалла используется внутренний генератор микроконтроллера. Исходное прикладное программное обеспечение RGB Led подготовлено путем сборки шестнадцатеричного кода asm, схем и чертежей печатных плат.

Код перехода между цветами полностью переписан, чтобы использовать переменную скорость изменения, так что все три светодиода достигают своих новых уровней одновременно. Этот код будет работать на 12F629 / 12F675 и 12F683. Выберите нужный процессор в меню «Настроить» — «Выбрать устройство» в MPLAB IDE, затем используйте параметр «Проект — Quickbuild» для создания выходного файла HEX.

Ищите ошибки при сборке. В частности, ошибки в файле SequenceData.inc, которые указывают либо на отсутствие запятой в данных, либо на большее количество данных, чем у выбранного PIC имеется доступная программная память.Будьте осторожны, чтобы правильно ввести данные в файл SequenceData.inc. Программа достаточно умен, чтобы определить, где ваши последовательности начинаются и заканчиваются, если вы введете их в правильном формате. Ошибки в данных могут привести к сбою кода.

Все тайминги основаны на внутреннем генераторе PIC 4 МГц. Значение OSCCAL считывается из памяти программ по адресу 0x3FF и записывается в регистр OSCAL. Это значение должно присутствовать и быть правильным.

Источник: picprojects.org.uk Альтернативная ссылка:

СПИСОК ССЫЛОК ДЛЯ ЗАГРУЗКИ ФАЙЛОВ (в формате TXT): LINKS-16058.zip

PM-41 (2) Установка модчипа PSone MM3 (PIC12F629)

В апреле я написал сообщение об установке модчипа MM3 в мой PSone с оригинальной платой PM-41. Я также написал сообщение об установке модчипа MM3 в мой SCPH-7501 с платой PU-22. Это похожий пост, но он касается последней версии PS1, платы PM-41 (2).

Прежде чем я начну, я дам вам небольшую справочную информацию. Я купил одиннадцать консолей PSone на eBay с целью установить модчипы MM3 и перепродать их с приличной прибылью.Из одиннадцати консолей восемь были платой старой конструкции PM-41, а три — новой платой PM-41 (2).

Установить модчип на PM-41 было достаточно просто, так как я уже делал это однажды. С другой стороны, PM-41 (2) был непростым. Мне не удалось найти рабочих схем установки макета платы. Все они показали всего четыре-шесть баллов, и ни один из них не сработал. В конце концов мне удалось получить работающую установку, объединив эти схемы PM-41 (2) со старой схемой PM-41.

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

На этот раз я фактически запрограммировал свой собственный модчип, используя более современный чип PIC12F629 и программатор PicKit3. Я начал продавать эти модчипы на eBay. Программирование собственных чипов — хороший способ сэкономить деньги, если вы модифицируете множество консолей.

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

Я начал с нагрева каждой из восьми точек и нанесения небольшого количества припоя, что значительно облегчило пайку провода. Затем я расплющил контакты модчипа, чтобы он находился на одном уровне с остальной частью платы. На плате PM-41 (2) есть не очень высокий чип, на который можно установить модчип.

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

Некоторые моменты могут быть непростыми, поэтому вот несколько советов:

  • # 2 — Это первая хитрая булавка, это верхняя правая ножка на этом чипе. Я считаю, что проще всего припаять провод либо к верхней части ножки, либо к правой стороне. Будьте осторожны, чтобы припой не образовался между двумя ножками.
  • # 3 — Это еще одна хитрая булавка. Избегайте приложения слишком большого давления или слишком длительного времени при работе с резистором. Вы хотите припаять провод к дальнему краю среднего резистора. Если вы выбили какой-либо из них, вы можете осторожно использовать пинцет, чтобы вернуть его на место.
  • # 6 — Это последняя хитрая булавка. Относитесь к нему так же, как к контакту №3, но на этот раз припаяйте его к правой стороне конденсатора. Он менее тесный, поэтому с ним легче работать.

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

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

Затем я бы порекомендовал нанести немного горячего клея на все точки, к которым вы припаяли.В этом нет необходимости, но это делает соединения более надежными, особенно если вы планируете много перемещать консоль (или куда-то ее отправлять). Просто слегка прикоснитесь к каждой точке, к которой вы припаяли.

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

Мне потребовалось много времени, чтобы понять, как подключить модчип MM3 к платам PM-41 (2), но как только я разобрался с проводкой, процесс установки модчипа оказался очень простым.Я установил модчипы в двенадцать консолей PS1.

Модчип работает неплохо. Если у вас возникли проблемы с запуском резервной копии игры, скорее всего, вы либо неправильно записали игру, либо неправильно установили модчип. Я рекомендую записывать ваши игры на 8-кратной скорости (или настолько медленно, насколько может работать ваш диск) с помощью файлов . cue в ImgBurn.

Вы также можете столкнуться с проблемой, когда консоль иногда просит вас вставить диск формата PlayStation. Если вы когда-нибудь столкнетесь с этой проблемой, просто попробуйте перезапустить консоль.Модчипы MM3 несовершенны и иногда могут не загрузиться. Это также может означать, что ваш лазер выходит из строя, если это происходит чаще.

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

PIC12F675 Распиновка, характеристики и техническое описание микроконтроллера

PIC12F675 — 8-битный микроконтроллер

PIC12F675 — 8-битный микроконтроллер

PIC12F675 — 8-битный микроконтроллер

PIC12F675 Распиновка микроконтроллера

нажмите на картинку для увеличения

PIC12F675 — это 8-битный CMOS микроконтроллер производства MICROCHIP TECHNOLOGY на основе высокопроизводительной архитектуры RISC.Этот микроконтроллер очень популярен среди любителей и инженеров из-за своей стоимости и небольших размеров.

Конфигурация контактов

PIC12F675 — это 8-контактное устройство, и многие из контактов могут выполнять несколько функций, как показано на схеме контактов выше PIC12F675. Описание каждой из этих функций приведено ниже.

Штифт

Функция

Описание

1

VDD

Положительный блок питания

2

GP5 / T1CKI / OSC1 / CLKIN

GP5: Вывод 5 ввода / вывода общего назначения

T1CKI: Вход внешнего таймера 1

OSC1: Вывод генератора 1

CLKI: вход внешнего источника синхронизации

3

GP4 / AN3 / T1G / OSC2 / CLKOUT

GP4: Контакт 4 ввода / вывода общего назначения

AN3: Аналоговый вход 3

T1G: ворота Timer1

OSC2: Вывод 2 генератора

CLKO: Выход тактового сигнала

4

GP3 / MCLR / VPP

GP3: Контакт 3 ввода / вывода общего назначения

MCLR: вывод Master Clear Input или Reset

VPP: Программирование напряжения

5

GP2 / AN2 / T0CKI / INT / COUT

GP2: контакт 2 ввода / вывода общего назначения

AN2: Аналоговый вход2

T0CKI: Таймер 0, тактовый вход

INT: внешнее прерывание

COUT: Выход компаратора

6

GP1 / AN1 / CIN- / VREF / ICSPCLK

GP1: контакт ввода / вывода общего назначения 1

AN1: Аналоговый вход1

CIN-: Вход компаратора

Ссылка Внешнее напряжение

:

VREF

ICSPCLK: часы последовательного программирования

7

GP0 / AN0 / CIN + / ICSPDAT

GP: Вывод ввода / вывода общего назначения

AN0: Аналоговый вход 0

CIN +: вход компаратора

ICSPDAT: последовательный ввод / вывод данных программирования

8

VSS

Земля

PIC12F675 Характеристики и электрические характеристики

ЦП

8-бит

Общее количество выводов

8

Программируемые контакты

6

Коммуникационный интерфейс

ICSP или внутрисхемный последовательный интерфейс программирования (13, 14 контактов) [Может использоваться для программирования этого контроллера]

Функция АЦП

4 канала с разрешением 10 бит

Функция таймера

Один 8-битный счетчик, Один 16-битный счетчик

ШИМ каналов

Нет в наличии

Аналоговый компаратор

В наличии-1

Внешний осциллятор

до 20 МГц

Внутренний осциллятор

Внутренний генератор R-C, 4 МГц, откалиброванный на заводе с точностью ± 1%

Программная память / Флэш-память

2 Кбайта [100000 циклов записи / стирания]

Частота процессора

1MIPS при 1 МГц

RAM

64 байта

EEPROM

128 байтов

Сторожевой таймер

Доступен и входит в состав Independent

Генератор для надежной работы

Режимы энергосбережения

В наличии

Рабочее напряжение

2. От 0 В до 5,5 В

Максимальный ток на любой вывод ввода / вывода

ВХОД: 25 мА

ВЫХОД: 25 мА

Рабочая температура

от -40 ° C до + 125 ° C

Максимальный ток на выводе VDD

250 мА

PIC12F675 Замена

PIC12F629

PIC12F675 Обзор

PIC12F675 — это микроконтроллер, предназначенный для приложений и систем начального уровня.Он хорош для обучения и экспериментов для инженеров, потому что у него большой цикл перезаписи флеш-памяти. Контроллер имеет флеш-память объемом 2 Кбайта, чего достаточно для начала разработки базовых программ. Кроме того, 6 контактов GPIO предназначены для работы с максимальным током 25 мА, что соответствует пороговым значениям для многих периферийных устройств и датчиков.

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

Как использовать PIC12F675

Любой микроконтроллер необходимо запрограммировать перед установкой в ​​любую систему или приложение. Итак, сначала нам нужно запрограммировать контроллер PIC12F675.

Весь процесс программирования PIC12F675 выглядит так:

  • Сначала перечислите все функции, которые должны выполняться этим контроллером.
  • Затем напишите эти функции в «программном обеспечении IDE», используя относительный язык программирования (используйте язык «C» в MPLAB IDE).
  • MPLAB IDE для Windows можно загрузить с этого веб-сайта: www.microchip.com/mplabx-ide-windows-installer
  • После написания нужной программы скомпилируйте ее для устранения ошибки
  • Для успешной компиляции приложение IDE генерирует HEX-файл для написанной программы
  • Выберите устройство программирования (обычно «PIC kit 3» или «PIC kit 2»), которое устанавливает связь между ПК и PIC12F675
  • Подключить программатор к микроконтроллеру соответствующим образом
  • Запустите программу дампа файла HEX, которая связана с выбранным устройством программирования
  • Выберите соответствующий HEX-файл программы и запишите этот HEX-файл во флеш-память PIC12F675.
  • Отключите программатор и подключите соответствующую периферию к контроллеру

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

Приложения
  • Приложения нижнего уровня, такие как дисплей с прокруткой, монитор температуры и т. Д.
  • Приложения для начинающих
  • Проекты для любителей
  • Дисплейные блоки
  • Совет по развитию для учащихся

2D-Модель

Светодиодный стробоскоп



Описание

Этот проект функционирует как простой строб для управления светодиодами.Использование выхода транзистор позволяет ему подавать импульс на светодиод стробоскопа с током вверх до 100 мА.

Четыре перемычки предоставляют варианты для изменения ширины импульса, интервала повтора строба и одинарного или двойного стробоскопическая вспышка. Готовый код программиста имеет значение по умолчанию тайминги, которые легко настраиваются путем редактирования значений в EEPROM PIC во время программирования.

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

Нужна высокая мощность Светодиодный стробоскоп?
см. Проект Power LED Strobe здесь

youtube.com/v/1uO8b5eVJLc&hl=en&fs=1&rel=0″/>

Схема

Скачать схема в PDF

Описание цепи

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

Интервал строба может быть настраивается с помощью 4 перемычек на 1,2,3 или 4 секунды; время включения строба 30 мс или 100 мс и одиночный или двойной стробоскопический импульс.

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

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

Светодиод стробоскопа может быть установлен на плате в положении LED1 или вне платы через разъем CN2. Если используется внешняя опция, не устанавливайте светодиод. в положение LED1 на печатной плате.

LED2 — это индикатор монитора, если Используется внешний стробоскопический светодиод, этот светодиод может быть полезен для контроль работы схемы. Если ты не хочешь в этой опции просто опустите LED2 и R4.

Конденсатор C1 используется для отсоедините шину питания 5 В. Если вы строите схему на макете или стрип-плате, убедитесь, что она расположен рядом с разъемом PIC Vdd (контакт 1).

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

Режимы работы: выбирается с помощью блока перемычек JP1. Если вы строите стробоскоп для конкретного приложения, которое вы, возможно, захотите подключить входы на землю по мере необходимости, а не на перемычку заголовок.

Выбор R3 / LED1

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

Для других светодиодов можно использовать этот сайт для расчета необходимого резистора http: // led.linear1.org/1led.wiz Когда вы перейдете к этому сайт запрашивает напряжение источника. Это будет 5 вольт, или если вы использовали батарейки для питания строба, общий напряжение батареи. Также обратите внимание, что драйверный транзистор Q1 рассчитан только на 100 мА, поэтому не превышайте это значение, даже если светодиоды б / у может.

Режимы работы стробоскопа

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

Ширина импульса, интервал и Режим стробирования выбирается пользователем с помощью блока перемычек JP1. Есть два режима стробирования, одиночный и двойной импульс. В В двойном режиме время простоя между двумя импульсами (по умолчанию) составляет 175 мс. Как показано на диаграмме ниже, интервал измеряется от конец одной группы импульсов до начала следующей группы.


Время по умолчанию

Настройки перемычки

Стробоскоп Режим
JP1 (1-2)

Импульсный Ширина
JP1 (3-4)

Интервал
JP1 (5-6,7-8)

Настройка строба время

Таймеры длительности импульса, интервал и двойной интервал режима все настраиваются путем редактирования значения в EEPROM PIC перед записью HEX в PIC. Это красиво и легко сделать, не требуя повторной сборки. код или что-нибудь сложное. Просто загрузите файл HEX из раздел загрузки прошивки в ваше приложение-программист. Отредактируйте значения в EEPROM, как показано ниже, а затем запишите код и данные EEPROM в PIC.

Предположим, вам нужна ширина импульса 40 мс (40 x 1 мс) и интервал 1,3 секунды (13 x 100 мс), вы бы набор данные в адресах от 00 до 28 (40 в десятичной системе счисления == 28 шестнадцатеричный).Для интервала 1,3 секунды измените данные в адресах от 03 до 0D (13 десятичное == шестнадцатеричное 0D).

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

Преобразование десятичных значений в шестнадцатеричный
В зависимости от вашего программиста значения, которые вам нужно ввести, вероятно, будут в шестнадцатеричном формате, самый простой способ преобразовать десятичные значения в шестнадцатеричные — Google, см. пример ниже.Префикс 0x в результате просто сообщает нам значение в шестнадцатеричной системе счисления (сокращенно шестнадцатеричное).


Схема расположения печатной платы

Скачать печатную плату работа в PDF

Загрузить файлы CAD Eagle 5. 30 (ZIP)

Список компонентов

Можно купить все запчасти необходимы для создания этого проекта от большинства мировых поставщиков комплектующих. широкий.В Великобритании вы можете получить все в Rapid Online и Я включил список деталей с их номерами ниже.

Все Экспресс-детали / описания исправлены по состоянию на 30 января 2009 г. Вам следует проверьте правильность номера детали и описания при заказе в случае Я сделал ошибку при переносе их на эту страницу.

Компонент Описание Деталь #
R1 ПК 100 470Р 0.25 Вт CF РЕЗИСТОР (RC) 62-0362
R2 УПАКОВКА 100 1K 0,25 Вт CF РЕЗИСТОР (RC) 62-0370
R3 * УПАКОВКА 100 39R 0,25 Вт CF РЕЗИСТОР (RC) 62-0336
R4 ** ПК 100 330R 0.25W CF РЕЗИСТОР (RC) 62-0358
C1 100N 5MM ПИТЧ КЕРАМИЧЕСКИЙ КОНДЕНСАТОР ДИСКОВЫЙ RC 08-0235
C2 5M MICROMIN 10 мкФ 16 В ЭЛЕКТРОЛИТИЧЕСКИЙ (RC) 11-1506
1 квартал BC548B ТРАНЗИСТОР TO92 30 В NPN (RC) 81-0066
IC1 *** PIC12F675-I / P (RC) 73-3284
LED1 LED 5MM HB БЕЛЫЙ 30000MCD (RC) 55-2484
LED2 ** L-7104GD МИНИАТЮРНЫЙ 3ММ ЗЕЛЕНЫЙ светодиод (RC) 55-0105
розетка для IC1 8 PIN 0.3IN DIL SKT (RC) 22-0150
JP1 4 + 4-ХОДОВЫЙ ДВОЙНОЙ РЯД ЗАГЛУШКА RC 22-0555
CN1, CN2 2-Х ХОД 16А КЛЕММНЫЙ БЛОК ПЕЧАТНОЙ ПЛАТЫ (RC) 21-0112
заказ 4 **** ОТКРЫТЫЙ СИНИЙ 2,54ММ ПЕРЕМЫЧКА (RC) 22-3555

Примечания к списку деталей

Все резисторы Поставляется в упаковках по 100 шт.

* R3 выбран для использовать с белым светодиодом высокой яркости, используемым для LED1.На на схеме он показан как 68R, но для использовать с этим конкретным светодиодом. Если вы используете другой светодиод, см. примечания здесь

** Опустите R4 / LED2, если светодиод монитора вам не нужен.

*** 12F629 также можно использовать

**** Старые материнские платы ПК, хард приводы и т. д. часто используют этот тип перемычки, чтобы вы могли чтобы спасти некоторые из них, вместо того, чтобы покупать их.


Фотографии строительства:

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

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

Блок питания

Схема LED Strobe в идеале нужно 5 вольт поставлять.Вы можете использовать 3 щелочные батареи AA по 1,5 В или 4 батареи. Перезаряжаемые никель-металлгидридные аккумуляторы AA 1,2 В для портативности. Как указано в другом месте на этой странице он может работать при напряжении до 3 вольт, но токоограничивающий резистор последовательного стробоскопического светодиода будет нужно пересчитать. Также не работают некоторые белые светодиоды. от 3 вольт, если они светятся, вероятно, они не работают на максимальной яркости.

Сам PIC использует только около 2 мА, когда светодиод стробоскопа не горит, потребление основного тока составляет когда светодиод горит, и это будет зависеть от светодиода. и резистор ограничения тока.


Прошивка

Вы можете использовать либо PIC 12F629 или микроконтроллер 12F675 с этой схемой. Тоже самое код прошивки используется с любым устройством. Скачать файлы, необходимые ниже.

HEX-файл готов к программу прямо в ПОС. Файл asm — это исходный код, который вы можете изменить или просто просмотреть, чтобы увидеть, как он работает.

Нет программиста? Купить предварительно запрограммированный PIC из Интернет-магазин

Описание Имя файла Ссылка для скачивания
Источник код для 12F629 / 675 ledstrobe-f.asm скачать
HEX файл готов к программированию в PIC
для использования с 12F629 и 12F675
ledstrobe-f.HEX V1.0.0 01/04/2009 скачать

Если вам нужен PIC Programmer I настоятельно рекомендую Микрочип PICKit 2, это доступно от поставщиков по всему миру или напрямую от Микрочип.Это достаточно дешево и надежно.


Поиск и устранение неисправностей

Если светодиоды мигают 3 или 4 раз через равные промежутки времени, а установки перемычек неэффективно, это указывает на одно из двух состояний неисправности.

  • Данные EEPROM по адресу 07 и 08 должны быть 0xA9 и 0x56 соответственно. Если это не так исправьте, отобразится код ошибки с 3 миганиями. Ты можешь исправьте ошибку, перепрограммировав EEPROM, убедившись, что байты проверки верны.
  • Если слово калибровки OSCCAL будет показан отсутствующий код ошибки, мигающий 4 раза. Ты сможешь необходимо повторно откалибровать PIC с помощью программатора PICkit2, или проект перекалибровки здесь


Морзе Строб SOS

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

Рекомендация МСЭ-R M.1677-1 (10/2009)

2. Интервал и длина сигналов

  • Прочерк равен три точки.
  • Пространство между сигналы, образующие одну и ту же букву, равны одной точке.
  • Пространство между двумя буквы равны трем точкам.
  • Пространство между двумя слова равно семи точкам

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

Установки перемычки

Джемпер (1-2) не используется и должен быть оставлен открытым


Выход строба сигнал, отобранный с выходного контакта GPIO2 (все перемычки разомкнуты)


Прошивка (версия Morse SOS)

Шестнадцатеричный файл готов к программировать прямо в PIC12F629 или 12F675.Источник C код также можно загрузить, если вы хотите настроить тайминги. Он будет компилироваться с бесплатным Компилятор MikroC

Описание Имя файла Ссылка для скачивания
Источник код для 12F629 / 675 SOS Flasher.c скачать
HEX файл готов к программированию в PIC
для использования с 12F629 и 12F675
SOS_Flasher_675629.шестнадцатеричный
30.10.2012
скачать


Свяжитесь с нами:

Введение в MPLAB X, первый проект

В первом сообщении блога мы загрузили и установили MPLAB X и компилятор XC8. Теперь мы будем использовать их для настройки нашего первого проекта, используя вывод ввода / вывода на PIC12F629 для включения светодиода. Поскольку это наш первый проект, здесь есть что рассказать, поэтому этот урок будет немного длинным, чтобы охватить множество «основ».

В дополнение к программному обеспечению вам потребуется следующее оборудование:

1 батарея или источник напряжения 9-12 В
1 микроконтроллер PIC12F629
1 светодиод с прямым током ~ 20-24 мА
1 резистор 10 кОм
1 резистор ограничения тока для светодиода
1 Конденсатор 0,1 мкФ
1 Регулятор напряжения LM7805 IC
1 Нормально разомкнутый мгновенный переключатель
1 Макетная плата
Провода перемычки

Создание нового проекта

4330 После открытия MPLAB X IDE вы увидите стартовую страницу программы, как показано на рисунке 1.В разделе «Погружение» на начальной странице нажмите «Создать новый проект». Кроме того, вы можете нажать «Файл»> «Создать новый проект». В новом окне проекта вы должны увидеть, что в столбце категорий выбран «встроенный микрочип» и выбран «автономный проект» в столбце проектов, нажмите «Далее». Теперь мы выберем наше устройство (MCU, который мы используем). В раскрывающемся меню семейства выберите «8-разрядные микроконтроллеры среднего уровня», а затем «PIC12F629» в раскрывающемся меню устройства. Нажмите «Далее. На следующем шаге вас попросят выбрать поддерживаемый заголовок отладки, который мы оставим выбранным «Нет», затем снова нажмите «Далее».

Следующим шагом является выбор инструмента. Здесь мы выбираем, какой программатор будем использовать. У меня есть PICkit 2, который я выбрал для своего проекта. Нажмите «Далее. На следующем экране нас попросят выбрать компилятор, и вы должны увидеть компилятор XC8, указанный там. XC8 появляется в этом меню только после того, как вы установили компилятор, поэтому, если вы его не видите, убедитесь, что вы установили программное обеспечение компилятора XC8. Выбрав XC8, нажмите «Далее». Наконец, нам нужно назвать наш проект. Назовем наш проект «learn_c» и нажмем «Готово».

Теперь мы должны увидеть наши проекты в верхней левой части среды IDE, как показано на рисунке 2. Это пустой проект (с ним не связаны файлы), поэтому нам нужно добавить файл, прежде чем мы сможем начать. написание программы.

Рисунок 2
Щелкните меню файла и выберите «Новый файл». Под категориями выделите «C», затем под типами файлов выделите «Исходный файл C» и нажмите «Далее». Давайте назовем наш исходный файл так же, как наш проект, «learn_c» и установим расширение файла на «.c «. Расширение файла .c связано с файлами исходного кода c. Нажмите» Готово «. Теперь у нас должно быть открыто новое окно в среде IDE, как показано на рисунке 3.1.
Рисунок 3.1
Если ваш .c-файл в окне проектов размещен где-нибудь, кроме раскрывающегося списка «Исходные файлы», мы должны перетащить файл .c в исходные файлы, как показано на рисунке 3.2.
Рисунок 3.2

Наша первая программа на языке C

Наша первая программа очень проста. Он научит вас основному интерфейсу ввода / вывода, подсвечивая светоизлучающий диод, когда мы нажимаем кнопку. Светодиод будет гореть, пока мы нажимаем кнопку, и погаснет, когда мы отпустим кнопку. Основная цель — показать, как читать ввод и как размещать данные на выходе.

Первое, что нам нужно сделать, это спланировать, какие выводы ввода / вывода мы хотим использовать для кнопки и светодиода.Для программирования необходимо предварительное планирование оборудования. Таблица данных PIC12F629 содержит схему выводов MCU, как показано на рисунке 4.

Рисунок 4
Каждый вывод MCU и связанные с ним функции, доступные на этих выводах, описаны в разделе описания выводов таблицы данных. Вкратце, VDD — это +5 В, VSS — это земля, а контакты с 2 по 7 — это контакты ввода / вывода общего назначения. На этих выводах находятся дополнительные функции, такие как аналого-цифровые преобразователи и модули компаратора, но сейчас нас интересует только функция ввода-вывода.

Просматривая техническое описание, мы обнаруживаем, что контакт GP3 является портом только для ввода, а это означает, что мы не можем использовать его для вывода данных. Давайте использовать GP3 (контакт 4) для ввода нашей кнопки. Мы выберем GP0 (контакт 7) в качестве выхода для нашего светодиода. Схематическое и макетное изображение этого проекта находится внизу этого поста, так что вы можете создать его и следовать за ним.

Давайте сейчас посмотрим на программу, а потом пройдемся по ней.

Рисунок 5
Что касается рисунка 5, пожалуйста, просмотрите мой пост, в котором исправлена ​​сделанная здесь ошибка.

Как мы видим в самом верху программы, я использовал возможность размещать комментарии в коде. Рекомендуется размещать описание программы вверху каждой программы, которую мы пишем. Следуя комментариям, нам нужно включить заголовочный файл xc. Как указывалось ранее, файлы заголовков содержат множество вещей, которые необходимы компилятору для генерации кода. Файл xc.h автоматически включает файл заголовка, специфичный для MCU, так что все определения и адреса регистров специальных функций присутствуют.Не забудьте поместить имя файла в символы. Я использовал комментарии, чтобы описать, что делает программа, а также разбить ее на разделы, чтобы облегчить чтение. Я делал это не только для того, чтобы учащимся было легче смотреть на программное обеспечение, я всегда делаю это. Когда вы начнете писать более длинные части программного обеспечения, вы действительно оцените такой разбиение кода.

А теперь давайте сделаем небольшой крюк. Одна из вещей, которая всегда беспокоила меня при чтении книг, которые должны были научить вас программированию MCU на C, заключалась в том, что они могли делать одно из двух. Они покажут вам пример первой программы и не включат этот раздел в СЛОВО КОНФИГУРАЦИИ, или они будут иметь этот раздел в коде, но никогда не объяснят его до конца книги. Слово конфигурации СУПЕР важно и, скорее всего, будет использоваться в каждой программе, которую вы пишете, так почему бы вам не объяснить его сразу? Ну, я полагаю, потому что это длинное объяснение, но я постараюсь сделать его кратким и по существу.

Слово конфигурации

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

Рисунок 6
Под регистром слова конфигурации на рисунке 6 находится легенда.Эта легенда полезна при просмотре любого регистра, потому что она рассказывает вам, как вы можете манипулировать битами и каков их статус по умолчанию. В случае битов слова конфигурации они показывают «R / P — 1», что означает, что они являются читаемыми битами (могут быть прочитаны в программной памяти), они должны быть установлены во время программирования, и их состояние по умолчанию равно 1 (что означает « набор»).

В таблице данных определяется каждый бит и его доступные настройки.
Биты 13 и 12 управляют калибровкой ширины запрещенной зоны . Эти биты устанавливаются на заводе и частично используются для калибровки внутреннего генератора микроконтроллера.Мы не будем с ними связываться.
Биты с 11 по 9 не реализованы.
Биты 8 и 7 используются для включения Code Protection для данных EEPROM и данных программы соответственно. Защита кода — это средство защиты вашего программного обеспечения от кражи. По сути, если вы компания, производящая продукт, и хотите помочь удержать кого-либо от кражи кода с вашего MCU и использования его для создания «подделки», защита кода помогает. Мы всегда будем держать защиту кода отключенной, потому что после ее установки вы больше не сможете читать или писать в свой MCU.
Бит 6 управляет Обнаружением обрыва питания , внутренним триггером, который отключает MCU, когда рабочее напряжение падает ниже порогового значения. Это полезно в ситуациях, когда встроенная система работает от батарей. Схема обнаружения пониженного напряжения (BOD) сбрасывает MCU, когда напряжение восстанавливается выше порогового значения.
Бит 5 управляет сбросом Master-Clear (MCLRE). Функция MCLRE используется для внешнего сброса MCU. При включении на вывод MCLRE должно подаваться положительное напряжение для работы MCU.MCU удерживается в состоянии сброса, пока на этом выводе низкий уровень (нет напряжения), и перезапускает MCU с вектора сброса, когда напряжение восстанавливается. MCLRE можно отключить, чтобы MCLRE был внутренне привязан к выводу VDD. Мы рассмотрим использование функции MCLRE в более поздних проектах.
Бит 4 управляет таймером включения питания (PWRTE). Таймер включения отключен по умолчанию, но используется для удержания MCU в режиме сброса при включении питания. Эта функция дает время для стабилизации источника питания до начала выполнения программы.Задержка таймера включения составляет номинальные 72 миллисекунды. Мы всегда будем использовать эту функцию, потому что нет особых причин не делать этого.
Бит 3 — это бит сторожевого таймера (WDT). Во многих случаях встроенные системы работают без вмешательства человека и в местах, доступ к которым люди не имеют. Если по какой-то причине во время выполнения программы устройство зависнет, WDT сбросит устройство. WDT необходимо периодически очищать в программном обеспечении, чтобы предотвратить сброс устройства во время нормальной работы.
Биты со 2 по 0 используются для выбора режима генератора . Микроконтроллеры используют генератор для всех операций синхронизации, включая нормальное выполнение программы. Для точных операций синхронизации требуется более точный генератор, использующий кристалл или резонатор. Для менее точных операций можно использовать менее дорогой генератор с резистором-конденсатором (RC). Многие модели микроконтроллеров включают внутренний RC-генератор, но не все. Позже мы посвятим урок конкретно часам и режимам генератора микроконтроллера.

Чтобы просмотреть настройки слова конфигурации для PIC-микросхемы, вы можете просмотреть их в html-файлах микросхем, расположенных по адресу:
C> Program Files> Microchip> xc8> version #> docs> chip . Прокрутите вниз до используемого чипа, например файла 12f629.html, и откройте его. Все параметры перечислены под заголовком «#pragma config Settings».

Вернуться к нашей программе

Мы остановились в разделе «Слово конфигурации». Биты конфигурации устанавливаются с помощью директивы препроцессора #pragma .Директива pragma — это метод предоставления компилятору дополнительной информации. Он сообщает компилятору, что нужно что-то сделать, установить какой-то параметр, предпринять какое-то действие, переопределить какое-то значение по умолчанию и т. Д. Мы используем его здесь, чтобы установить биты конфигурации во время программирования. Формат использования #pragma: #pragma keyword options , где в нашем случае ключевое слово — «config», поскольку мы устанавливаем параметры конфигурации, а затем фактический параметр, который нам нужен. В моей программе я связал все свои параметры вместе, используя запятые, но вы можете указать их отдельно, если выберете, например:
#pragma config BOREN = OFF
#pragma config MCLRE = OFF
#pragma config PWRTE = ON
И так далее. Вы можете найти параметры слова конфигурации в файле микросхемы устройства. Файлы микросхем находятся в: программных файлах> микрочип> xc8> номер версии> документы> чипы . Глядя в этот документ на PIC12F629, мы можем найти параметры, перечисленные внизу. Нам не нужно указывать биты, которые мы не собираемся менять по умолчанию. Например, защита кода по умолчанию отключена, поэтому нам не нужно указывать CPD = OFF, поскольку она уже отключена. Для этой программы я указал в своем конфигурационном слове отключение BOD, MCLRE и WDT; включить PWRTE; и я использую внутренний RC-генератор с функцией ввода-вывода на выводах синхронизации и выхода.

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

Мы используем регистр TRISIO для установки направления данных наших битов ввода / вывода. Установка бита TRISIO (= 1) сделает соответствующий вывод GPIO входом, а очистка бита TRISIO (= 0) сделает соответствующий вывод GPIO выходом.Я указал весь байт TRISIO (8 бит), используя шестнадцатеричное число. Всем шестнадцатеричным числам предшествует ноль и строчная буква x «0x», чтобы указать компилятору, что вы используете шестнадцатеричное число. Поскольку контакт 3 GPIO — единственный вход, который мы используем, а неиспользуемые контакты должны быть выходами, наш байт TRISIO равен 00001000. Я использовал преобразователь двоичного в шестнадцатеричный, чтобы преобразовать его в шестнадцатеричное число. В отношении предыдущего абзаца я допустил ошибку. См. Сообщение в моем блоге, в котором исправлена ​​эта ошибка.

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

Следующая строка — это условная функция while () . Цикл while проверяет условие и, если условие истинно, выполняет цикл до тех пор, пока условие остается истинным.Цикл — это все, что находится в скобках {} этой функции. Если условие ложно, цикл выполняться не будет. Условие для проверки заключено в круглые скобки. Первый цикл while, который мы используем, простой, и почти каждая программа, которую мы пишем, будет содержать цикл while (1) . Мы помещаем 1 в круглые скобки, чтобы гарантировать, что наше условие всегда истинно, поэтому программа будет продолжать выполняться снова и снова. Без этого цикла мы зависим от компилятора, предполагающего, что мы хотим, чтобы функция main выполнялась неоднократно, а это не всегда происходит, поэтому функция while (1) является подстраховкой.

После while (1) — это второй цикл while. Здесь мы попросили программу проверить состояние вывода GPIO3, к которому подключена наша кнопка. Когда мы нажимаем нашу кнопку, он применяет VDD к GP3, тем самым переводя его в состояние высокого логического уровня (вывод показывает 1). Когда мы отпускаем кнопку, напряжение на выводе отсутствует, и логическое состояние низкое (вывод показывает 0). Оператор « == » является условным оператором. На простом английском языке , в то время как (GP3 == 1) говорит: «Пока вывод GP3 показывает 1, сделайте это… «Это» означает все, что находится внутри функциональных скобок.

В языке C различаются один знак равенства и два знака равенства. Пример: GP0 = 1 означает «сделать вывод GP0 равным 1», тогда как GP0 == 1 означает «если вывод GP0 равен 1». Если это запутать, возникают проблемы в вашем коде.

Хорошо, наша функция while говорит, что пока мы получаем высокий логический уровень на GP3, делаем все, что находится внутри фигурных скобок.В этом случае есть только 1 инструкция (оператор), GP0 = 1; Это включает вывод GP0, который включает наш светодиод. Затем функция заканчивается правой фигурной скобкой. Когда мы нажимаем кнопку, GP3 оценивается и находится на высоком логическом уровне, поэтому условие GP3 равно 1 выполняется, что, в свою очередь, позволяет выполнить функцию и включить GP0. Этот цикл продолжается до тех пор, пока мы не отпустим кнопку и GP3 больше не будет 1.

Если кнопка не нажата, GP3 оценивается как 0, а оператор условия цикла while ложный, поэтому цикл не выполняется. Тогда инструкция по умолчанию GP0 = 0; Вместо этого выполняется , который выключает светодиод.

Наша программа заканчивается закрытием наших открытых функций. Добавление правой фигурной скобки для каждой открытой функции, в данном случае , а также (1) и основных функций , завершит циклы функций.

Компиляция нашей программы

Хорошо, наша программа написана, теперь нам нужно превратить ее в шестнадцатеричный файл (.hex), который может прочитать PIC. См. Рисунок 7.

Рисунок 7
Ярлык A показывает расположение кнопки «построить».Эта кнопка скомпилирует нашу программу в файл .hex, который мы вставляем в наш PIC. Прежде чем мы сможем нажать кнопку сборки, нам нужно добавить файл xc.h в наш проект, чтобы компилятор знал, где его найти.
Метка B показывает, куда я добавил файл xc.h в среду IDE. Щелкните правой кнопкой мыши «Заголовочные файлы» и выберите «Добавить существующий элемент …». Этот файл находится в Program Files> Microchip> xc8> version #> include , обязательно добавьте xc.h, а не xc.inc. После того, как вы добавили файл xc.h, мы можем нажать Build.
Появится новое окно вывода (метка C), и вы увидите всплывающий в нем текст. Когда компилятор завершит работу, вы должны увидеть слова BUILD SUCCESSFUL. Если что-то не так с вашим кодом, вы увидите здесь BUILD FAILED. Это будет означать, что в вашем коде есть какая-то ошибка, и окно вывода покажет вам, какой (-ые) тип (-и) ошибки (-ий) у вас с помощью синей ссылки. Например, если вы забыли поставить точку с запятой после оператора, компилятор скажет «learn_c.c: 22: ошибка: «;» ожидаемый «. Если вы нажмете на этот текст, он укажет вам местоположение вашей ошибки (ошибок). Число 22 внутри ошибки — это код ошибки, и вы можете найти список всех кодов ошибок и их значения в руководство компилятора, которое находится в каталоге XC8 в папке «docs».
Наконец, метка D показывает, сколько памяти ваша программа заняла из памяти, доступной в вашей микросхеме PIC. Наша программа использовала только 24 байта из 1024 доступных, или 2% от общего объема памяти.

Наша программа успешно скомпилирована, так что давайте найдем.созданный им шестнадцатеричный файл. Файл .hex — это шестнадцатеричный файл, который мы вставляем в PIC. Файл .hex помещается компилятором в папку вашего проекта, которая находится по адресу: C:> users> (ваше имя)> MPLABXProjects> learn_c.x> dist> default> production . Да, я знаю, что это немного длинный каталог, он глубоко похоронен. Вы увидите там свой файл .hex, learn_c.X.production.hex.

Прошивка микроконтроллера

Хорошо, проект скомпилирован, и мы знаем, где находится наш.шестнадцатеричный файл есть, теперь нам нужно поместить его внутрь микроконтроллера. Выделите свой PIC Programmer, в моем случае PICkit 2. PICkit 2 (и, предположительно, PICkit 3) поставляется со своим собственным программным интерфейсом, и они прошивают микроконтроллеры с помощью так называемого последовательного программирования в цепи (ICSP). Настройка довольно проста, и при правильной настройке вы можете прошить свой PIC, не удаляя его из схемы проекта. Microchip предоставляет много информации по ICSP, и она хорошо освещена в документации PICkit 2 или 3.

Рисунок 8
На рисунке 8 показана макетная плата для программирования нашего чипа, убедитесь, что PICkit правильно выровнен. Эти подключения взяты прямо из руководства пользователя PICkit. Подключите PICkit к USB-накопителю компьютера и откройте программное обеспечение для программирования. Помните, что я использую PICkit 2, если вы используете что-то другое, вам нужно будет попытаться найти сопоставимые операции. На рисунке 9 показан программный интерфейс PICkit 2.Если ваш PICkit подключен к компьютеру, вы должны увидеть сообщение «PICkit 2 found and connected» в окне сообщения. Если вы уже установили соединения с ICSP и подключены к PIC12F629, вы также увидите сообщение «PIC Device Found». Давайте загрузим шестнадцатеричный файл в программатор, щелкнув Файл, а затем «Импортировать шестнадцатеричный код». Перейдите к расположению .hex и выберите файл. Ваш экран должен теперь выглядеть, как на рисунке 9. После того, как вы выполнили все подключения от программатора PICkit к микроконтроллеру PIC, нажатие кнопки «Write» приведет к прошивке микросхемы PIC.После завершения операции окно сообщения станет зеленым и отобразит «Программирование выполнено успешно». Мы готовы построить и протестировать наш проект!
Рисунок 9
Аппаратное обеспечение проекта 1

Схема проекта и изображения макета платы приведены ниже. Когда ваш проект собран, вы можете протестировать программу в действии. При нажатии на кнопку загорится светодиод, при отпускании кнопки он погаснет.
ВАЖНЫЕ ЗАМЕЧАНИЯ: Не превышайте входное напряжение 5 В на MCU, так как это приведет к выходу устройства из строя. Допуск составляет около 5,5 В, но безопаснее использовать 5 В, поэтому следует использовать регулятор напряжения LM7805. Кроме того, ограничение по току каждого вывода ввода / вывода MCU составляет 25 мА, поэтому обязательно используйте резистор ограничения тока соответствующего размера на светодиоде. На моей схеме показано использование резистора 270 Ом 1 / 4Вт 10%. Выходное напряжение на выводе ввода / вывода составляет VDD (5 В) при включении, таким образом, согласно закону Ома, ток, идущий от вывода 0 к светодиоду, составляет 5 В / 270R = 18.

Author:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *