Программирование микроконтроллеров для начинающих

Содержание

Введение

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

Модуль связывается с остальной схемой с помощью TTL или с помощью встроенной микросхемы MAX232. Это означает, что вся связь осуществляется с помощью UART микроконтроллера PIC, и все наши команды от PIC будут отправляться на порт UART с помощью .

Управление по напряжению (Voltage Mode)

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

Если напряжение на выходе больше порога – компаратор блокирует управление силовым ключом, идет разряд выходной накопительной емкости. В англоязычной литературе такой режим называют «hiccup-mode» – «режим с икотой»

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

Данный режим используется сравнительно редко, так как сопровождается большими пульсациями выходного напряжения и требует накопительного конденсатора сравнительно высокой емкости.
Рисунок 5 демонстрирует принцип работы режима управления по напряжению с гистерезисным управлением. Здесь и далее не показана выходная часть источника, так как определяется топологией, выходной мощностью и др. Для иллюстрации принципа работы ШИМ-контроллера иногда будет показан пример с выходной частью.

Рис. 5а. Первая схема – с фиксированным выходным напряжением, вторая – с регулировкой выходного напряжения.

Рис. 5б. Диаграммы выхода ШИМ и выхода компаратора.

Рис. 6. Пример выходного каскада повышающего импульсного источника питания, подключенного к ШИМ контроллеру (см.рис.5).

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

В этом случае получим два «бонуса» — отсутствие возникновения высокочастотной генерации и неизменность скважности управляющего ШИМ (см. пояснения на рис

7). Подробнее о конфигурируемых логических ячейках см. в статье «Конфигурируемые логические ячейки в PIC микроконтроллерах» .

Рис.7.а. Укорочение управляющих ШИМ импульсов, возможность появления высокочастотной генерации

Рис. 7.б. Синхронизация сигналов позволяет предотвратить укорочение ШИМ импульсов

Рис. 8. Синхронизация сигналов для предотвращения генерации и укорочения ШИМ.

Импульсный источник питания

Еще один пример использования конфигурируемых логических ячеек совместно со встроенными компараторами.
Таймер TMR периодически устанавливает RS-триггер и открывает силовой транзистор. Ток начинает течь через индуктивность, напряжение на резисторе R1 линейно увеличивается. При достижении напряжения на R1 порогового значения срабатывает компаратор COMP1 и сбрасывает триггер, транзистор закрывается. Ток через индуктивность не может прерваться мгновенно, поэтому ток начинает течь через диод D1 и заряжает выходной конденсатор. По срабатыванию таймера триггер снова устанавливается и процесс повторяется.

Рис.17a. Простейший импульсный источник питания.

На рисунке приведена схема повышающего источника, но для других топологий (см. рис. 17b) работа схемы будет аналогичной, поэтому выходной каскад далее рисовать не буду.

схема описание
повышающий
понижающий
Sepic

Рис.17b. Различные топологии импульсных источников питания

Приведенная на рис. 17a схема выполняет функцию преобразования энергии и работает по пиковому значению тока в индуктивности. Можно ввести еще контур регулирования выходного напряжения. Наиболее просто сделать гистерезисное управление: когда напряжение на выходе ниже нормы – происходит накачка источника, когда напряжение выше – выдача управляющих импульсов на силовой транзистор блокируется.

Рис.17c. ИИП с гистерезисным управлением

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

Рис.17d. Помеха при коммутации силового ключа

Рис.17e. ИИП с гистерезисным управлением и бланкированием помехи переключения.

Элементы U1 и U2 можно привести к реализации на элементах ИЛИ и отнести к входу CLC1, тогда вся логическая часть схемы реализуется на трех ячейках CLC (обычно в микроконтроллерах Microchip имеется 4 ячейки).
Все что на схеме изображено левее силового ключа – находится внутри микроконтроллера, связи периферийных модулей так же осуществляются внутри кристалла микроконтроллера. Напряжения порогов Ref и Ref1 могут задаваться встроенными источниками опорного напряжения или ЦАП. Таким образом, импульсный источник питания с регулируемым выходным напряжением можно реализовать на периферийных модулях микроконтроллера. После первоначального конфигурирования схема будет работать полностью аппаратно без необходимости участия ядра в поддержании функции преобразователя. Ядро может заниматься интерфейсными задачами, индикации контроля и др.

Вообще, для построения импульсных источников питания в новых семействах PIC16F17xx микроконтроллеров Microchip есть дополнительные аналоговые (операционные усилители) и специализированные периферийные модули: модули пилообразной компенсации (Slope Compensation) и программируемый рамп-генератор (Programmable Ramp Generator, PRG), операционные усилители, модуль формирования комплементарных выходных сигналов (COG), HLT таймера. Но об этих частях ПНЯ постараемся рассказать в следующий раз.

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

Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья третья. Немного о железе

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

Из железа нам нужны: — собственно контроллер с обвязкой; — программатор.

По первому пункту можно: а) собирать схемы на макетной плате; по первому и второму: б) сделать своими руками; в) купить готовое изделие.

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

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

По пункту б: Ищем в сети схему популярной отладочной платы. Например здесь — olimex.com Еще лучше ищем вместе с рисунком платы печатной. Если нет рисунка придется разводить плату самим. Качаем программу Sprint Layout 5. Очень удобная и простая программа для любительских(и не только) целей. Разводим плату. Читаем про ЛУТ метод изготовления печатных плат в домашних условиях. Печатаем, утюжим, травим, лудим, выполняем монтаж. Для программатора аналогично. Со схемами и рисунком проводников в этом случае в сети намного больше готовых проектов. К нужны в этом случае добавятся: — лазерный принтер; — соответствующая бумага(обычно мелованная, или пленка); — хлорное железо; — текстолит; — терпение.

Плюсы: — при достаточном умении можно изготовить качественные изделия; — экономно; Минусы: — довольно сложно в техническом плане; — пройдет немало времени пока начнут получаться достойные результаты.

По пункту в: Об олимекс уже упоминал. Там неплохой выбор отладочных/демонстрационных плат. С доставкой в Украину проблем нет. Где я еще покупал и кем доволен (не реклама): — Москва — Терраэлектроника, отличный выбор, умеренные цены; — Киев — Флайконт, выбор скуднее, но для украинцев купить проще. Плата обойдется в 50-100$.

С программаторами проще. Из подешевле советую JDM-подобные программаторы. Работает через COM-порт. Цена от 20$. Из подороже пользовался PonyProg. Сейчас PICkit2. Последний около 40$. Работает через USB. Из софта реккомендую: — для JDM — WinPIC800; — ICProg; — PICKit шьет прям из MPLAB, что есть очень удобно.

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

Программирование микроконтроллеров pic на языке c

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

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

Итак, с МК определились. В файлах к этой статье можно найти полный справочник по этому МК. Что покупать теперь понятно, но пока дайвайте все же напишем программу, что бы было понятно что с ней дальше делать и как ее «зашить» в этот МК.

В выпавшем списке доступных МК выбираем PIC16F877. Нажимаем Далее.

Здесь надо выбрать компилятор, который будет обрабатывать код нашей программы. Обязательно надо выбрать пункт HI-TECH PICC Toolsuite в выпадающем списке Active Toolsuite. Это тот самый компилятор языка Си, который мы установили в прошлой стаье. Нажимаем Далее.

Здесь можно добавить к проекту какие-либо готовые файлы, но нам пока такая возможность не нужна. Жмем Далее.

Тут я думаю все понятно. Нажимаем Готово.

Теперь помещаем ниже следующий код в открытое окно файла проекта TestPIC.c (весь проект целиком можно найти в файлах к этой статье).

