Site Loader

Содержание

Мигалка на pic16f628a

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Осваиваем простейший микроконтроллер PIC.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам.

Содержание:

  • Светодиодная мигалка UFO round LED
  • roboforum.ru
  • Форум по микроконтроллерам: прошивка pic16f628a в pic16f676 — Форум по микроконтроллерам
  • 8-канальная 8-программная мигалка на PIC
  • Светодиодная мигалка UFO round LED
  • Оренбургский губернатор отказался от «мигалки» и люксового внедорожника
  • Семнадцатилетний латвиец с топором напал на прохожих в Швейцарии
  • Многофункциональное светодинамическое устройство для СТОП-сигнала на PIC16F628A
  • 8-канальная 8-программная светодиодная мигалка
  • Please turn JavaScript on and reload the page.

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Мигалка на 12 эффектов с 22-мя светодиодами на ATmega8

Светодиодная мигалка UFO round LED


Перейти к содержимому. Отправлено 08 Октябрь — Система для сообществ IP. RU — всё для вебмастера! Форум по микроконтроллерам: прошивка pic16fa в pic16f — Форум по микроконтроллерам Перейти к содержимому. Вход Новый пользователь? Регистрация Помощь. Страница 1 из 1 Вы не можете создать новую тему Ответить. Отправлено 08 Октябрь — Доброго дня всем. В наличии только pic16f и ExtraPic. Отправлено 08 Октябрь — vad44 08 Октябрь — писал: Доброго дня всем.

В нем 2 таймера, а в статье есть выдержка Задействованы все 3 таймера. Отправлено 08 Октябрь — Попробуйте сами что-нибудь сделать.

Для начала, как раз, мигалка — самое то. Подскажете как? В планах создание отладочной платы на м. Сообщение отредактировал vad 08 Октябрь — Быстрый ответ. Ваше сообщение должно пройти проверку модератора, прежде чем оно будет доступно остальным пользователям. Данное ограничение будет снято как только вы наберете 1 одобренных сообщений.

Удалить сообщение Удалить из просмотра Сообщение будет видно только модераторам Причина: Удалить из темы Сообщение будет полностью удалено. Внешний вид Стиль: IP. Board IP.


roboforum.ru

Хочу предложить вам схему светодиодной гирлянды на 22 светодиодах, схема собрана на микроконтроллере ATmega8, всего уместил 12 эффектов: мигание, переключение, бегущие точки, один за другим, на встречу и так далее, эффекты играют не по очереди а в перемешку. В микроконтроллере использованы все выводы, конечно можно было бы применить специальные микросхемы для увеличения количества подключаемых к микроконтроллеру светодиодов, но я не стал так извращаться, да и потом хотел, чтобы было минимум деталей. Схема как видите состоит всего из трех основных элементов: микроконтроллера Atmega8 , светодиодов 22 штуки и резисторов Ом — 22 шт. Светодиоды желательно применять сверхяркие с меньшим током потребления, цвета на ваше усмотрение.

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

Форум по микроконтроллерам: прошивка pic16f628a в pic16f676 — Форум по микроконтроллерам

Схем в инете полно, нужно только допилить до нормальной работы от бортовой сети собрать пару стабов, повесить диоды через транзисторы. У меня смд контроллер очень мелкий. Пока все собрано на соплях, планирую оформить на печатке. Хотелось бы использовать как стробы в габаритах. Со стробами езжу уже 3 года по москве. Применять надо с умом а ни гонять гаеров по мкаду. Ребята, неужели вам «права» так легко дались, что готовы ради понта ставить подобные «игрушки» на свои авто?

8-канальная 8-программная мигалка на PIC

Войти через uID. Материалы выбраны по тегам: Round , Светодиодная , мигалка. Войти через uID Старая форма входа. Забыл пароль Регистрация.

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим.

Светодиодная мигалка UFO round LED

От автора. Для тех, кто интересуется всякими моргалками, у меня есть простенькая схема светового автомата на PIC16FA. Я собрал его в виде сердечка, на каждый канал я навесил по 13 светодиодов. Моргает довольно красиво. В схеме 8 каналов и 8 программ, которые сменяются автоматически.

Оренбургский губернатор отказался от «мигалки» и люксового внедорожника

