Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей

Осваиваем простейший микроконтроллер 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.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей
Так как у нас его пока нет, разберемся с конфигурацией и перепишем программу на использование внутреннего генератора.

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

В разных микрокотнролерах существуют различные наборы конфигурационных битов. Узнать о назначении каждого бита можно в даташите (стр. 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 — сторожевой таймер.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей

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

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

    Таким образом при сбое счетчик таймера перестанет обнуляться, что приведет к сбросу МК. Иногда бывает удобно, но в данный момент нам это не потребуется.
  • 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 -- защита кода отключена

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Пока не забыли, что мы активировали внешний сброс, добавим аналогичную кнопку на ногу MCLR (pin 4).Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей

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

Прошивка

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

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

Паяем…

Некачественная пайка — одна из основных проблем неработоспособности устройства.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей

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

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

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

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

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

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

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

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

Program All, затем Verify All

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

Результат

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

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

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

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


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

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

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

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА PIC

МИКРОКОНТРОЛЛЕРЫ PIC

     Ещё несколько лет назад, для сборки какого-либо цифрового устройства требовался десяток, а то и два логических микросхем типа К155, К561 и другие. Помимо трудностей сборки и настройки, такие устройства обладали слишком большими габаритами и энергопотреблением.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей Но технологии не стоят на месте, и вот, им на смену пришли микроконтроллеры PIC. Аббревиатура PIC, расшифровывается как Peripheral Interface Controller. Буквальный перевод: периферийный интерфейсный контроллер. Выпускает эти контроллеры американская компания Microchip Technology. Существуют 8, 16 и 32-битные микроконтроллеры под маркой PIC. Они представляют собой микpоконтpоллеpы с RISC аpхитектуpой, встpоенным ЭППЗУ пpогpаммы и ОЗУ данных. Скачать руководство по микроконтроллерам PIC можно здесь. А здесь имеется хорошая книга «Радиолюбительские схемы на PIC контроллерах» — описание десятков схем и конструкций: часы, таймеры, программаторы и многое другое.

     Работа 8-ми битных микроконтроллеров основывается на 12-ти разрядной архитектуре слова программ и предоставлены, как наиболее дешевое решение. Среднее семейство представлено микроконтроллерами серий PIC12 и PIC16, и имеет ширину слова программ 14 бит. Микроконтроллеры работают в диапазоне питающих напряжений от 2.0 до 5.5В, имеют встроенную систему прерываний, аппаратный стек, энергонезависимую память данных EEPROM. Набор периферии: USB, SPI, I2С, USART, LCD, АЦП и другие.

     В новых микроконтроллерах применена улучшенная архитектура 8-ми битных PIC контроллеров PIC12 и PIC16. При этом увеличен объём памяти программ и данных, улучшен аппаратный стек, имеются дополнительные источники сброса, расширена периферия для создания сенсорных пользовательских интерфейсов, уменьшено время входа в прерывание и размер кода, увеличена производительность на 50 %.

     Семейство 16-ти разрядных микроконтроллеров представлены в модификациях PIC24F — производительность ядра [email protected]МГц и PIC24H — [email protected]МГц. Отличаются они технологией изготовления FLASH программной памяти.

     Особенности микроконтроллеров PIC24F и PIC24H:

 Выполнение команды за 2 такта генератора
 Время отклика на прерывание — 5 командных тактов
 Доступ к памяти за 1 командный такт
 Аппаратный умножитель 
 Аппаратный делитель 32/16 и 16/16 чисел
 Питающие напряжения 2.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей 0…3.6В, один источник питания.
 Внутрисхемное и само- программирование
 Встроенный генератор с PLL
 Расширенная периферия (до 3-х SPI, до 3-х I2C, до 4-х UART с поддержкой IrDA, LIN, CAN и расширенный ECAN, USB OTG)
 Модуль измерения времени заряда, для управление ёмкостными сенсорами
 Ток портов ввода/вывода около мА
 До девяти 16-битных таймеров
 До восьми модулей захвата
 Энергосберегающие режимы
 До двух АЦП с 32 каналами и с конфигурируемой разрядностью
 До восьми 16-битных модулей сравнения / генерации ШИМ

     Самыми продвинутыми контроллерами являются 32-разрядные PIC32. Их особенности: ядро MIPS32 M4K, частота такта 80 МГц, большинство команд выполняются за 1 такт генератора, производительность 1.53 Dhrystone MIPS/МГц, порты ввода/вывода относятся к основному частотному диапазону, дополнительный частотный диапазон для периферии из основного посредством программно настраиваемого делителя, до 32 кБ SRAM и 512 кБ Flash с кэшем предвыборки, совместимость по выводам и отладочным средствам с 16-битными контроллерами, аппаратный умножитель и делитель с независимым конвейером, оптимизированным по скорости выполнения, набор расширенных инструкций MIPS16e, независимый от основного ядра контроллер USB.

     Схемы и устройства на PIC контроллерах можно питать от сети 220 вольт без понижающего трансформатора. Для этого достаточно спаять простую схему бестрансформаторного источника 5В, которая обеспечивает ток нагрузки около 0.1А. Для уменьшения влияния наводок и помех следует неиспользуемые выводы микроконтроллера подключать к шине земли. При разводке печатной платы обязательно установите фильтрующий конденсатор, емкостью 0,1 мкф, между выводами питания. Цепи генератора тактовых импульсов и сброса микроконтроллера делайте покороче. По периметру платы стоит провести шину земли.

     В настоящее время семейство микроконтроллеров PIC представлено такими моделями:

ТИП Память,байт ОЗУ,байт Частота,МГц

PIC12C508 512×12 25 4
PIC12C508A 512×12 25 4
PIC12C509 1024×12 41 4
PIC12C509A 1024×12 41 4
PIC12C671 1024×14 127 10
PIC12C672 2048×14 127 10
PIC12CE518 512×12 25 4
PIC12CE519 1024×12 41 4
PIC12CE673 1024×14 127 10
PIC12CE674 1024×14 128 10
PIC12CR509A 1024×12 41 4
PIC12F629 1024 64 20
PIC12F675 1024 64 20
PIC14000 4096×14 192 20
PIC16C432 2048×12 128 20
PIC16C433 2048×12 128 10
PIC16C505 1024×12 72 20
PIC16C52 384×12 25 4
PIC16C54 512×12 25 20
PIC16C54A 512×12 25 20
PIC16C54C 512×12 25 20
PIC16C55 512×12 24 20
PIC16C554 512×14 80 20
PIC16C558 2048×14 128 20
PIC16C55A 512×12 24 20
PIC16C56 1024×12 25 20
PIC16C56A 1024×12 25 20
PIC16C57 2048×12 72 20
PIC16C57C 2048×12 72 20
PIC16C58A 2048×14 73 20
PIC16C58B 2048×12 73 20
PIC16C61 1024×14 36 20
PIC16C620 512×14 80 20
PIC16C620A 512×14 96 20
PIC16C621 1024×14 80 20
PIC16C621A 1024×14 80 20
PIC16C622 2048×14 128 20
PIC16C622A 2048×14 128 20
PIC16C62A 2048×14 128 20
PIC16C62B 2048×14 128 20
PIC16C63 4096×14 192 20
PIC16C63A 4096×14 192 20
PIC16C642 4096×14 176 20
PIC16C64A 2048×14 128 20
PIC16C65A 4096×14 192 20
PIC16C65B 4096×14 192 20
PIC16C66 8192×14 368 20
PIC16C662 4096×14 176 20
PIC16C67 8192×14 368 20
PIC16C71 1024×14 36 20
PIC16C710 512×14 36 20
PIC16C711 1024×14 68 20
PIC16C712 1024×14 128 20
PIC16C715 2048×14 128 20
PIC16C716 2048×14 128 20
PIC16c717 2048×14 256 20
PIC16C72 2048×14 128 20
PIC16C72A 2048×14 128 20
PIC16C73 4096×14 192 20
PIC16C73A 4096×14 192 20
PIC16C73B 4096×14 192 20
PIC16C74 4096×14 192 20
PIC16C745 8192×14 256 24
PIC16C74A 4096×14 192 20
PIC16C74B 4096×14 192 20
PIC16C76 8192×14 368 20
PIC16C765 8192×14 256 24
PIC16C77 8192×14 368 20
PIC16C770 2048×14 256 20
PIC16C771 4096×14 256 20
PIC16C773 2048×14 256 20
PIC16C774 2048×14 256 20
PIC16C781 1024×14 128 20
PIC16C782 2048×14 128 20
PIC16C923 4096×14 176 8
PIC16C924 4096×14 176 8
PIC16C925 4096×14 196 20
PIC16C926 4096×14 336 20
PIC16CE623 512×14 96 20
PIC16CE624 1024×14 96 20
PIC16CE625 2048×14 128 20
PIC16CR54A 512×12 25 20
PIC16CR54b 512×12 25 20
PIC16CR54C 512×12 25 20
PIC16CR56A 2048×14 25 20
PIC16CR57A 4096×14 72 20
PIC16CR57b 2048×12 72 20
PIC16CR57C 2048×12 72 20
PIC16CR58A 2048×12 73 20
PIC16CR58B 2048×12 73 20
PIC16CR62 2048×14 128 20
PIC16CR63 4096×14 192 20
PIC16CR64 4096×14 192 20
PIC16CR65 4096×14 192 20
PIC16CR72 2048×14 128 20
PIC16CR83 512×14 36 10
PIC16CR84 1024×14 68 10
PIC16F627 1024×14 224 20
PIC16F627A 1024 224 20
PIC16F628 2048×14 224 20
PIC16F628A 2048 224 20
PIC16F630 1024 64 20
PIC16F648A 4096 256 20
PIC16F676 1024 64 20
PIC16F72 2048 128 20
PIC16F73 4096×14 192 20
PIC16F74 4096×14 192 20
PIC16F76 8192×14 368 20
PIC16F77 8192×14 368 20
PIC16F818 1024 128 20
PIC16F819 2048 256 20
PIC16F83 512×14 36 10
PIC16F84 1024×14 68 10
PIC16F84A 1024×14 68 10
PIC16F85 1024×14 128 20
PIC16F86 2048×14 128 20
PIC16F87 4096×14 192 20
PIC16F870 2048×14 128 20
PIC16F871 2048×14 128 20
PIC16F872 2048×14 128 20
PIC16F873 4096×14 192 20
PIC16F873A 4096×14 192 20
PIC16F874 4096×14 192 20
PIC16F874A 4096×14 192 20
PIC16F876 8192×14 368 20
PIC16F876A 8192×14 368 20
PIC16F877 8192×14 368 20
PIC16F877A 8192×14 368 20
PIC16F88 4096×14 192 20
PIC16F89 4096×14 192 20
PIC16HV540 512×12 25 20
PIC16LC74B 4096×14 192 16
PIC17C42 2048×16 232 33
PIC17C42A 2048×16 232 33
PIC17C43 4096×16 454 33
PIC17C44 8092×16 454 33
PIC17C752 8192×16 454 33
PIC17C756 16384×16 902 33
PIC17C756a 16384×16 902 33
PIC17C762 8192×16 678 33
PIC17C766 16384×16 902 33
PIC17CR42A 2048×16 232 33
PIC17CR43 2048×16 232 33
PIC17LC752 8192×16 678 16
PIC17LC756A 16384×16 902 16
PIC18C242 8192×16 512 40
PIC18C252 16384×16 1536 40
PIC18C442 8192×16 512 40
PIC18C452 16384×16 1536 40
PIC18C658 16384×16 1536 40
PIC18C801 — 1536 25
PIC18C858 16384×16 1536 40
PIC18F010 1024×16 256 40
PIC18F012 1024×16 256 40
PIC18F020 2048×16 256 40
PIC18F022 2048×16 256 40
PIC18F1220 2048 256 40
PIC18F1230 2048×16 256 40
PIC18F1320 4096 256 40
PIC18F1330 4096×16 256 40
PIC18F2220 2048 512 40
PIC18F232 8192×12 512 40
PIC18F2320 4096 512 40
PIC18F2331 4096×16 512 40
PIC18F242 8192×16 768 40
PIC18F2431 8192×16 768 40
PIC18F2450 8192×16 1024 40
PIC18F248 8192×16 768 40
PIC18F252 16384×16 1536 40
PIC18F2550 16384×16 1024 40
PIC18F258 16384×16 1536 40
PIC18F4220 2048 512 40
PIC18F432 8192×12 512 40
PIC18F4320 4096 512 40
PIC18F4331 4096×16 512 40
PIC18F442 8192×16 768 40
PIC18F4431 8192×16 768 40
PIC18F4450 8192×16 1024 40
PIC18F448 8192×16 768 40
PIC18F452 16384×16 1536 40
PIC18F4550 16384×16 1024 40
PIC18F458 16384×16 1536 40
PIC18F6520 16384×16 2048 40
PIC18F6585 24576 3072 40
PIC18F6620 32768×16 3840 40
PIC18F6680 32768 3072 40
PIC18F6720 65536×16 3840 40
PIC18F8520 16384×16 2048 40
PIC18F8585 24576 3072 40
PIC18F8620 32768×16 3840 40
PIC18F8680 32768 3072 40
PIC18F8720 65536×16 3840 40

     Для программирования контроллеров нужны компьютеp, пpогpамматоp, подключаемый к паpаллельному поpту компьютеpа, сама микpосхема контроллер (PIC16F84), макетная плата, 8 светодиодов, источник +5 В и панелька для микpосхемы.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей Простую и популярную программу PonyProg2000 можно скачать в разделе софт.

     ФОРУМ по микрорконтроллерам

Обзор PIC-контроллеров

Обзор PIC-контроллеров


Обзор
PIC-контроллеров

Давным-давно, в 1965,
компания General Instruments (GI) основала Отделение Микроэлектроники (Microelectronics
Division), начавшей с разработки первых жизнеспособных EPROM и EEPROM. Затем GI
Microelectronics Division занималось разработкой широкой гаммы цифровых и
аналоговых устройств — семейства AY3-xxxx AY5-xxxx. (Да-да, это именно то, о чем
Вы подумали! Именно звуковые процессоры от GI — AY3-8910 и AY3-8912 стояли
практически во всех Синклерах, Ямахах, всех MSX-компьютерах в 70/80-е годы)

В области микропроцессоров
GI в начале 70-х появился CP1600. Это был настоящий 16-разрядный процессор, но с
не очень хорошей работой с внешними устройствами. Поэтому, для тех применений,
где нужен хороший ввод-вывод GI разработала Peripheral Interface Controller
(сокращенно PIC), в середине 1975г. Он был сконструирован для очень
быстрого (в понятиях 75-го года!) ввода-вывода и небольшого объема вычислений,
поэтому его система команд была весьма небольшой. В общем, Вы можете увидеть,
что из этого вышло — архитектура нижнего ряда сегодняшних чипов PIC16C5x — это
архитектура, разработанная в 1975 году. Представленный в 1975г PIC-контроллер
производился по NMOS технологии и был доступен только в масочном варианте, но
это была поистине великолепная микросхема! В начале 80-х GI переживала трудные
дни в своем основном бизнесе, и произвела реструктуризацию, сконцентрировавшись
на разработке силовых полупроводников (в настоящее время компания General
Instruments весьма успешно работает на этом рынке под названием General
Semiconductors).Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей GI Microelectronics Division было переименовано в GI
Microelectronics Inc и существовало одно время как отдельный филиал, а затем
было продано вместе с заводом в г. Чандлер, Аризона (Chandler, Arizona).

Это была длительная работа
представителей рискового капитала, они избавились от производства большинства
микросхем линеек AY3, AY5 и других, и сконцентрировались на разработках и
производстве PIC и различных видов EPROM/EEPROM с параллельным и
последовательным доступом. В итоге все это было названо компания Arizona
Microchip Technology Inc
., или просто Microchip, которая была четко
спозиционирована на рынок встраиваемых систем управления (Embedded Control).

Сейчас Microchip одна из
лидирующих компаний в своей области. Так если в 1990 году по объему продаж он
был на 20-м месте,  в 1993-м на 8-м, то в 1997 году, несмотря на сильнейшую
конкуренцию со стороны Атмела (ее новые микроконтроллеры типа AVR), Микрочип
выходит на 2-е место, пропустив впереди себя только Моторолу (Атмел пока далеко
позади):













1993


1994


1995


1996


1997


1


Motorola


Motorola


Motorola


Motorola


Motorola


2



Mitsubishi



Mitsubishi



Mitsubishi



Mitsubishi



Microchip


3


NEC


NEC


NEC


ST


NEC


4


Hitachi


Philips


Philips


NEC



Mitsubishi


5


Philips


Intel



Microchip



Microchip


Philips


6


Intel



Microchip


ST


Philips


Toshiba


7


ST


Zilog


Intel


Zilog


Hitachi


8



Microchip


ST


Hitachi


Hitachi


Fujitsu


9



Matsushita



Matsushita


Toshiba


Fujitsu


ST

Чем же так хороши, и чем
же так привлекли внимание разработчиков микроконтроллеры типа PIC? Напомним, что
аббревиатура PIC означает Peripheral Interface Controller.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей Очень часто возникает
необходимость в небольшом дешевом микропроцессоре, с несложными математическими
вычислениями, способном осуществлять ввод-вывод сигналов с большой скоростью,
обладающий низким потреблением и развитой периферией. Это  питающееся от
телефонной линии оборудование (АОНы, микро-АТС), портативные приборы с
батарейным питанием, автомобильные сигнализации, АЦП, подключаемые к
последовательному порту компьютера и от него же и питающиеся, медицинские
приборы и т.д.
PIC-контроллеры выпускаются как в больших, так и малых
корпусах и имеют небольшую стоимость. Как вам понравится настоящий (!)
микропроцессор (12Сххх) в 8-ногом ДИП корпусе, со встроенным тактовым
генератором, цепочкой сброса и 6-ю ножками ввода вывода? Или
PIC16C505
контролер в 14-выводном корпусе со встроенным генератором всего за 49 центов!?
(В США).

Большинство полезных
качеств PIC-контроллеров сосредоточено в 3-х словах: CMOS, RISC, Harvard.
Современная CMOS технология позволяет выпускать микроконтроллеры, работающие на
частотах от 0 Гц до 40 Мгц. Потребляемый ток, который зависит от частоты,
составляет единицы мА для частот 1-10 Мгц, и десяток мкА для более низких
частот, а перевод в спящий режим (SLEEP) доводит потребление до единиц мкА. При
этом благодаря
RISC системе команд и Гарвардской архитектуре быстродействие даже на низких
частотах остается достаточно большим — требуется всего 4 такта на одну команду
(8 для команд переходов). Сравните с широко распространенным семейством 51-х
однокристалок, у которых машинный цикл составляет 12 тактов, а команды могут
иметь и не один цикл. (Компания
Atmel
в своем новом семействе
AVR-контроллеров,
которые тоже
RISC,
довела машинный цикл до 1 такта). RISC архитектура предполагает, что все команды
имеют одну длину, в то время как при традиционной архитектуре команды имеют
переменную длину.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей Это приводит не только к хорошему быстродействию, но и к
экономии программной памяти. Три семейства PIC контроллеров имеют 12, 14 и 16
разрядные команды, и соответственно 33, 35 и 58 инструкций. Традиционные
микропроцессоры (CISC) имеют существенно большее число команд, их которых чаще
всего используется меньше половины, а некоторые вообще редко используются. В
RISC-процессорах реализованы наиболее часто необходимые команды, а более сложные
реализуются их комбинациями. Учитывая статистическое распределение частоты
применения различных команд, программа в кодах RISC процессора получается меньше
по объему и быстрее работает.

Я не удержусь, и приведу
некоторые сравнительные данные, без которых, по-моему, не обходится ни одна
обзорная статья о PIC-контроллерах. Это тест, проведенный фирмой Микрочип
довольно давно. Сравнивались участки функционально одинаковых программ для
разных контроллеров — упакованное BCD-преобразование, проверка бита и ветвление,
цикл по счетчику, побитное выталкивание бита (преобразование параллельного кода
в последовательный), программная выдержка времени. Сравнивался PIC16C5x @ 20MHz
и:


Motorola MC68HC04 @ 11mhz,


Motorola MC68HC05 @ 4.2MHz,


Intel 8048 @
11mhz,


Zilog Z86Cxx  @
12MHz,


National COP800 @20mhz.


Результаты сравнительного анализа однокристальных микро ЭВМ и
PIC контроллера приведены ниже.






PIC16Cx


COP800


MC86HC04


MC68HC05


Z86Cxx


8048


Относительный размер кодов



1.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей 00


1.29


1.82


2.24


1.51


1.58


Скорость выполнения


1.00


0.11


0.02


0.14


0.21


0.11



Можно конечно оспаривать
результаты этих тестов (что неоднократно происходит в ru.embedded и su.hardw.*),
тем более что в нем не представлены более новые микроконтроллеры, тем не менее,
автор неоднократно убеждался, что в небольшой памяти
PIC-кконтроллеров
можно разместить достаточно много, гораздо больше, чем в соответствующей памяти
для 8051 или
Z80,
к тому же при хорошем знании команд программы весьма хорошо оптимизируются.

Кроме экономного
использования программной памяти, высокого быстродействия, низкого потребления и
широкого диапазона питания (от 2 до 6В. для некоторых устройств), еще одним
бесспорным достоинством PIC-контроллеров, является развитость встроенных
аппаратных средств.

Начнем с тактового
генератора. В большинстве контроллеров применен универсальный генератор, режим
которого программируется на работы с тремя типами внешних кварцев
(высокочастотный, среднечастотный и низкочастотный) или с внешней
RC-цепочкой,
для тех применений, где стабильность тактовой частоты не критична. Некоторые
типы контроллеров имеют режим встроенного генератора, имеется в виду, что
внешних цепей не требуется вовсе, а также не тратятся драгоценные выводы
корпуса.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей Кроме тактового, во всех контроллерах имеется внутренний
RC-генератор, использующийся для работы «Сторожевого Пса» (Watch
Dog), или просто «собаки». Этот генератор, если он включен при
программировании, тактирует специальный счетчик, который должен периодически
сбрасываться программой через определенные промежутки времени, не большие
заданного. Если в результате зависания или некорректности работы программы
(по-простому — глюков) счетчик не будет вовремя сброшен, произойдет перезапуск
контроллера. Особым случаем применения «собаки» является дежурный режим.
Контроллер может находиться в состоянии спячки (SLEEP)
с крайне низким потреблением, при этом с периодом срабатывания «собаки» выходить
из спячки, просматривать входные сигналы и, если ничего не произошло — спать
дальше. Если же произошли определенные изменения состояния входов — перейти к
программе обработки, выполнив которую можно снова заснуть. Конечно, если для
обработки ненужно высокое быстродействие, то можно просто использовать низкую
тактовую частоту. Но когда нужно микро потребление энергии в среднем, и большое
быстродействие на некоторое время — лучший выход это именно использование
спящего режима с периодическим пробуждением без или совместно с прерыванием по
изменению (см. ниже). Сигнал «сброс» (MCLR)
может формироваться внешними или внутренними цепями,  что упрощает и удешевляет
схемотехнику.

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

Связь с внешним миром
осуществляется при помощи портов ввода-вывода, которые в
PIC-контроллерах
имеют свои особенности. К примеру — в 51-х контроллерах используются выходы с
открытым стоком, для использования которых на ввод нужно записать «1». Это
иногда дает некоторое упрощение, но не позволяет получить
Z-состояние
выходи и большое входное сопротивление входа.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей В
PIC-контроллерах каждому порту соответствует два регистра
— данных и направления (TRIS). При этом в зависимости от содержания регистра
направления каждый вывод может быть индивидуально запрограммирован или на ввод
или на вывод. На всякий случай, во многих контроллерах имеется один вывод с
открытым стоком, который требует подключения нагрузки при работе на выход. Все
входы контроллеров защищены от перенапряжения диодами на 0 и
VCC
и имеют высокую
нагрузочную способность (20-25 мА). Некоторые порты имеют индивидуально
подключаемые к входам источники тока, играющие роль
pull-up
резисторов. Отдельные
входы могут быть запрограммированы так, что вызывают прерывание при изменении
своего состояния (доступно также в спящем режиме!).

Для работы с аналоговыми
сигналами определенные типы контроллеров имеют встроенные АЦП или компараторы.
Существуют контроллеры, со встроенным управлением ЖКИ-индикаторами, выходами
ШИМ, разнообразными последовательными интерфейсами (синхронный, асинхронный,
I2C,
SPI),
имеющие встроенную энергонезависимую память данных, для запоминания разных
констант, настроек и т.п. Для работы вместе с более мощными микропроцессорными
системами, некоторые контроллеры имеют 
PSP (Parallel
Slave
Port).

Структурно,
PIC-контроллеры
состоят из памяти программ, памяти данных (регистры), АЛУ, портов ввода-вывода и
периферийных устройств.

Я не хочу подробно
расписывать структурные схемы, системы команд, «тонкие подробности
функционирования» и маленькие «хитрости» по применению контроллеров — это темы
для отдельных статей или для чтения подробной технической документации, поэтому
в заключение приведу таблицу разновидностей
PIC-контроллеров,
по которой можно представить себе их большое разнообразие и выбрать контроллер
для конкретного применения.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей

Большинство
PIC-контроллеров выполнено в  ОТР-исполнении, т.е. однократно программируемый
кристалл. Для отладки используется специальный отладочный вариант с окошком для
стирания ультрафиолетом. (На самом деле сам кристалл и там и там один и тот же,
поэтому в принципе, если в ОТР добраться до самого кристалла, то его можно
стереть. Правда нужно еще сделать подложку для стекания зарядов, да и добраться
трудновато 🙂

Для начинающих лучше
всего подойдет контроллер 16F84,
имеющий электрически стираемую память программ или
Flash.

(Строго говоря там не флеш а ЕЕПРОМ, но сейчас любые виды энергонезависимой
памяти принято называть флеш).  Если же Вы собираетесь работать с ОТР, то ни в
коем случае не устанавливайте биты защиты (секретности) в новых отладочных
кристаллах с ультрафиолетовым стиранием (с буквами А или В) Вы их потом не
сотрете и использовать кристалл для другой прошивки не удастся! Иногда помогает
выдержка под лампой с течении 6-ти и более часов, но вероятность этого невелика,
поэтому не рискуйте отладочными
JW кристаллами, которые в несколько раз дороже боевых ОТР.

Запись программы в
кристалл может осуществляется двумя методами — параллельным и последовательным.
Старое семейство (16С5хх) и первые микросхемы серии 17Сххх имели только
параллельный режим записи, все остальные кроме параллельного, имеют
последовательный режим, который позволяет использовать более простые
программаторы и осуществлять запись программы в установленную в плате микросхему
(ISP — внутрисхемное программирование).

Номенклатура контроллеров
с электрически перезаписываемой памятью программ постепенно увеличивается, хотя
в этом направлении Микрочип почему-то сильно отстает от своего основного
конкурента — Атмел, выпускающего давно семейство
MCS-51
с флеш-памятью и приступившего к выпуску новой серии
AVR-контроллеров, которые кроме флеша обладают многими другими
преимуществами.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей Это тем более странно, что компания Микрочип выпускает широкую
гамму просто микросхем ЕЕПРОМ, являясь одним из лидеров в этой области,  но
почему-то тянет с флеш-памятью в
PIC-контроллерах.

По конструктивному
исполнению
PIC-контроллеры выпускаются в обычном пластмассовом корпусе (DIP),
керамическом корпусе с окном (JW,
отладочные варианты), широкой гамме планарных и других корпусов (SIOC,
PLCC,
PQFP,
etc.) , а также в виде кристаллов для гибридных схем (die,

micromodule,
etc.)








Электроника НТБ — научно-технический журнал — Электроника НТБ

Одно из основных направлений деятельности компании Microchip Technology – производство контроллеров семейства PIC, представленное 8-, 16- и 32-бит МК. Отличительная особенность семейства — хорошая преемственность входящих в него серий МК. Это и программная совместимость, совместимость по выводам, по отладочным средствам, общие универсальные библиотеки и стеки наиболее популярных коммуникационных протоколов. Номенклатура МК семейства PIC насчитывает более 500 различных контроллеров со всевозможными вариантами периферии, памяти, числа выводов, производительности, значений напряжения питания, температуры и т. п. В число МК семейства PIC входят и полноскоростные USB микроконтроллеры в корпусах с числом выводов от 28 до 100, с поддержкой функций устройство, хост и OTG.

В 2008–2009 годы компания выпустила две новые серии МК – PIC18F1xK50 и PIC18F1xK22 в 20-выводных корпусах. Новые микросхемы серии K50 имеют несколько последовательных интерфейсов – USB 2.0, I2C, SPI и USART, что позволяет организовывать обмен данными между USB и другими интерфейсами. Кроме того, они оснащены 9-канальными, 10-разрядными АЦП и двумя компараторами, что существенно расширяет возможности ввода данных. Микроконтроллеры серии К22 не имеют USB-модуля, но обладают повышенным быстродействием.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей

Характеристики микроконтроллеров серии PIC18F1xK50 представлены в табл.1.
RISC-Ядро

Дополнительно к стандартным 75 командам ядра микроконтроллеров серии PIC18 новые МК PIC18F1xK50 поддерживают дополнительные восемь команд с косвенной и индексной адресацией, расширяющие функциональность ядра. В ядре новых МК для многих стандартных команд ядра МК серии PIC18 также реализована индексная адресация со смещением. Расширение системы команд по умолчанию запрещено. Для разрешения расширенных команд служит специальный бит XINST микроконтроллера. Таким образом, реализуется полная программная совместимость со стандартным ядром, если пользователь работает с новыми микроконтроллерами со старым программным обеспечением.

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

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

Максимальная тактовая частота микроконтроллеров серии K50 составляет 48 МГц при напряжении питания 2,7–5,5 В, и 20 МГц при напряжении 1,8–2,7 В.
Интерфейсы

Модуль USB контроллеров PIC18F1xK50 поддерживает низкоскоростную (Low Speed – 1,5 Мбит/с) и полноскоростную (Full Speed– 15 Мбит/с) спецификации USB 2.0. Микросхемы контроллеров содержат двухпортовую оперативную память емкостью 256 байт, выделенную для работы с USB, поддерживают 16 конечных точек (по восемь на вход и на выход). Как и старшие микроконтроллеры семейства PIC18, новые МК содержат все компоненты, необходимые для прямого подключения к USB-хосту – встроенный USB модуль с трансивером, подтягивающие резисторы на линиях D+ и D- для задания скорости передачи шины.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей Но контроллеры серии К50 не способны работать с внешним USB-трансивером.

Устройства на базе МК семейства PIC18F1xK50 могут питаться от шины USB, от собственного источника питания или от комбинированного источника питания. Хост или хаб USB имеет резисторы с сопротивлением ~15 КОм, подтягивающие напряжение к «земле». При подключении микроконтроллера к шине USB и наличии внешних подтягивающих резисторов к напряжению источника питания, он может определять изменение состояния на выводах D+ и D-, выставлять флаг прерывания и включать модуль USB. Функция обнаружения USB-хоста, которая переводит микроконтроллер в режим пониженного энергопотребления, когда USB-соединение отсутствует, – важная особенность новых МК компании.

Помимо модуля USB контроллеры имеют модуль последовательного интерфейса EUSART и модуль синхронного последовательного интерфейса MSSP. Модуль EUSART поддерживает работу с интерфейсами RS-485, RS-232 и LIN 2.0. Благодаря наличию внутреннего стабилизированного и подстраиваемого RC-генератора, а также возможности автоматического определения скорости принимаемых данных МК может работать без внешнего кварцевого генератора. Модуль синхронного последовательного интерфейса MSSP позволяет работать в привилегированном (Master) и подчиненном (Slave) режимах с интерфейсами SPI и I2C.
Аналоговая периферия

Микроконтроллеры серии PIC18F1xK50 содержат всю присущую МК семейства PIC стандартную аналоговую периферию – 10-разрядный АЦП, два аналоговых компаратора, фиксированный и программируемый источник опорного напряжения. Из нововведений следует отметить наличие встроенного прецизионного источника фиксированного опорного напряжения на три значения – 1,024 В, 2,048 и 4,096 В. Источник опорного напряжения может использоваться как база для программируемого источника опорного напряжения (простейший ЦАП), может подключаться на вход АЦП и компараторов.

Выход программируемого источника опорного напряжения может также подключаться к входу АЦП и компараторов, а также поступать на вывод микроконтроллера для использования совместно с его внешними цепями.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей

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

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

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

Микроконтроллеры серии K50, как и все контроллеры К-серий, выполнены по 0,35-мкм КМОП-технологии. Максимальное напряжение питания ядра МК составляет 3,6 В. Однако МК «F» версии (PIC18F1xK50) имеют встроенный регулятор источника питания на напряжение 3,2 В (табл.2), обеспечивающий работу МК в диапазоне напряжения питания 1,8–5,5 В. При этом вся периферия также функционирует во всем диапазоне питающих напряжений, за исключением выводов RA1 и RA2 (D+ и D-), которые могут работать как входы с уровнями напряжения до 3,6 В или как линии USB-интерфейса. МК версий «LF» (PIC18LF1xK50) не имеют встроенного регулятора напряжения питания, поэтому они рассчитаны на напряжение питания 1,8–3,6 В.

Новые микроконтроллеры совместимы по выводам со всеми 20-выводными контроллерами компании Microchip, правда, один их вывод выделен для подключения конденсатора, предназначенного для стабилизации внутреннего регулятора напряжения USB-модуля.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей Совместимость по выводам как с предыдущими контроллерами, так и с выпущенным позже семейством PIC18F1xK22 (контроллеры с аналогичными характеристиками, но без модуля USB), позволит унифицировать печатную плату под системы, выполняющие различные задачи, или с минимальными доработками интегрировать USB-интерфейс в существующую разработку.

Микроконтроллеры PIC18F1xK50 выпускаются в 20-выводных корпусах типа SSOP, SOIC, PDIP и миниатюрном корпусе QFN размером 5×5 мм. Диапазон рабочих температур составляет -40…125°С.

Поскольку МК PIC18LF1xK50 выполнены по технологии экстремально-низкого потребления – eXtrime Low Power (XLP), потребляемый ими ток в режиме ожидания составляет 24 нА, потребляемый ток сторожевого таймера – 450 нА, таймера 1 – 790 нА (в режиме часов реального времени с кварцевым генератором на частоту 32768 Гц).

Новые контроллеры поддерживаются всеми средствами отладки компании Microchip (программаторами-отладчиками PICkit2, PICkit3, ICD-2, ICD-3 и внутрисхемным эмулятором REAL ICE). Однако, как и для всех МК с малым числом выводов, для внутрисхемной отладки необходим специальный отладочный модуль. На плате отладочного модуля установлен специальный микроконтроллер PIC18F14K50-ICD, который содержит модуль теневой отладки и имеет дополнительные выводы, выделенные для внутрисхемной отладки.

В помощь разработчику компания Microchip выпускает демонстрационный комплект Low Pin Count USB Development Kit (номер для заказа DV164126). Этот демонстрационный комплект содержит все устройства, необходимые для начала работы и освоения маловыводных микроконтроллеров с USB (см. рисунок):

* демонстрационную плату с микроконтроллером PIC18F14K50 и одну плату без установленных компонентов для самостоятельной сборки;
* отладочный модуль для внутрисхемной отладки контроллеров семейства PIC18F1xK50;
* внутрисхемный отладчик-программатор PICkit2;
* компакт-диск с необходимым программным обеспечением, примерами программ и лабораторными работами для освоения USB-микроконтроллеров.Pic 16: Микроконтроллеры PIC10, PIC12, PIC16. Обзор новых семейств и периферийных модулей

Новые USB-контроллеры поддерживаются готовыми USB-библиотеками копании Microchip. Пакет программ MCHPFS USB Framework содержит программы реализации различных классов USB-устройств. Для контроллеров PIC18F14K50 приведены примеры реализации коммуникационного CDC класса (виртуальный COM-порт через USB), различных устройств взаимодействия человек-машина (манипулятор мышь, джойстик, пользовательское устройство), устройство хранения данных – MSD, составное устройство (реализация HID и MSD через одно USB-соединение).
Микроконтроллеры Microchip PIC18F1xK22

Выпущенные компанией Microchip МК PIC18F13K22 и PIC18F14K22 отличаются от МК серии PIC18F1xK50 отсутствием модуля полноскоростного USB 2.0 и увеличенной до 64 МГц тактовой частотой ядра (табл.3).

При напряжении питания 1,8 В потребляемый ток МК серии PIC18F1хK22, которые также выполнены по технологии nanoWatt XLP, в режиме Sleep составляет всего 34 нА, сторожевого таймера –300 нА, таймера с кварцевым генератором на частоту 32 КГц – 800 нА.

Благодаря низкой цене, ультранизкому потреблению, малым габаритам, обширной коммуникационной и аналоговой периферии новые XLP МК серий PIC18F1xK50 и PIC18F1xK22 найдут широкое применение в преобразователях интерфейсов, датчиках, периферийных USB-контроллерах. Совместимость кода со старшими семействами и готовые примеры реализации различных классов USB-устройств помогут программистам легко и быстро освоить новые семейства маловыводных микроконтроллеров компании Microchip.

Платы, схемы, примеры радио устройств, микроконтроллеры, PIC16

Платы, схемы, примеры радио устройств, микроконтроллеры, PIC16

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

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

Все мы давно забыли что значит пользоваться дискетками формата 3.5, а вот дискеты формата 5.25 многие даже не застали. И неудевительно, ведь технологии огромными шагами идут вперед. Почему я затронул тему о старых дискетах? А затронул я эту тему потому как у многих людей где то под столом или в гараже валяются данные устройства которые вроде бы и не нужны но выкинуть жалко. Вот и мне жалко выбросить. В моем случае я имею 3 дисковода формата 5.25 ( если не ошибаюсь в форм факторе). В этих замечатальных больших устройствах есть нехилый шаговый двигатель который может пригодится при разработке какого нибудь станка ЧПУ или же в разработке робота, микродрели и других стройствах в которых нужна точность поворота двигателя. В данной статье я покажу как заставить данный двигатель работать.

И так в прошлой теме мы писали простую программу для pic контроллера на языке PIC Basic Pro которая мигала светодиодом и моделировали это все в программа proteus. Сегодня пришло время смоделировать это все на плате и убедится что наша программа и устройство отлично работают. Для сборки платы нам необходимо будет пару конденсаторов и три сопротивления, один светодиод, pic контроллер (в моем случае это pic16f84) ну и панелька под контроллер.

Как правило первый код будущего программиста это вывод на экран строки «hello world». У нас же будет что то аналогично простое, это мигание светодиодом. Практически все начинают осовение МК именно с этого. Для начала мы напишем код программы в CodeStudioPlus, а после этого накидаем все это в протеусе, после чего запустим и будем радоваться результату.

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

Уже как год есть у меня идея сделать устройство которое бы показывало остаток топлива в баке. Конечно для этих целей предусмотрена стрелка, но по ней особой точности не получишь. Наверное все это время я думал как бы  купить нужные мне радиодетали это LCD Wh2602B и PIC16F676. То я сам хотел съездить за ними то хотел кого то отправить кому по пути, то просто думал да фиг с ним когда мне собирать устройство, времени то нет.

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

Ранее я всегда для изготовления платы использовал старые дедовские методы, от которых не приходил в восторг, но что поделать не имел я тогда хлорного железа, а сейчас все таки обзавелся некоторой порцией сего химического элемента и решил испробовать ЛУТ.

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

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

Страница 1 из 2

Примеры построения кода программ для PIC-контроллеров


Кликните на картинку для перехода на страницу описания.

Заготовки программ на Си.

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


Управление светодиодом

(проект использует для программирования Serial Bootloader AN1310)


Чтение состояния кнопок

(проект использует для программирования Serial Bootloader AN1310)

Чтение состояния кнопок 2 – простая функция удержания клавиши


Измерение относительной влажности. Использование аналоговых датчиков фирмы honeywell (HIH-36xx, HIH-40xx)  (пример использует для программирования Serial Bootloader AN1310)


Декодирование команд пульта дистанционного управления APA 1616 или использование модуля ССР для декодирования.


Пример построения простого ШИМ на PIC-контроллерах с использование модулей CCP   (пример использует для программирования Serial Bootloader AN1310).


Пример управления аналоговым сервоприводом на PIC-контроллерах с использование модулей CCP (пример использует для программирования Serial Bootloader AN1310).


Измерение расстояния при помощи ультразвукового модуля HC-SR04


DHT11 – Датчик влажности и температуры


Часы реального времени  M41T56


Среднее число интересный метод вычисление среднего.


Проекты на микроконтроллерах PIC10 – Емкостной сенсор, Датчик приближение, Датчик движения, Диммер для светодиодного освещения


В помощь конструктору – Мелкие программки в ME для упрощение расчетов.


Один вариант функций для записи и чтения данных в EEPROM для 8-битных микроконтроллеров (которые имеют и перезаписываемую и память программ).


Вычисление CRC16


еще будет..


Модуль CAPTURE/COMPARE/PWM – захват, сравнение, ШИМ

Формирование звука Сенсоры (измерения физических величин)

Цифровые датчики температуры

Аналоговые (модуль АЦП)

Измерение напряжения на потенциометре

Аналоговые датчики температуры

Измерение напряжения

Измерение емкости (модули CTMU, CPS)Емкостной сенсор прикосновения

Таймер TMR1

Передача данных (модули MSSP, EUSART)

Цифровые (работа с цифровыми портами ввода/вывода)


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

Сравнение ШИМ

“Примеры построения кода программ для PIC-контроллеров”

I2C SPI UART LED индикаторы

Семисегментные индикаторы8х8 знакосинтезирующие индикаторы LCD индикаторы


Это может быть интересно

  • LED драйвер TM1639

    TМ1639 позволяет работать на матрицу 8*8 или 8 семисегметных индикаторов. Может работать как на индикаторы с общим катодом, но и есть возможность подключать общим анодом. Для управления драйвером используется трех …

  • I2C MODULE – PIC18F25K42 Device ID Revision = A001

    I2C MODULE Обход ошибок в версии I2C MODULE – PIC18F25K42 Device ID Revision = A001 В Серии K42 применен совершенно новый модуль шины I2C, который позволяет поддерживать все режимы этой …

  • PIC18 – модуль DMA

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

  • Оптосимистор и его применение

    Эрве Кадино “Цветомузыкальные установки” Ответ на вопрос – управление мощным тиристором или симистором, от терморегулятора. Статья в pdf Оптосимистор принадлежат к классу оптронов и обеспечивают очень хорошую гальваническую развязку (порядка …

  • Обновление ESP8266 c ESPFlashDownloadTool_v3.6.3

    Технология обновления следующая: Загружаем программу со страницы espressif.com. Разархивируем. Где находятся файлы, для прошивки? Заходим в каталоги Подключаем по схеме в статье WiFi ESP8266 (замыкаем BT2, перемычка). Запускаем программу, откроется два …

  • Сенсорный выключатель света

    Хотя в настоящий момент актуальны системы управления освещением с передачей данных по электросети, но я думаю, что проекты такого рода тоже имеют право на жизнь. Анонс Три вида сенсора – …

  • Цифровой тахометр для автомобиля CH-С3300

     Тахометр Ch-С3300 предназначен для индикации и контроля оборотов, времени работы и максимальных оборотов развиваемых двигателем во время поездки. Датчиком может использоваться как обычный контактный прерыватель или выход датчика холла автомобиля …

  • TM1650 драйвер LED семисегментного индикатора

    Китайский производитель Shenzhen Titan Micro Electronics Co., Ltd.  Выпускает широкую линейку драйверов управления светодиодными дисплеями, которые позволяют разгрузить микроконтроллер для основной работы, главная особенность этих драйверов не только в их …

  • Мониторинг температуры

    Настоящий проект создан как обучающий с применением библиотек ds18b20 и LCDHD44780 и компилятора Microchip MPLAB XC8 C Compiler V1.12. Если необходимо иметь информацию по состоянию температуры в помещении или в здании, с количеством до 6 точек (16), то вы сможете …

  • Применение typedef, struct и union

    Полезные описания переменных Часто необходимо в памяти расположить последовательно разные виды данных, что бы потом можно было их использовать. Полезные ссылки Взято и переработано с сайта http://www.butovo.com/~zss/cpp/struct.htm http://cppstudio.com/post/9172/ Синтаксис структур. …



В записи нет меток.

Программатор для PIC контроллеров — Конкурс на лучшую конструкцию на микроконтроллерах — + Конкурс +

                                                        ПРОГРАММАТОР РIС-КОНТРОЛЛЕРОВ

Сейчас существует много разработок радиолюбительских устройств с примене­нием PIC-контроллеров. Даже если Вы еще не освоили сам процесс написания программ для PIC, вы можете собирать уже разрабо­танные кем-то конструкции, занося готовую программу в контроллер. Но для этого нужно, во-первых, персональный компьютер, во- вторых, программатор. Желательно чтобы персональный компьютер был с СОМ-пор- том. Но даже если вы пользуетесь ноутбу­ком, у которого СОМ-порта нет и в помине, выйти из положения можно приобретя пере­ходник-конвертер USB-COM.

Схема программатора (рис.1.) весьма проста, и практически представляет собой переходник для подключения микросхем к СОМ-порту персонального компьютера, плюс ключ для подачи напряжения, необходимого для программирования.

При работе с программой IC-PROG V1.05D (программу можно скачать на сайте http://www.ic-prog.com) данным устройством возможно программировать следующие микроконтроллеры:

PIC12С508,                 PIC12С508А.                        PIC12С509,                    PIC12С509А,                        PIC12СЕ518,                         PIC12СЕ519,                     PIC12C 671                                PIC12C672,

PIC12CE673,               PIC12СЕ674,                        PIC12F629,                     PIC12F675,                           PIC16C433,                           PIC16C61,                        PIC16C62A,                                PIC16C62B,

PIC16C63,                  PIC16C63A,                          PIC16С64А,                    PIC16С65А,                          PIC16С65В,                           PIC16C66,                        PIC16C67,

PIC16C71,                  PIC16C72,                            PIC16C72A,                    PIC16C73A,                          PIC16C73B,                           PIC16C74A,                      PIC16C74B,                                 PIC16C76,

PIC16C77,                  PIC16F72,                             PIC16F73,                       PIC16F74,                             PIC16F76,                             PIC16F77,                         PIC16C84,                                   PIC16F83,

PIC16F84,                   PIC16F84A,                           PIC16F88,                       PIC16С620.                          PIC16С620А,                         PIC16С621,                       PIC16C621A,                               PIC16C622,

PIC16C622A.              PIC16CE623,                         PIC16CE624,                   PIC16CE625,                        PIC16F627,                            PIC16F628,                        PIC16F628A,

PIC16F648A,               PIC16С710,                           PIC16С711,                    PIC16C712.                           PIC16C715,                           PIC16C716,                       PIC16C717,                                 PIC16C745,

PIC16C765,                PIC16C773,                           PIC16C774,                    PIC16F818,                            PIC16F819,                            PIC16F870,                        PIC16F871,                                 PIC16F872,

PIC16F873,                 PIC16F873A,                         PIC16F874,                     PIC16F874A,                          PIC16F876,                            PIC16F876A,                       PIC16F877,                                 PIC16F877,

PIC18F242,                 PIC18F248,                           PIC18F252,                     PIC18F258,                            PIC18F442,                            PIC18F448,                        PIC18F452,                                   PIC18F458,

PIC18F1220,               PIC18F1320,                          PIC18F2320,                   PIC18F4320.

На схеме показан СОМ-разъем для связи с персональным компьютером (Х2). На разъем Х1 подается питание (стабильное напряже­ние 12V). Это напряжение подается на микроконтроллер для выполнения функции записи информации. Разъемы ХЗ-Х7 — это панельки для установки микроконтроллеров. Соответственно, ХЗ — панелька под 8-вывод- ную микросхему, Х4 — под 14-выводную, Х5 — под 18-выводную, Х6 — под 28-выводную и Х7 — под 40-выводную. Соответственно, на схеме показаны только те выводы панелек, которые подключаются для выполнения процесса программирования. Все остальные выводы остаются никуда не подключенными.

Перед программированием микроконтрол­лер устанавливают в соответствующую панельку, при этом остальные панельки должны быть свободными.

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

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

Для программирования необходимо устано­вить на компьютер специальную программу IC-PROG, которая имеется в свободном доступе на сайте http://www.ic-prog.com.

Программа дается в виде архива, ко­торый нужно рас­паковать в специ­ально созданную папку. В образо­вавшемся каталоге будет три файла, — icprog.exe (собст­венно программа), icprog.sys (драйвер для работы в Windows NT, 2000, ХР. Этот файл дол­жен всегда нахо­диться в каталоге программы) и файл помощи icprog.chm.

Вообще програм­ма предназначена для Windows 98, но сейчас уже данной операционной сис­темой почти никто не пользуется. Поэтому и дается драйвер для более новых ОС, Но и даже с этим драй­вером она рабо­тает под Windows NT, 2000, поэтому перед запуском файла icprog.exe в Windows ХР нужно установить его совместимость для работы с ОС Windows ХР. Для этого нужно навес­ти мышку на icprog.exe и нажать правую кнопку. Затем перейти на «Свойства» и в появившемся окошке выбрать закладку «Совместимость», где установить «Запустить программу в режиме совместимости с Windows 2000».

Запустите файл icprog.exe. После запуска выберите «Seting» — «Options» — «Language» и установите язык «Russian». Далее нажмите «ОК». Появится табличка с надписью «You need to restart IC-prog now», нажмите «ОК» (рис.2.).

Программа перезапустится в русскоязычном режиме. Откройте «Настройки» и выберите «Программатор» (рис.3.). Откроется окно в котором нужно будет выбрать используемый СОМ-порт. Если у вашего компьютера только один СОМ-порт, то это соответствен­но Сот1. В этом же окне, в выпадающем меню «Программатор» выберите JDM- programmer. В «Интерфейс» установите «Прямой доступ к портам». Задержку Ввода/Вывода установите где-то среднюю. Подтвердите установку нажатием на «ОК».

Далее, в «Настройки» — «Опции» выберите закладку «Общие». Установите галочку на пункте «BwrNT/200(VXP драйвер» и подтвер­дите выбор нажатием «ОК» (рис4). Может появится окно «Confirm» нажмите в нем «ОК». После этого драйвер установится и программа перезагрузится еще раз.

Снова войдите в «Настройки» — «Опции» и выберете вкладку «!2ѻРв ней установите галочки на пунктах «Включить MCLR как VCC» и «Включить запись блоками». Подтвердите выбор нажатием «ОК» (рис.5).

Теперь можно приступать к работе. Программатор должен быть подключен к соответствующему СОМ-порту, но источник питания (12V) пока выключен. Установите микросхему, которую нужно программировать в соответствующую панельку. Допустим, это микроконтроллер PIC16F870, Включите питание. Запустите IC-PROG, в выпадающем меню выберите микроконтроллер, который  будете прогаммировать , например PIC16F870 ( рис 6 ).

Далее нужен файл с НЕХ-кодом. В IC-PROG наж­мите «Файл» «Открыть файл» (только не «От­крыть файл дан­ных»), далее найдите файл с НЕХ-кодом и вы­берите его. Если файл с расши­рением ТХТ, а не HEX нужно в стро­ке типа файлов выбрать «Апе File» иначе ваш файл не будет виден. После удачного выбора файла окошко программного кода заполняется ин­формацией. А так же установите кон­фигурацию («фьюзы»), то есть, тип осциллятора, биты конфигурации. Они обычно указыва­ются в тексте статьи. Если же они не укахзаны, то скорее всего они уже ведены в НЕХ- файле и устано­вятся автоматичес­ки (рис.7).

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

На этом програм­мирование завер­шается. Закрываем программу, отклю­чаем питание, выключаем компь­ютер и вынимаем микроконтроллер из панельки.

Андреев С.

PIC16F877A — Микроконтроллеры и процессоры

8

3,5

256

$ 0,53

10-разрядный АЦП, опции с низким энергопотреблением

14

3.5

256

$ 0,57

10-разрядный АЦП, опции с низким энергопотреблением

14

7

512

$ 0.64

10-разрядный АЦП, опции с низким энергопотреблением

14

14

1,024

$ 0,71

10-разрядный АЦП, опции с низким энергопотреблением

14

28

2 048

$ 0.78

10-разрядный АЦП, опции с низким энергопотреблением

20

7

512

$ 0,70

10-разрядный АЦП, опции с низким энергопотреблением

20

14

1,024

$ 0.77

10-разрядный АЦП, опции с низким энергопотреблением

20

28

2 048

$ 0,84

10-разрядный АЦП, опции с низким энергопотреблением

14

7

512

$ 0.71

12-разрядный АЦП с вычислениями, маломощные опции

14

14

1,024

$ 0,78

12-разрядный АЦП с вычислениями, маломощные опции

14

28

2 048

$ 0.85

12-разрядный АЦП с вычислениями, маломощные опции

20

7

512

$ 0,81

12-разрядный АЦП с вычислениями, маломощные опции

20

14

1,024

$ 0.88

12-разрядный АЦП с вычислениями, маломощные опции

20

28

2 048

$ 0,95

12-разрядный АЦП с вычислениями, маломощные опции

28

14

1,024

$ 0.95

12-разрядный АЦП с вычислениями, маломощные опции

28

28

2 048

1,04

12-разрядный АЦП с вычислениями, маломощные опции

40

14

368

$ 4.69

10-битный АЦП

16-битная архитектура PIC® MCU — Справка разработчика

Микроконтроллеры

PIC24 и контроллеры цифровых сигналов (DSC) dsPIC ® используют одну и ту же модифицированную Гарвардскую архитектуру. Встроенный процессор, использующий гарвардскую архитектуру, имеет отдельные шины данных и инструкций.

Упрощенная блок-схема PIC24 / dsPIC

® Digital Signal Controller (DSC)

  • ЦП выбирает 24-битные инструкции из памяти программ по шине команд
  • Операции с памятью данных и периферийными устройствами выполняются на отдельной 16-битной шине данных.

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

ЦП PIC24 имеет 76 инструкций, каждая с несколькими режимами адресации. DsPIC DSC содержит те же 76 инструкций MCU, что и PIC24, но добавляет 19 специальных инструкций DSP.

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

Микроконтроллеры

PIC24 и dsPIC DSC имеют 24-битную флеш-память для хранения программных инструкций.Каждая инструкция памяти программы принимает два четных адреса, выровненных по словам. Наименее значащее слово получает четный адрес. Старшему слову назначается старший (нечетный) адрес. Реализуются только младшие восемь бит самого старшего слова. При чтении старшие 8 бит самого значащего слова будут нулевыми.

Доступ к программной памяти осуществляется с помощью 23-битного счетчика программ. При указании на инструкцию младший бит программного счетчика всегда будет равен нулю.Хотя программный счетчик может адресовать до 4 M инструкций, ни один из доступных в настоящее время 16-битных MCU или DSC не содержит такой объем памяти.

  • Первые 512 байтов программной памяти используются для векторов сброса и прерывания.
  • Место для прикладной программы начинается с адреса 0 x 0200.
  • По адресам, недоступным для счетчика программ, находятся идентификатор устройства и регистры конфигурации устройства.

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

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

Микроконтроллеры

PIC24 и dsPIC DSC могут адресовать 64 кбайта памяти данных. Объем доступной памяти для данных варьируется от устройства к устройству. Только нижние 32 кбайта могут быть напрямую заполнены ОЗУ. Под управлением программы верхние 32 кбайта адресного пространства могут указывать либо на раздел программной памяти, либо на расширенную память данных.

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

Если устройство поддерживает передачи с прямым доступом к памяти (DMA), двухпортовый буфер в памяти располагается непосредственно над установленным ОЗУ данных.Периферийное устройство управления DMA передает данные между этим буфером памяти и выбранными периферийными устройствами с минимальным вмешательством ЦП.

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

Доступ к флэш-памяти из ОЗУ

Видимость пространства страницы (PSV) — это процесс, который позволяет верхним 32 кбайтам адресов памяти данных указывать на блок флэш-памяти.

Program Space Visibility (PSV) отображает выбранные блоки флэш-памяти программ в верхние 32 КБ области памяти данных, чтобы обеспечить быстрый доступ к буквальным константам и таблицам данных на основе флэш-памяти.

Описание того, как приложение может реализовать PSV, представлено на странице PSV.

Расширение памяти данных

Расширение пространства данных для доступа к ОЗУ с верхними 32 кбайтами. Байтовые адреса могут быть выполнены на 16-битных микроконтроллерах PIC и DSC.

  • Расширенные службы данных (EDS) увеличивают объем ОЗУ, доступного ЦП, путем отображения блоков памяти размером 32 КБ в верхние 32 КБ байта пространства памяти данных.
  • Одновременно можно отобразить только один блок памяти EDS размером 32 КБ.
  • Верхняя часть пространства памяти данных используется совместно с программой видимости пространства программ (PSV).
  • Используется для приложений с графикой, USB и интенсивным обменом данными.

На странице «Расширенная память данных» приведены подробные сведения об использовании памяти расширенного пространства данных (EDS).

Все периферийные устройства и контакты ввода / вывода отображены в память 16-разрядных семейств MCU и DSC. Изменение периферийного устройства или доступ к контакту ввода-вывода выполняется путем чтения или записи в регистры специальных функций (SFR).SFR расположены в первых 2 кбайтах области памяти данных.

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

16-битные прерывания микроконтроллера PIC

® имеют следующие характеристики:

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

Подробное обсуждение процесса прерывания, а также пример кода можно найти на странице обработки прерывания.

Конфигурационные биты представляют собой набор двоичных данных, находящихся во флэш-памяти программ микроконтроллера PIC ® или dsPIC DSC. Биты конфигурации генерируются кодом, написанным пользователем, и становятся частью HEX-файла, запрограммированного в устройстве.Биты конфигурации не являются исполняемым кодом, поскольку они расположены по адресам, недоступным для счетчика программ. Биты конфигурации завершают схему, которая включает или отключает аппаратные функции устройства.

Биты конфигурации не могут быть изменены во время выполнения.

Особенности работы MCU, контролируемые битами конфигурации, включают:

  1. Системное тактирование
  2. Управление питанием
  3. Безопасность устройства

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

При запуске или при выходе из сброса происходит следующее:

  1. Все регистры возвращаются в свое предопределенное состояние сброса.
  2. Счетчик программы очищается, что приводит к выполнению инструкции по адресу 0 x 0000.

По умолчанию компилятор MPLAB ® XC16 помещает начало кода пользователя по адресу 0 x 0200 и вставляет команду GOTO 0 x 0200 по адресу 0 x 0000.

16-битный MCU и DSC могут быть сброшены из нескольких источников.Полное объяснение операций сброса, включая примеры обнаружения аномальных сбросов, можно найти на 16-битной странице запуска.

dsPIC DSC имеют ту же архитектуру, что и PIC24, но добавляют 19 инструкций DSP. Многие из этих инструкций DSP требуют одновременного извлечения из памяти двух операндов. Чтобы удовлетворить потребность в двойном доступе к памяти данных, DSC dsPIC предусматривают разделение ОЗУ данных на две области, каждая со своей собственной шиной.

Упрощенная блок-схема цифрового сигнального контроллера (DSC) dsPIC

® при выполнении инструкции цифрового сигнального процессора (DSP)

Когда dsPIC DSC выполняет инструкцию DSP:

  • Память данных состоит из двух областей: X и Y.
  • Две шины данных доступны для одновременного доступа к памяти данных. Одна шина обращается к пространству памяти X, а другая предназначена для доступа к памяти Y.
  • Одновременное чтение / изменение / обратная запись могут выполняться на обеих шинах данных.

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

Учебное пособие по архитектуре dsPIC предлагает подробные сведения и примеры кода о том, как работают DSC.

Контроллер DMA передает данные между регистрами периферийного устройства и памятью. 16-разрядный контроллер прямого доступа к памяти использует двухпортовую память и схему управления, которая позволяет передавать данные без влияния на работу ЦП.

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

  • Технология ECAN ™
  • 10-битный / 12-битный аналого-цифровой преобразователь (АЦП)
  • Последовательный периферийный интерфейс (SPI)
  • Универсальный асинхронный приемный передатчик (UART)
  • Входной захват
  • Выход Сравнить

Описание структуры DMA и пример кода, показывающий, как настроить и использовать DMA, можно найти на странице DMA.

16-разрядные периферийные устройства
Разработка 16-разрядного программного обеспечения
32-разрядные микроконтроллеры Microchip
8-разрядные микроконтроллеры Microchip

Каковы различия между подсемействами 8-битных микроконтроллеров PIC®?

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

8-битное семейство делится на четыре категории:

8-битный микроконтроллер PIC использует архитектуру компьютера с сокращенным набором команд (RISC), который имеет отдельные адрес и шину данных.Это означает, что они также могут быть разделены по размеру. Все 8-битные микроконтроллеры PIC имеют 8-битную шину данных, но программная шина будет различаться по размеру в зависимости от семейства. Это также может вызвать путаницу, поскольку структура памяти 8-битного микроконтроллера PIC будет сообщаться словами, размер которых равен программной шине, а не шине данных. Более крупная программная шина позволяет устройству размещать больше информации в одной строке команд и, таким образом, более эффективно выполнять. Таким образом, память для каждого устройства указывается словами, а затем — байтовой ссылкой.

Например, 8 Кбайт программной памяти на 14-битном основном устройстве содержит 8 Кбайт программного пространства, что эквивалентно 14 Кбайтному пространству в байтах.

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

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

Справочное руководство по 8-битным периферийным устройствам

Микроконтроллеры

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

  • Простой набор из 33 команд (шириной 12 бит) для простоты использования и быстрой разработки
  • Адресная память программ на 2 слова (3 КБ)
  • 144 байта RAM (макс.)
  • Двухуровневый стек оборудования
  • Один (8-битный) регистр выбора файла
  • Несколько вариантов продукта и простая миграция
  • Наименьшие доступные форм-факторы

Baseline можно узнать по структуре номеров деталей: 10Fxxx, 12Fxxx и 16Fxxx.

Микроконтроллеры PIC среднего уровня

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

  • 35 (ширина 14 бит) простых инструкций для изучения
  • Адресная память программ на 8 слов (14 КБ)
  • 368 байт RAM (макс.)
  • 8-уровневый аппаратный стек
  • Один (9-битный) регистр выбора файла
  • Обработка аппаратных прерываний
  • Высокоинтегрированный набор функций: EEPROM, ЖК-дисплей, сенсорные решения mTouch ™ и последовательная связь

Среднего уровня можно распознать по структуре номеров деталей: 10Fxxx, 12Fxxx и 16Fxxx.

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

  • 49 команд сборки (шириной 14 бит)
  • Адресная память программ на 32 слова (56 КБ)
  • 4 КБ ОЗУ (макс.)
  • 16-уровневый стек оборудования
  • Два (16-битных) регистра выбора файла
  • Аппаратная обработка прерываний с сохранением содержимого
  • Расширенный набор функций, несколько последовательных коммуникаций и возможность управления двигателем

Усиленный средний класс можно узнать по структуре номера детали: 12F1xxx и 16F1xxx.

Эти части имеют собственный префикс, а именно PIC18. Это семейство сочетает в себе максимальный уровень производительности и интеграции с простотой использования 8-битной архитектуры. Обладая вычислительной мощностью до 16 MIPS, микроконтроллеры PIC18 оснащены расширенными периферийными устройствами, такими как CAN, USB, Ethernet, ЖК-дисплей и CTMU. Они предлагают наибольшее количество выводов и объем памяти в 8-битном семействе компонентов. Архитектура оптимизирована для программирования на C.

  • 83 (ширина 16 бит) инструкции по сборке
  • Адресная память программ до 2 МБ
  • 4 КБ ОЗУ (макс.)
  • Аппаратный стек на 32 уровня
  • Один (8-битный) регистр выбора файла
  • Интегрированное аппаратное умножение 8×8
  • Высочайшая производительность 8-битной архитектуры

Высокопроизводительные устройства можно распознать по структуре их номеров деталей: 18Fxxxx, 18FxxJxx и 18FxxKxx.

Все 8-битные устройства можно программировать / отлаживать с помощью одного и того же набора средств разработки Microchip.
В их числе:

  • MPLAB® X IDE — единая интегрированная среда разработки поддерживает все микроконтроллеры PIC
  • XC8 — компилятор MPLAB X C для 8-битных устройств. Доступны бесплатные версии без ограничений по времени или памяти
  • PICkit ™ 3 — Самый доступный внутрисхемный отладчик / программатор с простыми точками останова
  • ICD 3 / ICD 4 — Высокоскоростной аппаратный отладчик / программатор со сложными точками останова
  • MPLAB REAL ICE ™ — высокоскоростной эмулятор со сложными точками останова и возможностью трассировки

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

Введение в PIC 16F877

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

СМОТРЕТЬ: КОНТРОЛЛЕР ПЕРИФЕРИЧЕСКОГО ИНТЕРФЕЙСА (PIC)

Обзор ПИК 16F877

PIC 16F877 — один из самых современных микроконтроллеров от Microchip.Этот контроллер широко используется для экспериментальных и современных приложений из-за его низкой цены, широкого спектра приложений, высокого качества и простоты доступности. Он идеально подходит для таких приложений, как приложения для управления машинами, измерительные устройства, исследовательские цели и т. Д. PIC 16F877 имеет все компоненты, которые обычно есть в современных микроконтроллерах. Рисунок микросхемы PIC16F877 показан ниже.

ПИК 16F877

ИЗОБРАЖЕНИЕ СДЕЛАНО ИЗ

Особенности PIC16F877

Серия PIC16FXX имеет более продвинутые и развитые функции по сравнению с предыдущей серией.Важные особенности серии PIC16F877 приведены ниже.

Общие характеристики

o Высокопроизводительный RISC-процессор.

o ТОЛЬКО 35 простых текстовых инструкций.

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

o Рабочая скорость: тактовый вход (200 МГц), цикл команд (200 нс).

o До 368 x 8 бит RAM (память данных), 256 x 8 EEPROM (память данных), 8k x 14 флэш-памяти.

o Выводы совместимы с PIC 16C74B, PIC 16C76, PIC 16C77.

o Восьмиуровневый аппаратный стек.

o Возможность прерывания (до 14 источников).

o Различные типы режимов адресации (прямой, косвенный, относительный режимы адресации).

o Сброс при включении питания (POR).

o Таймер включения питания (PWRT) и таймер запуска генератора.

o Низкое энергопотребление — высокоскоростная CMOS-вспышка / EEPROM.

o Полностью статическая конструкция.

o Широкий диапазон рабочего напряжения (2,0 — 5,56) вольт.

o Высокий ток потребления / источника (25 мА).

o Коммерческий, промышленный и расширенный температурный диапазон.

o Низкое энергопотребление (<0,6 мА при 3–4 МГц, 20 мкА при 3–32 МГц и <1 А в режиме ожидания).

Периферийные функции

o Таймер 0: 8-битный таймер / счетчик с предварительным скаляром.

o Таймер 1:16 бит, таймер / счетчик с предварительным скаляром.

o Таймер 2: 8-битный таймер / счетчик с 8-битными регистрами периода с предскалярным и постскалярным значениями.

o Два захвата (16 бит / 12,5 нс), сравнение (16 бит / 200 нс), модули ширины импульса (10 бит).

o 10-битный многоканальный аналого-цифровой преобразователь

o Синхронный последовательный порт (SSP) с SPI (главный код) и I2C (главный / подчиненный).

o Универсальный синхронный асинхронный приемный передатчик (USART) с обнаружением 9-битного адреса.

o Параллельный подчиненный порт (PSP) шириной 8 бит с внешними элементами управления RD, WR и CS (40/46 контактов).

o Цепь пониженного напряжения для сброса пониженного напряжения (BOR).

Основные характеристики

o Максимальная рабочая частота 20 МГц.

o Флэш-память программ (14 битных слов), 8 КБ.

o Память данных (байтов) — 368.

o Память данных EEPROM (байтов) — 256.

o 5 портов ввода / вывода.

o 3 таймера.

o 2 модуля КПК.

o 2 порта последовательной связи (MSSP, USART).

o Параллельный коммуникационный порт PSP

o 10-битный аналого-цифровой модуль (8 каналов)

Аналоговые функции

o 10-битный, до 8 каналов аналого-цифрового преобразователя.

o Функция сброса выхода из строя.

o Модуль аналогового компаратора.

Особенности

o 100000 циклов стирания / записи расширенной памяти.

o 1000000 циклов стирания / записи данных в памяти EEPROM.

o Самостоятельное программирование под управлением программного обеспечения.

o Последовательное внутрисхемное программирование и возможность внутрисхемной отладки.

o Один источник 5 В постоянного тока для последовательного программирования цепей

o WDT с собственным RC-генератором для надежной работы.

o Программируемая кодовая защита.

o Энергосберегающие спящие режимы.

o Выбираемые варианты осциллятора.

Схема выводов

Микросхема

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

Схема выводов микросхемы PIC 16F877

ИСТОЧНИК ИЗОБРАЖЕНИЯ

Порты ввода / вывода

PIC16F877 имеет 5 основных портов ввода / вывода.Обычно они обозначаются как ПОРТ A (R A), ПОРТ B (RB), ПОРТ C (RC), ПОРТ D (RD) и ПОРТ E (RE). Эти порты используются для взаимодействия ввода / вывода. В этом контроллере «ПОРТ A» имеет ширину всего 6 бит (от RA-0 до RA-7), «ПОРТ B», «ПОРТ C», «ПОРТ D» имеют ширину всего 8 бит (от RB-0 до RB-7). , RC-0 до RC-7, RD-0 до RD-7), «PORT E» имеет ширину только 3 бита (RE-0 до RE-7).

ПОРТ-А RA-0 до RA-5 Ширина 6 бит
ПОРТ-B RB-0 до RB-7, ширина 8 бит
ПОРТ-С RC-0 к RC-7, ширина 8 бит
ПОРТ-Д RD-0 до RD-7, ширина 8 бит
ПОРТ-E RE-0 до RE-2 3-битная ширина

Все эти порты двунаправленные.Направление порта контролируется с помощью регистров TRIS (X) (TRIS A используется для установки направления PORT-A, TRIS B используется для установки направления для PORT-B и т. Д.). Установка бита TRIS (X) «1» устанавливает соответствующий бит PORT (X) в качестве входного. Очистка бита TRIS (X) «0» установит соответствующий бит PORT (X) как выходной.

(Если мы хотим установить ПОРТ A в качестве входа, просто установите бит TRIS (A) в логическую «1» и хотите установить ПОРТ B в качестве выхода, просто установите биты PORT B ​​в логический «0».)

o Аналоговый входной порт (AN0 TO AN7): эти порты используются для сопряжения аналоговых входов.

o TX и RX: это порты передачи и приема USART.

o SCK: эти контакты используются для подачи синхронного последовательного тактового сигнала.

o SCL: эти контакты действуют как выход для режимов SPI и I2C.

o DT: это синхронные терминалы данных.

o CK: вход синхронных часов.

o SD0: вывод данных SPI (режим SPI).

o SD1: ввод данных SPI (режим SPI).

o SDA: ввод / вывод данных в режиме I2C.

o CCP1 и CCP2: это модули захвата / сравнения / ШИМ.

o OSC1: вход генератора / внешняя синхронизация.

o OSC2: выход генератора / тактовый выход.

o MCLR: главный вывод сброса (активный сброс низкого уровня).

o Vpp: вход напряжения программирования.

o THV: Управление режимом проверки высокого напряжения.

о Vref (+/-): опорное напряжение.

o SS: Выбор ведомого для синхронного последовательного порта.

o T0CK1: тактовый вход на ТАЙМЕР 0.

o T1OSO: Выход генератора таймера 1.

o T1OS1: Вход генератора таймера 1.

o T1CK1: вход часов для таймера 1.

o PGD: данные последовательного программирования.

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

o PGM: Вход для программирования низкого напряжения.

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

o RD: Управление чтением для параллельного подчиненного порта.

o CS: Выберите управление параллельным ведомым устройством.

o PSP0 — PSP7: параллельный подчиненный порт.

o VDD: положительное питание для логических и входных контактов.

o VSS: заземление для логических и входных / выходных контактов.

Ознакомьтесь с техническими характеристиками PIC 16F87X Series

PIC 16F87X Технические характеристики

Чтобы узнать больше об архитектуре и организации памяти PIC 16F877, щелкните ссылку ниже.

ПОСМОТРЕТЬ: PIC 16F877 — АРХИТЕКТУРА И ОРГАНИЗАЦИЯ ПАМЯТИ

ПИК

Микроконтроллеры PIC — одни из самых популярных 8-битных микроконтроллеров.Microchip имеет сотни различных микроконтроллеров — от миниатюрного корпуса SOT23 до 100-выводного PLCC. Они могут работать на частоте до 80 МГц и иметь внутреннюю флеш-память объемом до 512 кбайт.

Микроконтроллеры PIC — одни из самых популярных 8-битных микроконтроллеров. В настоящее время также доступен широкий спектр 16-битных и 32-битных микроконтроллеров PIC.

Microchip имеет сотни различных микроконтроллеров PIC в своем богатом портфолио — от крошечного корпуса SOT23 до 100-выводного PLCC.

ПЛЮСОВ:

  • Цены очень хорошие! Младшие устройства (PIC10Fxx) стоят 0,30 доллара за штуку в объеме.
  • Доступна бесплатная интегрированная среда разработки MPLAB для программирования на ассемблере и C. Существует множество недорогих аппаратных средств разработки — множество вариантов для отладчиков, программистов и т. Д.
  • Доступно большое количество разнообразных устройств с небольшими различиями в размерах памяти, разнообразии и количестве периферийных устройств
  • Порты GPIO являются источником хорошего тока и могут напрямую управлять светодиодами и т. Д.
  • ПИК

  • славятся своей надежностью. Старые детали OTP ‘C’ являются одними из самых надежных контроллеров, доступных на рынке. Также доступны ПИК в автомобильном температурном режиме в диапазоне -40 + 125С.
  • Очень хорошее программное обеспечение и документация!

МИНУСЫ:

  • Между разными PIC нет совместимости, и вам придется переписывать свой код каждый раз, когда вы переходите от одного PIC к другому.
  • Некоторые микроконтроллеры начального уровня требуют написания на ассемблере (хотя новые компиляторы PIC отлично работают с C), что является искусством программирования, поскольку нет программного стека или подкачки страниц, а изменение чтения GPIO не работает на ранних сериях PIC16Fxxx .
  • Некоторые новые флэш-устройства PIC16 и PIC32 содержат аппаратные ошибки (что, к сожалению, относится и ко всем другим производителям) и не так надежны, как старые устройства OTP.

pic16 · Темы GitHub · GitHub

pic16 · Темы GitHub · GitHub

Здесь
24 публичных репозитория
соответствует этой теме …

Перевернутый маятник, который прыгает и балансирует.Это упрощенная версия Cubli, которую вы можете построить самостоятельно.

VSCode Настройка, необходимая для кодирования микроконтроллера PIC с использованием компилятора microchip XC 8.

  • Обновлено
    3 сен.2020 г.
  • Пакетный файл

Библиотека устранения дребезга кнопок для каждого микроконтроллера

Проекты для микроконтроллера PIC 16F716.(PIC16F716) 8-разрядный 18-контактный.

  • Обновлено
    22 октября 2019 г.
  • сборка

Эксперименты с платами Microchip Curiosity Nano

Встроенная система

со сборкой с PIC 16 и C / C ++ с Arduino

  • Обновлено
    24 июля 2017 г.
  • Makefile

Драйвер компилятора CCS PIC C для контроллера 7-сегментного дисплея с общим катодом Maxim MAX7219

🧠 0-5.Регулируемая система беспроводного нейростимулятора 5 мА на базе PIC16F1713 и App Inventor.

Реализация загрузчика AN1310 PIC16 на Python

  • Обновлено
    25 февраля 2021 г.
  • Python

Асинхронный исполнитель для небольших встраиваемых устройств

Прошивка

Paintball для микроконтроллеров PIC16f648a.Разработан для работы с пейнтбольным пистолетом Dye Matrix. Это версия с открытым исходным кодом коммерчески доступного чипа CodeX начала 2000-х годов.

Самые сложные часы с «Время на языке» на электронном бумажном дисплее, работающем от батареи

Детектор движения с микроконтроллером PIC16LF1459, модулем nRF24L01 + и ИК-датчиком

реализация контроллера BLDC с использованием микрочипа PIC16

Макросы для семейств процессоров Microchip низкого и среднего уровня.Распределение RAM, аритметика, контакты портов.

Код электронной системы голосования создан для pic16f877a

Open Hardware and Firmware — ShotTimer для измерения скорости стрельбы для пейнтбольных ружей

Файлы и ресурсы, используемые в курсе UCLA COMPTNG 16 (весна 2017 г.).

  • Обновлено
    14 июня 2017 г.
  • Python

🚗 Радиоуправляемая машина с микроконтроллером PIC на языке XC8.

Реализация цифрового аналогового преобразования через фильтр PWM на PIC16F15313

PIC16F15345 и GPS (3) Click Module

DCF77 Часы с PIC16F73

Улучшить эту страницу

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

Куратор этой темы

Добавьте эту тему в свое репо

Чтобы связать ваш репозиторий с
рис16
тема, посетите целевую страницу репо и выберите «управлять темами».

Узнать больше

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

Лучшие проекты микроконтроллеров PIC Идеи для студентов инженерных специальностей

Микроконтроллеры

PIC представляют собой электронные схемы, которые можно запрограммировать для выполнения широкого круга задач. Название PIC первоначально называлось «Контроллер периферийного интерфейса». Позже он был изменен на «Программируемый интеллектуальный компьютер».Микроконтроллеры PIC в основном используются любителями и экспериментаторами, особенно в области электроники и робототехники. Основными особенностями микроконтроллера PIC являются широкая доступность, низкая стоимость, простота перепрограммирования с помощью встроенной EEPROM, обширная коллекция бесплатных заметок по применению, множество инструментов разработки и большой объем информации, доступной в Интернете. Микроконтроллеры PIC часто выпускаются под торговой маркой PICmicro.

Прочтите сообщение: Архитектура микроконтроллера PIC, чтобы получить подробную информацию о микроконтроллере PIC.

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

Сообщение по теме: 8051 Проекты на базе микроконтроллеров

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

  • PIC PWM Calculator: В этом проекте мы разрабатываем калькулятор для выполнения математических операций с помощью контроллера PIC. Для разработки проекта мы используем клавиатуру и ЖК-дисплей вместе с этим проектом. Ввод осуществляется с клавиатуры, и результат отображается на ЖК-экране.
  • Система управления библиотекой с использованием PIC: Этот проект используется для управления библиотечной системой с помощью контроллера PIC. Это отличается от обычной системы управления библиотекой. В этом проекте управления библиотекой на основе контроллера PIC каждый (кто пользуется библиотечными услугами) предоставит удостоверение личности с цифровыми данными, хранящимися в ней, вместе со своими реквизитами.Контроллер PIC используется для чтения цифровых данных в нем.
  • Мигалка аварийного автомобиля с использованием PIC16F84: Этот проект предназначен для разработки аварийных фонарей автомобиля с использованием микроконтроллера PIC. Это предупреждающее устройство, которое мигает световым сигналом при движении автомобиля скорой помощи, чтобы предупредить окружающих. И это очень полезно в плохих погодных условиях.
  • Автоматизированная городская система управления водными ресурсами с использованием PIC: Автоматическая городская система полива — отличная идея, которая помогает нам управлять системой полива с помощью контроллера PIC.Этот проект автоматизирует систему полива путем регулирования скорости и расхода воды, а также количества воды, распределяемой по участкам, с помощью PIC.
  • Микросхема часов реального времени (DS1307) Использование PIC: Используя микроконтроллер PIC, мы можем разработать часы реального времени для представления времени в цифровом формате. В этом проекте используется RTC IC DS1307 и 4-значные семисегментные дисплеи для визуального отображения часов.
  • Регистратор данных температуры с использованием PIC EEPROM: Это очень простой проект регистратора данных, разработанный с использованием контроллера PIC.Мы используем датчик температуры для измерения температуры. Контроллер будет регулярно считывать значения с датчика и сохранять их в EEPROM. Используя последовательный интерфейс, мы можем передавать зарегистрированные значения температуры на компьютер.
  • Датчик газа с использованием PIC16F84A: Проект детектора газа — это проект домашней автоматизации, в котором датчик газа используется для обнаружения утечек газа. Эта задача обнаружения газа управляется с помощью контроллера PIC. Если датчик обнаруживает утечку газа в окружающей среде, он будет предупреждать пользователя, подавая сигнал тревоги (пьезозуммер) и зажигая светодиод.
  • Система предоплаты за электроэнергию: Эта система предоплаты за электроэнергию используется для обеспечения экономичного способа оплаты счетов за электроэнергию в режиме реального времени. Эта концепция предусматривает использование карты пополнения на определенную сумму. Если будет произведена только подзарядка, счетчик электроэнергии будет работать, что предотвратит мошенничество и мошенничество при использовании электроэнергии.
  • Создание двоичных часов с помощью микроконтроллера PIC: мы можем разработать двоичные часы, используя контроллер PIC и светодиоды.ИС часов реального времени ПОДКЛЮЧЕНА К ПИК КОНТРОЛЛЕРУ И светодиодам для отображения часов. Вся система питается от батареи постоянного тока напряжением 9 В.
  • Контроллер температуры

  • с использованием микроконтроллера PIC: Эта автоматическая система контроля температуры разработана с использованием контроллера PIC и датчика температуры. Датчик температуры определяет температуру в помещении и отправляет информацию на контроллер. Если уровни температуры превышают заданные уровни, то управление будет осуществляться запрограммированным контроллером PIC.
  • Контроллер влажности

  • с использованием микроконтроллера PIC: проект контроллера влажности используется для обнаружения и управления уровнем влажности с помощью PIC. Датчик влажности подключен к PIC-контроллеру. Он измеряет уровень влажности и отправляет отчет на контроллер PIC.
  • Система мониторинга парковки: Автоматическая система парковки — очень хорошая идея для проекта в реальном времени. Эта автоматическая парковка позволяет парковать автомобили этаж за этажом и, таким образом, сокращает используемое пространство.Здесь может быть припарковано любое количество машин в соответствии с потребностями. Это делает систему модернизированной и даже компактной. Система автоматической парковки автомобилей здесь мы работаем над отображением количества парковочных мест, доступных на стоянке.
  • Система измерения солнечной энергии от контроллера PIC: Этот проект используется для измерения солнечной энергии. В этом проекте используются датчик напряжения и датчики тока для измерения солнечной энергии, а уровни напряжения отображаются с помощью ЖК-дисплея.
  • A PIC Sonar (ультразвуковой) дальномер с использованием семисегментного дисплея: Схема дальномера используется для определения расстояния до объекта.Этот проект разработан с использованием контроллера PIC и ультразвукового датчика звука. Датчик подключен к контроллеру, и расстояние будет отображаться на ЖК-экране.
  • 3-х светодиодный велосипедный фонарь с использованием PIC10F200: Проект 3-х светодиодного велосипедного фонаря используется для отображения светодиодов с помощью контроллера PIC. Многоцелевые светодиодные фонари подключены к контроллеру PIC, и они будут светиться в зависимости от состояния и движения велосипеда.
  • 3-Switch Mini IR Remote Control: Этот проект используется для управления домашними устройствами с помощью беспроводного пульта дистанционного управления.Для этого используется пульт дистанционного управления с ИК-датчиком и PIC-контроллер. ИК-пульт дистанционного управления hs 3 кнопками для дистанционного управления 3 приборами.
  • Система мониторинга и управления теплицей на базе PIC: Эта система на основе контроллера PIC будет использовать датчик влажности, датчик температуры и резистор, зависящий от света, для контроля влажности, температуры и освещения. Информация, собранная этими датчиками, будет отправлена ​​на контроллер PIC, и, таким образом, он управляет окружающей средой, регулируя погоду.
  • LED Chaser с использованием PIC: Эта схема LED Chaser используется для регулировки уровней яркости светодиодов с помощью контроллера PIC. Контроллер PIC регулирует уровни напряжения в последовательности, чтобы контролировать их интенсивность.
  • Электронная машина для голосования

  • с использованием микроконтроллера pic: Этот проект системы голосования, управляемой PIC, очень полезен при проведении викторин и опросов аудитории. В этом проекте используется пьезозуммер и светодиод для создания предупреждения, когда пользователь нажимает кнопку.
  • Телефонный пульт дистанционного управления с использованием микроконтроллера PIC16F84A: Этот проект используется в качестве дистанционного управления DTMF с помощью контроллера pic. этому устройству не нужно отвечать на вызов на удаленном конце, поэтому плата за вызов не взимается. Это устройство зависит от количества звонков, подаваемых на телефонной линии для включения / выключения устройств.
  • Как использовать микроконтроллер PIC для голосового ввода и вывода: в этом проекте мы используем контроллер PIC для считывания аналогового входного напряжения. Считываемый вход является выборкой в ​​тот же момент и производит те же сигналы, которые достаточно сильны, чтобы производить звуковые эффекты с использованием громкоговорителя.
  • Как реализовать SPI с помощью PIC18F4550: Мы можем реализовать SPI (последовательный периферийный интерфейс) с помощью микроконтроллера PIC. SPI — самое популярное устройство, которое используется для передачи последовательных данных. В этом проекте мы представляем два типа устройств с последовательным интерфейсом, такие как ведущее устройство SPI и ведомое устройство SPI. Выход главного SPI будет управлять потоком данных подчиненного SPI.
  • Как работать со встроенными аналоговыми компараторами PIC18F4550: Аналоговый компаратор — это устройство, которое сравнивает напряжения двух источников напряжения и указывает источник высокого напряжения с помощью светодиода.В этом проекте мы реализуем PIC-контроллер для работы со светодиодом, чтобы визуально указать, какой источник напряжения высокий.
  • Как использовать таймеры в микроконтроллере PIC18F4550: В этом проекте мы реализуем модули таймера в контроллере PIC для генерации точной задержки времени. Этот модуль используется в различных устройствах, таких как периферийные устройства с автоматическим запуском и устройства генерации сигналов ШИМ.
  • Как настроить EUSART в микроконтроллере PIC18F4550: В этом проекте мы настраиваем EUSART (усовершенствованный универсальный синхронный асинхронный приемник-передатчик).Эта концепция используется в последовательной связи, поскольку сконфигурированный EUSART имеет возможность передавать данные на большие расстояния с возможностью обнаружения ошибок.
  • Семисегментное мультиплексирование с использованием микроконтроллера PIC18F4550: Основная цель проекта — отображать числа с помощью мультиплексированных 7-сегментных дисплеев, управляемых с помощью контроллера PIC. Концепция мультиплексированного семи сегментного дисплея используется в калькуляторах и цифровых табло.
  • PIC USB HID (устройство интерфейса пользователя) Интерфейс: контроллер PIC используется для разработки устройства интерфейса пользователя USB.Интерфейс может отправлять и получать команды от USB-хоста портативного компьютера. Это означает, что USB должен иметь возможность включать и выключать некоторые светодиоды, распознавать нажатие переключателя и визуализировать значение переменного резистора, подстроечного резистора.
  • Однофазный автономный ИБП

  • с использованием микроконтроллера PIC: Этот проект предназначен для управления устройством ИБП на базе контроллера PIC. Мы используем особенности контроллера PIC для управления работой ИБП. Контроллер PIC используется для регулирования напряжения питания и для создания линейного выходного напряжения.
  • Биометрическая система аутентификации банкоматов на основе отпечатков пальцев: этот биометрический проект используется для аутентификации личности пользователя с помощью методов отпечатка большого пальца, распознавания лица или отпечатка ладони. Микроконтроллер PIC используется для авторизации данных из пользовательской базы данных банкомата.
  • ПИ-регулирование для бесщеточного двигателя постоянного тока, работающего с заданной скоростью: с помощью микроконтроллера PIC мы можем управлять скоростью бесщеточного двигателя постоянного тока. Мы можем заставить двигатель работать с желаемой скоростью. Контроллер PIC подключается к клавиатуре для ввода желаемой скорости.
  • Электронная доска объявлений на базе Android с дистанционным управлением: этот проект доски объявлений на основе PIC используется для отображения сообщения на электрическом дисплее. Смартфон Android используется для отправки текстовых сообщений, которые нам нужно отобразить на доске. Модуль GSM используется для отправки и получения текстовых сообщений, а ЖК-экран используется для отображения сообщений.
  • Удаленно программируемая последовательная загрузка на базе Android. Проект удаленно программируемой последовательной загрузки на базе Android используется для управления электронными устройствами с помощью смартфона Android.это похоже на удаленное управление электрическими устройствами. Команды для управления этими устройствами подаются мобильной технологией Bluetooth Android.
  • Дистанционное управление бытовой техникой с помощью приложения Android: Система дистанционного управления бытовой техникой, основанная на графическом интерфейсе пользователя смартфона Android, разработана на смартфоне Android. Пользователь входит в интерфейс смартфона Android и нажимает кнопки для отправки команд сообщений из графического интерфейса пользователя, которые будут переданы в домашний информационный центр через сеть GSM.Затем процессор распознает указанную команду и управляет переключателями бытовой техники в беспроводном радиочастотном режиме, чтобы в конечном итоге обеспечить удаленное управление приборами.
  • Блокировка I-кнопки с помощью контроллера PIC: Система блокировки I-кнопки на основе контроллера PIC представляет собой проект домашней безопасности, который используется для блокировки двери с помощью запрограммированной PIC I-кнопки. Кнопка I– — это устройство, которое используется для связи только с двумя проводами.
  • светодиодный дисплей с прокруткой PIC-контроллер: Этот проект на основе PIC-контроллера используется для отображения прокручиваемой текстовой информации с помощью светодиодного дисплея.в этом проекте для прокрутки данных используются регистры сдвига и счетчики. Связка светодиодов (или светодиодная кровать) подключена к PIC-контроллеру для отображения прокручиваемого текста.
  • Система блокировки безопасности на основе контроллера PIC: это проект домашней безопасности на основе пароля, управляемый с помощью контроллера PIC. Дверь запирается с помощью кода безопасности, который хранится в микроконтроллере. Когда человек вводит правильный пароль или PIN-код с клавиатуры, открывается только дверь, в противном случае дверь остается заблокированной.
  • 48-канальный моно / 16-канальный светодиодный контроллер RGB: здесь предлагается 48-канальный светодиодный контроллер. Он может управлять 48 группами одноцветных светодиодов. Он использует 3 светодиодных драйвера вместе с микрокроллером pic.
  • Mood Vase: Обнаружена красивая ваза, которая включается в темноте. Эту вазу можно использовать как декоративный элемент.
  • Декодер тонального набора DTMF с использованием микропроцессора Microchip PIC: здесь описывается декодер тонального набора DTMF с использованием Pic. Здесь микропроцессор PIC12F683 используется для декодирования тона DTMF.
  • Контроллеры LED CUBE 53Â: В этом проекте показан контроллер куба 53 Led. Здесь для построения светодиодного куба используются одноцветные светодиоды.
  • UFO round LED Chaser с регулировкой скорости: здесь Led Chaser использует PWM для управления светодиодами. Микроконтроллер PIC 16F628A используется как сердце проекта.
  • F1 Gantry Race Start Lights: разработана последовательность старта гонки с использованием 5 огней для простой трассы гонки F1. Трасса может иметь фиксированную или случайную задержку.
  • Мониторинг сигнала ЭКГ в реальном времени с использованием PIC и веб-сервера: здесь была разработана беспроводная сенсорная сеть для наблюдения за состоянием здоровья пациентов.Он использует микроконтроллер PIC.
  • LED DICE с PIC: Вот проект, показывающий схему LED Die с использованием микроконтроллера PIC. Игральные кости созданы с использованием красных светодиодов. Это простая и недорогая схема.
  • ШИМ-контроллер вентилятора: технология ШИМ используется для управления скоростью вентилятора. Здесь широтно-импульсная модуляция производится контроллером PIC16F877A. Тестируется с двумя вентиляторами.
  • Супер-простой карманный mp3-плеер !: Здесь разработан простой карманный MP3-плеер.Он использует микроконтроллер PIC 16LF877 и флэш-карту 100 ГБ. Он также использует микросхему декодера vs1001k со встроенным ЦАП. Песни хранятся на SD-карте, а затем обрабатываются блоком MCU, наконец, передаются декодеру.
  • Светодиодный стробоскоп

  • для PIC12F629 / 675: Здесь простая схема светодиодного стробоскопа разработана с использованием микроконтроллера pic. Светодиоды стробоскопа используются в качестве предупреждающих сигналов для полиции или пожарных и т.д. Они мигают в течение определенного времени с регулярными интервалами. Здесь микроконтроллер управляет этим стробоскопическим светодиодом.
  • Geek Clock: двоичные часы разработаны с использованием микроконтроллера PIC 16F874A.Он использует 6 столбцов светодиодных индикаторов для отображения времени в двоичном формате и использует микросхему DS1307 RTC для получения времени.
  • Инфракрасное / радиоуправление передатчиком / приемником с PIC: Здесь разработаны схемы кодировщика и декодера для схем радиопередатчика и приемника 433 МГц. Эти схемы обеспечивают передачу цифровых сигналов с использованием радиоволн или инфракрасных волн.
  • Power Pic RGB с регулировкой напряжения: RGB-подсветка используется для получения света разного цвета из одного источника света. Это простой проект, показывающий RGB-подсветку, управляемую двумя разными источниками напряжения для изменения цвета.Микроконтроллер pic 12F675 используется здесь для управления этими лампами.
  • Сетевое зарядное / разрядное устройство

  • DIY: в этой статье подробно рассказывается о зарядном устройстве DIY Gris. Этот проект можно построить с использованием компонентов, доступных на eBay. Подробнее читайте в статье.
  • Идентификация линии (CLI): этот проект показывает схему, которая идентифицирует вызывающего абонента по телефону. Телефонный провод, подключенный к схеме, так что он будет отображать имя вызывающего абонента, сопоставляя его с сохраненными номерами.
  • Простой частотомер ВЧ / СВЧ: в этом проекте показан простой частотомер с использованием микроконтроллера PIC 16F876A. Диапазон этого счетчика расширен до 180 МГц с помощью двух устройств 74FXX.