Наверное Вам интересно, что будет результатом работы этого кода. Будет происходить следующее: к МК подключаются 8 светодиодов. При включении питания, светодиоды начнут мигать в виде «волны» (это лучше видеть, благо осталось нет так уж и много). Рассмотрим поподробнее сам код.

Что они означают? Давайте по порядку.

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

Чаще всего встречаются микроконтроллеры следующих семейств:

  • MSP430 (TI);
  • ARM (ARM Limited);
  • MCS 51 (INTEL);
  • STMB (STMicroelectronics);
  • PIC (Microchip);
  • AVR (Atmel);
  • RL78 (Renesas Electronics).

Одной из наиболее популярных в электронной промышленности является продукция компании Atmel, построенная на базе RISC-ядра. Первые микросхемы, разработанные в 1995 году, относятся к группе Classic. Изучать программирование микроконтроллеров AVR для начинающих желательно на более современных моделях:

  • Mega — семейство мощных микросхем с развитой архитектурой.
  • Tiny — недорогие изделия, имеющие восемь выводов.

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

Изделия компании «Атмел» просты и понятны. Однако для использования всего функционала придется разработать программное обеспечение. Приступать к программированию микроконтроллеров AVR для начинающих рекомендуется с загрузки специализированной среды Atmel Studio. Актуальная версия предоставляется официальным сайтом производителя на бесплатной основе. Для разработки ПО в этой среде дополнительные программные компоненты не требуются.

Комплекс «Атмел Студио» включает огромное количество примеров готовых проектов. Это поможет новичку быстрее освоить базовые возможности и начать создавать собственные программы. В нем также имеются модули для компиляции и окончательной отладки кода. Параллельно с его освоением нужно изучать языки программирования. Без них разработать программное обеспечение невозможно.

Newer Device Available PIC16F18444

Status: In Production

View Datasheet View Comparisons

Features:

  • Low voltage programming
  • Low speed Clock mode
  • Programmable BOR
  • 4MHz internal oscillator
  • Programmable VREF
  • 128 bytes of EEPROM
  • Data Memory
  • ICD

View More

  • ProgrammingServices Available
  • SamplingOptions
  • BuyNow

This powerful (200 nanosecond instruction execution) yet easy-to-program (only 35 single word instructions) CMOS FLASH-based 8-bit microcontroller packs Microchip’s powerful PIC architecture into an 18-pin package and is upwards compatible with the PIC16F628, PIC16C62XA, PIC16C5X and PIC12CXXX devices. The PIC16F628A features 4MHz internal oscillator, 128 bytes of EEPROM data memory, a capture/compare/PWM, a USART, 2 Comparators and a programmable voltage reference that make it ideal for analog/integrated level applications in automotive, industrial, appliances and consumer applications.

For product comparison, please consider: PIC16F18444

  • Low voltage programming
  • Low speed Clock mode
  • Programmable BOR
  • 4MHz internal oscillator
  • Programmable VREF
  • 128 bytes of EEPROM
  • Data Memory
  • ICD

User Guides

  • Integrated Development Environments
  • Compilers
  • Programmers
  • Demo & Evaluation Boards
  • Code Examples

MPLAB X Integrated Development Environment (IDE) is an expandable, highly configurable software program that incorporates powerful tools to help you discover, configure, develop, debug and qualify embedded designs for most of Microchip’s microcontrollers, microprocessors and digital signal controllers. MPLAB X IDE works seamlessly with the MPLAB development ecosystem of

Available as free, unrestricted-use downloads, our award-winning MPLAB XC C Compilers are comprehensive solutions for your project’s software development. Finding the right compiler to support your device is simple:

  • MPLAB XC8 supports all 8-bit PIC and AVR microcontrollers (MCUs)
  • MPLAB XC16 supports all 16-bit PIC MCUs and dsPIC Digital

Fast programming, increased functionality, at the same price as its predecessor, the PICkit 3.