Новые книги Шпионские штучки: Новое и лучшее схем для радиолюбителей: Шпионские штучки и не только 2-е издание Arduino для изобретателей. Обучение электронике на 10 занимательных проектах Конструируем роботов. Руководство для начинающих Компьютер в лаборатории радиолюбителя Радиоконструктор 3 и 4 Шпионские штучки и защита от них. Сборник 19 книг Занимательная электроника и электротехника для начинающих и не только Arduino для начинающих: самый простой пошаговый самоучитель Радиоконструктор 1 Обновления Подавитель сотовой связи большой мощности.

Недавно занялся програмированием пиков. Решил начать с PIC16FA. Первой прогой была мигалка. Она заработала нормально.

Семнадцатилетний латвиец с топором напал на прохожих в Швейцарии

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

Многофункциональное светодинамическое устройство для СТОП-сигнала на PIC16F628A

Врио губернатора Оренбургской области Денис Паслер действительно отказался от проблескового маячка на служебном автомобиле. Напомним, что Паслер занял пост врио губернатора Оренбургской области на прошлой неделе. Спецпроект о маркетинговых проектах, советы ведущих маркетологов, рекламистов, PR, SMM и digital-специалистов. Эксклюзивные кадры визитов первых лиц страны, мировых и российских звезд, а также фотографии трудовых будней, рабочих встреч и выездных мероприятий первых лиц Татарстана.

Новости общества МСК Все новости.

Перейти к содержимому.

8-канальная 8-программная светодиодная мигалка

By Aravix , March 9, in МК для начинающих. Добрый день! Я достаточно опытный радиолюбитель, могу повторить схему любой сложности и починить практически все, что включаеся в розетку. Но вот написать даже самую простую программу для контроллера не умею. Учиться поздно мне больше 40 лет да и некогда.

Please turn JavaScript on and reload the page.

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


Осваиваем простейший микроконтроллер PIC. Часть 1 / Хабр

Выбор микроконтроллера обычно осуществляется под необходимые задачи. Для изучения хорошо подойдет популярный МК с минимальным набором периферии: PIC16F628A.

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

На первых страницах перечислены основные характеристики МК (русское описание).

Основные моменты, которые нам понадобятся:

  • микроконтроллер содержит внутренний генератор на 4 MHz, так же можно подключить внешний кварц частотой до 20 MHz
  • 16 ног микроконтроллера можно использовать как цифровые входы\выходы
  • есть 2 аналоговых компаратора
  • 3 таймера
  • CCP модуль
  • USART модуль
  • 128 байт энергонезависимой памяти EEPROM

Схема расположения выводов:

Vdd — питание.
Vss — земля.

Это минимум, необходимый для работы МК.

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

Компилятор

Как я уже писал в предыдущих статьях, самым простым и легким я посчитал компилятор JAL с IDE JALEdit.

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

Запускаем JALEdit. Открываем пример програмы для нашего микроконтроллера: 16f628a_blink.jal, дабы не портить исходник, сразу сохраняем ее в новый файл, к примеру, 16f628a_test.jal.

Весь код можно разделить на 4 блока:

  • выбор МК и его конфигурация
    include 16f628a -- подключение библиотеки нашего МК
    --
    -- This program assumes a 20 MHz resonator or crystal
    -- is connected to pins OSC1 and OSC2.
    pragma target clock 20_000_000 -- oscillator frequency
    -- configuration memory settings (fuses)
    pragma target OSC HS -- HS crystal or resonator
    pragma target WDT disabled -- no watchdog
    pragma target LVP disabled -- no Low Voltage Programming
    pragma target MCLR external -- reset externally
    --

  • объявление переменных, процедур, функций
    alias led is pin_A0
    pin_A0_direction = output

  • выполнение настроек и расчетов до основного цикла
    enable_digital_io() -- переключение всех входов\выходов на цифровой режим
  • бесконечный цикл основных действий МК
    forever loop
    led = on
    _usec_delay(250000)
    led = off
    _usec_delay(250000)
    end loop

Нажав F9 (или соответсвующую кнопку) программа скомпилируется в готовую прошивку, при этом будет видно сколько ресурсов МК будет задействовано:

Code :58/2048 Data:4/208 Hardware Stack: 0/8 Software Stack :80

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

Конфигурация

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

