
- •4. Архитектура мк aTmega16
- •Пространство ввода/вывода avr-мк
- •Регистр статуса
- •Указатель стека
- •Регистр управления/статуса приемопередатчика scon
- •Прерывания и их обработка
- •10. Внешние прерывания
- •12.Таймеры/счетчики мк aTmega16
- •Таймер/счетчик 0
- •Регистр управления таймером/счетчиком 0
- •Регистр совпадения таймера/счетчика 0
- •Регистр масок прерываний от таймеров/ счетчиков
- •Регистр флагов прерываний от т аймеров/счетчиков
- •Общий регистр управления прерываниями
- •Регистр флагов внешних прерыван ий
- •14.Таймер/счетчик 2
- •Регистр статуса асинхронного режима
- •Дополнение: Таймер-счетчик тс/2 с расширенными возможностями Таймер счетчик т/с2 микроконтроллера 8052
- •Регистр управление таймера/счетчика 2 t2com
- •Режимы работы таймера/счетчика 2
- •Регистр режима таймера/счетчика 2 т2моd
- •Дополнительный регистр приоритетов прерываний iрн
- •16.Особенности подключения датчиков с механическими контактами к мк
- •2. Классификация.
- •18. Аналоговый компаратор avr-мк
- •20. Двоично-десятичные коды
- •1. Форматы представления десятичных чисел
- •2. Преобразование целых 16-битных чисел в двоично-десятичные числа
- •3. Преобразование двоичной дроби в двоично-десятичную дробь
4. Архитектура мк aTmega16
Порт
А
Генератор тактовых импульсов |
|||
|
|
|
|
Указатель
стека
АЦП
Порт
В
Память
данных
Память
программ
Сторожевой
таймер
ОЗУ
Порт
D
Рабочие
регистры
X
Y
Z
Компаратор
Порт
С
Последовательный
интерфейс
связи с
периферией
Периферия
Рис. 2.5. Архитектура МК ATmega16
ПЗУ включает в себя две раздельные области - память программ и память данных. Программа МК хранится в памяти программ; в
памяти данных могут храниться пользовательские данные (которые временно могут также храниться в ОЗУ).
Распределение адресного пространства памяти программ МК ATmega16 показано на рис. 2.6.
Память программ пользователя 8К ? 16
Загрузочная область
$0000
$1FFF
Рис. 2.6. Распределение адресного пространства памяти программ
Память программ делится на две |
секции |
– секцию |
|
пользовательской программы (Application |
Flash |
Section) и |
|
загрузочную секцию (Boot Flash Section). |
|
|
|
В первой |
секции размещаются |
команды основной |
|
пользовательской |
программы, во второй |
– код, связанный с |
реализацией функций самопрограммирования МК.
Большинство команд AVR-МК имеют формат одного 16- разрядного слова, в связи с чем по каждому из адресов памяти программ размещается одна команда. Размещение команд начинается с нулевого адреса ($0000).
Выполнение программы после сброса МК начинается с команды, которая размещается по нулевому адресу в памяти программ.
При работе с памятью программ используется так называемый одноуровневый конвейер – в то время как одна команда выполняется, следующая команда выбирается из памяти программ. Такой прием позволяет выполнять команду в каждом тактовом цикле. При этом адрес команды, которая должна выбираться из памяти программ, находится в счетчике команд (таким образом, счетчик команд задает адрес следующей команды). Счетчик команд в штатном режиме работы автоматически увеличивает свое значение на единицу с каждым импульсом тактового генератора, но возможны ситуации, когда пользовательская программа или узлы МК воздействуют на содержимое счетчика команд.
После выборки команда попадает в регистр команд.