The MPLAB PICkit 4 now has Programmer-to-Go functionality for 8-bit, 16-bit and 32-bit PIC MCUs and dsPICs and also SAM MCU devices . The firmware update comes with MPLAB X IDE v5.30. AVR is expected soon!

The MPLAB PICkit 4 In-Circuit

The MPLAB ICD 4 In-Circuit Debugger/Programmer is Microchip’s fastest, cost-effective debugging and programming tool for PIC and SAM Microcontrollers (MCUs), dsPIC Digital Signal Controllers (DSCs), and CEC flash microcontrollers. This speed is provided by a SAME70 MCU with 300 MHz, 32-bit MCU with 2MB of RAM and a high-speed FPGA to yield

The MPLAB PM3 Universal Device Programmer is easy to use and operates with a PC or as a stand-alone unit, and programs Microchip’s entire line of PIC devices as well as the latest dsPIC DSC devices. When used standalone, data can be loaded and saved with the SD/MMC card (not included).

Аппаратное обеспечение

Я собрал макет по следующей схеме.

Схема макета для отправки SMS с помощью PIC16F628A и SIM900A

Поскольку я использую MAX232, я могу использовать её, чтобы обнаружить и устранить проблемы при передаче микроконтроллером GSM модулю. Для этого я отключаю GSM модуль, подключаю кабель для последовательного порта и открываю GtkTerm. Настройки передачи: 9600-8-N-1.

Подключение компьютера для устранения проблем

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

Я не получил ответ от GSM модуля, так как он еще не подключен

Программирование микроконтроллеров для начинающих

Начинать осваивать программирование микроконтроллеров для начинающих рекомендуется с изучения архитектуры и разновидностей. Промышленность выпускает следующие виды МК:

  • встраиваемые;
  • 8-, 16- и 32-разрядные;
  • цифровые сигнальные процессоры.

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

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

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

Декодер манчестерского кода

Схема манчестерского декодера гораздо сложнее. Её задача выделить синхро-импульсы и битовый поток.

В примере применения AN1470 предлагается следующая реализация аппаратного декодирования Минчестерского кода на основе CLC и NCO (управляемого генератора).

Рис.13a. Схема декодера Манчестерского кода

Рис. 13b. Диаграммы, поясняющие работу декодера

Стадия 1 – D-Триггер
Ячейка CLC4 (D-триггер) защелкивает входной поток по спаду сигнала синхронизации. Выход с этого триггера будет являться декодированными (восстановленными) данными из входного потока.

Стадия 2 – элемент XOR (CLC2)
Поскольку в Манчестерском кодировании изменение сигнала происходит в середине каждого информационного бита, то можно использовать элемент ИСКЛЮЧАЮЩЕЕ ИЛИ чтобы обеспечить нарастающий фронт на стадии 3 в середине каждого бита, т.е. мы синхронизируем декодер в середине каждого бита.

Стадия 3 – NCO + AND-OR (CLC1)
модуль NCO, используется для генерации ¾ битового интервала по завершении которого производится захват (фиксация) данных. NCO используется в режиме с активным низким состоянием. Длительность импульсов можно регулировать с помощью регистров. Модулю NCO необходим источник тактовых импульсов, которые поступают ему из CLC1.
Эти два блока являются наиболее важными в декодере. Они создают импульсы фиксированной длины после каждого нарастающего фронта сигнала, выходящего из «стадия 2». Выходной сигнал NCO подается обратно в элемент И-ИЛИ так, что если выход из «стадия 2» становится равным нулю, то NCO будет продолжать тактироваться до своего переполнения.

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

Измерение Емкости. Емкостной сенсор. Сенсорная кнопка

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

сигналы комментарий
Осциллограммы без касания сенсора
Осциллограмма при «нажатом» сенсоре

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

Подобным методом можно детектировать протечку воды или определять влажность почвы и использовать для автоматизации полива цветов ))

Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья третья. Немного о железе

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