-- Symbolic Fuse definitions
-- -------------------------
--
-- addr 0x2007
--
pragma fuse_def OSC 0x13 { -- oscillator
RC_CLKOUT = 0x13 -- rc: clkout on ra6/osc2/clkout, rc on ra7/osc1/clkin
RC_NOCLKOUT = 0x12 -- rc: i/o on ra6/osc2/clkout, rc on ra7/osc1/clkin
INTOSC_CLKOUT = 0x11 -- intosc: clkout on ra6/osc2/clkout, i/o on ra7/osc1/clkin
INTOSC_NOCLKOUT = 0x10 -- intosc: i/o on ra6/osc2/clkout, i/o on ra7/osc1/clkin
EC_NOCLKOUT = 0x3 -- ec
HS = 0x2 -- hs
XT = 0x1 -- xt
LP = 0x0 -- lp
}
pragma fuse_def WDT 0x4 { -- watchdog timer
ENABLED = 0x4 -- on
DISABLED = 0x0 -- off
}
pragma fuse_def PWRTE 0x8 { -- power up timer
DISABLED = 0x8 -- disabled
ENABLED = 0x0 -- enabled
}
pragma fuse_def MCLR 0x20 { -- master clear enable
EXTERNAL = 0x20 -- enabled
INTERNAL = 0x0 -- disabled
}
pragma fuse_def BROWNOUT 0x40 { -- brown out detect
ENABLED = 0x40 -- enabled
DISABLED = 0x0 -- disabled
}
pragma fuse_def LVP 0x80 { -- low voltage program
ENABLED = 0x80 -- enabled
DISABLED = 0x0 -- disabled
}
pragma fuse_def CPD 0x100 { -- data ee read protect
DISABLED = 0x100 -- disabled
ENABLED = 0x0 -- enabled
}
pragma fuse_def CP 0x2000 { -- code protect
DISABLED = 0x2000 -- off
ENABLED = 0x0 -- on
}
  • OSC — конфигурация источника тактирования
    может принимать 8 различных значений, 4 из которых нам могут понадобиться
    1. INTOSC_NOCLKOUT — внутренний генератор (4M Hz)
    2. HS — внешний высокочастотный кварц (8-20 MHz)
    3. XT = внешний кварц (200 kHz — 4 MHz)
    4. LP — внешний низкочастотный кварц (до 200 kHz)
  • WDT — сторожевой таймер.
    Основная работа этого таймера в том, что бы перезагрузить микроконтроллер когда он дотикает до конца.
    Что бы перезагрузки не происходило, его нужно своевременно обнулять.
    Таким образом при сбое счетчик таймера перестанет обнуляться, что приведет к сбросу МК. Иногда бывает удобно, но в данный момент нам это не потребуется.
  • PWRTE — очередной таймер.
    При активации он будет сбрасывать МК до тех пор, пока питание не поднимется до нужного уровня.
  • BROWNOUT — сброс МК при падении питания ниже нормы.
  • MCLR — активация возможности внешнего сброса МК.
    При включении функции МК будет в постоянном резете до тех пор, пока на ноге MCLR (pin 4) не будет положительного напряжения.
    Для сброса МК достаточно установить кнопку, замыкающую pin 4 на землю.
  • LVP — активация возможности программирования при низком напряжении.
    При активации один цифровой вход переключится в режим LVP (pin 10). Если подать 5В на эту ногу, то МК перейдет в режим программирования. Для нормальной работы МК требуется держать на этой ноге 0В (подсоединить к земле).
    Мы будем использовать программатор, использующий повышенное напряжение, потому LVP активировать не требуется.
  • CPD — защита EEPROM от считывания программатором.
  • CP — защита FLASH (прошивки) от считывания программатором.

Изменим конфигурацию под себя:

pragma target clock 4_000_000 -- указываем рабочую частоту, необходимо для некоторых функций расчета времени
-- конфигурация микроконтроллера
pragma target OSC INTOSC_NOCLKOUT -- используем внутренний генератор
pragma target WDT disabled -- сторожевой таймер отключен
pragma target PWRTE disabled -- таймер питания отключен
pragma target MCLR external -- внешний сброс активен
pragma target BROWNOUT disabled -- сбос при падении питания отключен
pragma target LVP disabled -- программирование низким напряжением отключено
pragma target CPD disabled -- защита EEPROM отключена
pragma target CP disabled -- защита кода отключена

Моргаем светодиодом по нажатию кнопки

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

