8-900-374-94-44
[email protected]
Slide Image
Меню

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

Содержание

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

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

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

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

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

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

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

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

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

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

Компилятор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Прошивка

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

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

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

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

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

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

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

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

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

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

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

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

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

Паяем…


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

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

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

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

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

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

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

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

Program All, затем Verify All

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

Результат

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

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

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

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


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

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

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

Использование PIC-микроконтроллера и ИС UCN-5804 для управления ШД. Создаем робота-андроида своими руками [litres]

Использование PIC-микроконтроллера и ИС UCN-5804 для управления ШД

Мы использовали схему управления работой ШД непосредственно с помощью ИС PIC. Также для управления работой ШД мы использовали специализированную ИС. При совместном использовании специализированной ИС и PIC-микроконтроллера мы можем объединить преимущества, характерные для каждой из схем. ИС UCN-5804 в этом случае выполняет всю «черновую» работу по управлению работой ШД. При некотором усложнении конечной электрической схемы программа управления PIC может быть сильно упрощена, что является хорошим решением.

Принципиальная схема устройства управления ШД с использованием специализированной ИС показана на рис. 10.15, а фотография устройства приведена на рис. 10.16. Питание ИС UCN-5804 осуществляется от источника постоянного тока напряжением 5 В. При напряжении питания 5 В управляющие работой ШД напряжения могут достигать 35 В.

Рис. 10.15. Схема микроконтроллера шагового двигателя

Рис. 10.16. Принципиальная схема микроконтроллера и ИС управления шаговым двигателем

Обратите внимание, что на схеме присутствуют два резистора, обозначенные «rx» и «ry» без указания их номинала. Наличие или отсутствие этих резисторов определяется типом применяемого ШД. Целью введения этих резисторов является ограничение выходного тока, протекающего через ШД, значением 1,25 А (в случае необходимости).

Рассмотрим наш ШД с напряжением питания 5 В. Его обмотки имеют сопротивление 13 Ом. Ток, протекающий через обмотки, составляет 5В/130 м=0,385А, или 385 мА, что значительно ниже максимально разрешенного значения тока 1,25 А для ИС UCN-5804. Поэтому для данного случая резисторы rx и ry не требуются и могут быть исключены из схемы.

Перед тем как мы двинемся дальше, рассмотрим еще один случай. ШД с напряжением питания 12 В имеет сопротивление обмоток 6 Ом. Ток, протекающий через обмотки ШД, составит 12 В/6 Ом=2 А. Такое значение тока превышает максимально допустимое для ИС UCN-5804. Для использование данного ШД резисторы rx и ry необходимы. Для обеспечения одинакового крутящего момента для каждой фазы сопротивления rx и ry должны быть равны. Величины резисторов должны ограничивать ток до величины 1,25 А или ниже. В данном случае сопротивление резисторов должно быть не менее 4 Ом (при мощности от 5 до 10 Вт). При включении резисторов значение тока составит 12 В/10 Ом = 1,20 А.

Уровни входов ИС UCN-5804 совместимы с выходами КМОП– и ТТЛ-логики. Это означает, что для нормальной работы схемы мы можем непосредственно соединить входы ИС с шинами выхода PIC-микроконтроллера. Входные тактовые импульсы (вывод 11) для ИС UCN-5804 генерируются PIC-микроконтроллером. Вывод управления выходом разрешает вращение ШД при подаче сигнала низкого уровня и останавливает ШД при сигнале высокого уровня.

Выводы 10 и 14 ИС UCN-5804 управляются переключателями, подающими сигналы высокого или низкого уровня. Вывод 10 управляет режимами полного или половинного шага, а вывод 14 управляет направлением вращения. При желании этими функциями можно управлять с помощью PIC. Для управления на соответствующие выводы подаются сигналы высокого или низкого уровня аналогично управлению работой выхода ИС.

Программа на PICBASIC для обеспечения работы схемы имеет следующий вид:

‘Управление шаговым двигателем через ИС UCN?5804

Symbol TRISB = 134 ‘Инициализировать TRISB как 134

Symbol PortB = 6 ‘Инициализировать PortB как 6

Poke TRISB,0 ‘Установить шины PORTB на выход

low1 ‘Установить выход на низкий уровень

start:

pulsout 0, 10000 ‘Подача 10 мс импульсов на UCN?5804

goto start ‘Повторение

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

Данный текст является ознакомительным фрагментом.

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

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

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

Подробности программирования PIC микроконтроллера Программирование PIC микроконтроллера происходит в три этапа. Однако прежде чем приступить к собственно программированию, вам необходимо приобрести две вещи: программу компилятор PICBASIC и программатор EPIC (плата, куда

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

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

Движемся дальше – приложения использования микроконтроллера

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

Список необходимых частей для программирования микроконтроллера

Список необходимых частей для программирования микроконтроллера • компилятор PSIBASIC• компилятор PSIBASIC Pro (включая CodeDesignerLit)• программатор EPIC• компилятор PICBASIC и программатор EPIC• CodeDesigner любительская версия• CodeDesigner стандартная версия• 16F84-4 1 шт.• кварцевый резонатор

ИС UCN-5804

ИС UCN-5804 На рис.  10.7 изображена цоколевка ИС UCN-5804. ИС предназначена для управления и запитки четырехфазного однополярного шагового двигателя, который мы будем использовать в нашей конструкции. ИС UCN-5804 имеет следующие параметры:• Максимальный выходной ток в непрерывном

Применение ИС UCN-5804

Применение ИС UCN-5804 На рис. 10.8 изображена схема управления ШД с использованием ИС UCN-5804. Тактовые импульсы вырабатываются с помощью таймера ИС 555. Частота тактовых импульсов может быть увеличена или уменьшена с помощью переменного резистора V1. Изменение частоты тактовых

Использование микроконтроллера для управления ШД

Использование микроконтроллера для управления ШД Для изучения принципов работы ШД изготовим схему управления ШД с помощью микроконтроллера PIC

Программа для микроконтроллера

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

8. Использование энергии

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

8.2.4.3.8 Использование клавиатуры

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

5.

5.4. АВТОМАТИЗИРОВАННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ ТЕХНОЛОГИЧЕСКИМИ ПРОЦЕССАМИ И КОМПЛЕКСЫ ПРОТИВОАВАРИЙНОГО УПРАВЛЕНИЯ

5.5.4. АВТОМАТИЗИРОВАННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ ТЕХНОЛОГИЧЕСКИМИ ПРОЦЕССАМИ И КОМПЛЕКСЫ ПРОТИВОАВАРИЙНОГО УПРАВЛЕНИЯ Работы по созданию автоматизированных систем управления технологическими процессами (АСУ ТП) электроэнергетических объектов были начаты с появлением

2.1. Реактивная система управления корабля Apollo. Общая характеристика системы управления

2.1. Реактивная система управления корабля Apollo. Общая характеристика системы управления Все 3 отсека корабля Apollo – командный отсек, служебный отсек и лунный корабль – имеют самостоятельные реактивные системы управления (рис. 21.1). Рис. 21.1. Корабль Apollo: 1 – лунный корабль; 2 –

13.1 Использование ранее разработанного ПО

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

Архитектура микроконтроллера PIC и новейшие приложения

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

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

Микроконтроллер PIC — это самый маленький микроконтроллер в мире, который может быть разработан для выполнения огромного количества задач. . Эти микроконтроллеры находятся в электронных устройствах, таких как телефоны, компьютеры, встроенные операционные системы и т. д. Кроме того, функции этих микроконтроллеров включают ОЗУ, CCP, SSP, LCD, ICSP и т. д.

Архитектура микроконтроллера PIC

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

ЦП — Центральный процессор

Этот ЦП состоит из АЛУ, БУ, МУ, накопителя и т. д. АЛУ (Арифметико-логическое устройство) используется для арифметических операций, а также для принятия логических решений. Память используется для хранения инструкций. Используются CU, которые подключены к CPU и аккумулятору для хранения результатов.

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

Микроконтроллер PIC состоит из пяти портов, таких как порт A, порт B, порт C, порт D и порт E.

Порт A: Это 16-битный порт, который можно использовать для входного и выходного порта на основе состояния регистра TRISA.

Порт B: Это 8-битный порт, который можно использовать как вход и выход.

Порт C: 8-битный порт и операции ввода или вывода определяются состоянием регистра TRISC.

Порт D: 8-битный порт, который действует как подчиненный порт для подключения к микроконтроллеру ARM.

Порт E: Это 3-битный порт, который выполняет дополнительную функцию аналогово-цифрового преобразователя управляющих сигналов.

Организация памяти

Эта архитектура микроконтроллера состоит из оперативной памяти, постоянной памяти и стека.

Оперативная память

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

Память только для чтения

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

СТЕК

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

Таймеры/счетчики

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

Осцилляторы

Как правило, осцилляторы используются для генерации тайминга. Он состоит из внешнего генератора, такого как RC и кварцевые генераторы. В RC-генераторе значение конденсатора и резистора, которые используются для определения тактовой частоты. Диапазон тактовой частоты составляет от 30 кГц до 4 МГц.

Прерывания

Он состоит из 20 внутренних прерываний и трех внешних прерываний, связанных с различными периферийными устройствами, такими как АЦП, USART, таймеры и т. д. Модуль CCP работает в трех режимах, таких как режим захвата, режим сравнения и режим ШИМ.

Применение микроконтроллера PIC

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

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

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

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

Микроконтроллер PIC Преимущества

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

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

29 октября 2020 — 0 комментариев

          Микроконтроллер PIC16F628A PIC
          Распиновка PIC16F628A

      PIC16F628A представляет собой 8-разрядный микроконтроллер среднего уровня на основе CMOS FLASH , который поставляется с 18-контактным корпусом, из которых 16 контактов могут использоваться в качестве контактов ввода-вывода. Этот микроконтроллер имеет внутренний генератор 4 МГц со 128 байтами памяти данных EEPROM, упакованный одним модулем Capture/Compare/PWM и модулем USART с 2 компараторами. Этот микроконтроллер поддерживает программирование низкого напряжения.

       

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

      Номер контакта

      Название контакта

      Описание

      1

      РА2/АН2/ВРЕФ

      Контакт двунаправленного ввода-вывода порта A, бит 2, или вход аналогового компаратора, канал 2, или выход аналогового опорного напряжения

      2

      РА3/АН3/КМП1

      Двунаправленный порт ввода-вывода или вход аналогового компаратора или выход компаратора 1.

      3

      РА4/ТОКИ/КМП2

      Двунаправленный ввод/вывод порта A, бит 4 или вход тактового сигнала таймера 0 или выход канала компаратора 2.

      4

      РА5/МКЛР/ВПП

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

      5

      ВСС

      Контакт заземления питания.

      6

      РБ0/INT

      Контакт двунаправленного ввода-вывода порта B, бит 0 или контакт внешнего прерывания.

      7

      РБ1/РС/ДТ

      Контакт двунаправленного ввода-вывода порта B, бит 1 или USART Приемный контакт или синхронный ввод-вывод данных.

      8

      РБ2/ТС/СК

      Контакт двунаправленного ввода-вывода порта B, бит 2, или контакт передачи USART или ввод-вывод синхронных часов.

      9

      РБ3/КПК1

      Двунаправленный ввод-вывод порта B, бит 3 или сравнение ввода-вывода PWM.

      10

      РБ4/ПГМ

      Контакт двунаправленного ввода-вывода порта B, бит 4 или контакт программирования низкого напряжения.

      11

      РБ5

      Контакт двунаправленного ввода-вывода порта B, бит 5.

      12

      РБ6/Т1ОСК/Т1СКИ/ПГК

      Контакт двунаправленного ввода-вывода порта B, бит 6, или выход генератора Timer1, или вход часов Timer1, или часы программирования ICSP, в основном используемые для целей программирования.

      13

      РБ7/Т1ОСИ/ПГД

      Двунаправленный ввод-вывод порта B, бит 7, или вход генератора таймера 1, или данные программирования ICSP, в основном используемые для целей программирования.

      14

      ВДД

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

      15

      RA6/OSC2/CLKOUT

      Двунаправленный ввод-вывод порта A, бит 6, или кварцевый выход генератора, или тактовый сигнал в RC/INTOSC

      16

      РА7/ОСК1/КЛКИН

      Двунаправленный ввод/вывод порта A, бит 7 или вход кварцевого генератора или вход внешнего тактового генератора

      17

      RA0/AN0

      Контакт двунаправленного ввода-вывода порта A, бит 0 или входной канал аналогового компаратора 0.

      18

      РА1/АН1

      Контакт двунаправленного ввода-вывода порта A, бит 1 или входной канал аналогового компаратора 1

       

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

      PIC16F628A — упрощенные характеристики и спецификация

      ЦП

      Среднечастотный 8-разрядный

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

      18

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

      2 — 5,5 В

      Количество контактов ввода-вывода

      16

      Модуль АЦП

      нет

      Модуль таймера

      3   

      Компараторы

      2

      Модуль ЦАП

      нет

      Периферийные устройства связи

      УАПП(1)

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

      Да

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

      4 МГц

      Память программ (КБ)

      3,5 КБ

      Скорость процессора (MIPS)

      5

      байт ОЗУ

      224 байта

      ЭСППЗУ данных

      128 байт

       

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

       

      Альтернатива для PIC16F628A

      Альтернативные продукты для микроконтроллера PIC16F628A перечислены ниже:

      1. PIC12F629
      2. ПИК12Ф683
      3. ПИК16Ф505
      4. ПИК12Ф508
      5. ПИК16Ф676
      6. ПИК16Ф72
      7. ПИК16Ф873А
      8. ПИК16Ф876А
      9. ПИК16Ф886
      10. ПИК16Ф252

       

      Другой 8-разрядный микроконтроллер

      PIC16F1503

       

      Знакомство с PIC16F628A

      PIC16F628A — это 8-разрядный микроконтроллер среднего уровня на базе CMOS FLASH, который поставляется в 18-контактном корпусе, из которых 16 контактов могут использоваться в качестве контактов ввода-вывода. Этот микроконтроллер имеет внутренний генератор 4 МГц со 128 байтами памяти данных EEPROM, упакованный одним модулем Capture/Compare/PWM и модулем USART с 2 компараторами. Этот микроконтроллер поддерживает программирование низкого напряжения.

       

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

       

      PIC16F628A работает с напряжением от 2 В до 5,5 В, поэтому подходит для приложений с логическим уровнем 3,3 В и 5,0 В. Сброс при выключении питания, сброс при включении питания, сторожевой таймер с независимым генератором, энергосберегающие спящие режимы также поддерживаются микроконтроллером PIC16F628A. Схема контактов PIC16F628A показана ниже:

       

      Подробные характеристики PIC16F628A

      PIC16F628A – подробные характеристики

      ЦП

      Средний диапазон 8 — бит

      Архитектура

      8-битный

      Размер памяти программ (Кбайт)

      3,5 КБ

      ОЗУ (байт)

      224 байта

      ЭСППЗУ/HEF

      128 байт

      Количество выводов

      18

      Макс. Частота процессора (МГц)

      20 МГц

      Выбор периферийного контакта (PPS)

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

      4 МГц

      Количество компараторов

      2

      № операционного усилителя

      нет

      Количество каналов АЦП

      нет

      Максимальное разрешение АЦП (бит)

      АЦП с вычислением

      Номер преобразователя ЦАП

      нет

      Максимальное разрешение ЦАП

      Внутреннее опорное напряжение

      2 — 5,5 В

      Обнаружение пересечения нуля

      Количество 8-битных таймеров

      2

      Количество 16-битных таймеров

      1

      Таймер измерения сигнала

      Аппаратный таймер ограничения

      Количество выходов ШИМ

      1

      Максимальное разрешение ШИМ

      1024

      Угловой таймер

      Математический ускоритель

      № модуля UART

      1

      № модуля SPI

      нет

      № модуля I2C

      нет

      № USB-модуля

      нет

      Оконный сторожевой таймер (WWDT)

      CRC/скан

      Осциллятор с числовым программным управлением

      Крышка. Сенсорные каналы

      нет

      Сегментный ЖК-дисплей

      нет

      Минимальная рабочая температура (*C)

      -40°С

      Максимальная рабочая температура (*C)

      125°С

      Минимальное рабочее напряжение (В)

      2 В

      Максимальное рабочее напряжение (В)

      5,5 В

      Возможность работы с высоким напряжением

       

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

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

       

      Для программирования микроконтроллера PIC нам понадобится IDE (интегрированная среда разработки), в которой происходит программирование. Компилятор, в котором наша программа преобразуется в удобочитаемую форму MCU, называемую HEX-файлами. IPE (интегрированная среда программирования), которая используется для создания дампа нашего шестнадцатеричного файла в наши микроконтроллеры PIC.

       

      IDE: MPLABX v3.35

      IPE: MPLAB IPE v3.35

      Компилятор: XC8

       

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

       

      Для создания дампа или загрузки нашего кода в PIC нам потребуется устройство с названием PICkit 3. Программатор/отладчик PICkit 3 представляет собой простой недорогой внутрисхемный отладчик, которым управляет работающий ПК.

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

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