12F683 схемы: портал и журнал для разработчиков электроники

Содержание

Очень простой акустический выключатель на микроконтроллере PIC12F683

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

Защита реализована тем образом, что для изменения состояния выхода требуется не один, а два хлопка, причем последовавших между собой с паузой не более 1 секунды.

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

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

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

Режим работы транзистора устанавливается таким образом, чтобы при отсутствии входного сигнала (в тишине) напряжение на его коллекторе было около 0,25-0,ЗV.

То есть, транзистор практически открыт, находится в режиме насыщения. При приеме микрофоном звука достаточной громкости на коллекторе транзистора возникает хаотический импульсный сигнал по амплитуде достигающий 2V.

Внутренний компаратор микроконтроллера настроен таким образом, чтобы реагировал на напряжение более 0,625V (величина опорного напряжения задана 0,625V).

Рис. 1. Схема акустического реле на микроконтроллере PIC12F683.

Таким образом, чувствительность входа порта GP1 установлена 0,625V. Чувствительность микрофона можно регулировать, изменяя сопротивление резистора R1. С его увеличением чувствительность падает.

Но увлекаться уменьшением R1 для повышения чувствительности не стоит, так как при R1 менее ЗК может возникнуть перегрузка встроенного усилителя микрофона.

Прошивка МК и замечания

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

При каждом двухкратном звуке меняется состояние порта GP5. Нагрузкой управляет выходной каскад на оптопаре и симисторе. Напряжение питания нагрузки переменное 220V.

НЕХ-файл прошивка для микроконтроллера — Скачать (0,5 КБ).

  • Oscillator Internal — 4.0000 MHz,
  • MCLR — disabled,
  • PWRT ON — enabled.

Семенов И. РК-02-2016.

Блок управления дневными ходовыми огнями на PIC12F683 — Устройства на микроконтроллерах — Схемы устройств на микроконтроллерах

С учётом требований, предъявляемых к ДХО, мной разработано и изготовлено устройство (далее – автомат),  предназначенное для управления работой штатных или дополнительно установленных противотуманных фар белого света и  обладает следующими функциями:

1. Плавное включение ламп ДХО при запуске и выключение при остановке двигателя автомобиля.

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

Автомат (рис.1) выполнен на базе микроконтроллера PIC12F683 (DD1). В работе МК использованы  его модуль ССР (в режиме ШИМ), модуль компараторов и внутренний тактирующий  RC-генератор частотой 4 МГц. В состав автомата, помимо микроконтроллера и источника питания с функцией защиты от бросков тока и коротких замыканий (F1VD1C1DA1C2C3),  входят  ограничители — формирователи входных  сигналов тахометра (R1VD2R5R6VT1), габаритных огней (R7R8C6VT2R9), сдвоенный драйвер нижнего плеча IR4426(DA2), который управляет включением двух P-канальных MOSFET – транзисторов IRF4905

 (VT3, VT4).

Рисунок 1

Рассмотрим работу автомата.  При повороте ключа в замке зажигания в положение «Зажигание» напряжение +5 В со стабилизатора DA1 поступает на основную часть схемы автомата. Драйвер DA2 запитан  от АКБ автомобиля через цепь R10C7C8, представляющую собой фильтр НЧ с частотой среза около 280 Гц. Напрямую напряжение бортовой сети  подаётся на истоки транзисторов VT3,VT4  и через резисторы R11, R12 на их затворы.

Условием для запуска процедуры плавного включения ламп является выполнение следующих условий. На выв.4 DD1 должно присутствовать напряжение близкое к напряжению питания DD1, что соответствует отключенным габаритным огням автомобиля. Также должно быть выполнено любое из следующих условий. Напряжение на входе компаратора (выв.7 DD1) должно превышать величину 3,44 В, что должно соответствовать значению напряжению в бортовой сети автомобиля при работающем двигателе и соответственно генераторе автомобиля. Это значение напряжения, как правило, 13-13,5 В выставляется предварительной регулировкой подстроечного резистора R3. Другим возможным условием для включения ламп ДХО является импульсная последовательность на  выв.2 DD1, поступающая через ограничитель – формирователь   (R1VD2R5R6VT1) с контакта 2 разъёма Х1 (сигнал от тахометра), частота которой  должна превышать значение в 16 Гц, что для  четырёхтактного ДВС составляет 480 об/мин.

В случае выполнения указанных выше условий программа микроконтроллера начинает отработку процедуры плавного включения ламп ДХО, которая заключается в следующем. Через 1,5-2 с после запуска двигателя автомобиля лампы ДХО начинают плавно «разгораться» пока не достигнут определённого порога яркости. Это время составляет 1-2 с и зависит от выбранного  варианта яркости свечения ламп ДХО, выставляемого с помощью перемычек S1, S2 установленных на плате автомата. При снятых перемычках яркость свечения ламп составляет 37% от полной яркости ламп. При установленной перемычке S1 – 50%,  S2- 75%, при установке обеих перемычек – 99%  яркости ламп ДХО.

Для определения  работы 4-хтактного ДВС автомобиля необходимо  сигнальный провод с тахометра подключить к контакту  2 разъёма Х1. Если сигнальный провод подключается к прерывателю номинал резистора R1 необходимо увеличить до 120 кОм. Если провод тянуть по каким-то причинам не желательно или получается, то налаживание автомата сводится к установке величины порогового напряжения, сигнализирующего  о работе двигателя автомобиля. Необходимо помнить, что указанную ниже процедуру необходимо проводить при хорошо заряженной АКБ.  Для налаживания необходимо ползунок подстроечного резистора R3 на плате автомата вывернуть в нижнее по схеме положение. Включить только зажигание. Если через 1,5-2 с лампы ДХО включатся, необходимо снизить номинал резистора R4 до 2,7 кОм и повторить процедуру налаживания. Если лампы не включатся, то необходимо запустить двигатель автомобиля. Далее, плавно вращая ползунок резистора R3  вверх по схеме,  не забывая при этом о временной задержки, добиться включения ламп. Если после проведения этой процедуры при последующем включении только зажигания, лампы не включатся, процедуру налаживания можно считать законченной. Если же лампы включатся, ползунок резистора необходимо дальше плавным вращением продолжить выводить в верхнее положение, до включения ламп ДХО.

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

Рисунок 2

Все детали автомата смонтированы на печатной плате из фольгированного стеклотекстолита толщиной 1 мм. Чертёж печатной платы представлен на рис.3. Плата автомата разработана под корпус G1018. В качестве разъёма Х1 использованы 2-х и 3-х контактные винтовые клеммники 305-021-12 с шагом 5мм. Подстроечный резистор – PVC6A102. Транзисторы VT3,VT4 крепятся к плате болтами с гайками М4. Перемычка на плате между конт.6 разъёма Х1 и стоком транзистора VT4 должна быть сечением не менее 0,5 кв.мм. Микросхемы DD1  и DA2 для большей надёжности лучше впаять непосредственно в плату автомата, разумеется, предварительно запрограммировав микроконтроллер DD1. Использование в схеме автомата драйвера DA2, позволило установить выходные транзисторы без теплоотводов.

Рисунок 3

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


Следует помнить, что для нормальной  и безопасной работы автомата в качестве силовых проводов необходимо использовать изолированный многожильный медный провод сечением не менее 1,5 кв.мм (например, МГШВ). В цепи провода питания идущего с АКБ автомобиля на  конт. 5 разъёма Х1 необходимо установить автомобильный держатель FH-501-1 c предохранителем на 20А (на схеме не показан).

Автор: Суров В.

АРХИВ:Скачать

Очень простой акустический выключатель на микроконтроллере PIC12F683

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

Защита реализована тем образом, что для изменения состояния выхода требуется не один, а два хлопка, причем последовавших между собой с паузой не более 1 секунды.

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

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

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

Режим работы транзистора устанавливается таким образом, чтобы при отсутствии входного сигнала (в тишине) напряжение на его коллекторе было около 0,25-0,ЗV.

То есть, транзистор практически открыт, находится в режиме насыщения. При приеме микрофоном звука достаточной громкости на коллекторе транзистора возникает хаотический импульсный сигнал по амплитуде достигающий 2V.

Внутренний компаратор микроконтроллера настроен таким образом, чтобы реагировал на напряжение более 0,625V (величина опорного напряжения задана 0,625V).

Рис. 1. Схема акустического реле на микроконтроллере PIC12F683.

Таким образом, чувствительность входа порта GP1 установлена 0,625V. Чувствительность микрофона можно регулировать, изменяя сопротивление резистора R1. С его увеличением чувствительность падает.

Но увлекаться уменьшением R1 для повышения чувствительности не стоит, так как при R1 менее ЗК может возникнуть перегрузка встроенного усилителя микрофона.

Прошивка МК и замечания

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

При каждом двухкратном звуке меняется состояние порта GP5. Нагрузкой управляет выходной каскад на оптопаре и симисторе. Напряжение питания нагрузки переменное 220V.

НЕХ-файл прошивка для микроконтроллера — Скачать (0,5 КБ).

  • Oscillator Internal — 4.0000 MHz,
  • MCLR — disabled,
  • PWRT ON — enabled.

Семенов И. РК-02-2016.

Сенсорный регулятор напряжения на pic12f683

Управление регулятором (полная версия)

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

1. Изменение яркости света (или задание яркости) – прикоснитесь и удерживайте палец на сенсоре. Яркость будет плавно меняться от минимальной до максимальной.  При этом будет происходить  автоматическое переключением направления (изменения нарастания или гашения), при достижении крайних значений.

