Программирование мк avr на языке assembler в среде linux

Введение

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

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

Управление по напряжению с пропорциональным управлением

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

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

Управление по напряжению с пропорциональным управлением можно реализовать на встроенной периферии PIC контроллеров с помощью ШИМ модулятора – необходим генератор пилы (Ramp генератор) и компаратор (реализацию ШИМ модуляторов мы уже рассматривали в )

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

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

10). Длительность импульса ШИМ будет служить ограничителем скважности управляющего сигнала DRV (ограничивать сигнал с выхода компаратора).

Рис.9 ШИМ-контроллер ИИП в режиме управления по напряжению с пропорциональным управлением.

Рис.10. Диаграммы работы ШИМ контроллера с управлением по напряжению

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

Как было сказано 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 мы покажем некоторые полезные возможности, которые помогут по-новому взглянуть на механизм исполнения программы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задержка. Формирование импульса по фронту, спаду, изменениям

Для некоторых задач может понадобиться формирование задержанного импульса.
Для этого можно применить D-триггер. На счетный вход подаем входной сигнал, на вход тактирования – какой либо высокочастотный сигнал (например тактовой частоты Fosc). Таким образом, изменение выхода триггера будет происходить только по фронту тактового сигнала.
Данный метод будет сдвигать фронт и спад сигала на период Fosc (тактовой частоты) только если оба сигнала синхронны. Поэтому для гарантированного сдвига на 1 период Fosc сдвигаемый сигнал должен формироваться самим микроконтроллером (ШИМ, NCO и др.). Если входной сигнал асинхронный, то на входе можно поставить синхронизатор на точно таком же D-триггере (т.е. сперва сдвинуть асинхронный сигнал до первого тактового импульса, а затем сдвинуть на полный период тактового сигнала).

Рис. 6a. Формирователь задержанного сигнала.

Рис. 6b. Диаграммы на входе и выходе формирователя задержанного сигнала.

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

Рис. 7a. Формирователь импульсов по фронту и спаду

Рис. 7b. Диаграммы на входе и выходе формирователя импульсов по фронту и спаду

Рис. 8a. Формирователь импульсов по фронту.

Рис. 8b. Диаграммы на входе и выходе формирователя импульсов по фронту

Формирование импульсов по спаду

Рис. 9a. Формирователь импульсов по спаду

Рис. 9b. Диаграммы на входе и выходе формирователя импульсов по спаду

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

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).

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

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

В примере применения 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 получим декодированные данные и прерывание по приему.

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

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

Писать текст программы на СИ мы будем в программе 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программное обеспечение

Хотя программа снабжена комментариями, здесь я рассмотрю некоторые ее фрагменты. Когда PIC-контроллер включается, отображается короткое приветственное сообщение. Затем начинается 15-секундный отсчет. Я добавил отсчет по двум причинам:

  1. позволить GSM модулю зарегистрироваться в сети;
  2. визуально показать пользователю, что что-то происходит, и микроконтроллер работает.

При завершении обратного отсчета PIC-контроллер отправляет команду:

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

Затем модуль возвращает следующую строку:

Это означает, что GSM модуль зарегистрирован в сети NetCom. NetCom – это название провайдера. Именно это название мы хотим отобразить на LCD дисплее. Теперь нам нужно извлечь это название из полученной строки. Способ, которым я это делаю, заключается в чтении всей строки в массив. Затем я ищу «какие-то_символы». Когда «какие-то_символы» найдены, я сохраняю их позиции в другом массиве. Назовем это стартом и стопом. Затем я использую значения старта и стопа, чтобы отобразить символы между ними на LCD дисплее. Возможно, это не самый изящный способ, но он прост.

Поиск названия оператора в строке ответа

Чтобы отправить SMS, я должен послать чуть больше AT команд.

Сначала я посылаю команду:

Это выбор формата SMS сообщения. 1 говорит модулю о необходимости перейти в текстовый режим.

Затем я посылаю команду:

“receiver” – это номер получателя, на который я хочу отправить сообщение.

Третьей я посылаю команду:

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

Это символ в обычно таблице ASCII. Теперь модуль отправит сообщение.

Микроконтроллеры 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. В них имеется возможность просмотра содержимого памяти, установки контрольных точек.

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

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

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

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

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

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