Как создать программу для микроконтроллера

Меня часто спрашивают: «Чем отличается микроконтроллер от ПЛИС?» Ну что тут можно ответить? Это как бы разные вещи. Микропроцессор последовательно выполняет команды, описанные в его программе. Работа ПЛИС в конечном счете определяется принципиальной электрической схемой, реализованной внутри чипа.

Архитектура микроконтроллера, то есть тип процессора, количество портов ввода вывода, интерфейсы, определяется производителем. Микросхема микроконтроллера изготовлена на заводе и изменить ее нельзя. Можно только написать программу, которую он будет исполнять. ПЛИС — это свобода для творчества.

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

Один из самых распространенных микроконтроллеров — это 8-ми разрядные RISС процессоры семейства AVR компании Atmel. В этой статье я расскажу как реализовать «почти» совместимый с AVR микроконтроллер внутри нашей ПЛИС на плате Марсоход.

Как просто научиться программировать микроконтроллеры PIC и AVR / Бегущие огни за 8 минут!

Прежде, чем начинать делать свою реализацию микроконтроллера, конечно, следует изучить внутренности контроллера AVR. Нужно как минимум знать систему команд микропроцессора AVR. На нашем сайте можно скачать его описание:

Система команд микроконтроллера AVR ( 703303 bytes )

Читайте также:
Ядов в а социологическое исследование методология программа методы м наука

Как создать программу для микроконтроллера

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

Написание макросов в ассемблере

12.02.2011 3 Mins Read

При освоении языка программирования, Ассемблер, в описании инструментов этого языка, упоминается такой элемент, как — Макрос. Зачем он нужен и какая от него польза? Чтобы реально это понять, вероятно, лучше это показать на конкретном примере, конкретной программы.

регистр EEAR с адресом ячейки памяти EEPROM

Работа с энергонезависимой памятью EEPROM

Кроме FLASH-памяти программ и оперативной памяти RAM в микроконтроллере есть другой вид памяти — EEPROM.…

CodeVisionAVR

Первый проект для микроконтроллера AVR в CodeVisionAVR

Среда CodeVisionAVR является, пожалуй, самой ходовой средой для программирования микроконтроллеров AVR, т.к. заточена именно под…

Подключение дисплея 16х2 к микроконтроллеру

CodeVision AVR. Вывод информации на ЖКИ. Использование библиотечных функций.

Индикаторы ЖКИ являются неотъемлемой частью радиоэлектронной аппаратуры для вывода различной информации. В этой статье поговорим…

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

В данной статье рассматриваются азы программирования микроконтроллеров на Си. Язык программирования Си — высокоуровневый язык,…

Светодиодная мигалка

Создание своей библиотеки *.lib — *.h для использования в программе на Си

Речь пойдет о том, как создать связку файлом *.lib — *.h для использования в основной…

Рисунок 1. Электрическая принципиальная схема адаптера STK200/300

Схема программатора STK200/300

В настоящее время микроконтроллеры AVR фирмы ATMEL получили весьма широкое распространение. Это обусловлено небольшой стоимостью,…

Регистры и порты микроконтроллера AVR

Одним из самых важных аспектов программирования микроконтроллеров является работа с регистрами и портами. У микроконтроллеров…

Основные ассемблерные команды микроконтроллеров AVR

Для изучения азов программирования микроконтроллеров AVR на ассемблере AVR Studio необходимо понимать значения ассемблерных мнемоник.…

Пример работы USART и SPI на C WinAVR

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

В Контакте Ютуб Почта

До сих пор я выдавал вам общие сведения о микроконтроллерах, отрывки из документации, иногда немного говорил о программировании. Но ещё ни разу не приводил примеров устройств на микроконтроллерах. А ведь именно в этом весь смысл обучения — в создании собственных устройств.

Читайте также:
Как называется программа на Андроид для скачивания приложений

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

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

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

Для опытов возьмём один из самых дешёвых микроконтроллеров — ATtiny13A, о котором я уже немало поведал на этом сайте.

Самая простая схема на микроконтроллере

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

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

Конечно, это всё достаточно примитивно. Однако в давние времена, когда я занимался (в том числе) и обслуживанием систем сигнализации, мы использовали такие самодельные “датчики”. Например, обматывали решётку на окне тонким проводом и подключали его в шлейф прибора сигнализации. Если злодей выдернет решётку — провод порвётся и сигнализация сработает.

Ну а теперь к схеме.

Читайте также:
Ifunbox не видит программы

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

Микроконтроллер ATtiny13A выпускается в нескольких корпусах. Будем считать, что у нас корпус 8PDIP/SOIC (подробнее об этом здесь). Тогда схема будет такой:

Самая простая схема на микроконтроллере

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

На схеме SA1 может быть либо охранным датчиком, либо просто тонким проводом, обмотанным, например, вокруг какого-то охраняемого предмета. При обрыве провода (или размыкании контакта) сигнализация “срабатывает” и светодиод загорается.

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

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

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

Итак, пройдём путь от создания проекта до написания программы.

Запускаем среду разработки AVRStudio 4 и видим окно:

Запуск AVRStudio 4

Нажимаем кнопку NEW PROJECT. Откроется окно:

Создание проекта в AVR Studio 4

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

ВНИМАНИЕ!
В пути к файлу не должно быть русских букв. То есть если вы сохраните проект в папку МОИ_ПРОГРАММЫ , то программа не скомпилируется, так как AVR Studio 4 может не понять путь с русскими буквами.

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru