Схемы на pic контроллерах – Проекты на PIC

Содержание

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

Выбор микроконтроллера обычно осуществляется под необходимые задачи. Для изучения хорошо подойдет популярный МК с минимальным набором периферии: 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в к питанию.


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

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

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

habr.com

Средства программирования PIC-контроллеров / Habr

Введение


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

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

Компания Microchip распространяет MPLAB — бесплатную интегрированную среду редактирования и отладки программ, которая записывает бинарные файлы в микроконтроллеры PIC через программаторы.

Взаимодействие MPLAB и Matlab/Simulink позволяет разрабатывать программы для PIC-контроллеров в среде Simulink — графического моделирования и анализа динамических систем. В этой работе рассматриваются средства программирования PIC контроллеров: MPLAB, Matlab/Simulink и программатор PIC-KIT3 в следующих разделах.

• Характеристики миниатюрного PIC контроллера PIC12F629
• Интегрированная среда разработки MPLAB IDE
• Подключение Matlab/Simulink к MPLAB
• Подключение программатора PIC-KIT3

Характеристики миниатюрного PIC-контроллера


Семейство РIС12ххх содержит контроллеры в миниатюрном 8–выводном корпусе со встроенным тактовым генератором. Контроллеры имеют RISC–архитектуру и обеспечивают выполнение большинства команд процессора за один машинный цикл.

Для примера, ниже даны характеристики недорогого компактного 8-разрядного контроллера PIC12F629 с многофункциональными портами, малым потреблением и широким диапазоном питания [1].

• Архитектура: RISC
• Напряжение питания VDD: от 2,0В до 5,5В (< 6,5В)
• Потребление:
— <1,0 мА @ 5,5В, 4МГц
— 20 мкА (тип) @ 32 кГц, 2,0В
— <1,0 мкА (тип) в режиме [email protected],0В
• Рассеиваемая мощность: 0,8Вт
• Многофункциональные каналы ввода/вывода: 6/5
• Максимальный выходной ток портов GPIO: 125мА
• Ток через программируемые внутренние подтягивающие резисторы портов: ≥50 (250) ≤400 мкА @ 5,0В
• Разрядность контроллера: 8
• Тактовая частота от внешнего генератора: 20 МГц
Длительность машинного цикла: 200 нс
• Тактовая частота от внутреннего RC генератора: 4 МГц ±1%
Длительность машинного цикла: 1мкс
• FLASH память программ: 1К
Число циклов стирание/запись: ≥1000
• ОЗУ память данных: 64
• EEPROM память данных: 128
Число циклов стирание/запись: ≥10K (-40оС ≤TA≤ +125 оС)
• Аппаратные регистры специального назначения: 16
• Список команд: 35 инструкций, все команды выполняются за один машинный цикл,
кроме команд перехода, выполняемых за 2 цикла
• Аппаратный стек: 8 уровней
• Таймер/счетчик ТМR0: 8-разрядный с предделителем
• Таймер/счетчик ТМR1: 16-разрядный с предделителем