Цифровой выход

Выберем еще неиспользуемую ногу МК. Возьмем, к примеру, RB5(pin 11). Данная нога не имеет дополнительных функций, потому она нам более нигде не понадобится.
В режиме цифрового выхода МК может притягивать к ноге либо питание, либо землю.
Подключать нагрузку можно как к плюсу, так и к минусу. Разница будет лишь в том, когда и в какую сторону потечет ток.


В первом случае ток потечет от МК при установке единицы, а во втором — к МК при установке нуля.

Дабы светодиод зажигался от логической единицы, остановимся на первом варианте.

Для ограничения тока через ногу (максимально допустимо 25 мА на цифровой вход или 200 мА на все порты) установлен токоограничительный резистор. По простейшей формуле высчитываем минимальное значение в 125 Ом. Но так как предел нам не нужен, возьмем резистор в 500 Ом (а точнее ближайший подходящий).

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

Цифровой вход

Возьмем вторую неиспользуемую нигде ногу — RB4 (pin 10, указанная в распиновке функция PGM отностися к LVP, который мы отключили).
В режиме цифрового входа микроконтроллер может считывать два состояния: наличие или отсутствие напряжения. Значит нам необходимо подключить кнопку так, что бы в одном состоянии на ногу шел плюс, а во втором состоянии — к ноге подключалась земля.

В данном варианте резистор используется в качестве подтяжки (Pull-up). Обычно для подтяжки применяют резистор номиналом 10 кОм.

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

Можно подключать не только кнопку, главное помнить о ограничении тока через МК.

Кнопка сброса

Пока не забыли, что мы активировали внешний сброс, добавим аналогичную кнопку на ногу MCLR (pin 4).

После нажатия такой кнопки МК начнет выполнение программы с нуля.

Прошивка

Присваиваем нашему светодиоду и кнопке переменные:

enable_digital_io() -- переключение всех входов\выходов на цифровой режим
--
alias led is pin_B5 -- светодиод подключен к RB5
pin_B5_direction = output -- настраиваем RB5 как цифровой выход
--
alias button is pin_B4 -- кнопка подключена к RB4
pin_B4_direction = input -- настраиваем RB4 как вход
led = off -- выключаем светодиод

Теперь присваивая переменной led значения 1 или 0 (on или off, true или false, другие алиасы..) мы будем подтягивать к нужной ноге МК или плюс, или минус, тем самым зажигая и гася светодиод, а при чтении переменной button мы будем получать 1 если кнопка не нажата и 0 если кнопка нажата.

Теперь напишем необходимые нам действия в бесконечном цикле (эти действия будут выполняться постоянно. При отсутствии бесконечного цикла МК зависнет):

forever loop
led = off -- выключаем светодиод
_usec_delay(500000) -- ждем 0,5 сек
if Button == 0 then -- если кнопка нажата, выполняем действия
led = on -- зажигаем светодиод
_usec_delay(500000) -- ждем 0,5 сек
end if
end loop

Задержка считается просто:
частота генератора у нас 4MHz. Рабочая частота в 4 раза меньше: 1 MHz. Или 1 такт = 1 мкс. 500.000 мкс = 0,5 с.

Компилируем прошивку:

Errors :0 Warnings :0
Code :60/2048 Data:4/208 Hardware Stack: 0/8 Software Stack :80

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

Программатор

Все таже схема:

Смотрим на распиновку:

  • PGD — pin 13
  • PGC — pin 12
  • MCLR(Vpp) — pin 4
  • Vdd — pin 14
  • Vss — pin 5

Паяем…


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

В качестве питания 5В в данном случае использовался хвост от старой PS/2 мыши, вставленный в разъем для мыши.

Подключаем к компьютеру.

Качаем и запускаем WinPic800.

Идем в Settings->Hardware, выбираем JDM и номер порта, на котором висит программатор

Нажимаем Hardware Test, затем Detect Device

Открываем нашу прошивку pic628a_test. hex

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

Program All, затем Verify All

Если ошибок не возникло, продолжаем паять.

Результат

Финальная схема:

От программатора нам мешает только высокое напряжение (12в) на MCLR. Дабы не отпаивать весь программатор, можно отпаять только один провод… Или просто не подключать программатор к COM порту. Остальные провода нам мешать не будут (а подключенные питание и земля только упростят пайку).