Из железа нам нужны: — собственно контроллер с обвязкой; — программатор.

По первому пункту можно: а) собирать схемы на макетной плате; по первому и второму: б) сделать своими руками; в) купить готовое изделие.

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

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

По пункту б: Ищем в сети схему популярной отладочной платы. Например здесь — olimex.com Еще лучше ищем вместе с рисунком платы печатной. Если нет рисунка придется разводить плату самим. Качаем программу Sprint Layout 5. Очень удобная и простая программа для любительских(и не только) целей. Разводим плату. Читаем про ЛУТ метод изготовления печатных плат в домашних условиях. Печатаем, утюжим, травим, лудим, выполняем монтаж. Для программатора аналогично. Со схемами и рисунком проводников в этом случае в сети намного больше готовых проектов. К нужны в этом случае добавятся: — лазерный принтер; — соответствующая бумага(обычно мелованная, или пленка); — хлорное железо; — текстолит; — терпение.

Плюсы: — при достаточном умении можно изготовить качественные изделия; — экономно; Минусы: — довольно сложно в техническом плане; — пройдет немало времени пока начнут получаться достойные результаты.

По пункту в: Об олимекс уже упоминал. Там неплохой выбор отладочных/демонстрационных плат. С доставкой в Украину проблем нет. Где я еще покупал и кем доволен (не реклама): — Москва — Терраэлектроника, отличный выбор, умеренные цены; — Киев — Флайконт, выбор скуднее, но для украинцев купить проще. Плата обойдется в 50-100$.

С программаторами проще. Из подешевле советую JDM-подобные программаторы. Работает через COM-порт. Цена от 20$. Из подороже пользовался PonyProg. Сейчас PICkit2. Последний около 40$. Работает через USB. Из софта реккомендую: — для JDM — WinPIC800; — ICProg; — PICKit шьет прям из MPLAB, что есть очень удобно.

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

Подпишись на RSS!

Подпишись на RSS и получай обновления блога!

