Микропроцессоры и микроконтроллеры

 
 
 
«There are only two kinds of languages: the ones people complain about and the ones nobody uses.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: Микроконтроллерные вычислители :: 13.2 Применение МК AVR в учебном процессе.Часть первая

13.2 Применение МК AVR в учебном процессе.Часть первая

Применение МК AVR в учебном процессе для непосредственного изучения и программирования ограничено следующими причинами:

 

·  более сложная архитектура, чем у МК семейства MCS-51;

·  язык ассемблер у МК AVR сложнее из-за многочисленных мнемоник команд, зависящих от формы адресации данных;

·  невозможность реализации шинной архитектуры с выборкой команд из внешнего ОЗУ; как следствие, необходимость постоянного перепрограммирования встроенной Flash-памяти;

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

5.2  Структура микроконтроллера AVR ATmega16

5.2  Структура микроконтроллера AVR ATmega16

Микроконтроллер ATmega16 сочетает в себе значительные вычислительные и периферийные ресурсы;  в тоже время является удобным в монтаже и эксплуатации, и доступен на рынке за невысокую цену (около $3-4). Структура микроконтроллера показана на рис.5.1.

Рисунок 5.1 – Структура микроконтроллера AVR ATmega16

5.3  Адресное пространство микроконтроллера AVR ATmega16

5.3  Адресное пространство микроконтроллера AVR ATmega16

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

Адресное пространство памяти программ – непрерывные 16К байт с адресами от 0000h до 3FFFh.

Первые 42 байта (0000h–0029h) используются как таблица векторов прерываний. В каждой паре ячеек должен располагаться адрес подпрограммы обработки соответствующего прерывания. Например, 0000h – стартовый вектор, 0002h – внешнее прерывание INT0, 0004h – внешнее прерывание INT1, 0006h – совпадение таймера-счетчика Т2, 0008h – переполнение таймера-счетчика Т2 и т.д.

Структура адресного пространства памяти данных SRAMпоказана в табл.5.3.

Таблица 5.3 – Структура памяти данных (1К байт)

Название

Диапазон
адресов

Характеристика
адресной области

Регистры общего
назначения R0 – R31

00h – 1Fh

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

Любой регистр может быть источником и приемником данных.

Регистры с адресами (1A:1B), (1C:1D), (1E:1F) имеют имена X, Y и Z. Они используются также для косвенной адресации внутренней памяти МК

Область регистров ввода-вывода
(регистрам присвоены имена в соответствии
с их назначением)

20h – 5Fh

Содержит две группы:

– служебные регистры МК (указатель стека, регистр флагов, управление состоянием МК и др.)

– регистры, относящиеся к конкретным периферийным устройствам (параллельные и последовательные порты, таймеры, контроллер прерываний, АЦП и др.)

ОЗУ данных

60h – 3FFh

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

Стек должен располагаться в этой адресной области. Использование стека традиционное – хранение адреса возврата при вызове подпрограммы (в т.ч. при обработке прерываний) и временное хранение данных.

Кроме того, МК содержит энергонезависимую память данных типа EEPROM. Запись данных в эту область требует значительно больше времени, чем в обычное ОЗУ, но данных сохраняются при выключении питания МК.

5.4  Краткий обзор системы команд МК ATmega16

Система команд поддерживает регистровый, прямой, непосредственный и косвенный способы адресации, а также прямую адресацию отдельных битов в регистрах управления МК и периферией

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

Функциональные группы команд традиционны: пересылка данных, арифметические, логические, перехода, управления, битовые.

Особенность команд состоит в том, что мнемоника команды выражает способ адресации. Например,

MOV  R2, R4 – пересылка из регистра R4 в регистр R2

LDI  R2, 70h – непосредственная загрузка числа 70h в регистр R2

LDS  R2, 70h – пересылка из ячейки ОЗУ с адресом 70h в регистр R2

OUT  PORTC, R3 – пересылка байта в порт ввода-вывода С

5.5  Порты ввода-вывода микроконтроллера AVR ATmega16

5.5  Порты ввода-вывода микроконтроллера AVR ATmega16

Модель ATmega16 содержит четыре 8-разрядных порта PA, PB, PC и PD. Каждый порт допускает как байтовые операции чтения-записи, так и битовые действия над отдельными линиями.