Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 4 от.docx
Скачиваний:
1
Добавлен:
19.11.2019
Размер:
213.94 Кб
Скачать

3 Команди передачі керування

Режими адресації пам'яті програм і даних при передачі керування.

При звертанні до Flash-пам'яті програм і пам'яті даних (SRAM,

реєстрового файла і пам'яті І/O) AVR Enhanced RІSC мікроконтролерами

використовуються потужні й ефективні режими адресації.

Непряма адресація даних зі зсувом зображена на рис. 2.

Рисунок 2 - Непряма адресація даних зі зсувом

Адреса операнда обчислюється підсумовуванням вмісту регістра Y чи Z з 6 бітами адреси, що містяться в слові команди.

Непряма адресація даних зображена на рис. 3.

Рисунок 3 - Непряма адресація даних

Адреса операнда міститься в регістрі або X, абоY або Z.

Непряма адресація даних із предекрементом рис. 4.

Рисунок 4 - Непряма адресація даних із предекрементом

Перед виконанням операції регістр X абоY, або Z декрементується. Декрементований вміст регістра X абоY або Z є адресою операнда. Непряма адресація даних з постінкрементом рис. 5.

Рисунок 5 - Непряма адресація даних з постінкрементом

Після виконання операції регістр X абоY, або Z інкрементується. Aдресою операнда є вміст X, Y чи Z регістра попередньо інкрементованого.

Адресація константи з використанням команд LPM рис. 6.

Рисунок 6 - Адресація константи коду пам'яті

Адреса байта константи визначається вмістом регістра Z. Старші 15 бітів визначають слово адреси (від 0 до 1К 16). Непряма адресація пам'яті програм, команди ІJMP і ІCALL рис. 7.

Рисунок 7 - Непряма адресація пам'яті програм

Виконання програми продовжується з адреси, що міститься в регістрі Z (тобто, лічильник команд завантажується вмістом регістра Z). Відносна адресація пам'яті програм, команди RJMP і RCALL рис. 8.

Рисунок 8 - Відносна адресація пам'яті програм

Виконання програми продовжується з адреси PC + k + 1. Значення відносної адреси може бути від -2048 до 2047. Групу команд передачі керування утворюють команди безумновного переходу, умовного переходу, команди виклику підпрограми і команди повернення з підпрограми. Характеристики команд наведені в переліку:

RJMP

IJMP

EIJMP

STACK

EIND

JMP

RCALL

ICALL

RET

RETI

CPSE

CP

CPC

CPI

SBRC

SBRS

SBIC

SBIS

BRBC

SREG

BRBS

SREG

BREQ

BRNE

BRCS

BRCC

BRSH k

BRLO

BRMI

BRPL

BRGE

BRLT k

BRHS k

BRHC

BRTS k

BRTC k

BRVS k

BRVC k

BRIE k

BRID k

Хід роботи:

  1. Напишемо програму затримки часу на 153000 тактів (рис. 1) з допомогою програми AVR Studio.

В даній програмі будемо застосовувати такі команди:

  • dec;

  • brne;

  • r

    Початок

    jmp;

Алгоритм:

Запис константи в R16

Запис константи в R17

Запис константи в R18

Зменшити R18 на 1

R18 = 0

Зменшити R17 на 1

R17 = 0

Зменшити R16 на 1

R16 = 0

Кінець

Оскільки N=K1*k2*k3 = 156000 циклів, то k1= 150 (0x96), k2= 10 (0xA), k3= 102 (0x66).

Рис.1 Програма затримки часу

Висновок: в даній лабораторній роботі ми опанували такі операції, як розгалуження та умовні переходи. Навчилися реалізовувати затримку часу. Вдосконалили вміння працювати з програмою AVR Studio 4.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]