Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_MikroKontrolery_КПЗ_AVR128_укр.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
8.45 Mб
Скачать

1.1.2. Програмна модель мікроконтролера avr mega128. Механізм роботи з регістрами, пам'яттю й портами вводу/вивода.

У мікроконтролері AVR АТMEGA128 реалізована гарвардська архітектура, у відповідності до якої адресні простори пам'яті програм і даних фізично розділений (доступ до цих областей пам'яті здійснюється по роздільних шинах). Така організація дозволяє ядру процесора одночасно працювати з пам'яттю програм і даних, що підвищує швидкодію. Карта розподілу пам'яті в мікроконтролері AVR АТMEGA128 наведена на рис. 1.1. Пам'ять програм являє собою електрично-стираємий перепрограмувальний постійний запам'ятовувальний пристрій ППЗУ обсягом 128 кбт, виконане за технологією FLASH - пам'яті, і призначена для зберігання команд, керуючих функціонуванням мікроконтролера, а також для зберігання констант, що не міняють своїх значень у ході виконання програми. Так, як довжина команди становить 16 біт, то пам'ять програм має 16-розрядну організацію. Для адресації пам'яті програм використовується 16-розрядний регістр - програмний лічильник PС (Program Counter). Програма виконується послідовно. Для керування ходом виконання програми існують команди переходу, що змінюють відповідним чином значення РС.

Пам'ять даних організована за принципом сполученої архітектури вводу/виводу й розділена на 3 частини: регістрова пам'ять, пам'ять портів (регістрів) вводу/виводу й статичне ОЗУ (SRAM), розташовані в єдиному адресному просторі.

Рисунок 1.1 - Розподіл пам'яті в мікроконтролері AVR АТMEGA128

Регістрова пам'ять (див. рисунок 1.2) включає 32 8-розрядних регістра загального призначення (R0 - R31), об'єднаних у регістровий файл. Кожний з регістрів загального призначення безпосередньо пов'язаний з АЛУ. АЛУ підтримує арифметичні й логічні операції з регістрами, між регістром і константою або безпосередньо з регістром. При виконанні арифметичної або логічної команди за один такт із регістрового файлу вибираються два операнда, виконується дія, і результат повертається в регістровий файл. Регістровий файл відображається на молодші 32 адреси 0000h-001Fh пам'яті даних і до його регістрів можна звертатися як до комірок пам'яті. Шість 8 - розрядних регістрів (R26 - R31) можуть використатися як три 16-розрядних регістри-покажчики для непрямої адресації (див. рисунок 1.3).

Рисунок 1.2 - Ілюстрація відображення регістрів загального призначення й портів уведення/виводу на адресний простір пам'яті даних

X

Y

Z

27

26

29

28

31

30

Рисунок 1.3 - 16-розрядні регістри Х, Y, Z, що використовуються для непрямої адресації пам'яті.

Простір вводу/виводу складається з 64 адрес портів 0000h-003Fh, призначених для взаємодії із внутрішніми й зовнішніми пристроями мікроконтролера. Порти вводу/виводу відображаються на область пам'яті даних з адресами 0020h-005Fh і допускають можливість звертання до них як до комірок пам'яті. При доступі до порту вводу/виводу як до комірки пам'яті до адреси порту необхідно додати 20h. Адреса порту вводу/виводу в просторі пам'яті часто вказується в дужках після адреси в просторі портів вводу/виводу. Через те, що основною функцією мікроконтролера є керування зовнішніми пристроями, у таблиці 1.1. приводяться назви й адреси (у просторі портів вводу/виводу) основних інтерфейсних портів із вказівкою режиму роботи й функцій окремих регістрів.

По адресах пам'яті 0060h-00FFh розташовані 160 додаткових регістрів вводу/виводу.

Безпосередньо пам'ять даних являє собою статичне ОЗУ (SRAM) обсягом 4 кбт, що займає діапазон адрес 0100h-10FFh.

Таблиця 1.1 - Порти вводу/виводу мікроконтролера AVR MEGA128 для підключення зовнішніх пристроїв

Назва порту вводу/виводу

Ідентифікатори окремих регістрів

Адреса

Режим / функція

PORTA

PINA

19h

IN

DDRA

1Ah

OUT / DIRECTION

PORTA

1Bh

OUT

PORTB

PINB

16h

IN

DDRB

17h

OUT / DIRECTION

PORTB

18h

OUT

PORTC

PINC

13h

IN

DDRC

14h

OUT / DIRECTION

PORTC

15h

OUT

PORTD

PIND

10h

IN

DDRD

11h

OUT / DIRECTION

PORTD

12h

OUT

PORTE

PINE

01h

IN

DDRE

02h

OUT / DIRECTION

PORTE

03h

OUT

PORTF

PINF

00h

IN

DDRF

61h

OUT / DIRECTION

PORTF

62h

OUT

PORTG

PING

63h

IN

DDRG

64h

OUT / DIRECTION

PORTG

65h

OUT

Регістр стану SREG розташований в області вводу/виводу за адресою 3Fh (5Fh) і містить інформацію про поточний стан мікроконтролера. Розташування прапорових бітів регістра стану наведено на рис. 1.4.

№ біта

7

6

5

4

3

2

1

0

3Fh (5Fh)

I

T

H

S

V

N

Z

C

Рисунок 1.4 - Регістр стану SREG.

Призначення окремих бітів регістра стану наведено нижче:

  • C – прапор переносу, установлюється в 1 при наявності переносу в арифметичних операціях;

  • Z – прапор нуля, установлюється в 1, якщо результат операції дорівнює 0;

  • N – прапор негативного результату, установлюється в 1 при одержанні негативного результату;

  • V - прапор переповнення, фіксує вихід результату за межі припустимого діапазону значень;

  • S - прапор знака, S = N xor V;

  • H - прапор додаткового переносу (з молодшої тетради байта в старшу);

  • T - прапор для тимчасового зберігання біта з регістрів загального призначення;

  • I - керуючий прапор дозволу переривань, дозволяє (1) або забороняє (0) процесору реагувати на апаратні переривання.

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