Получать обновления по электронной почте:

    • Пленочные конденсаторы — применение в энергетике
      9 апреля 2021
    • Поворотное устройство для солнечного коллектора
      15 марта 2021
    • Выбор подпрограммы с помощью кнопки
      11 марта 2021
    • Керамические конденсаторы SMD, параметры
      4 марта 2021
    • Программа для проверки выходных буферов PIC16F676 и PIC16F628A
      21 февраля 2021
    • Зарядное устройство для автомобильных аккумуляторов — 242 124 просмотров
    • Стабилизатор тока на LM317 — 176 995 просмотров
    • Стабилизатор напряжения на КР142ЕН12А — 128 049 просмотров
    • Реверсирование электродвигателей — 104 705 просмотров
    • Зарядное для аккумуляторов шуруповерта — 101 144 просмотров
    • Карта сайта — 101 064 просмотров
    • Зарядное для шуруповерта — 89 943 просмотров
    • Самодельный сварочный аппарат — 89 701 просмотров
    • Схема транзистора КТ827 — 85 771 просмотров
    • Регулируемый стабилизатор тока — 85 505 просмотров
    • DC-DC (5)
    • Автомат откачки воды из дренажного колодца (5)
    • Автоматика (35)
    • Автомобиль (3)
    • Антенны (2)
    • Ассемблер для PIC16 (3)
    • Блоки питания (30)
    • Бурение скважин (6)
    • Быт (11)
    • Генераторы (1)
    • Генераторы сигналов (8)
    • Датчики (4)
    • Двигатели (7)
    • Для сада-огорода (11)
    • Зарядные (17)
    • Защита радиоаппаратуры (8)
    • Зимний водопровод для бани (2)
    • Измерения (41)
    • Импульсные блоки питания (2)
    • Индикаторы (6)
    • Индикация (10)
    • Как говаривал мой дед … (1)
    • Коммутаторы (6)
    • Логические схемы (1)
    • Обратная связь (1)
    • Освещение (3)
    • Программирование для начинающих (19)
    • Программы (1)
    • Работы посетителей (7)
    • Радиопередатчики (2)
    • Радиостанции (1)
    • Регуляторы (5)
    • Ремонт (1)
    • Самоделки (12)
    • Самодельная мобильная пилорама (3)
    • Самодельный водопровод (7)
    • Самостоятельные расчеты (37)
    • Сварка (1)
    • Сигнализаторы (5)
    • Справочник (13)
    • Стабилизаторы (16)
    • Строительство (2)
    • Таймеры (4)
    • Термометры, термостаты (27)
    • Технологии (21)
    • УНЧ (2)
    • Формирователи сигналов (1)
    • Электричество (4)
    • Это пригодится (14)
  • Архивы
    Выберите месяц Апрель 2021  (1) Март 2021  (3) Февраль 2021  (2) Январь 2021  (1) Декабрь 2020  (1) Ноябрь 2020  (1) Октябрь 2020  (1) Сентябрь 2020  (2) Июль 2020  (2) Июнь 2020  (1) Апрель 2020  (1) Март 2020  (3) Февраль 2020  (2) Декабрь 2019  (2) Октябрь 2019  (3) Сентябрь 2019  (3) Август 2019  (4) Июнь 2019  (4) Февраль 2019  (2) Январь 2019  (2) Декабрь 2018  (2) Ноябрь 2018  (2) Октябрь 2018  (3) Сентябрь 2018  (2) Август 2018  (3) Июль 2018  (2) Апрель 2018  (2) Март 2018  (1) Февраль 2018  (2) Январь 2018  (1) Декабрь 2017  (2) Ноябрь 2017  (2) Октябрь 2017  (2) Сентябрь 2017  (4) Август 2017  (5) Июль 2017  (1) Июнь 2017  (3) Май 2017  (1) Апрель 2017  (6) Февраль 2017  (2) Январь 2017  (2) Декабрь 2016  (3) Октябрь 2016  (1) Сентябрь 2016  (3) Август 2016  (1) Июль 2016  (9) Июнь 2016  (3) Апрель 2016  (5) Март 2016  (1) Февраль 2016  (3) Январь 2016  (3) Декабрь 2015  (3) Ноябрь 2015  (4) Октябрь 2015  (6) Сентябрь 2015  (5) Август 2015  (1) Июль 2015  (1) Июнь 2015  (3) Май 2015  (3) Апрель 2015  (3) Март 2015  (2) Январь 2015  (4) Декабрь 2014  (9) Ноябрь 2014  (4) Октябрь 2014  (4) Сентябрь 2014  (7) Август 2014  (3) Июль 2014  (2) Июнь 2014  (6) Май 2014  (4) Апрель 2014  (2) Март 2014  (2) Февраль 2014  (5) Январь 2014  (4) Декабрь 2013  (7) Ноябрь 2013  (6) Октябрь 2013  (7) Сентябрь 2013  (8) Август 2013  (2) Июль 2013  (1) Июнь 2013  (2) Май 2013  (4) Апрель 2013  (7) Март 2013  (7) Февраль 2013  (7) Январь 2013  (11) Декабрь 2012  (7) Ноябрь 2012  (5) Октябрь 2012  (2) Сентябрь 2012  (10) Август 2012  (14) Июль 2012  (5) Июнь 2012  (21) Май 2012  (13) Апрель 2012  (4) Февраль 2012  (6) Январь 2012  (6) Декабрь 2011  (2) Ноябрь 2011  (9) Октябрь 2011  (14) Сентябрь 2011  (22) Август 2011  (1) Июль 2011  (5)

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

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

