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

 

Кроме FLASH-памяти программ и оперативной памяти RAM в микроконтроллере есть другой вид памяти - EEPROM. В отличии от RAM-памяти данные в памяти EEPROM сохраняются даже после выключения питания. Аббревиатура EEPROM расшифровывается как Electrically Erasable Read-Only Memory (электрически стираемая память ПЗУ). В микроконтроллерах AVR серии Classic для работы с памятью EEPROM достаточно трёх управляющих регистров:

 

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

Для начала работы с этими микроконтроллерами необходимо обзавестись какими либо средствами осуществляющими внутрисхемное программирование. Существует достаточно большое количество различных конструкций программаторов, но на первоначальном этапе вполне подойдет адаптер STK200/300. В данной статье я попытаюсь подробно описать процесс сборки этого адаптера. Причем настоятельно рекомендую повторить конструкцию именно так, как описано, а не на куске макетной платы. Рекомендация вытекает из шести летнего использования адаптера собранного на чем попало.

 

Одним из самых важных аспектов программирования микроконтроллеров является работа с регистрами и портами. У микроконтроллеров серии AVR несколько регистров ввода/вывода и 32 рабочих регистра общего назначения. Программист не может непосредственно записать число в регистр ввода/вывода. Вместо этого он должен записать число в регистр общего назначения, а затем скопировать значение этого регистра в регистр ввода/вывода. Рабочие регистры обозначаются как R1, R2, ... , R31.

 

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

 

Простенькая программка иллюстрирует работу ШИМ в режиме Fast PWM таймера Timer1 и АЦП. Написана на ассемблере, компилируется в AVR Studio. Для микроконтроллера ATmega8, который тактируется внутренним RC - генератором на 1МГц.

 

Напишем простенькую программку для микроконтроллера. Рассмотрим пример простой программы "мигалка", написанной на ассемблере для микроконтроллера ATtiny2313. Разобравшись с этой программой Вы сможете писать собственные!