2. Переключение регулировки яркости с возрастания на уменьшение (или на оборот)  – во время регулировки яркости по пункту 1 кратковременно оторвите палец от сенсора и опять прикоснитесь и удерживайте. Режим нарастания смениться на уменьшения (и наоборот).

3. Быстрое выключение света – один раз коснитесь сенсора (прикоснуться и оторвать палец, прозвучит сигнал бипера). Свет выключиться.

4. Быстрое включение света на заданную яркость (пункт 1.2) — один раз коснитесь сенсора (прикоснуться и оторвать палец, прозвучит сигнал бипера). Свет плавно включиться. Внимание! – не забудьте сначала задать яркость, как описано в пунктах 1 и 2.

5. Быстрое включение света на полную яркость – два раза коснитесь сенсора, прозвучит сигнал бипера. Свет плавно включиться на полную яркость.
a. Если во время включения света на полную яркость еще выполнить процедуру по пункту 5 свет резко включиться на полную яркость.

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

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

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

8. Режим автоматического отключения света – применяется как коридорный выключатель света. При включении света регулятор отсчитает 90 секунд и выключить его. В этом режиме его удобно использовать в подъездах, прихожих квартир. Включаете – уходите, а свет автоматически выключается. Для включения этого режима коснитесь четыре раза сенсора, прозвучит сигнал бипера . Загорится светодиод. Подмаргивание светодиода говорит о том, что регулятор находится в режиме автоотключения.

Для выключения этого режима – коснитесь  четыре раза сенсора, прозвучит сигнал бипера, светодиод погаснет, режим выключен.

9. Режим присутствия человека – в этом режиме регулятор будет самостоятельно включать,  выключать свет, на разные промежутки времени и на разную яркость, этим самым имитирую присутствие человека в помещении. Для включения этого режима коснитесь пять раз сенсора, прозвучит сигнал бипера . Светодиод будет быстро мигать .  Для выключения этого режима – коснитесь  пять раз сенсора, прозвучит сигнал бипера, светодиод погаснет, режим выключен.

Примечание!!!

— Включенный свет автоматически выключается приблизительно через  12 часов непрерывной работы!!!
— Работа регулятора зависит от фазировки сети!!! Правильно подключайте регулятор к электросети.
— Не могут быть одновременно активированы режимы 8 и 9. Если активируется режим 8, автоматически деактивируется режим 9 и наоборот.
— При одновременном активации режима 7 и 8 – индицируется режим  7 (светодиодом).

Задержка включения при подаче питания на 5 секунд, для ожидания на переходные процессы в сети. Допустимое время работы будильника 1-24 часа. Режим присутствия формирует включение лампы на 5 — 15 минут, произвольной яркостью до от 10 до 50%, с интервалами от 1 до 30 минут. Режимы работы, настройка яркости, время заданное будильником сохраняются в отключенном состоянии. В отключенном режиме не сохраняется ход таймера будильника. При пропадании напряжения сети отсчет начнется заново! Заданная яркость сохраняется при выборе, режима будильника, авто-выключения и режима «эффекта присутствия».  Если необходимо сохранить только заданную яркость – прикоснитесь к сенсору 7 раз. Для сброса всех настроек к заводским параметрам – прикоснитесь к сенсору 9 раз. Если включены одновременно режимы Будильника и Коридорного режима или Будильника и режима присутствия – индикация попеременная через 5 секунд.

Управление регулятором (упрощенная версия)

Доступны функции 1-5. Индикации согласно тех. задания.

Управление регулятором (упрощенная версия) Ch-sv-25.HEX

Три нажатия – задание времени авто-отключения света в режиме коридорного эффекта. Дискретность 5 минут. Диапазон от 5 до 255 минут.

Ch-sv-21 – полная версия
Ch-sv-22 – упрощенная версия
Ch-sv-23-10 – полная версия, «коридорный эффект» 10 мин.
Ch-sv-24 – упрощенная версия + «коридорный эффект» 90сек
Ch-sv-24-10 – упрощенная версия + «коридорный эффект» 10 мин.
Ch-sv-25 – упрощенная версия + «коридорный эффект» с возможностью задания отключения от 5 до 255 мин.

Без пищалки  —  выход  управления питанием

Ch-sv-27 – полная версия
Ch-sv-28 – упрощенная версия
Ch-sv-29 – упрощенная версия + «коридорный эффект» 90сек

Функции по счету

01 — включить/выключить
02 — включить на максимальную яркость
03 — будильник (настройка авто-отключения в режиме коридорный эффект)
04 — коридорный эффект
05 — присутсвие
06 – нет функций
07 — сохранить яркость
08 – нет функций
09 — сброс настроек

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

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

Рисунок 1

Рисунок 2

Вход сенсора работает и от сенсора, и от кнопки, и от ИК-приемника, и от «звукового» сенсора их можно подключать параллельно.


Архив для статьи «Сенсорный регулятор напряжения на pic12f683»
Описание: Исходные тексты всех версий, файлы прошивки микроконтроллера, макет печатной платы SprintLayout5
Размер файла: 244.68 KB Количество загрузок: 2 088 Скачать

Универсальный ШИМ-контроллер на PIC с регулировкой резистором

Есть немало самодельных проектов контроллеров мощности нагрузки, использующих широтно-импульсную модуляцию (ШИМ) для управления скоростью двигателя или нагревателя. В большинстве из них используются аналоговые методы для генерации сигнала ШИМ, который, в свою очередь, управляет мощным полевым МОП-транзистором или транзистором.

Здесь же предлагается схема, основанная на PIC12F683, с использованием периферийного устройства Capture / Compare / PWM внутри PIC для генерации выходного сигнала. Полевой МОП-транзистор логического уровня с N-каналом нужен для управления выходной мощностью.

Обычно управление в МК кнопочное, но тут сделано удобнее – переменный резистор обеспечивает входное напряжение для PIC, которое преобразуется в цифровое значение с помощью встроенного аналого-цифрового преобразователя, который, в свою очередь, используется для установки рабочего цикла ШИМ.

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

В исходной версии проекта вход от аналого-цифрового преобразователя (АЦП) подавался непосредственно в регистр рабочего цикла модуля ШИМ на МК, поэтому выходная нагрузка изменялась линейно прямо пропорционально изменению входного напряжения. Вход переключателя позволял выбрать период ШИМ в одном из трех диапазонов; 15,6 кГц, 3,8 кГц и 980 Гц.

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

Вход переключателя теперь циклически проходит через 3 таблицы сопоставления. Таблицы по умолчанию, идущие с кодом, имеют взаимно однозначное сопоставление входного напряжения с выходным рабочим циклом и фиксированные периоды 15,6 кГц, 3,8 кГц и 980 Гц соответственно, чтобы сохранить обратную совместимость с исходной версией кода.

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

Также имеется цифровой управляющий вход, позволяющий отключать выходной драйвер. При низком уровне выход ШИМ устанавливается на 0%.

МК PIC12F683 имеет внутреннее аппаратное периферийное устройство PWM, которое используется для генерации сигнала ШИМ. Рабочий цикл сигнала ШИМ контролируется VR1, который через R1 подает напряжение на вывод 3 IC1. При 0 В на входе рабочий цикл составляет от 0% (выключено) и до 100% при 5 В на входе.

Сигнал PWM выводится с вывода 5 IC1 и управляет выводом затвора Q1 через R3. Резистор R4 соединяет вывод затвора Q1 с землей. Это гарантирует, что Q1 останется выключенным при первом включении схемы, пока микропрограммное обеспечение не инициализирует выходы. Диод D1 необходим при возбуждении индуктивных нагрузок и обеспечивает путь для индуктивного обратного тока. Для нагрузок до 3-х ампер Q1 не требует радиатора.

Питание логики обеспечивается IC2, 5-вольтовым стабилизатором 78L05. Он подключается к источнику входного напряжения через диод D2, который обеспечивает защиту от обратной полярности подачи питания.

Переключатель SW1 позволяет выбрать одну из трех таблиц переназначения ШИМ. Чтобы избежать случайных изменений в используемой таблице карт, программное обеспечение требует, чтобы переключатель удерживался не менее 500 мс перед переключением на следующую. Выбранная таблица обозначается светодиодом LED1, и значение сохраняется в EEPROM, поэтому он всегда включается с использованием последней использованной настройки.

CON1 обеспечивает цифровой вход, который опрашивается прошивкой. Когда этот вход становится низким, рабочий цикл устанавливается на 0% от начала следующего периода ШИМ, это выключает MOSFET Q1. Когда на входе возвращается высокий уровень, ШИМ перезапускается с использованием рабочего цикла, установленного входом от VR1. Разъем также обеспечивает соединения 5 В и Gnd, позволяющие подключить небольшую цепь управления вне печатной платы. Если он используется для питания другой цепи, убедитесь, что он не потребляет более 40 мА от источника питания. Если управление выключением не требуется, оставьте разъем открытым, и внутреннее слабое подтягивание PIC будет удерживать входной высокий уровень, обеспечивая выход.

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

В качестве диода D1 здесь может использоваться 1N4002 для большинства устройств с низким энергопотреблением, лучше 1N5819 Шоттки, для более высоких токовых нагрузок могут быть 1N5820, SB330 или SB350.