Выбирая язык программирования микроконтроллеров PIC, необходимо учитывать, что в основе микросхем семейства лежит уникальная конструкция RISC-процессора. Симметричная система команд позволяет произвольно выбирать метод адресации, выполнять операции в любом регистре. На данный момент компания «Микрочип» выпускает 5 разновидностей МК, которые совместимы по программному коду:

  1. PIC18CXXX (75 команд, встроенный аппаратный стек);
  2. PIC17CXXX (58 команд 16-разрядного формата);
  3. PIC16CXXX (35 команд, большой набор периферийных устройств);
  4. PIC16C5X (33 команды 12-разрядного формата, корпуса с 18–28 выводами);
  5. PIC12CXXX (версии с 35 и 33 командами, интегрированный генератор).

В большинстве случаев МК PIC имеют однократно программируемую память. Встречаются более дорогие модели с Flash или ультрафиолетовым стиранием. Ассортимент из 500 наименований позволяет подобрать изделие для любой задачи. Сейчас производитель концентрирует усилия на развитии 32-разрядных версий с увеличенным объемом памяти.

Языки программирования микроконтроллеров PIC — это Ассемблер и Си. Для кодирования подходят любые интегрированные среды разработки (IDE). Программировать с их помощью очень удобно. Они автоматически переводят текст программы в машинный код

Важной характеристикой IDE является возможность пошаговой симуляции работы готового ПО. Мы рекомендуем пользоваться средой разработки MPLAB

Ее созданием занималась компания Microchip.

Перед началом работы в MPLAB советуем каждый раз заводить отдельную папку. Это нужно, чтобы не запутаться в файлах проектов. Интерфейс программы интуитивно понятный, и трудностей с ним возникнуть не должно. Для отладки используются фирменные отладчики Pickit, ICD, REAL ICE, IC PROG. В них имеется возможность просмотра содержимого памяти, установки контрольных точек.

Как и какие микроконтроллеры будем программировать?

Вопрос «как будем программировать» состоит из двух пунктов. Под программированием понимаются процессы написания программы и прошивания.

Писать текст программы на СИ мы будем в программе MPLAB IDE. Я не знаю, сколько прошло времени от момента написания этих строк, до момента вашего прочтения, но уверен что версия MPLAB IDE описываемая здесь уже устарела. У меня MPLAB IDE v8.30 и именно её мы будем здесь рассматривать. Я знаю, что уже выпущена версия v8.40, но я не стал обновляться, т.к. изменения в новой версии для меня не будут критичны. Я советую вам сначала освоить по самоучителю v8.30, а затем интуитивно разобрать юзерские полезности в более старших версиях. Откуда скачивать? С официального сайта Microchip из архива программ. Вы должны понимать, что термин «устаревшая версия MPLAB IDE» не относится к языку программирования и не является препятствием для вашего обучения.

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

Потребуется компилятор. Компилятор – это программа, позволяющая компилировать (переводить текст) с языка программирования в машинные коды, т.е. в прошивку. MPLAB содержит компилятор Ассемблера. Строго говоря, язык Ассемблера, это машинные коды представленные в виде словесных команд. Для компиляции с языка Си нам потребуется HI-TECH PICC Compiler 9.50. Т.к. «правильный» компилятор стоит денег, в Интернете есть демо-версия с ограниченным объемом выходного кода (совсем правильное здесь). Необходимо отметить, что в комплекте с MPLAB IDE v8.30 идёт PICC Compiler 9.60PL5. Но он также имеет ограничения Omniscient Code Generation not available in Lite mode.

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

Здесь может быть ваша реклама

Понравилась конструкция, но не можете собрать?Обращайтесь, мы удовлетворим ваши запросы и пожелания! Напишите нам письмо.

Как и какие микроконтроллеры будем программировать?

Вопрос «как будем программировать» состоит из двух пунктов. Под программированием понимаются процессы написания программы и прошивания.

