Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методички по Микропроцессорам / Приложение Б(134-140)

.doc
Скачиваний:
24
Добавлен:
26.04.2015
Размер:
176.13 Кб
Скачать

Таким образом, обращение к регистрам памяти I/O можно осуществлять по-разному. Например, необходимо все каналы порта D запрограммировать на вывод информации. При непосредственном обращении к регистру DDRD порта D программа будет иметь вид:

…………………………

ldi r16, $ff

out DDRD, r16

…………………………

или такой вид:

………………………….

ldi r16, $ff

out $11, r16

…………………………….

Использование команд IN и OUT является признаком обращения к регистрам памяти I/O с адресами от $00 до $3F.

При обращении к регистру DDRD как к ячейке памяти пространства памяти данных, программа будет иметь вид:

……………………………..

ldi r16, $ff

sts $31, r16

……………………………..

В процессе обработки прерываний и вызовов подпрограмм адрес возврата счетчика команд (PC) сохраняется в стеке. Стек размещается в SRAM данных и, следовательно, размер стека ограничен только общим размером SRAM и уровнем ее использования. Все пользовательские программы в подпрограммах возврата (прежде чем подпрограммы или прерывания будут выполняться) должны инициализировать указатель стека (SP). 10-разрядный указатель стека, с возможностью чтения/записи располагается в пространстве I/O, по адресам $3E($5E) и $3D($5D).

Указатель стека должен быть установлен так, чтобы адрес его вершины располагался в области памяти ОЗУ выше $60. Рекомендуется его устанавливать по адресу $025f. Указатель стека декрементируется на единицу при каждом занесении данных в стек командой PUSH, и на две единицы при занесении данных в стек командой CALL и прерыванием. Указатель стека инкрементируется на единицу при извлечении данных из стека и на две единицы при возвращении из подпрограммы командой RET или при возврате из прерывания командой RETI.

EEPROM-память данных организована как отдельное пространство данных со своей адресацией от $0000 до $01ff. Она позволяет считывание и запись отдельного байта. Взаимодействие между EEPROM и CPU определяется регистром адреса EEPROM (EEARH и EEARL), регистром данных EEPROM (EEDR) и регистром управления EEPROM (EECR) из области регистров ввода/вывода I/O.

Использование памяти EEPROM в лабораторном комплексе не предусмотрено.

141