Чтобы получить полный диапазон управления, когда VR1 повернут полностью против часовой стрелки, убедитесь что напряжение на клемме VR1 0 вольт. Напряжение на клемме VR1 должно быть от Vss до Vdd, чтобы получить полный выходной диапазон.

Потенциометр VR1 обозначен на схеме как 5K, но его можно заменить и 10 кОм. Во всех случаях это должен быть линейный тип, а не логарифмический.

Вход сброса PIC MCLRE (контакт 4) настроен на вход с логикой сброса, внутренне связанной с Vdd, и включенным слабым подтягиванием на контакте ввода / вывода.

Обратите внимание на следующие моменты:

  • Нет ограничения по току или датчика перегрузки, возможно понадобится использовать плавкий предохранитель на нагрузку.
  • Контроллер PWM является разомкнутым, поэтому он не регулирует рабочий цикл для поддержания постоянного числа оборотов двигателя при изменении нагрузки. Вы можете добавить аналоговый контур регулирования на входе АЦП, чтобы добиться этого, если необходимо.
  • Тут не нужно использовать комплект изолирующих шайб между радиатором и полевым МОП-транзистором, поскольку радиатор изолирован на печатной плате. Но поскольку радиатор подключен к полевому МОП-транзистору, необходимо убедиться что он не соприкасается с какими-либо другими частями схемы или корпусом, в который устанавливаете контроллер.

Здесь VR1 контролирует рабочий цикл (и период) выхода ШИМ. Аналоговый вход от VR1 используется в качестве индекса в таблице карты, которая возвращает требуемый рабочий цикл и период ШИМ. Это означает, что линейный вход на АЦП может использоваться для генерации нелинейного изменения рабочего цикла на выходе.

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

Другой важной особенностью использования входа АЦП в качестве индекса в таблице является то, что он не только позволяет переназначить рабочий цикл, но и период ШИМ может также изменяться в зависимости от входа в АЦП.

Используя доступную память в PIC, можно запрограммировать три таблицы переназначения. Вход переключателя S1 используется для выбора таблицы карты, которая будет использоваться. Нажатие S1 на более 500 мс будет циклически перемещать по трем таблицам карт; это необходимо для предотвращения случайного включения. Используемая таблица обозначается светодиодом, как показано ниже. Таблица карты выбранная для использования, также сохраняется в EEPROM, поэтому при следующем включении PIC будет использоваться последняя выбранная таблица.

Таблицы карты по умолчанию, поставляемые с кодом, используют линейное отображение входного напряжения и выходного рабочего цикла ШИМ. Каждая имеет фиксированный период ШИМ.

  1. Таблица 1, период ШИМ 15,6 кГц
  2. Таблица 2, период ШИМ 3,8 кГц
  3. Таблица 3, период ШИМ 980 Гц

Данные карты можно изменить, отредактировав файл bdcm_remap.asm и введя альтернативные имена включаемых файлов для требуемых таблиц карты. Раздел для редактирования находится в конце файла. Точка с запятой комментирует строку, ее удаление приведет к включению строки во время сборки. Всегда должно быть три файла данных переназначения. Это могут быть разные файлы или один и тот же, включенный трижды.

Значение коэффициента заполнения, используемое в таблице карты, должно быть целым числом в диапазоне от 0 до 255. Чтобы преобразовать коэффициент заполнения в процентах в значение для таблицы, умножьте его на 2,55. Например, 60% x 2,55 = 153.

Новые таблицы могут быть созданы с помощью Exel. Скопируйте и вставьте необходимые ячейки в MPLAB и сохраните как someMapFile.inc. Включите имена файлов карты в файл bdcm_remap.asm и соберите заново. Пример электронной таблицы (Excel 2003) имеется в общем архиве в конце статьи.

Сборка и включение

Подключите входное питание постоянного тока к CON2, а выходную нагрузку к CON3. Вход выключения PWM необязателен, если он не требуется оставьте разъем отключенным и выход будет включен.

Файл HEX готов к программированию непосредственно в PIC12F683. Файл asm содержит исходный код, который можете изменить или просто просмотреть, чтобы увидеть как оно работает. Если собираетесь изменить код, рекомендуем загрузить и установить Microchip MPLAB IDE, которая позволит легко редактировать, изменять и программировать PIC.

Версия с мягким запуском

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

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

Если управляющий потенциометр находится в максимальном положении, требуется приблизительно 1,2 секунды, чтобы выходной сигнал увеличился до конечной настройки, это время прямо пропорционально положению управляющего положения; например если регулятор установлен на 1/3 от максимума, потребуется 1,2 / 3 = 0,4 секунды.

Программатор для PIC-контроллеров — МОПЕДИСТ.ру

Описываемый программатор очень пригодился при программировании контроллеров 12F683 для зажигания. Первоначальная схема мной взята отсюда, но т.к. у меня уже был стабилизированный блок питания 12 вольт от зарядного устройства, а также отсутствовала необходимая для исходной схемы микросхема стабилизатора с управлением 78R12C, то я немного переделал исходную схему.

Схема моего программатора:


(На схеме нарисован полевой транзистор IRF4905 и с ним будет прекрасно работать, но я у себя поставил 2SJ598 из-за его меньших размеров)

Соответственно, нарисовал свою печатную плату:

По просьбам трудящихся убрал «лишнее» с платы и добавил этот сокращенный вариант в файл:


Скачать файл с этими печатными платами.

Из схемы тоже убрал лишние панельки.


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

А так выглядит уже готовый программатор:


Кабель распаян чисто как удлинитель и в качестве провода использован двух-метровый 10-ти жильный шлейф, из которых 9 идут на контакты, а десятая жилка соединяет корпуса разъемов. Автор программатора заострял внимание, что надо корпуса соединить между собой и подключить этот же контакт на общий провод схемы.

А вот мини-версия программатора:

Схема с блоком питания(добавлен стабилизатор L7812):


Стабилизатор на плате разместился без переразводки. Просто разрезал дорожку 12 вольт, которая идет к стоку полевика и выводы удачно припаялись к дорожкам. Также спаял вместе корпуса VR1 и добавленного VR3.

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

Кинулся, а дома ни каких подходящих блоков питания на 12 вольт не нашлось, но зато в наличии куча зарядок от всяких девайсов. Разобрал несколько зарядок и самой подходящей показалась от Нокии AC-8E. Схемы в интернет не нашлось, но особо это не расстроило. Принцип работы у всех почти одинаков, т.е. надо было просто поиграть обратной связью. В данном случае за стабилизацию отвечает стабилитрон на 5,6 вольта. Попробовал просто поменять на 12 вольтовый, получилась фигня. Где-то видимо есть еще контроль от перегрузки и напряжение выше 8-ми вольт не выдается. Ладно, тогда пойдем другим путем — просто домотаем трансформатор.

Плата с выпаянным трансформатором:

Разобрал трансформатор. Кстати, разбирается он, как и в энергосберегающих лампочках, при помощи нагрева паяльником сердечника. В трансформаторе обнаружились две вторичные обмотки по 6 витков в один слой(первичную не трогал). Провод оказался по меди диаметром 0,5 мм, но покрыт какой-то толстой оболочкой, т.е. толщиной 0,7 мм.

Смотал эти витки и намотал в два слоя тоже две обмотки новым проводом 0,5 мм по 13 витков. Собрал, склеил суперклеем. Сначала поставил стабилитрон на 12 вольт, но на выходе оказалось 13,75 вольт, видимо, из-за необходимого напряжения для открытия оптрона+ напряжение стабилитрона. Тогда поменял стабилитрон на 13 вольтовый и на выходе стало почти 15 вольт и при таком раскладе ток до 200 mA держит спокойно. Осталось только для получения 12 вольт прямо на программаторе поставить L7812. Попробовал прошить микросхемы — работает отлично.

Для работы с программатором использую beta версию WinPICPgm Programmer, у которого есть некоторая особенность, что он иногда «не видит» программатор. Чтобы он его «увидел», необходимо зайти в Hardware->Hardware Selection/Configuration и выбрать JDM Programmer и нажать OK. Бывает, что уже стоит JDM Programmer при включении программы, но программатор не определяется. В этом случае опять зайти в меню выбора программатора и выбрать Autodetect Programmer и нажать OK, после чего зайти туда же еще раз и выбрать JDM Programmer. В том же меню надо установить инверсию сигналов Clock, Data in и Data out.

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

Pic12f683-I/P Pic12f683 микроконтроллер IC Интегральная схема



Параметрыпродукта

 

Core:PIC12
Размерпамятипрограммы:3,5 Кб
Ширинашиныданных:8 бит
Ацп:10 бит
Максимальнаятактоваячастота:20 Мгц
Количествооперацийввода-вывода:6 I/O
РазмерОЗУданных:128 B
Рабочеенапряжениепитания:2 Вдо5,5 В
Минимальнаярабочаятемпература:— 40 C
Максимальнаярабочаятемпература:+ 85 C
Упаковка:Трубка
Высота:3,3 мм
Длина:9,27 мм
Продукт:MCU



 


Связанныепродукты

 Типкорпуса

Поляприложения

Информацияокомпании

НашиExihibiton




Частозадаваемыевопросы

1.Ктовы?
МыпроизводителявысокогокачествавКитаесобственныемикросхемыIC входит,транзистор,нагревательныхэлементовотоплениясалона,
Конденсаторы,памяти,IGBT, Mosfet,Traic/SCR,оптоэлектронныекомпоненты.Почтивсекомпоненты
Электроникивнашейпродукции.