Дополнительные особенности:
• Сброс по включению питания (POR)
• Таймер сброса (PWRTтаймер ожидания запуска генератора (OST
• Сброс по снижению напряжения питания (BOD)
• Сторожевой таймер WDT
• Мультиплексируемый вывод -MCLR
• Система прерываний по изменению уровня сигнала на входах
• Индивидуально программируемые для каждого входа подтягивающие резисторы
• Программируемая защита входа
• Режим пониженного энергопотребления SLEEP
• Выбор режима работы тактового генератора
• Внутрисхемное программирование ICSP с использованием двух выводов
• Четыре пользовательские ID ячейки

Предельная рабочая температура для Е исполнения (расширенный диапазон) от -40оС до +125 оС;
Температура хранения от -65оС до +150 оС.

КМОП технология контроллера обеспечивает полностью статический режим работы, при котором остановка тактового генератора не приводит к потере логических состояний внутренних узлов.
Микроконтроллер PIC12F629 имеет 6-разрядный порт ввода/вывода GPIO. Один вывод GP3 порта GPIO работает только на вход, остальные выводы можно сконфигурировать для работы как на вход так и на выход. Каждый вывод GPIO имеет индивидуальный бит разрешения прерываний по изменению уровня сигнала на входах и бит включения внутреннего подтягивающего резистора.

Интегрированная среда разработки MPLAB IDE

MPLAB IDE — бесплатная интегрированная среда разработки ПО для микроконтроллеров PIC включает средства для создания, редактирования, отладки, трансляции и компоновки программ, записи машинного кода в микроконтроллеры через программаторы.

Загрузка MPLAB IDE

Бесплатные версии MPLAB (включая MPLAB 8.92) хранятся на сайте компании Microchip в разделе «DOWNLOAD ARCHIVE».

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

Пример создания проекта программ PIC контроллера в среде MPLAB включает следующие шаги [2].

1. Вызов менеджера проекта.


2. Выбор типа PIC микроконтроллера.
3. Выбор компилятора, например, Microchip MPASM для ассемблера.
4. Выбор пути к каталогу проекта (клавиша Browse...) и ввод имени проекта.

5. Подключение файлов к проекту в окне Project Wizard → Step Four можно не выполнять. Это можно сделать позднее, внутри активного проекта. Клавиша Next открывает следующее окно.

6. Завершение создания проекта (клавиша Finish).

В результате создания проекта FirstPrMPLAB интерфейс MPLAB принимает вид, показанный на Рис. 1.


Рис. 1. Интерфейс среды MPLAB v8.92 и шаблон проекта.

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

Создание программы в MPLAB можно выполнить в следующей последовательности.

1. Открыть редактор программ: меню → File → New. Изначально программе присвоено имя Untitled.

2. Набрать или скопировать программу, например, на ассемблере.

3. Сохранить программу под другим именем (меню → File → Save As), например, FirstPrMPLAB.asm.


Рис. 2. Пример простейшей программы (на ассемблере) вывода сигналов через порты контроллера GP0, GP1, GP2, GP4, GP5 на максимальной частоте.

Запись ‘1’ в разряде регистра TRISIO переводит соответствующий выходной буфер в 3-е состояние, в этом случае порт GP может работать только на вход. Установка нуля в TRISIO настраивает работу порта GP на выход.

Примечание. По спецификации PIC12F629 порт GP3 микроконтроллера работает только на вход (соответствующий бит регистра TRISIO не сбрасывается – всегда находится в ‘1’).

Регистры TRISIO и GPIO находятся в разных банках области памяти. Переключение банков выполняется 5-м битом регистра STATUS.

Любая программа на ассемблере начинается директивой org и заканчивается директивой end. Переход goto Metka обеспечивает циклическое выполнение программы.

В программе (Рис. 2) используются следующие обозначения.

Директива LIST — назначение типа контроллера
Директива __CONFIG — установка значений битов конфигурации контроллера
Директива equ — присвоение числового значения
Директива org 0 — начало выполнения программы с адреса 0
Команда bsf — устанавливает бит указанного регистра в 1
Команда bсf — сбрасывает бит указанного регистра в 0
Команда movlw — записывает константу в регистр W
Команда movwf — копирует содержимое регистра W в указанный регистр
Команда goto — обеспечивает переход без условия на строку с меткой
Директива end — конец программы

Установка требуемой конфигурации микроконтроллера
Конфигурация микроконтроллера PIC12F629 зависит от настроек слова конфигурации (2007h), которые можно задать в программе через директиву __CONFIG.

Непосредственно или через окно MPLAB: меню → Configure → Configuration Bits:

Где:

Бит 2-0 — FOSC2:FOSC0. Выбор тактового генератора
111 — Внешний RC генератор. Подключается к выводу GP5. GP4 работает как CLKOUT
110 — Внешний RC генератор. Подключается к выводу GP5. GP4 работает как ввод/вывод
101 — Внутренний RC генератор 4МГц. GP5 работает как ввод/вывод. GP4 — как CLKOUT
100 — Внутренний RC генератор 4МГц. GP5 и GP4 работают как ввод/вывод
011 — EC генератор. GP4 работает как ввод/вывод. GP5 — как CLKIN
010 — HC генератор. Резонатор подключается к GP4 и GP5
001 — XT генератор. Резонатор подключается к GP4 и GP5
000 — LP генератор. Резонатор подключается к GP4 и GP5

Бит 3 — WDTE: настройка сторожевого таймера (Watchdog Timer)
1 — WDTE включен
0 — WDTE выключен

Сторожевой таймер предохраняет микроконтроллер от зависания – перезапускает программу через определенный интервал времени если таймер не был сброшен. Период таймера устанавливается в регистре OPTION_REG. Обнуление сторожевого таймера вызывается командой CLRWDT.

Бит 4 — PWRTE: Разрешение работы таймера включения питания:
1 — PWRT выключен
0 — PWRT включен

Таймер задерживает микроконтроллер в состоянии сброса при подаче питания VDD.

Бит 5 — MCLR: Выбор режима работы вывода GP3/-MCLR
1 — работает как -MCLR
0 — работает как порт ввода-вывода GP3

Бит 6 — BODEN: Разрешение сброса по снижению напряжения питания (как правило < 2.0В)
1 — разрешен сброс BOR
0 — запрещен сброс BOR автоматически включается таймер

При разрешении сброса BOR автоматически включается таймер PWRT

Бит 7 — .CP: Бит защиты памяти программ от чтения программатором
1 Защита выключена
0 Защита включена

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

Бит 8 — .CPD: Бит защиты EPROM памяти данных
1 Защита выключена
0 Защита включена

После выключения защиты вся информация будет стерта

Бит 11-9 — Не используются: Читается как ‘1’.

Бит 13-12 — BG1:BG0. Биты калибровки сброса по снижению питания
00 — нижний предел калибровки
11 — верхний предел калибровки


Добавление программы к проекту

Пример добавления программы к проекту показан на (Рис. 3).


Рис. 3. Добавление программы FirstPrMPLAB.asm к проекту FirstPrMPLAB.mcp

Сохранить материалы проекта можно командой: меню → File → Save Workspace.

Компиляция


Чтобы создать бинарный файл с расширением hex для прошивки микроконтроллера необходимо откомпилировать проект. Запуск компиляции выполняется командой меню → Project → Build All. Результаты компиляции можно увидеть в окне Output (Рис. 1). Если в программе нет ошибок, то компилятор выдаёт сообщение об успешной компиляции: BUILD SUCCEEDED, загрузочный HEX файл можно найти в рабочем каталоге:

Отладка программы


Отладку программы в среде MPLAB IDE можно выполнить при помощи аппаратного эмулятора MPLAB REAL ICE или программного симулятора MPLAB SIM. Запуск последнего выполняется как показано на Рис. 4.
Рис. 4. Подключение к симулятору MPLAB SIM для отладки программы.

После запуска отладчика в окне Output (Рис. 1) появляется закладка MPLAB SIM, куда MPLAB выводит текущую информацию отладчика. Команды отладчика (Рис. 5) после запуска становятся активными.


Рис. 5. Команды отладчика.

Команды отладчика:

• Run — Непрерывное выполнение программы до точки останова (Breakpoint) если таковая установлена.
• Halt — Остановка программы на текущем шаге выполнения.
• Animate — Анимация непрерывного выполнения программы.
• Step Into — Выполнение по шагам (вызовы Call выполняются за один шаг).
• Step Over — Выполнение по шагам включая команды вызовов Call.
• Reset — Начальная установка программы. Переход указателя на первую команду.
• Breakpoints — Отображение списка точек останова. Обработка списка.

При выполнении программы по шагам текущий шаг выделяется стрелкой (Рис. 6). Непрерывное выполнение программы останавливается командой Halt или достижением программой точки останова. Точка останова устанавливается/снимается в строке программы двойным щелчком.
Пример программы на ассемблере, которая с максимальной скоростью меняет состояние портов контроллера показан на Рис. 6 (справа). Программа передаёт в регистр портов GPIO данные b’10101010’ и b’01010101’. Поскольку в регистре GPIO передачу данных в порты контроллера выполняют не все разряды, а только 0,1,2,4 и 5, то состояние регистра GPIO (Рис. 6, слева) отличается значениями: b’00100010’ и b’00010101’.


Рис. 6. Состояние регистров специального назначения контроллера на момент выполнения программы (слева) и выполняемая по шагам программа (справа).

В процессе отладки можно наблюдать за состоянием регистров, переменных, памяти в соответствующих окнах, открываемых в разделе View основного меню. В процессе отладки можно вносить изменения в код программы, содержимое регистров, памяти, изменять значения переменных. После изменения кода необходимо перекомпилировать программу. Изменение содержимого регистров, памяти и значения переменных (окна раздела View: Special Function Register, File Register, EEPROM, Watch) не требует перекомпиляции.

Входные сигналы портов модели микроконтоллера можно задать в разделе Debugger → Stimulus. Устанавливаемые состояния сигналов портов привязываются к времени (тактам) отладки.

Иногда результаты выполнения программы в режиме отладки не соответствуют выполнению этой же программы в реальном контроллере, так, например, отладчик программы (Рис. 6) без инструкций movlw 0x07 и movwf cmcon показывает, что выходы GP0 и GP1 регистра GPIO не изменяются — находятся в нулевом состоянии, содержимое регистра GPIO попеременно равно 0x14 и 0х20. Однако, контроллер, выполняющий программу без указанных инструкций, показывает на осциллографе циклическую работу всех пяти выходов: 0x15 и 0х22, включая GP0 и GP1 (см. Рис. 7).

Осциллограммы контроллера, выполняющего циклы программы Рис. 6 (Metka… goto Metka) показаны на Рис. 7.


Рис. 7. Осциллограммы выхода GP0 (слева) и GP1 (справа) микроконтроллера PIC12F629, работающего от внутреннего 4МГц RC генератора. Программа (Рис. 6) формирует сигналы максимальной частоты на всех выходах контроллера. За период сигналов 5.3 мкс выполняется 5 команд (6 машинных циклов), амплитуда GP0 сигнала на осциллограмме равна 4.6В, измеренное программатором питание контроллера 4.75В.

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


Для записи программы в микроконтроллер (прошивки контроллера) необходимо микроконтроллер подключить к интегрированной среде MPLAB IDE через программатор. Организация подключения показана ниже в разделе «Подключение программатора PIC-KIT3».

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

Команды для работы с программатором и изменения его настроек находятся в меню MPLAB Programmer. Тип программатора в MPLAB выбирается в разделе: меню → Programmer → Select Programmer.


Рис. 8. Выбор программатора для подключения к среде MPLAB.

Прошивка микроконтроллера через программатор запускается командой: меню → Programmer → Program. Сообщение об успешной прошивке показано на Рис. 9.


Рис. 9. Запуск прошивки микроконтроллера и вид сообщения об успешной прошивке.

Примечание: Во время прошивки микроконтроллера у программатора PIC-KIT3 мигает желтый светодиод.

Подключение MATLAB/SIMULINK к MPLAB


В системе моделирования динамических систем Simulink (приложение к Matlab) на языке графического программирования [7] можно разрабатывать программы для семейства PIC контроллеров имеющих АЦП/ЦАП, счетчики, таймеры, ШИМ, DMA, интерфейсы UART, SPI, CAN, I2C и др.

Пример Simulink программы PIC контроллера показан на Рис. 10.


Рис. 10. Пример программы на языке графического программирования для PIC контроллера выполненной в среде моделирования динамических систем Simulink.

Взаимодействие средств разработки и компиляции программ для PIC контроллеров в Simulink показано на Рис. 11 [6].


Рис. 11. Структура средств построения адекватной модели PIC контроллера на языке графического программирования.

Для построения среды разработки необходимы следующие компоненты Matlab:

• Simulink
• Real-Time Workshop Embedded Coder
• Real-Time Workshop

И Cи компилятор компании Microchip:

• C30 для контроллеров PIC24, dsPIC30 и PIC33
• или C32 для контроллеров серии PIC32

Установка компонентов Matlab


На сайте имеются Simulink библиотеки (dsPIC Toolbox) для PIC контроллеров и версий Matlab c R2006a по R2012a:

Для скачивания библиотеки необходимо зарегистрироваться. Программы поддерживают работу 100 микроконтроллеров из серий PIC 16MC, 24F, 30F, 32MC, 33F, 56GP, 64MC, 128MC, 128GP.
Бесплатные версии работают с Simulink моделями PIC контроллеров имеющих до 7 портов ввода-вывода.

Для установки dsPIC Toolbox — библиотеки блоков PIC контроллеров для Matlab/Simulink необходимо [4]:

• Скачать dsPIC Toolbox для требуемой версии Matlab.
• Распаковать zip файл в папке, в которой будут установлены Simulink блоки.
• Запустить Matlab.
• Настроить текущий каталог Matlab на папку с распакованным файлом.
• Открыть и запустить файл install_dsPIC_R2012a.m, например, кнопкой меню или клавишей клавиатуры.

Библиотеки dsPIC и примеры Simulink моделей устанавливаются в текущую папку Matlab (Рис. 12). Установленные блоки для моделирования PIC контроллеров доступны в разделе Embedded Target for Microchip dsPIC библиотеки Simulink (Рис. 13).


Рис. 12. Содержимое текущего каталога после выполнения install_dsPIC_R2012a.m.
Рис. 13. Блоки, установленной библиотеки «Embedded Target for Microchip dsPIC».

Для совместной компиляции Simulink модели средствами Matlab и MPLAB необходимо прописать в переменной окружения path Matlab с высшим приоритетом путь к каталогу MPLAB с файлами MplabOpenModel.m, MplabGetBuildinfo.m и getHardwareConfigs.m:

>> path('c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\',path) 

Установка Си компилятора MPLAB


Компиляторы MPLAB находятся на сайте Microchip (Download Archive → MPLAB C Compiler for PIC24 and dsPIC DSCs). Для установки демонстрационной версии компилятора С30 необходимо его скачать по ссылке PIC24/dsPIC v3.25 (Рис. 14) и запустить принятый файл mplabc30-v3.25-comboUpgrade.exe.
Рис. 14. Версии Си компилятора (слева) и режимы его установки (справа).

Примечание. Работа выполнена с версией v3.25 компилятора С30 для PIC24/dsPIC. Проверка показала, что следующая версия v3.30 не поддерживает совместную компиляцию моделей Matlab R2012a (dsPIC Toolbox) без ошибок.

Установочный exe файл создаёт в разделе c:\Program Files (x86)\Microchip\ новый каталог mplabc30 с файлами:


Рис. 15. Каталоги компилятора C30 MPLAB.

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

1. Создайте рабочий каталог и скопируйте в него *.mdl примеры из раздела example (см. Рис. 12).
2. Загрузите Matlab. Настройте его на рабочий каталог.
3. Включите в переменную окружения path Matlab с высшим приоритетом путь к MPLAB — каталогу c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\:

>> path('c:\Program Files (x86)\Microchip\MPLAB IDE\Tools\MATLAB\',path) 

Примечание: Использование команды >>path без аргументов приводит к отображению списка путей переменной path в окне команд (Command Window). Удалить путь из переменной path можно командой rmpath, например:
>>rmpath(' c:\Program Files\Microchip\MPLAB IDE\Tools\MATLAB\')

4. Создайте Simulink модель для PIC контроллера, используя блоки библиотеки «Embedded Target for Microchip dsPIC» (Рис. 13), или загрузите готовую модель, например, Servo_ADC.mdl.

Тип контроллера, для которого разрабатывается Simulink модель, выбирается из списка в блоке Master > PIC (Рис. 16, Рис. 10), который должен быть включен в состав модели.


Рис. 16. Выбор типа контроллера в блоке Master модели.

5. Проверьте настройки конфигурации модели: Меню → Simulation → Configuration Parameters <Ctrl+E>. В строке ввода System target file раздела Code Generation должен быть указан компилятор S-функций dspic.tlc (Рис. 17). Выбор dspic.tlc настраивает все остальные параметры конфигурации модели, включая шаг и метод интегрирования.


Рис. 17. Выбор компилятора S-функций dspic.tlc для моделей PIC-контроллеров в разделе «основное меню → Simulation → Configuration Parameters → Code Generation».

6. Откомпилируйте модель tmp_Servo_ADC.mdl. Запуск компилятора показан на Рис. 18.


Рис. 18. Запуск компилятора Simulink модели.

В результате успешной компиляции (сообщение: ### Successful completion of build procedure for model: Servo_ADC) в текущем каталоге создаются HEX файл для прошивки PIC контроллера и MCP проект среды MPLAB (Рис. 19).


Рис. 19. Результаты компиляции модели.

Запуск модели в Matlab/Simulink выполняется в окне модели кнопкой, условное время моделирования устанавливается в строке:


Управление компиляцией Simulink моделей из среды MPLAB

Управление компиляцией Simulink модели можно выполнять командами раздела Matlab/Simulink среды MPLAB, например, в следующем порядке.

1. Разработайте модель PIC контроллера в Matlab/Simulink. Сохраните модель.
2. Запустите MPLAB.
3. Выберите MPLAB меню → Tools → Matlab/Simulink и новый раздел появится в составе меню.


4. В разделе Matlab/Simulink откройте Simulink модель, например, Servo_ADC, командой «Matlab/Simulink → Specify Simulink Model Name → Open → File name → Servo_ADC.mdl → Open». Команда Open запускает Matlab и открывает модель.

5. Откомпилируйте модель и создайте MCP проект командами Generate Codes или Generate Codes and Import Files. Перевод MDL модели в MCP проект выполняется TLC компилятором Matlab.
В результате создаётся проект MPLAB:

со скриптами модели на языке Си.

6. Откройте проект: меню → Project → Open → Servo_ADC.mcp (Рис. 20).


Рис. 20. Структура MCP проекта Simulink модели Servo_ADC.mdl в среде MPLAB.
Проект Simulink модели готов для редактирования, отладки и компиляции в машинные коды контроллера средствами MPLAB.

Подключение программатора PIC-KIT3


Узнать какие программаторы записывают бинарный код в конкретный микроконтроллер можно в разделе меню → Configure → Select Device среды MPLAB 8.92. Например, программатор PIC-KIT3 не поддерживает контроллер PIC12C508A (Рис. 21, левый рисунок), но работает с контроллером PIC12F629 (Рис. 21, правый рисунок).
Рис. 21. Перечень программаторов для прошивки микроконтроллера.

Информацию об установленном драйвере программатора PIC-KIT3 можно запросить у менеджера устройств ОС Windows (Рис. 22).


Рис. 22. Информация об установленном драйвере программатора PIC-KIT3.

Схема подключения микроконтроллера PIC12F629 к программатору PIC-KIT3 показана на Рис. 23.


Рис. 23. Схема подключения микроконтроллера PIC12F629 к программатору PIC-KIT3.

Вывод PGM программатора для прошивки контроллеров PIC12F629 не используется. Наличие вывода PGM для разных типов PIC контроллеров показано на Рис. 24. Вывод PGM рекомендуется «притягивать» к общему проводу (GND), через резистор, номиналом 1К [3].


Рис. 24. Выводы PGM PIC контроллеров.

Индикация светодиодов программатора Olimex PIC-KIT3 показана в ниже:

Желтый — Красный — Состояние программатора
Вкл — Выкл — Подключен к USB линии
Вкл — Вкл — Взаимодействие с MPLAB
Мигает — Включен постоянно — Прошивка микроконтроллера

Не следует подключать питание микроконтроллера VDD (Рис. 23) к программатору, если контроллер запитывается от своего источника питания.

При питании микроконтроллера от программатора на линии VDD необходимо установить рабочее напряжение, например, 5В программой MPLAB (Menu → Programmer → Settings → Power), как показано на Рис. 25.

Примечание. При отсутствии напряжения на линии VDD MPLAB IDE выдает сообщение об ошибке: PK3Err0045: You must connect to a target device to use


Рис. 25. Установка напряжения VDD на программаторе PIC-KIT3 программой MPLAB IDE v8.92.

Если программатор не может установить требуемое напряжение, например, 5В при его питании от USB, в которой напряжение меньше 5В, MPLAB IDE выдает сообщение об ошибке: PK3Err0035: Failed to get Device ID. В этом случае, сначала необходимо измерить напряжение программатора — считать его в закладке меню → Programmer → Settings → Status, а затем установить напряжение (не больше измеренного) в закладке меню → Programmer → Settings → Power.


Рис. 26. Измерение (слева) и установка (справа) VDD напряжения программатора PIC-KIT3 программой MPLAB IDE v8.92.

Пример MPLAB сообщения успешного подключения микроконтроллера к программатору по команде меню → Programmer → Reconnect показан на Рис. 27.


Рис. 27. Сообщение MPLAB об успешном подключении микроконтроллера к программатору.

Можно программировать не только отдельный PIC контроллер, но и контроллер, находящийся в составе рабочего устройства. Для программирования PIC контроллера в составе устройства необходимо предусмотреть установку перемычек и токоограничивающих резисторов как показано на Рис. 28 [3].


Рис. 28. Подключение микроконтроллера в составе электронного устройства к программатору.

Заключение


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

habr.com

PIC-контроллер. Программирование PIC-контроллеров. Схемы PIC-контроллеров

Когда делаются схемы, необходимо, чтобы кто-то или что-то контролировало выполнение необходимых действий. Для человека это довольно проблематично, так как приходится использовать значительное количество различных элементов, позволяющих контролировать их работу (транзисторы, резисторы, тиристоры, диоды, конденсаторы и прочие). Но все сложные и большие схемы можно контролировать с помощью контроллеров (микроконтроллеров). Что они собой представляют, будет рассказано на примере семейств РІС. Итак, что такое PIC-контроллеры для чайников? Какая их схема и где они используются.

Что собой представляет PIC-микроконтроллер

PIC-контроллер (или микроконтроллер) является средством автоматизации выполнения определённых действий с помощью заранее подготовленной программы. Особенностью представителей этой линейки продукции является легкость в программировании и доступность всех необходимых функций для работы. Обрисовывая его конструкцию, следует заметить, что в его составе присутствует только один кристалл кремния (это характерная особенность всех микроконтроллеров). Кроме него, PIC-контроллер имеет определённое количество ножек. Часть из них могут использоваться как логические входы, часть как выходы, остальные имеют двустороннее применение. Ножки могут быть или цифровыми, или аналоговыми.

Для работы подавляющего большинства РІС-контроллеров необходимо стабильное напряжение – 5В. Этого хватает, чтобы он мог работать в своём обычном режиме и выполнять поставленную перед ним программу. Программирование PIC-контроллеров напрямую от компьютера невозможно. Для этой цели используется программатор.

Семейства контроллеров

PIC-контроллер не существует в единичном экземпляре. Компания производитель выпускает значительный ассортимент микроконтроллеров, каждый из которых имеет свои характеристики, возможности и потенциальные цели применения. Количество самих семейств довольно велико и зависит от классифицирующего признака, который берётся как основной. Поэтому стоит сообщить только об основной классификации, в которой есть всего три семейства: 8-, 16- и 32-битные. Они в свою очередь делятся на другие, но поскольку сами семейства не являются темой статьи, то о них и не будет вестись разговор.

Где применяется

Благодаря своей универсальности PIC-контроллер может быть применён практически где угодно. Сами микроконтроллеры можно встретить в холодильниках, телевизорах, стиральных машинках. Но линейка продукции РІС имеет ту особенность, что схемы на PIC-контроллерах популярны среди радиолюбителей и робототехников-самоучек. С их помощью можно легко настроить работу узла или всего приспособления. Способствует такой популярности разумная цена, легкость программирования и значительное количество учебного материала.

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

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

Минимальное необходимое программное обеспечение – это блокнот. Но всё же в силу свободного распространения можно воспользоваться и предлагаемым от компании-производителя программным средством MPLAB. Точнее, линейкой программных средств (среды разработки, компиляторы) MPLAB. Благодаря политике компании он распространяется бесплатно, но имеет определённые ограничения. Так, при краткосрочной демонстрационной версии можно попробовать со всеми возможностями, но после её окончания функционал программы будет урезан. В полноценной программе присутствует значительный инструментарий, который позволяет легко создавать программы, удобно искать различные проблемные участки и проводить оптимизацию кода. В зависимости от версии может быть прекращена функция оптимизации кода или уменьшено количество контроллеров, поддерживаемых программой. Ради правды стоит сказать, что компания оставляет поддержку исключительно самым популярным представителям.

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

Создание программы для PIC-контроллера

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

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

Программирование с помощью программатора

Но как перенести разработанную программу в сам микроконтроллер? Как происходит программирование микроконтроллеров? Специально для этой цели существуют специальные устройства – программаторы. Они посылают микроконтроллеру сигналы, которые изменяют ячейки в памяти в соответствии с программой. Для начала процесса перенесения данных необходимо вставить микроконтроллер в программатор, а его, в свою очередь, подключить к компьютеру. Затем с помощью программного обеспечения следует запустить прошивку. Обычно программирование PIC-контроллеров продолжается от тридцати секунд до двух минут.

Виды программаторов

Какой программатор выбрать для записи программы на микроконтроллер? Условно можно выделить три вида: самодельные, от компании-производителя и заводские от других компаний. Использование каждого из них имеет свои особенности.

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

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

Но останавливает от его приобретения довольно высокая цена.

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

Схематические особенности

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

fb.ru

Устрйоства на микроконтроллерах Microchip серии PIC

Бортовой компьютер для автомобиля (PIC18F258, C) 20.03.2013
Чесались руки сделать что-то для свежекупленного автомобиля, остановился на полезной вещи - бортовой компьютер. Автомобиль Nissan Almera N15...
Просмотров: 9466

Обман одометра (PIC12F629) 08.08.2008
Устройство собрано на МК PIC12F629 и предназначено для управления сигналом идущим от одометра. Сигнал можно отключать, включать тестовый...
Просмотров: 11001

Автомобильный охранный сигнализатор на микроконтроллере (PIC16F84A, asm) 08.08.2008
Это устройство отличается от подобных отсутствием времязадающих RC- цепей. Поскольку его основой служит микроконтроллер, оно...
Просмотров: 4010

Автомобильный цифровой спидометр (PIC16F84A, asm) 08.08.2008
Автомобильный цифровой спидометр предназначен для установки в автомобили со штатными аналоговыми спидометрами, управляемые...
Просмотров: 7378

COM to MIDI или преобразование скорости USART (PIC16F828A, asm) 08.03.2009
К сожалению, практически все переносные компьютеры не оборудованы приёмопередатчиком MPU-401. В связи с этим, подключать их обычным...
Просмотров: 3112

USB Bootloader (загрузчик) для микроконтроллеров PIC18 (asm, C++) 03.11.2010
USB PIC Bootloader - это USB загрузчик для серии микроконтроллеров PIC18 фирмы Microchip. Он позволяет загрузить программное обеспечение в...
Просмотров: 4146

Универсальный таймер на PIC контроллере (PIC16F84A, C) 09.08.2008
Универсальность описываемого в статье устройства в том, что оно способно не только включить и выключить в заданное время четыре...
Просмотров: 5080

АЦП с интерфейсом RS232 (PIC12F675, asm) 09.08.2008
Воспользовавшись восьмивыводным микроконтроллером PIC12F675 со встроенным АЦП, автор разработал простую приставку к компьютеру и...
Просмотров: 5051

Частотомер - цифровая шкала на LED (PIC16F84/PIC16CE625, asm) 26.02.2011
Описание опубликовано в журнале «Радио» № 1 за 2002 г., стр. 60...62, Частотомер - цифровая шкала на PIC16CE625, позднее было опубликовано...
Просмотров: 5753

Частотомер - цифровая шкала с LCD (PIC16F84/PIC16F628, asm) 26.02.2011
Описание опубликовано в журнале «Радио» № 7 за 2004 г., стр. 64, 65 Частотомер - цифровая шкала с ЖК индикатором и «Радиолюбитель»...
Просмотров: 5978

Пробник "Мечта электрика" (PIC12F675, C) 30.10.2010
Возможности : - измерение сопротивления 0 - 300 Ом. - звуковой сигнал при сопротивлении менее 20 Ом. - тест переходов полупроводников. -...
Просмотров: 6899

Частотомер и прибор для проверки конденсаторов, импульсных трансформаторов (PIC16F876A) 28.08.2010
В последнее время, с появлением электролитических конденсаторов предназначенных для работы на высоких частотах, стал популярен способ...
Просмотров: 11908

Кабельный пробник на микроконтроллере (PIC16F84A, asm) 28.08.2010
Устройство состоит из двух частей: передающей и приемной. Жилы кабеля с одной стороны подключают к контактам Х1—Х8 передатчика, с другой...
Просмотров: 3184

Сопряжение с компьютером цифрового мультиметра серии 830 (PIC12F629, asm, C++) 09.08.2008
Подключение малогабаритного мультиметра к персональному компьютеру позволяет проводить статистическую обработку результатов серии...
Просмотров: 4251

АЦП с интерфейсом RS232 (PIC12F675, asm) 09.08.2008
Воспользовавшись восьмивыводным микроконтроллером PIC12F675 со встроенным АЦП, автор разработал простую приставку к компьютеру и...
Просмотров: 5051

Микроконтроллерный определитель выводов транзисторов (PIC16F84A, asm) 09.08.2008
Принцип действия определителя транзисторов основан на том, что на любом из выводов микроконтроллера, настроенном как выходной, может...
Просмотров: 4281

Микроконтроллерный искатель проводки (PIC12F629, C) 09.08.2008
Работа устройств, способных обнаружить электрические провода в стене, основана на улавливании создаваемого ими электромагнитного...
Просмотров: 6807

Генератор на PIC16F84A и AD9850 (PIC16F84A, C) 09.08.2008
Описываемый в статье генератор содержит микроконтроллер, но использован он только для управления специализированной микросхемой —...
Просмотров: 7252

Паяльная станция на PIC-контроллере (PIC16F84A, asm) 09.08.2008
Профессиональные паяльные станции импортного производства обладают большим набором сервисных функций, но очень дороги и недоступны...
Просмотров: 6322

Прибор для контроля многожильных кабелей на НТ9200В (PIC16F84A) 09.08.2008
В современной технике связи, компьютерных сетях и дистанционных контрольно- измерительных приборах, системах телеуправления...
Просмотров: 5405

Приставка на PIC для проверки телефонных аппаратов (PIC16F84A, PIC16F628, asm) 09.08.2008
Мне иногда приходится заниматься ремонтом телефонных аппаратов. И я здорово надоел жене с просьбой перезвонить домой, чтобы проверить...
Просмотров: 2565

Микрофарадометр на PIC микроконтроллере (PIC16F876A, C) 09.08.2008
В радиолюбительской практике необходимость измерения больших значений электрической емкости очевидна. Многие современные...
Просмотров: 4091

Частотомер на PIC микроконтроллере (PIC16F84A, asm) 09.08.2008
Простой 4-разрядный частотомер на микроконтроллере Рис. 1. Схема частотомера на микроконтроллере PIC16F84 Рис. 2. Фото частотомера на...
Просмотров: 11305

Электронный резьборез с микроконтроллерным управлением (PIC16F84A, C) 09.08.2008
Принцип действия резьбонарезного устройства основан на быстром изменении направления вращения режущего инструмента в пределах...
Просмотров: 4453

Частотомер на PIC контроллере с LCD дисплеем (PIC18F252, C) 09.08.2008
Частотомер собран на достаточно распространённых микроконтроллерах фирмы MICROCHIP PIC18F252 с применением 2х16 (он был под рукой), хотя можно...
Просмотров: 6045

Электронный цифровой частотомер на PIC микроконтроллере (PIC16F873) 09.08.2008
Цифровой частотомер на PIC микроконтроллере, позволяет измерять частоту в диапазоне от 10Гц до 40 МГц, с точностью до 0.01кГц. Цифровой...
Просмотров: 3947

Стенд для тестирования ATX блоков питания, методом снятия кросс-нагрузочных характеристик (PIC16F84A, asm) 19.04.2008
Цель проекта - разработка аппаратной части и программного обеспечения стенда для автоматического тестирования АТХ блоков питания...
Просмотров: 6327

Частотомер, прибор для проверки конденсаторов, импульсных трансформаторов V3 (PIC16F876A) 19.12.2007
Это дальнейшее развитие Прибор для проверки конденсаторов, импульсных трансформаторов и измерения частоты. Основные отличия : -...
Просмотров: 5761

Применение семи сегментных LED модулей HT1611, HT1613, МТ10Т7-7 (asm) 24.12.2010
Практически любое микроконтроллерное устройство имеет те или иные устройства индикации. В простейшем случае это всего несколько...
Просмотров: 5211

Контроллер графического LCD WG32240 (PIC18F2520, C) 09.08.2008
В настоящее время промышленностью выпускается большое количество графических ЖКИ. Существуют как модели со встроенным контроллером,...
Просмотров: 3699

ИК пульт ДУ для Canon, Nikon, Minolta, Pentax, Olympus (PIC12F629, asm) 02.12.2010
Некоторые фотокамеры фирм Canon, Nikon, Minolta, Pentax, Olympus имеют функцию дистанционной съёмки с помощью инфракрасного пульта дистанционного...
Просмотров: 3662

Часы с коррекцией времени от GPS (PIC16F876, asm) 16.05.2008
Конструкции и принципиальные схемы электронных часов в настоящее время достаточно хорошо разработаны. Но точность индикации времени...
Просмотров: 4699

Калькулятор для спортивных соревнований с гандикапом (PIC16F88, asm) 21.04.2008
Разработанный авторами калькулятор предназначен для быстрого пересчета времени, затраченного участниками соревнований на...
Просмотров: 2368

Универсальная телефонная приставка (PIC16F84A) 01.03.2008
Сегодня практически во всех крупных городах телефонные номера переводятся на повременную оплату. Недалеко то время, когда поминутная...
Просмотров: 3911

Таймер на PIC16F628 (PIC16F628, asm) 01.03.2008
Проэкт представляет собой часы с таймером, который может быть запрограммирован на включение и на выключение. Я начал его делать так как...
Просмотров: 3861

Термостат для теплого пола (PIC16F84A, asm) 22.01.2008
Сегодня во многих квартирах имеются полы с электроподогревом. Они удобны и достаточно долговечны, но вот их терморегуляторы имеют ряд...
Просмотров: 4605

Дистанционный регулятор освещения (PIC16F629, C) 22.01.2008
Предлагаемый прибор — один из вариантов регулятора яркости ламп накаливания с расширенными за счет применения микроконтроллера...
Просмотров: 5151

Усовершенствованная "поющая ёлка" на PIC (PIC16F628, asm) 20.01.2008
Особенностью данной программы является возможность плавного изменения яркости светодиодов. Прототипом послужила "поющая...
Просмотров: 3810

Простые часы-будильник на PIC16F84 (PIC16F84, asm) 17.01.2008
Не так давно электронные часы строили на так называемых часовых микросхемах серии К176 и специализированных микросхемах серий К145...
Просмотров: 4987

Экономичный цифровой термометр (PIC16F628, asm) 16.01.2008
В последнее время конструирование цифровых термометров очень популярно. Применение микроконтроллеров (МК) и современных датчиков...
Просмотров: 4332

Часы-будильник с ЖК-индикатором (PIC16F84A) 15.01.2008
Особенности устройства: Два будильника. Сохранение времени установки будильников при выключении питания. Возможность отключения...
Просмотров: 3479

Таймер на PIC16F84 (PIC16F84A, asm) 07.01.2008
Таймер — одна из наиболее популярных радиолюбительских конструкций Вниманию читателей предлагается еще один вариант В отличие от...
Просмотров: 4441

Точные часы-будильник на микроконтроллере (PIC16F628A, asm) 04.01.2008
При создании этой конструкции основной упор был сделан на точности хода часов и удобстве управления.   - Реализовано 2 режима...
Просмотров: 4565

Часы с таймером на микроконтроллере (PIC16F628A, asm) 04.01.2008
Проэкт представляет собой часы с таймером, который может быть запрограммирован на включение и на выключение. Я начал его делать так как...
Просмотров: 4068

Автомат вечернего освещения (PIC12C508, C) 04.01.2008
Устройство, схема которого показана на рис. 1, ежедневно в установленное время включает и выключает свет. Разработал его таиландец Wrchit...
Просмотров: 2992

PIC для младенца (PIC12F629, asm) 07.12.2007
Назначение: Разработанное устройство предназначено для звуковой сигнализации намокания пеленок малыша. Как и памперсы, оно не...
Просмотров: 2627

Кодовый замок на PIC микроконтроллере (PIC16F84, asm) 09.08.2008
Устройство кодового замка для разнообразных применений. В частности, я использую замок дома. Внешнее исполнение может быть любым, в...
Просмотров: 3383

Охранное устройство с управлением ключами-таблетками iBUTTON (PIC16F84, asm) 09.08.2008
Предлагаемое устройство может выполнять функции охранной сигнализации или просто включать освещение при движении человека в...
Просмотров: 2894

Кодовый замок на PIC16F84 (PIC16F84) 09.08.2008
Схема этого устройства (разработчик — Jon Rck из США) размещена по адресу http://www.vermontficks.org/pic.htm К младшим разрядам портов А и В...
Просмотров: 3659

Охранная система MICROALARM (PIC16F84) 09.08.2008
Данное устройство предназначено для охраны квартир, дач, гаражей и т.д. Основой охранной системы является PIC-контроллер 16F84A. Постановку...
Просмотров: 2283

Электронный замок с ключом-таблеткой I-BUTTON (PIC16F627A (628A, 648A), asm) 09.08.2008
Здесь представлена схема электронного замка, в котором в качестве ключа используется устройство DS1990A(Touch Memory). Touch Memory типа DS1990A...
Просмотров: 4539

Охранное устройство с оповещением по телефонной линии (PIC16F628) 09.08.2008
Устройство предназначено для охраны помещения ( магазин , квартира ) с применением датчика движения и датчика открывания двери (...
Просмотров: 2980

Электронный замок с управлением от таблеток iBUTTON (PIC16F628A, C) 09.08.2008
Ниже представлена схема замка с использованием электронных ключей Touch Memory типа DS1990A. Устройство собрано на базе микроконтроллера...
Просмотров: 4742

Охранное устройство с управлением от таблеток iBUTTON (PIC16F628A) 09.08.2008
Ниже представлена схема охранного устройства с использованием электронных ключей Touch Memory типа DS1990A. Устройство собрано на базе...
Просмотров: 3480

GSM сигнализация (PIC16F628A) 09.08.2008
Данная страничка посвящена разработке экономичной GSM сигнализации с использованием телефона Siemens 35/45 серий и 8-разрядного...
Просмотров: 6837

Автомобильный охранный сигнализатор на микроконтроллере (PIC16F84A, asm) 08.08.2008
Это устройство отличается от подобных отсутствием времязадающих RC- цепей. Поскольку его основой служит микроконтроллер, оно...
Просмотров: 4010

Инвертор для однофазного асинхронного электродвигателя (PIC16F73, asm) 29.08.2010
Инвертор предназначен для управления скоростью и направлением вращения выходного вала однофазных асинхронных электродвигателей типа...
Просмотров: 6353

Блок питания с микроконтроллерным управлением (PIC16F628A, asm) 24.05.2008
Состоит из блока индикации и управления, измерительной части и блока защиты от КЗ. Блок индикации и управления. Индикатор - ЖКИ...
Просмотров: 11143

Стенд для тестирования ATX блоков питания, методом снятия кросс-нагрузочных характеристик (PIC16F84A, asm) 19.04.2008
Цель проекта - разработка аппаратной части и программного обеспечения стенда для автоматического тестирования АТХ блоков питания...
Просмотров: 6327

Зарядное устройство на PIC микроконтроллере (PIC12F675) 24.01.2008
Данное зарядное устройство (ЗУ) автоматизирует процесс зарядки аккумуляторов. Если аккумулятор не разряжен до напряжения 1 В, оно...
Просмотров: 7337

Регулируемый биполярный блок питания на микроконтроллере 0...15 В (PIC16F84A) 08.12.2007
Предлагаю вашему вниманию биполярный блок питания для повседневных нужд радиолюбителей, который имеет регулировку выходного...
Просмотров: 5904

COM to MIDI или преобразование скорости USART (PIC16F828A, asm) 08.03.2009
К сожалению, практически все переносные компьютеры не оборудованы приёмопередатчиком MPU-401. В связи с этим, подключать их обычным...
Просмотров: 3112

GTP USB Lite PIC программатор (PIC18F2550) 19.02.2011
Данный программатор с оригинальным названием GTP USB Lite разработан для прошивки PIC микроконтроллеров и микросхем памяти. Основной...
Просмотров: 11573

Устройство ввода вывода (PIC16F628A) 02.12.2010
Это устройство ввода вывода, применять можно в любых целях, где нужны кнопки и индикация. Устройство позволяет выводить на индикаторы...
Просмотров: 3054

Электронная записаня книжкa (PIC12F84, С) 02.12.2010
Новая элементная база позволяет создавать компактные и экономичные устройства, способные с помощью персонального компьютера...
Просмотров: 3146

Микроконтроллерная система управления токарным станком 16Б25ПСп (PIC16F876, C) 02.12.2010
Штатная система управления станком 16Б25ПСп разработана в 70-е годы и была реализована на тиристорно - транзисторной элементной базе. В...
Просмотров: 4781

ИК пульт ДУ для Canon, Nikon, Minolta, Pentax, Olympus (PIC12F629, asm) 02.12.2010
Некоторые фотокамеры фирм Canon, Nikon, Minolta, Pentax, Olympus имеют функцию дистанционной съёмки с помощью инфракрасного пульта дистанционного...
Просмотров: 3662

Инвертор для однофазного асинхронного электродвигателя (PIC16F73, asm) 29.08.2010
Инвертор предназначен для управления скоростью и направлением вращения выходного вала однофазных асинхронных электродвигателей типа...
Просмотров: 6353

Светодиодное табло "Волшебная палочка" (AT89C2051/PIC18C84, asm) 06.11.2010
За этим замысловатым названием кроется очень интересная конструкция на PIC-контроллере. Главное достоинство - это оригинальность идеи. В...
Просмотров: 4449

Устройство управления яркостью 8 светодиодов (PIC16F628, asm) 11.10.2010
По заданной программе изменяется яркость светодиодов. Изменение яркости осуществляется широтно-импульсной модуляцией (ШИМ). Так как...
Просмотров: 2732

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

Термометр на TC77 (PIC16F628, C) 11.10.2010
Такой термометр подходит для большинства потребностей измерения температуры в быту. Но не смотря на то, что он очень прост и дешев,...
Просмотров: 3873

Термометр на PIC (PIC16F628A) 29.10.2008
Ниже представлена схема простого термометра на PIC'е. Индикатор (в моём случае BA56-12SRWA) используется с общим анодом. Датчик температуры...
Просмотров: 10021

Аппаратно-программный комплекс многоточечного мониторинга температуры (PIC16F84A, asm) 19.04.2008
Цель проекта - разработка системы многоточечного мониторинга температуры, причем наблюдение за температурой должно быть доступным...
Просмотров: 3428

Цифровой термометр с выводом показаний на компьютер (PIC16F84A, asm) 19.04.2008
В качестве датчика температуры используется микросхема цифрового термометра DS18S20, который опрашивается контроллером на основе PIC16F84A....
Просмотров: 5199

Термометр с функцией таймера или управления термостатом (PIC16F84A, asm) 22.01.2008
Описания различных электронных цифровых термометров неоднократно публиковались на страницах журнала «Радио». Как правило, они...
Просмотров: 4481

Термореле с цифровым датчиком температуры (PIC16F84A) 18.11.2007
Термодатчики повсеместно используются в различных областях электроники. Это термометры, пожарные датчики сигнализации, мониторинг...
Просмотров: 3751

eldigi.ru

Радиолюбительские конструкции на PIC-микроконтроллерах. Книги 1 - 4+ПО

Дата публикации: .

В четырех книгах Н.И. Заец представлены различные конструкции, которые будут интересны не только опытным, но и начинающим радиолюбителям. Для удобства при повторении конструкций приведены рисунки печатных плат, даны исходные тексты программ и «прошивки» контроллеров.

Радиолюбительские конструкции на PIC-микроконтроллерах Книга 1. Автор:Заец Н.И.

Издательство: Солон-пресс
Год издания: 2004
Страниц: 368
ISBN: 5-98003-078-6
Язык: русский
Формат: DJVU
Размер: 3,5 Мб

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

Автор также делится опытом программирования и работы с ассемблером MPLAB и программатором PonyProg2000.


Радиолюбительские конструкции на PIC-микроконтроллерах. Книга 2

Автор:Заец Н.И.
Издательство: Слон-пресс
Год издания: 2005
Страниц: 192
Язык: русский
Формат: DJVU
Размер: 2,4 Мб

В книге даны новые примеры применения PIC-микроконтроллеров в радиолюбительской практике. Программисты найдут в книге программы с использованием встроенного в микроконтроллер модуля - АЦП и программы с различными внешними устройствами - термодатчиками типа DS 18x20, LCD-дисплеями. Радиолюбители, которые желают повторить устройства, могут выбрать цифровой милливольтметр, для того чтобы защитить свой дом от перепадов напряжения, а трехфазный двигатель - от перегрузки. Термометр-часы, градусник и два терморегулятора будут полезными в любом доме. Ко всем программам даны алгоритмы работы и подробные комментарии.

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


Радиолюбительские конструкции на PIC-микроконтроллерах. Книга 3

Автор:Заец Н.И.
Издательство: Солон-Пресс
Год издания: 2006
Страниц: 240
ISBN: 5-98003-250-9, 5-98003-238-Х
Язык: русский
Формат: dgvu
Размер: 3,1 Мб

Третья книга расширяет диапазон применения PIC-микроконтроллеров в радиолюбительской практике. В ней дан пример программы с использованием встроенного в микроконтроллер модуля USART и различных внешних устройств - LCD-дисплеев и ЖКИ, выполненных по COG-технологии. Радиолюбители, которые желают повторить устройства, могут выбрать: охрану подворья, шахматные часы, таймеры на 7 и 9 выходов, а также автомат кормления аквариумных рыб. Для родной школы можно изготовить простое устройство подачи звонков по расписанию.
В отдельную главу вынесены "трудные темы" взаимодействия микроконтроллеров с внешними устройствами: ЖК-дисплеями и термодатчиками типа DS 18x20. Ко всем программам даны алгоритмы работы и подробные комментарии. К книге прилагается компакт-диск, содержащий 48 исходных текстов программ ко всем устройствам четырех книг автора, ("Электронные самоделки. Для быта, отдыха и здоровья" и "Радиолюбительские конструкции на РIС-микроконтроллерах" в трех книгах), вышедших в издательстве СОЛОН-Пресс, справочные материалы по микроконтроллерам на русском и английском языках, установочные программы для программаторов и ассемблера MPASM.
Книга предназначена для широкого круга радиолюбителей, а также может быть полезна студентам, изучающим программирование микроконтроллеров.


Радиолюбительские конструкции на PIC-микроконтроллерах. Книга 4

Автор:Заец Н.И.
Издательство: МК-Пресс
Год издания: 2008
Страниц: 336
ISBN: 978-966-8806-42-1
Язык: русский
Формат: DJVU
Размер: 5.2 Мб

Данная книга - практическое пособие по освоению микроконтроллеров PICmicro компании Microchip и другой современной элементной базы, наподобие индикаторов, выполненных по COG-технологии. Рассмотрены алгоритмы работы, схемы и программы для различных полезных устройств: многофункциональных часов, отображающих текущее время и температуру воздуха; автомобильных часов, фиксирующих время в пути и сообщающих о поломке реле-регулятора; автомата включения освещения; цифрового устройства для блока питания с установкой защиты по току и напряжению; специализированных термометров и др. Для начинающих дана глава о наладке устройств на микроконтроллерах. Книга предназначена для широкого круга радиолюбителей, а также может быть полезна студентам, изучающим программирование микроконтроллеров.


Электронные самоделки. Для быта, отдыха и здоровья

Автор:Заец Н.И.
Издательство: Солон-Пресс
Год издания: 2004
Страниц: 304
ISBN: 5-98003-156-1
Язык: русский
Формат: DJVU
Размер: 3,8 Мб

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

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

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


Скачать: Радиолюбительские конструкции на PIC-микроконтроллерах. Книги 1 - 4 + ПО + Электронные самоделки

radioparty.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о