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