2.Вытакжепродажаоригинальныхзапасныхчастей?
Да, мытакжепоставкиоригинальныхматериаловBcz всенаширазработанымикросхемынаоснове
Оригинал, поэтомумысотрудничаемснекоторымиоригинальногодизайнаиразвития
Департамента, чтоунасестьхорошиеисточникиоригинала.

3.Каковывашипреимущества?
Нашейвысококачественнойпродукциисразумнойценойможетполностьюзаменить
Оригинальныедетали.

4.ВыможетепредоставитьOEM Service?
Да, мыможем, еслиувасестьпроектыипроситьPlz свяжитесьснами.

5.можнокупитьвсекомпонентыRequireing обменамгновеннымисообщениямисвами?
Конечнода,изспискаBom котировкидодверидодвери, экспресс-обслуживания
Мыпрофессиональныхпродаждлясоединениясвамивсевремя.
 

 

%PDF-1.6 % 13194 0 объект > эндообъект внешняя ссылка 13194 414 0000000016 00000 н 0000011029 00000 н 0000011165 00000 н 0000011372 00000 н 0000011412 00000 н 0000011467 00000 н 0000011513 00000 н 0000011575 00000 н 0000011716 00000 н 0000011848 00000 н 0000011985 00000 н 0000013004 00000 н 0000013517 00000 н 0000014145 00000 н 0000014481 00000 н 0000014663 00000 н 0000014847 00000 н 0000014951 00000 н 0000015140 00000 н 0000017857 00000 н 0000022566 00000 н 0000022799 00000 н 0000023023 00000 н 0000023086 00000 н 0000023189 00000 н 0000023297 00000 н 0000023431 00000 н 0000023542 00000 н 0000023655 00000 н 0000023787 00000 н 0000023905 00000 н 0000024006 00000 н 0000024149 00000 н 0000024286 00000 н 0000024448 00000 н 0000024561 00000 н 0000024662 00000 н 0000024848 00000 н 0000024981 00000 н 0000025127 00000 н 0000025295 00000 н 0000025444 00000 н 0000025625 00000 н 0000025786 00000 н 0000025921 00000 н 0000026058 00000 н 0000026222 00000 н 0000026377 00000 н 0000026490 00000 н 0000026660 00000 н 0000026805 00000 н 0000026955 00000 н 0000027128 00000 н 0000027258 00000 н 0000027392 00000 н 0000027551 00000 н 0000027677 00000 н 0000027846 00000 н 0000028025 00000 н 0000028135 00000 н 0000028287 00000 н 0000028445 00000 н 0000028589 00000 н 0000028742 00000 н 0000028894 00000 н 0000029019 00000 н 0000029190 00000 н 0000029291 00000 н 0000029440 00000 н 0000029592 00000 н 0000029718 00000 н 0000029867 00000 н 0000030020 00000 н 0000030168 00000 н 0000030357 00000 н 0000030490 00000 н 0000030638 00000 н 0000030797 00000 н 0000030950 00000 н 0000031119 00000 н 0000031273 00000 н 0000031389 00000 н 0000031508 00000 н 0000031676 00000 н 0000031789 00000 н 0000031918 00000 н 0000032072 00000 н 0000032201 00000 н 0000032292 00000 н 0000032456 00000 н 0000032572 00000 н 0000032725 00000 н 0000032849 00000 н 0000032973 00000 н 0000033128 00000 н 0000033283 00000 н 0000033427 00000 н 0000033565 00000 н 0000033701 00000 н 0000033861 00000 н 0000034009 00000 н 0000034125 00000 н 0000034248 00000 н 0000034359 00000 н 0000034514 00000 н 0000034683 00000 н 0000034806 00000 н 0000034964 00000 н 0000035118 00000 н 0000035234 00000 н 0000035368 00000 н 0000035527 00000 н 0000035639 00000 н 0000035805 00000 н 0000035964 00000 н 0000036121 00000 н 0000036264 00000 н 0000036381 00000 н 0000036538 00000 н 0000036656 00000 н 0000036750 00000 н 0000036908 00000 н 0000037046 00000 н 0000037181 00000 н 0000037330 00000 н 0000037443 00000 н 0000037544 00000 н 0000037654 00000 н 0000037783 00000 н 0000037894 00000 н 0000038043 00000 н 0000038159 00000 н 0000038255 00000 н 0000038383 00000 н 0000038496 00000 н 0000038641 00000 н 0000038770 00000 н 0000038890 00000 н 0000039012 00000 н 0000039125 00000 н 0000039225 00000 н 0000039380 00000 н 0000039492 00000 н 0000039624 00000 н 0000039789 00000 н 0000039905 00000 н 0000040066 00000 н 0000040189 00000 н 0000040324 00000 н 0000040438 00000 н 0000040574 00000 н 0000040704 00000 н 0000040831 00000 н 0000040959 00000 н 0000041086 00000 н 0000041214 00000 н 0000041325 00000 н 0000041451 00000 н 0000041596 00000 н 0000041698 00000 н 0000041862 00000 н 0000041984 00000 н 0000042120 00000 н 0000042237 00000 н 0000042410 00000 н 0000042536 00000 н 0000042662 00000 н 0000042821 00000 н 0000042941 00000 н 0000043067 00000 н 0000043206 00000 н 0000043372 00000 н 0000043474 00000 н 0000043598 00000 н 0000043727 00000 н 0000043842 00000 н 0000043952 00000 н 0000044138 00000 н 0000044266 00000 н 0000044382 00000 н 0000044499 00000 н 0000044661 00000 н 0000044773 00000 н 0000044881 00000 н 0000045004 00000 н 0000045118 00000 н 0000045249 00000 н 0000045392 00000 н 0000045500 00000 н 0000045653 00000 н 0000045836 00000 н 0000045957 00000 н 0000046081 00000 н 0000046238 00000 н 0000046361 00000 н 0000046483 00000 н 0000046653 00000 н 0000046790 00000 н 0000046926 00000 н 0000047051 00000 н 0000047208 00000 н 0000047317 00000 н 0000047428 00000 н 0000047593 00000 н 0000047702 00000 н 0000047879 00000 н 0000047974 00000 н 0000048143 00000 н 0000048254 00000 н 0000048393 00000 н 0000048568 00000 н 0000048691 00000 н 0000048859 00000 н 0000048958 00000 н 0000049108 00000 н 0000049217 00000 н 0000049342 00000 н 0000049462 00000 н 0000049588 00000 н 0000049741 00000 н 0000049848 00000 н 0000050000 00000 н 0000050156 00000 н 0000050260 00000 н 0000050403 00000 н 0000050516 00000 н 0000050627 00000 н 0000050784 00000 н 0000050946 00000 н 0000051077 00000 н 0000051199 00000 н 0000051318 00000 н 0000051444 00000 н 0000051590 00000 н 0000051755 00000 н 0000051849 00000 н 0000051971 00000 н 0000052099 00000 н 0000052224 00000 н 0000052352 00000 н 0000052511 00000 н 0000052671 00000 н 0000052830 00000 н 0000052960 00000 н 0000053087 00000 н 0000053209 00000 н 0000053344 00000 н 0000053497 00000 н 0000053604 00000 н 0000053713 00000 н 0000053888 00000 н 0000053985 00000 н 0000054158 00000 н 0000054255 00000 н 0000054425 00000 н 0000054539 00000 н 0000054681 00000 н 0000054804 00000 н 0000054955 00000 н 0000055108 00000 н 0000055239 00000 н 0000055350 00000 н 0000055503 00000 н 0000055654 00000 н 0000055795 00000 н 0000055939 00000 н 0000056055 00000 н 0000056176 00000 н 0000056301 00000 н 0000056416 00000 н 0000056543 00000 н 0000056667 00000 н 0000056792 00000 н 0000056939 00000 н 0000057073 00000 н 0000057192 00000 н 0000057328 00000 н 0000057455 00000 н 0000057614 00000 н 0000057724 00000 н 0000057872 00000 н 0000058029 00000 н 0000058136 00000 н 0000058248 00000 н 0000058401 00000 н 0000058493 00000 н 0000058616 00000 н 0000058779 00000 н 0000058891 00000 н 0000059003 00000 н 0000059177 00000 н 0000059307 00000 н 0000059420 00000 н 0000059538 00000 н 0000059703 00000 н 0000059809 00000 н 0000059962 00000 н 0000060125 00000 н 0000060228 00000 н 0000060367 00000 н 0000060543 00000 н 0000060661 00000 н 0000060812 00000 н 0000060918 00000 н 0000061060 00000 н 0000061206 00000 н 0000061351 00000 н 0000061512 00000 н 0000061629 00000 н 0000061754 00000 н 0000061895 00000 н 0000062015 00000 н 0000062175 00000 н 0000062274 00000 н 0000062401 00000 н 0000062525 00000 н 0000062672 00000 н 0000062775 00000 н 0000062893 00000 н 0000063041 00000 н 0000063196 00000 н 0000063350 00000 н 0000063505 00000 н 0000063666 00000 н 0000063814 00000 н 0000063923 00000 н 0000064065 00000 н 0000064184 00000 н 0000064319 00000 н 0000064441 00000 н 0000064585 00000 н 0000064736 00000 н 0000064855 00000 н 0000064976 00000 н 0000065096 00000 н 0000065218 00000 н 0000065336 00000 н 0000065476 00000 н 0000065609 00000 н 0000065747 00000 н 0000065878 00000 н 0000066010 00000 н 0000066152 00000 н 0000066306 00000 н 0000066436 00000 н 0000066580 00000 н 0000066725 00000 н 0000066863 00000 н 0000066980 00000 н 0000067087 00000 н 0000067227 00000 н 0000067394 00000 н 0000067489 00000 н 0000067614 00000 н 0000067786 00000 н 0000067930 00000 н 0000068078 00000 н 0000068249 00000 н 0000068419 00000 н 0000068588 00000 н 0000068745 00000 н 0000068891 00000 н 0000069046 00000 н 0000069206 00000 н 0000069339 00000 н 0000069488 00000 н 0000069631 00000 н 0000069784 00000 н 0000069934 00000 н 0000070130 00000 н 0000070283 00000 н 0000070469 00000 н 0000070611 00000 н 0000070742 00000 н 0000070873 00000 н 0000071018 00000 н 0000071181 00000 н 0000071350 00000 н 0000071510 00000 н 0000071677 00000 н 0000071844 00000 н 0000072011 00000 н 0000072163 00000 н 0000072328 00000 н 0000072478 00000 н 0000072626 00000 н 0000072780 00000 н 0000072953 00000 н 0000073114 00000 н 0000073267 00000 н 0000073420 00000 н 0000073571 00000 н 0000073725 00000 н 0000073883 00000 н 0000074043 00000 н 0000074196 00000 н 0000074345 00000 н 0000074497 00000 н 0000074648 00000 н 0000074790 00000 н 0000074951 00000 н 0000075123 00000 н 0000075294 00000 н 0000075451 00000 н 0000075608 00000 н 0000075742 00000 н 0000075896 00000 н 0000076038 00000 н 0000076191 00000 н 0000076340 00000 н 0000076490 00000 н 0000076638 00000 н 0000076786 00000 н 0000008764 00000 н трейлер ]>> startxref 0 %%EOF 13607 0 объект >поток f|k{_5Q!qvƱ%

Техническое описание PIC12F683 Спецификации Скачать
AN879 — Использование сверхмаломощного модуля пробуждения Microchip Замечания по применению Скачать Связь
AN893 — недорогое управление двунаправленным щеточным двигателем постоянного тока с помощью PIC16F684 Замечания по применению Скачать Связь
AN905 — Основы коллекторного двигателя постоянного тока Замечания по применению Скачать Связь
MPLAB® PRO MATE® II Руководство пользователя Руководства пользователя Скачать
MPLAB IDE PICSTART Plus Руководство пользователя Руководства пользователя Скачать
Спецификация программирования памяти PIC12F6XX/16F6XX Спецификации программирования ДС40001204 Скачать
Советы и хитрости Поддерживающее обеспечение Скачать
Руководство и учебник по MPLAB® Руководства пользователя Скачать
Спецификация модуля процессора MPLAB® ICE 2000 и адаптера устройства Руководства пользователя Скачать
Спецификация переходного сокета Руководства пользователя ДС51194 Скачать
PIC® MCU CCP и ECCP Советы и рекомендации Поддерживающее обеспечение Скачать
PIC MCU Comparator Советы и хитрости Поддерживающее обеспечение Скачать
Советы и хитрости по управлению двигателем постоянного тока Поддерживающее обеспечение Скачать
AN964 — Программное ПИД-управление перевернутым маятником с использованием PIC16F684 Замечания по применению Скачать Связь
Решения для 8-разрядных микроконтроллеров PIC® Брошюры 30009630 Скачать
PIC12F683 Ред.Опечатки кремния/паспорта данных Исправления Скачать
НАЧНИТЕ СЕЙЧАС с микроконтроллерами Small Flash PIC® Брошюры Скачать
Список ошибок модуля Timer1 Исправления DS80329 Скачать
AN1229 — Библиотека программного обеспечения безопасности класса B для PIC MCU и dsPIC DSC Устаревшие залоговые средства Скачать
Руководство по выбору корпоративных продуктов Брошюры 1308 Скачать
Сборник советов и рекомендаций по микроконтроллерам PIC Поддерживающее обеспечение Скачать
AN1209 — Реализация ионофореза с использованием недорогого микроконтроллера Замечания по применению Скачать Связь
Обзор продукта MPLAB® X IDE Брошюры 51984 Скачать

Введение PIC12F683 Учебное пособие по программированию схем


Рис.1 тестовая установка Mircochip PIC PIC12F683.

Автор: Lewis Loflin

В разделе «Управление мощностью с широтно-импульсной модуляцией для микроконтроллеров» мы исследовали использование PIC12F683 для управления выходной мощностью 12-вольтовой светодиодной лампы. Здесь мы рассмотрим сам PIC12F683 и некоторые советы по программированию.

Видео на YouTube: My Home Built PIC Dev. Доска

Демо-видео этой страницы см. в разделе «Микроконтроллер и схемы PIC12F683» на YouTube.

В этой тестовой схеме (рис. 1) используется Mircochip PIC PIC12F683 с аналого-цифровым преобразователем (АЦП), принимающим аналоговое значение потенциометра, преобразующим показания 0-5 В в 10-битное значение от 0 до 1023.Это 10-битное значение отправляется в модуль широтно-импульсной модуляции на контакт GP2.

Это значение устанавливает коэффициент заполнения (время включения в зависимости от периода) прямоугольного сигнала частотой 250 Гц, генерируемого внутренним таймером. Период = 1/F = 1/250 = 4 мсек.


K150 PIC Programmer

Загрузки — гарантия отсутствует используйте на свой страх и риск:
Драйвер для программатора K150 PIC: pl1303dtiver.exe
Программное обеспечение для K150: K150.rar

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


Рис. 2 Особенности и контакты PIC12F683.

На рис. 2 показаны лишь некоторые особенности PIC12F683, который включает в себя 6 программируемых контактов ввода-вывода, 4-канальные аналого-цифровые преобразователи и по одному модулю ШИМ и компаратора. Он имеет гораздо больше возможностей, чем PIC16F84A, и имеет АЦП, которых нет в PIC16F628.У него 2048 байт флэш-памяти, чего более чем достаточно для большинства приложений.

В качестве бонуса его программируемые внутренние «часы» не требуют никаких внешних деталей, только источник питания 3-5 вольт. (См. рис. 1). Я разработал это с тактовой частотой 4 МГц (по умолчанию затем внутренне делится на 4), что обеспечивает время тактового цикла 1 мкс — 35 инструкций в основном составляют 1 такт, за исключением ветвей, таких как GOTO.


Рис. 3 Банки регистров PIC12F683.

Новый октябрь 2016 г.:

Доступ к

регистрам PIC12F683 осуществляется в двух банках.Они управляют оборудованием и другими функциями. Штыри ввода/вывода помечены GP0 — GP5. их можно запрограммировать, как показано на рис. 2 путем установки и очистки битов в соответствующем регистре. Файл p12f683.inc определяет имена на основе меток реестра/банка. Посмотрите на этот код, который настроит внутренние часы в шаблоне. Обратите внимание, что я использую компилятор MPLAB v8.92, который изменяет метки и кодирует один тип в машинный код (файл HEX), запрограммированный в PIC.

 
БАНКСЕЛЬ ОСККОН ; Переключитесь на банк 1.MOVLW b'01100001' ; 4 МГц Clk, IntOsc, SysClk через IntOsc
МОВВФ ОСККОН
  

Примечание 1: все после «;» является комментарием и игнорируется. Используйте много комментариев, чтобы делать заметки для себя!

Примечание 2: такие команды, как MOVLW, MOVWF и BANKSEL, НЕ чувствительны к регистру. Можно использовать, скажем, «movlw» или «MOVlw» и т. д. Будьте последовательны!

Примечание 3: серия PIC использует в основном 8-битные регистры, которые могут хранить числа в десятичной форме от 0 до 255. Компилятору все равно, какую базу счисления использовать, поэтому 255 может быть d’255′ или .255 для десятичного числа; b’11111111′ или 0b11111111 для двоичного или 0xff или 0xFF для шестнадцатеричного. Я не знаю о OCTAL — компилятору, кажется, все равно, когда я попробовал 0777.

Примечание 4: включаемый файл в шаблоне определяет имена для числа. Посмотрите на таблицу банков на рисунке 3 и обратите внимание, что «OSCON» (или регистр управления генератором) находится в банке 1, ячейка Ox8F. В противном случае нужно было бы определить метку самостоятельно (OSCON EQU 0x8F) или просто использовать «MOVWF 0x8F».

Примечание 5: определенные имена из включаемого файла чувствительны к регистру! Таким образом, используя «oscon» и т. д.вызовет ошибку компилятора.

Примечание 6: для изменения данных регистра, битов и т. д. необходимо находиться в правильном банке. Регистр STATUS (0x03 и 0x83) совместно используется ОБОИМ банком 0 и банком 1 соответственно. Бит 5 (обозначенный RP0) является битом выбора банка. Сброс бита (0) помещает единицу в банк 0, а установка бита (1) помещает единицу в банк 1:

 
СТАТУС ЧФ, RP0 ; выбирает банк 1, устанавливая бит 5 - Rp0 определяется как 5
; или
СТАТУС БКФ, RP0 ; выберите банк 0
  

BSF — это «файл с установленными битами», а BCF — «файл с четкими битами».Для получения дополнительной информации о регистре STATUS см. стр. 11 в техническом описании — убедитесь, что оно у вас есть!

Таким образом, чтобы изменить данные в регистре OSCON (P19 в таблице данных), я должен быть в банке 1. BANKSEL избавляет от многих проблем, потому что компилятор знает, что находится в каком банке, и делает всю работу за вас. Поэтому, если мне нужно немного изменить и т. д., скажем, в TMRO (bank 0 0x01), используйте «BANKSEL TMRO» и забудьте об этом деле RP0.

Примечание 7: W или рабочий регистр. Думайте о регистре W как о ящике, который может содержать любую комбинацию из 8 нулей и единиц.Я загружаю в ящик число от 0 до 255, доставляю его в нужный регистр (например, OSCON) и вношу его туда. В большинстве инструкций программист должен указать, должен ли результат сохраняться в регистре W или в файле: напр. Имя файла DECFSZ, 0 (или W) сохраняет результат в W; DECFSZ имя файла, 1 (или F) сохраняет результат в файловом регистре.

Так что же сделали мои три строчки кода в 3uSec. делать? Я выбрал банк 0, переместил буквальное двоичное число в регистр W, затем регистр PIC W переместил этот байт в регистр OSCON из регистра W.

Теперь я уверен, что некоторые дрожат в своих ботинках — я должен делать все это??? Вот почему я здесь, чтобы помочь другим избежать тех кошмаров, через которые я прошел, когда сам учился ассемблеру PIC. Базовые компиляторы ДОРОГО, а компилятор MPLAB C имеет некоторые проблемы с авторскими правами и лицензированием. Нет смысла использовать для этих маленьких контроллеров что-то кроме сборки — большие да.

Как только человек выучит сборку на одном PIC, он будет работать и на других. Смотрите мой раздел PIC16F628A в сборке.


Рис. 4. Тестовая установка с использованием микрочипа 12F683 для демонстрации широтно-импульсной модуляции.

Программирование PIC12F683 и других

Аппаратная работа и широтно-импульсная модуляция описаны в документе «Управление мощностью широтно-импульсной модуляции для микроконтроллеров». Как показано на рисунке 1, переключатели подключены к GP3 и GP4, запрограммированным как цифровые входы. Контакты подключены к +5 В (HIGH) через два резистора 10K. Когда переключатель нажат, входы переходят на 0 В (НИЗКИЙ).

К GP2 подключена оптопара, запрограммированная как выход широтно-импульсной модуляции.Выход «переключается» ВКЛ/ВЫКЛ всякий раз, когда нажаты SW1 и/или SW2. GP1 и GP5 также «переключаются» на ВКЛ/ВЫКЛ соответственно. Это использовалось для управления двигателем Н-моста. Оптопара изолирует 12-вольтовую цепь от 5-вольтовой PIC.

Потенциометр подключен к GP0, запрограммированному как аналоговый вход с использованием 10-битного модуля АЦП. Это 10-битное значение считывается и используется для установки рабочего цикла 10-битного модуля ШИМ в GP2.

Думайте о PIC12F683 или любой другой PIC как о наборе программируемых электронных модулей вместе с микроконтроллером.PIC, такие как ATMEGA168 и т. Д., Используемые Arduino, известны как процессоры RISC — компьютер с сокращенным набором команд . В данном случае всего 35 инструкций.

Давайте углубимся в программирование. Обратитесь к template.asm и изучите спецификацию.

 
БЛОКИРОВКА 0x20 ; Назначить каждому рег. из области ОЗУ банка 0.
количество1
количество2
количество3
количество4
температура
РЕЗУЛЬТАТHI
РЕЗУЛЬТАТLO
КОНЕЦ ; Завершите присвоение ОЗУ банка 0.
  

Ссылаясь на рисунок 3, я использую статическое расположение оперативной памяти, начиная с 0x20 для переменных.Я всегда объявляю несколько на случай, если они мне понадобятся. Функция «CBLOCK» избавляет от объявления каждой переменной по отдельности с помощью EQU или использования самого шестнадцатеричного числа.

 
ОРГ 0x000 ; вектор сброса процессора
ПЕРЕЙТИ к настройке; перейти к началу программы

ОРГ 0x004 ; местоположение вектора прерывания
; код isr может находиться здесь или в другом месте как подпрограмма вызова
ПОВТОРИТЬ ; возврат из прерывания
  

При сбросе контроллера счетчик адресов начинается с 0x000.Метка «настройка» указывает на местоположение флэш-памяти для процедуры настройки, определяющей в основном аппаратные функции. Это расположение выполняется компилятором.

ORG 0x004 — это вектор прерывания, указывающий на то, что известно как ISR или процедура обслуживания прерывания. PIC12F683 имеет ряд программируемых аппаратных прерываний. Как только происходит прерывание, PIC останавливает свою работу, сохраняет текущий адрес счетчика местоположений в стеке, а затем обслуживает ISR.

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

 
настраивать

БАНКСЕЛЬ ОСККОН ; Переключитесь на банк 1.
MOVLW b'01100001' ; 4 МГц Clk, IntOsc, SysClk через IntOsc
МОВВФ ОСККОН

БАНКСЕЛЬ CMCON0 ; Переключитесь на Банк 0.
MOVLW b'00000111' ; Выключите компаратор.
MOVWF CMCON0
 
БАНКСЕЛЬ АНСЕЛЬ ; Переключитесь на банк 1.
CLRF АНСЕЛЬ ; Установите контакты ввода-вывода на цифровые.

; Определите входы и выходы.CLRF ТРИЗИО ; весь вывод
ЧФ ТРИЗИО, GP3 ; Вход GP3
ЧФ ТРИЗИО, GP4

БАНКСЕЛЬ GPIO; Переключитесь на Банк 0.
CLRF GPIO

; Этот блок кода настраивает АЦП для опроса,
; Ссылка Vdd, часы Frc и вход GP0.

БАНКСЕЛЬ ТРИЗИО;
ЧФ ТРИЗИО, 0 ; Установите GP0 для входа АЦП
; АНСЕЛЬ ; 0x9F P32
МОВЛВ 0b01110001 ; часы АЦП Frc,
ИОРВФ АНСЕЛЬ ; и GP0 как аналог
БАНКСЕЛЬ ADCON0 ; 0x1F
МОВЛВ 0b00000001 ; Левое оправдание,
MOVWF ADCON0 ; Vdd Vref, An0, Вкл.
ВЫЗОВ delay_1ms ; Задержка получения

; настроить ШИМ
; CCP1CON в банке 0, биты 4-5 являются младшим битом 10-битного ШИМ

MOVLW b'00000111'
МОВВФ Т2КОН ; включить предварительную шкалу TMR2 16 - частота
MOVLW d'127'; рабочий цикл = TMR2 = CCPR1L:CCP1CON 5:4
MOVWF CCPR1L
MOVLW b'00001100'
MOVWF CCP1CON ; включить ШИМ

цикл ПЕРЕЙТИ ; перейти к основной программе "loop"
  

Вышеприведенное делает то же самое, что и setup() в Arduino, и выполняется только один раз, если не вызывается.Я определил «часы» 4 МГц, выключил модуль компаратора, сделал все входы/выходы цифровыми. С TRISIO в банке 1 я определил GP3 и GP4 (установил соответствующие биты) как входы, все остальные контакты как выходы. Я очищаю такие регистры, как GPIO (банк 0) и ANSEL (аналоговый выбор банка 1), чтобы убедиться, что они находятся в известном состоянии. Если этого не сделать, могут возникнуть всевозможные проблемы.

Примечание: GP3 можно запрограммировать только как вход!

Затем я устанавливаю GP0 в качестве входа АЦП, затем модуль ШИМ настраивается на 250 Гц через таймер 2 (T2CON), а 10-битное значение для управления рабочим циклом находится в регистрах CCPR1L и CCP1CON в банке 0.

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


Рис. 5 Часть банка 0 Микросхема 12F683.
 
петля
; сделай что-нибудь
цикл GOTO
  

Вышеприведенное — это то же самое, что делает цикл Arduino в C. Давайте попробуем что-нибудь простое, например, помигаем светодиодом, подключенным к контакту GP1, подключенному через резистор к земле. Чтобы запустить программу, нам нужно сохранить HIGH в регистре GPIO в GP1 или в бите 1.Мы ждем некоторое время, затем сохраняем 0 в бите 1 или GP1 и снова ждем. В конце последовательности «цикл GOTO» возвращает нас к началу. Обратите внимание на конфигурацию регистра для части банка 0.

Мы должны быть в банке 0, и если вы не уверены, используйте «BANKSEL GPIO». Когда мы используем такие команды, как BSF и BCF, мы идем НАПРЯМУЮ к регистру, в данном случае GPIO или 0x05. Обратите внимание на рисунок 5.

 
петля

BSF GPIO, GP1; то же, что и BSF 0x05, 1 бит 1 HIGH LED горит.
; ждать
BCF GPIO, GP1 ; то же, что и BCF 0x05, 1 бит 1 Светодиод LOW не горит
; ждать

цикл GOTO
  

Как указано, время включения-выключения составляет 2 мкс.и видно только на осциллографе. Теперь мы подошли к использованию подпрограмм. Создайте набор небольших отлаженных подпрограмм и используйте их для создания других более крупных подпрограмм с помощью CALL. Нам нужна процедура задержки, чтобы замедлить процесс, чтобы мы могли что-то увидеть. Еще в настройках был ВЫЗОВ на delay_1ms.

 
; Вычисление задержки в 1 мсек. 4 мГц делится на 4 внутренне
; 1 000 000. Возьмем обратное деление 1 мс на 1 мкс = 1000.
; GOTO использует 2 цикла, DECFSZ 1 цикл.

задержка_1мс
; кварц 4 мГц
movlw D'2'
movwf количество1
аа movlw D'167'
decfsz count2, F ; внутренняя петля
перейти к $-1 ; два цикла
decfsz count1, F ;
иди аа
вернуть
  

У нас есть подпрограмма delay_1ms, использующая так называемый программный цикл.У нас есть два цикла: один с count1 = 2, а другой с count2 = 167. (Оба в десятичном формате.) Это статические ячейки ОЗУ, которые мы объявили ранее с помощью CBOCK 0x20.

Что делает DECFSZ, так это уменьшает значение счетчика count1 или count2 и проверяет флаг Z в регистре STATUS_REG (0x03), бит 2, и если он установлен (1), это означает, что результат последнего уменьшения равен нулю, и будет пропущена следующая инструкция goto $-1 и выйти из цикла.

При подсчете DECFSZ F — F означает сохранение результата в регистре «count», в то время как W сохраняет результат во внутреннем рабочем регистре W.Многие инструкции делают это.

Каждый DECFSZ и GOTO занимает 3 мкс. 167 раз в течение примерно 500 мкс. Всего. Внешний цикл (количество = 2) дважды проходит через цикл 500 мкс с задержкой около 1 мс — отсюда и название delay_1ms. (Используйте имена, которые имеют смысл.)

 
задержка_250 мс
movlw d'250'
movwf количество1
вызов delay_1ms
decfsz count1, F
перейти аа ; aa можно опустить, используйте "goto $-2"
вернуть
  

Теперь мы использовали вторую процедуру задержки, которая вызывает delay_1ms 250 раз.Итак, теперь мы завершаем нашу программу, в которой светодиод будет мигать ВКЛ-ВЫКЛ каждые полсекунды.

 
петля

BSF GPIO, GP1; то же, что и BSF 0x05, 1 бит 1 HIGH LED горит.
Задержка вызова_250 мс
BCF GPIO, GP1 ; то же, что и BCF 0x05, 1 бит 1 Светодиод LOW не горит
Задержка вызова_250 мс

цикл GOTO
  

Надеюсь, пример был полезен. Чтобы увидеть всю программу, показанную в видео, см. Analog.asm для получения дополнительных примеров кода.

Посмотрите, как я попал в электронику

 


 

Введение в PIC12F683 — Инженерные проекты

Эй, парни! Надеюсь у тебя все хорошо.Сегодня я расскажу подробности о Introduction to PIC12F683. Это 8-битный микроконтроллер PIC, который содержит восемь контактов и в основном используется для приложений реального времени, связанных с автоматизацией и встроенными системами.

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

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

Знакомство с PIC12F683
  • PIC12F683 — это 8-разрядный микроконтроллер PIC с 8-контактным интерфейсом. Он относится к категории КМОП-контроллеров и использует технологию нановатт.
  • Архитектура основана на флэш-памяти, но в контроллере отсутствуют некоторые функции, такие как модуль USART, SPI и I2C, однако такие функции, как внутрисхемное последовательное программирование, сторожевой таймер и таймер запуска генератора, делают это устройство идеальным выбором для некоторых реальных задач. приложения времени.
  • Объем памяти меньше, чем у других 40-контактных контроллеров в сообществе PIC, но достаточно для настройки автоматических функций в электронных проектах.
  • Память программ поставляется с объемом памяти 3,5 КБ, а объем памяти RAM и EEPROM составляет 128 байт и 256 байт соответственно.
  • Хотя в этом модуле отсутствуют некоторые важные функции, мы не можем стереть его ценность с точки зрения преобразования аналоговых сигналов в цифровые. Это устройство поставляется с 10-битным преобразователем АЦП, который является замечательным дополнением к такому крошечному устройству и очень полезен для взаимодействия с датчиками.


  • Таймер включения, основной сброс и спящий режим — это некоторые полезные функции, которые работают в обоих направлениях, т. е. выводят устройство из бесконечного цикла путем его перезапуска и экономят электроэнергию там, где управление питанием является серьезной проблемой.
  • При этом, если ваш проект требует выполнения большего количества функций на одном чипе с большим количеством контактов и интерфейсом памяти, предпочтительно использовать PIC18F4520.
PIC12F683 Характеристики

Характеристики любого устройства очень важны для получения основного представления об устройстве перед его установкой в ​​соответствующий проект.

В следующей таблице показаны полные характеристики PIC12F683.

да

8
Piction12F683 Особенности
№ Pins 8
CPU RISC 8-битный PIC
Рабочий напряжение
Рабочее напряжение 2 до 5,5 В
Программа памяти 3.5k 3.5k
8
Flash RAM 8 128 BYTES
BYTES 256 BYTES
ADC

Количество каналов ADC

10-битных

4

компаратор 1
в серийных программировании

да

до 20 мхц
Таймер (3) 16-битный таймер (1 )

8-битный таймер (2)

Таймер запуска генератора Да
Таймер включения Да
6
SPI NO
I2C NO
WatchDog Timer Да
Брок сброс (BOR) Да
Мастер Очистить сброс
Да 8
прерываний на PIN-булавка Да
Минимальная рабочая температура -40 C
Рабочая температура 125 C

 

PIC12F683 Распиновка и описание

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

Распиновка

На следующем рисунке показана распиновка PIC12F683.

  • Этот модуль PIC поставляется в трех упаковках с именами PDIP, DFN и DFN-S, и все три упаковки содержат 8 контактов на каждом модуле.
Описание контакта

В следующей таблице показано описание каждого контакта с указанием основных функций, связанных с каждым контактом.

6

ICSPCLK

5

T1CKI

OSC1

KLKIN

Pin # PIN-код PIN-код Описание
7 GP0

AN0

Cin +

ICSPDAT

ICSPDAT

ICSPDAT

I / O Канал 1

Аналоговый канал 0

компаратор

в серийном программировании

6 GP1

AN1

Cin-

Vref

ICSPCLK

ICSPCLK

I / O Канал 1

аналоговый PIN-код 1

Compalator

Внешнее напряжение

Входные серийные программирования часы

5 GP2

AN2

T0CKI

INT

Cout

I / O двунаправленный PIN-код

аналоговый PIN-код канала 2

Timer

прерываний

компаратор

4 GP3

MCLR

VPP

Ввод/вывод Bidire Национальный PIN-код

Master Clear Reset

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

8

3 GP4

AN3

T1G

OSC2

CLKOUT

I / O Держатель

Аналоговый PIN-канал 3

Таймер

Осциллятор Exputy

компаратор

2
2
I / O двунаправленный PIN

Timer

Осциллятор

RC Соединение осциллятора

1 VDD Контакт подачи напряжения
8 VSS Контакт заземления
3.PIC12F683 Основные функции

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

Таймеры

В устройство встроено три таймера, два из которых 8-разрядные, а один 16-разрядный. Все эти таймеры работают в обоих направлениях, то есть как таймер, так и счетчик. Режим таймера используется для создания задержки выполнения соответствующих функций и увеличения цикла команд.В то время как режим счетчика используется для подсчета количества интервалов в определенных функциях и увеличивает нарастающий и спадающий фронт вывода.

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

  • Таймер запуска генератора
  • Таймер включения

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

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

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

Спящий режим

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

Внутрисхемное последовательное программирование

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

Преобразователь АЦП

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

Модуль АЦП является 10-битным и имеет 4 аналоговых канала, что намного меньше, чем в других контроллерах, которые обычно содержат 7 или 12 аналоговых каналов.

Основной сброс сброса (MCLR)

Вывод MCLR вызывает внешний сброс для микросхемы, который запускается при удержании этого вывода в НИЗКОМ состоянии.Шумовой фильтр встроен в рабочий процесс MCLR, который обнаруживает и удаляет небольшие импульсы. Бит конфигурации MCLRE обычно используется для отключения входа MCLR.

4. Компилятор PIC и записывающее устройство
  • Компилятор PIC и записывающее устройство — это разные вещи. Первый используется для записи необходимой программы для контроллера, а последний используется для передачи и записи записанной программы на контроллер.
  • Компилятор
  • MPLAB C18 — это стандартный компилятор для PIC-контроллеров, представленный компанией Microchip.Этот компилятор легко доступен на сайте Microchip.
  • Стороннее программное обеспечение также может использоваться для компиляции программы, и вы должны проверить этот список 3 лучших компиляторов PIC C, где вы можете выбрать любой компилятор на основе ваших технических требований, однако MikroC Pro For PIC это основная замена стандартному PIC компилятор.
  • Важно отметить, что код, который мы пишем на компиляторе, генерирует шестнадцатеричный код, который затем перемещается в контроллер для выполнения необходимой операции.
  • PICKit3 — это стандартная программа записи, используемая для PIC-контроллеров. На рынке доступны и другие горелки, но PICKit3 в основном используется и предпочтительнее других горелок с точки зрения производительности и эффективности.
PIC12F683 Структура памяти и работа

Память, как определяет это слово, используется для хранения ряда инструкций в виде кода. Память в основном делится на два основных типа:

Память программ

Память данных

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

  • Память программ поставляется с объемом памяти около 3,5 КБ и содержит 13-разрядный счетчик программ, который может адресовать пространство памяти 8 КБ x 14, где вектор сброса находится на 0000h, а вектор прерывания остается на 0004h.

EEPROM также относится к памяти программ и поставляется с 256 байтами памяти и так или иначе похож на ROM, где он постоянно хранит информацию, но имеет одно исключение: i.е. инструкции EEPROM можно контролировать и изменять во время работы контроллера.

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

  • Регистры являются местами хранения данных в контроллере и могут содержать адрес хранения, инструкцию и любую последовательность битов диапазона данных или отдельные символы.

Память данных, реализованная в виде статического ОЗУ, разделена на два банка, которые дополнительно содержат два типа регистров, называемых

Регистры общего назначения

Регистры специального назначения

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

  • Регистры общего назначения резервируют 20h-7Fh в банке 0 и A0h-BFh в банке 1 и реализуются как статическое ОЗУ, в то время как оставшееся ОЗУ остается нереализованным и возвращает ноль при чтении.

W Регистр. Регистр W относится к GPR и доступен программе. Важно отметить, что этот регистр не участвует в каком-либо банке регистров, где требуемые значения должны быть записаны в него и перемещены в целевой регистр, прежде чем определять их для доступных выводов.

6. Блок-схема PIC12F683

До сих пор у вас было четкое представление об основных функциях, выводах, описании выводов и компиляторе, используемом для этого модуля PIC. В этом разделе мы обсудим блок-схему этого крошечного чипа.

На следующем рисунке показана блок-схема PIC12F683.

На этом модуле нет маркировки PORT, вместо этого контакты помечены как GP0-GP5, где VDD и VSS — контакты питания и заземления соответственно. Эта версия PIC подпадает под категорию патента Microchip на малое количество выводов.

7. PIC12F683 Проекты и приложения
  • Используется в промышленной автоматизации
  • Встроенные системы и системы управления
  • Интерфейс датчика и управление двигателем
  • Широко используется в студенческих проектах по автоматизации вождения
8. Почему выбирают микроконтроллеры PIC

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

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

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

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

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

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

ПОС 8 контактов 20 МГц 2K 4A/D — 12F683 — COM-00215

Основной навык:

Пайка

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

2 Пайка

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

Основной навык:

Программирование

Если плате нужен код или она каким-то образом взаимодействует, вам нужно знать, как ее программировать или взаимодействовать с ней.Навык программирования связан с общением и кодом.

3 Программирование

Уровень навыков: Компетентный — набор инструментов для программирования немного сложнее, и примеры могут быть не предоставлены вам явно. Вы должны будете иметь фундаментальные знания в области программирования и должны будете предоставить свой собственный код. Возможно, вам потребуется изменить существующие библиотеки или код для работы с вашим конкретным оборудованием.Сенсорные и аппаратные интерфейсы будут SPI или I2C.
Просмотреть все уровни навыков

Основной навык:

Электрическое прототипирование

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

3 Электрическое прототипирование

Уровень навыков: Компетентный — Чтобы узнать, как использовать компонент, вам потребуется обратиться к техническому описанию или схеме.Ваше знание таблицы данных потребует только основных функций, таких как требования к питанию, распиновка или тип связи. Кроме того, вам может понадобиться блок питания с напряжением более 12 В или силой тока более 1 А.
Просмотреть все уровни навыков

pic12f683 | Вещи Кэтмейси

Для всех, кому интересно, я привел в порядок файлы Eagle CAD для моей схемы маяка. Вы можете взять их здесь. Они не идеальны и, вероятно, не подходят для отправки в компанию по производству печатных плат, но они могут дать вам преимущество при создании собственной версии.

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

Опубликовано в Электроника | Метки: eagle cad, электроника, маяк, pic12f683 |

Я получил электронное письмо от друга, который собрал схему моего маяка, но светодиоды которого загорались в неправильном порядке. Это именно то, что случилось со мной, когда я построил его в первый раз. Но не беспокойтесь!

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

Читать далее →

Опубликовано в Электроника | Tagged C, charlieplex, Electronics, LED, маяк, PIC, pic12f683 |

Обновление : я пересмотрел схему для этого проекта и сделал правильную печатную плату, см. новую версию здесь.

Для всех, кому интересно (привет, Ричард), вот файлы моего проекта маяка.

Проект написан для PIC12f683 с использованием SourceBoost Technologies BoostC, который я использую в качестве набора инструментов в MPLAB от Microchip. BoostC соответствует стандарту ANSI, поэтому, если вы используете другой C, его не составит труда преобразовать. Также есть бесплатная версия BoostC, и я думаю, что моя программа уложится в ее ограничения.

Исходный код

C здесь (7kb). : Скомпилированный шестнадцатеричный двоичный файл здесь (1kb zip).

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

Комбинированная печать с высоким разрешением для верхней и нижней части контура переноса тонера. (4800x2222px, 163Кб)

Схема схемы. Обратите внимание, что на самом деле я добавил пару DIP-переключателей в линии GP0 и GP1 непосредственно перед резисторами R4 и R5, чтобы изолировать линии данных ICSP и линии синхронизации при программировании.(25кб)

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

Если у вас возникнут проблемы, напишите мне.

Опубликовано в Электроника | Метки: charlieplex, орел, электроника, маяк, микрочип, ПОС, pic12f683, схема |

Рабочий прототип. DIP-переключатели используются для изоляции контактов ICSP clk и dat при программировании.Только два светодиода на самом деле горят одновременно, но из-за времени экспозиции этого снимка кажется, что многие из них включены.

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

Схемы лгут! Особенно когда рисуешь их сам. Угадай, что. Контакт 5 PIC12f683 не является линией синхронизации ICSP… Контакт 6! Ах! Ну, есть урок, полученный на горьком опыте. В следующий раз я буду более усердным при составлении чертежей в Eagle.

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


Извините за коряво выглядящее видео, трудно заставить
камеру хорошо работать в условиях низкой освещенности.

Опубликовано в Электроника | Tagged charlieplex, электроника, светодиод, маяк, ПОС, pic12f683 |

ОБНОВЛЕНИЕ 7 августа 09 : Вы можете получить файлы Eagle CAD здесь.

ОБНОВЛЕНИЕ 2 октября 08 : Вы можете получить исходный код и принципиальную схему для этого проекта из этого сообщения в блоге.

Я работал над вариантом схемы, которую я разработал для своего маяка Lego. Это та же базовая схема, но на этот раз с 12, а не с 8 светодиодами, и перестроенная в круглый двусторонний диск диаметром 40 мм (1,5 дюйма).

Идея состоит в том, чтобы использовать его как простой «маяк», который при включении будет вращать луч вокруг 12 светодиодов.Не знаю, зачем я его строю, маяк мне особо не нужен… Может быть, он пригодится для модели железной дороги или чего-то подобного. Но мне вроде как нравится эта идея, и у меня в коробке с деталями было несколько аккуратных светодиодов OSRAM SIDELED, которые требовали какого-то использования.

Читать далее →

Опубликовано в Электроника | Tagged charlieplex, электроника, светодиод, маяк, ПОС, pic12f683 |

Нужен линейный робот на базе PIC

OKKKK! Спасибо всем

Через несколько дней я получу PIC16F84A для запуска своих PIC-проектов.

Но у меня есть PIC12F683, который я хочу использовать для создания крутого робота, следующего по линии. Я получил эту схему…

И этот код был написан для PIC12C671, но я использую новую флэш-память на базе PIC12F683. Могу ли я использовать тот же код для PIC12F683////код

list p=12c672
#include
count equ H’0025′ ;определяет переменную count и дает адрес памяти
resss equ H’ 0030′ ;определяет переменную resss и дает адрес памяти
org 0x00 ; определяет начало памяти как 00h
reset
goto start
; инициализирует настройки аналого-цифрового преобразователя и выбирает контакты ввода/вывода
start org 0x05 ; определяет, с чего начать код
bsf STATUS, RPO ;выбирает банк 1
movlw 0x04 ; перемещает 04 hex в рабочий регистр
movwf ADCON1 ; перемещает рабочий регистр в функциональный регистр ADCON1
movlw 0x03 ; перемещает 03h в рабочий регистр
movwf TRISIO ; перемещает рабочий регистр в TRISIO
bcf STATUS, RPO ;выбирает банк 0
movlw 0x89 ; перемещает 089h в рабочий регистр
movwf ADCON0 ; перемещает w в f

;подпрограмма, запускающая аналого-цифровой преобразователь и проверяющая результаты
loop movlw 0x10 ;помещает 10h в рабочий регистр
movwf count ;перемещает содержимое рабочего регистра в f-регистр
good decfsz count,1 ;уменьшает количество на единицу, пропускает следующую, если ноль
перейти к хорошему ;если не ноль, перейти к хорошему
bsf ADCON0,GO ;запускает A/D, установив бит GO в ADCON0
one btfsc ADCON0,GO ;проверяет, выполнено ли A/D, пропускает следующий код, если 0
перейти к единице; если не ноль, перейти к «единице»
movf ADRES,0 ;
movwf resss ;перемещает результаты в ress
btfss resss,7 ;проверяет, установлен ли бит 7 результатов, пропускает следующий, если установлен
goto Toff ;вызывает подпрограмму Toff
goto Ton ;вызывает подпрограмму Ton к высокому выходу
bcf GPIO,2 ;задает GPIO2 низкий вывод
goto loop ;переход к подпрограмме цикла
Ton bsf GPIO,2 ;задает GPIO2 высокий вывод
bcf GPIO,4 ;задает GPIO4 низкий вывод
goto loop ; снова начинает аналого-цифровое преобразование
end

[IMGDEAD]http://diy.

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

Ваш адрес email не будет опубликован.