Кнопку на MCLR паять можно по желанию, но подтяжка обязательна.

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


Результат работы можно увидеть на видео.

Итак, у нас получилось самое простое устройство на микроконтроллере: мигалка светодиодом.

Теперь нам необходимо научиться пользоваться всей оставшейся периферией, но об этом в следущей статье.

Microchip PIC16F628A-I/P, 8-битный PIC-микроконтроллер, PIC16F, 20 МГц, 3,5 кбайт Flash, 18-контактный PDIP

Посмотреть все микроконтроллеры


Доступно для заказа.

Добавить в корзину

Этот продукт в настоящее время недоступен для заказа.

К сожалению, этого товара нет на складе, и в настоящее время он недоступен для заказа.

tickДобавлено

Посмотреть корзину

Цена (без НДС) Каждая штука (в упаковке по 5 шт.)

5,61 $

(Exc. GST)

$ 6,17

(INC. GST)

. 25 — 120
Единицы на пачку*
5-20
5-20
5-20
5–20
5–2029
$5.578 $27.89
125 + $4.592 $22.96
*price indicative

Packaging Options:

checkmarkStandard Pack

empty-checkmarkProduction Pack

RS Складской номер:
121-4233
Произв. Part No.:
PIC16F628A-I/P
Manufacturer:
Microchip

Technical data sheets

  • docPdfDatasheet
  • docPdfESD Control Selection Guide V1
  • docZipSchematic Symbol & PCB Footprint

Legislation и соответствие требованиям


Сведения о продукте

Микроконтроллеры PIC16F627A/628A/648A


Микроконтроллеры серии PIC16F от Microchip представляют собой 8-разрядные микроконтроллеры, включающие архитектуру PIC® от Microchip в различные варианты выводов и корпусов, от компактных 14-контактных устройств до -богатые 64-контактные устройства. Устройства с архитектурой Baseline, Mid-Range или Enhanced Mid-Range доступны с множеством различных комбинаций периферийных устройств, что дает разработчикам гибкость и выбор для их приложений.

Семейство микроконтроллеров PIC16F627A/628A/648A основано на ядре Microchip Mid-Range с 8-уровневым аппаратным стеком и 35 инструкциями. Эти микроконтроллеры обеспечивают до 5 MIPS, до 3,5 Кбайт памяти программ, 224 байта RAM и Data EEPROM до 128 байт. На борту находится осциллятор, откалиброванный на заводе с точностью ±1%.


Особенности микроконтроллера


20 МГц Макс. Скорость ЦП
35 Инструкции
8-уровневый аппаратный стек
16 контактов ввода-вывода
Сброс при включении питания (POR)
Таймер включения питания (PWRT)
Таймер запуска генератора (OST)
Сброс пониженного напряжения (BOR)
Сторожевой таймер (WDT)
Программирование низкого напряжения (LVP)
Внутрисхемное последовательное программирование (ICSP)


Периферий


Два сравнения
Capture/Compare/PWM Модуль
Два 8-битных таймера
Один 16-битный таймер


9 20160
ATTRIBUT0029 PIC16F
Package Type PDIP
Mounting Type Through Hole
Pin Count 18
Device Core PIC
Data Bus Width 8bit
Объем памяти программы 3,5 кБ
Максимальная частота 20 МГц
Объем ОЗУ
USB Channels 0
Number of PWM Units 0
Typical Operating Supply Voltage 3 → 5. 5 V
Program Memory Type Flash
Instruction Set Architecture Harvard, RISC
Размеры 0,92 x 0,28 x 0,19 дюйма
Максимальная рабочая температура +85 °C
Width 0.28in
Height 4.83mm
Length 23. 37mm
Minimum Operating Temperature -40 °C

How to create program to flash PIC-микроконтроллеры?

спросил

Изменено 11 лет, 1 месяц назад

Просмотрено 4к раз

Я работаю над проектом, в котором мне нужно написать графический интерфейс с помощью С# для прошивки PIC 18f4550.

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

Нужно ли мне создавать драйвер (ПК) для связи между PIC и ПК? На фото мне нужно изменить загрузчик, я думаю.

Спасибо за помощь.. Большое спасибо..

  • микроконтроллер
  • рис.

6

Это зависит от того, какой уровень вы подразумеваете под «прошивкой» PIC-контроллера.

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

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

alexxlab

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

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