Писать текст программы на СИ мы будем в программе MPLAB IDE. Я не знаю, сколько прошло времени от момента написания этих строк, до момента вашего прочтения, но уверен что версия MPLAB IDE описываемая здесь уже устарела. У меня MPLAB IDE v8.30 и именно её мы будем здесь рассматривать. Я знаю, что уже выпущена версия v8.40, но я не стал обновляться, т.к. изменения в новой версии для меня не будут критичны. Я советую вам сначала освоить по самоучителю v8.30, а затем интуитивно разобрать юзерские полезности в более старших версиях. Откуда скачивать? С официального сайта Microchip из архива программ. Вы должны понимать, что термин «устаревшая версия MPLAB IDE» не относится к языку программирования и не является препятствием для вашего обучения.

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

Потребуется компилятор. Компилятор – это программа, позволяющая компилировать (переводить текст) с языка программирования в машинные коды, т.е. в прошивку. MPLAB содержит компилятор Ассемблера. Строго говоря, язык Ассемблера, это машинные коды представленные в виде словесных команд. Для компиляции с языка Си нам потребуется HI-TECH PICC Compiler 9.50. Т.к. «правильный» компилятор стоит денег, в Интернете есть демо-версия с ограниченным объемом выходного кода (совсем правильное здесь). Необходимо отметить, что в комплекте с MPLAB IDE v8.30 идёт PICC Compiler 9.60PL5. Но он также имеет ограничения Omniscient Code Generation not available in Lite mode.

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

Здесь может быть ваша реклама

Понравилась конструкция, но не можете собрать?Обращайтесь, мы удовлетворим ваши запросы и пожелания! Напишите нам письмо.

Создание проекта и подключение файла с программой

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

1. Запускаем программу.

2. Запускаем мастер проектов Project –> ProjectWizard…

3. Выбираем тип микроконтроллера, например PIC16F84A.
 

4.Выбор языкового средства, в нашем случае MicrochipMPASMToolsuiteи ниже прописываются пути для компилятора, ассемблера, линкера (по умолчанию всё прописано и настроено; перенастраивается в случае работы на других языках, например СИ).
 

5. Ввод имени проекта (ProjectName). Имя проекта строго на английской раскладке без пробелов разумной длины, например, Proba.
 

Выбор папки для размещения проекта (ProjectDirectory). Нажимаем Browse… , находим и выбираем ранее созданную нами папку Project (путь – C:Program FilesMicrochipProject); далее нажимаем кнопку «Создать папку» которую именуем как Proba.

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

6. Далее, далее, готово.

Проект – это файл cрасширением *.mcp который использует MPLABдля своих нужд. Но без этого файла мы не сможем работать. Более того, к этому файлу-проекту нужно подключить наш файл, с текстом программы. Всё это непонятно и запутано, поэтому делаем следующее.

7. Создаем файл, в котором будет набран текст программы. File –> New. Появляется пустое окно с заголовком Untitled.
 

8.Сохраняем этот файл. File –> SaveAs… под именем Probaв папку проекта Proba (путь – C:ProgramFilesMicrochipProjectProba).
 

А теперь главное, перед сохранением поставьте галочку перед Add File To Project и этим сделаете ПОДКЛЮЧЕНИЕ ФАЙЛА С ПРОГРАММОЙ к проекту.

9. Альтернативное подключение файла с текстом программы (если эту галку забыли поставить) можно сделать иначе.
 

В окне с заголовком (в нашем примере – Proba.mcw) щелкаем правой кнопкой мыши по SourceFilesи выбираем пункт AddFiles…, затем по адресу C:ProgramFilesMicrochipProjectProba находим сохраненный нами файл Proba.asmи открываем его.

Наш файл – Proba.asm – это файл исходник, в котором размещается текст нашей программы на ассемблере. Файл с расширением *.asm, как и файл *.hex, можно открыть в стандартом блокноте Windows

С точки зрения важности – актуален файл исходник, т.к. проект можно создать в любой момент, в любой версии MPLAB и уже потом скомпилировать прошивку

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