Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_Мікропроцесорні пристрої.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆
    1. Організація пам'яті

У мікроконтролерах PIC16F87X існує два види пам'яті. Пам'ять програм і пам'ять даних мають роздільні шини даних і адреси, що дозволяє виконувати паралельний доступ.

      1. Пам’ять програм

Мікроконтролери PIC16F87X мають 13-розрядний лічильник команд PC, здатний адресувати 8К х 14 слів пам'яті програм. Фізично реалізовано FLASH пам'яті програм 8К х 14 у PIC16F877. Адреса вектора скидання – 0000h. Адреса вектора переривань – 0004h.

Пам'ять програм (ППЗП) має сторінкову організацію (рис. 4.2). Об'єм однієї сторінки 2048 14-розрядних слів. Мікроконтролер PIC 16F877 має чотири сторінки пам'яті програм для зберігання 14-розрядних кодів команд.

..................

.........

РС < 12: 0>

Стік, рівень 1

Стік, рівень 2

Стік, рівень 8

Вектор скиду (0000h)

Вектор переривань

Сторінка 0

0005h

07FFh

Сторінка 1

0800h

0FFFh

Сторінка 2

1000h

17FFh

Сторінка 3

1800h

1FFFh

Внутрішня пам’ять програм

Рисунок 4.2 – Структура пам’яті програм

Усі мікроконтролери PIC16F87X здатні адресувати 8К слів пам'яті програм. Інструкції переходів (CALL і GOTO) мають 11-разрядне поле для вказівки адреси, що дозволяє безпосередньо адресувати 2К слів пам'яті програм. Для адресації верхніх сторінок пам'яті програм використовуються 2 біта в регістрі PCLATH<4:3>. Перед виконанням команди переходу (CALL або GOTO) необхідно запрограмувати біти регістра PCLATH<4:3> для адресації необхідної сторінки.

При виконанні інструкцій повернення з підпрограми, 13-розрядне значення для лічильника програм РС береться з вершины стека, тому маніпуляція бітами регістра PCLATH<3:4> не потрібна.

      1. Організація пам'яті даних

Пам'ять даних поділена на чотири банки, які містять регістри загального і спеціального (SFR) призначення. Біти RP1 (STATUS<6>) і RP0 (STATUS<5>) призначені для управління банками даних. У таблиці 4.1 показаний стан керуючих бітів при зверненні до банків пам'яті даних. Карта пам'яті даних показана на рисунку 4.3.

Таблиця 4.1 – Адресація банків даних

RP1:RPO

Банк

00

0

01

1

10

2

11

3

Об'єм банків пам'яті даних до 128 байтів (7Fh). На початку банку розміщуються регістри спеціального призначення, потім регістри загального призначення виконані як статичний ОЗП. Усі реалізовані банки містять регістри спеціального призначення. Деякі, часто використовувані регістри спеціального призначення, можуть відображатися і в інших банках пам'яті.

Регістри можуть бути адресовані прямо або побічно з використанням регістра непрямої адресації FSR. Безпосередня адресація підтримується спеціальними командами, що завантажують дані з пам'яті програми в робочий регістр W.

Регістри спеціального призначення використовуються для керування функціями мікроконтролера і можуть бути розділені на два набори: регістри базових функцій і регістри периферійних пристроїв. Регістри базових функцій містять у собі регістр-перемикач непряму адресації (INDF), програмний лічильник (РС), представлений двома регістрами PCL і PCLATH, регістр слова стану (STATUS), регістр-покажчик непряму адресації (FSR), робочий регістр (W), регістр переривань (INTCON), а також регістр режимів роботи та конфігурації попереднього дільника і таймера (OPTION). Регістри периферійних пристроїв містять у собі регістри (RA,RB,RC,RD,RE-порти А,B,C,D,E), регістри даних (EEDATA) і адреси (EEADR) пам'яті даних-констант, регістри таймерів-лічильників (TMR0,1,2) і регістри керування конфігурацією портів вводу/виводу (TRISA, TRISB, TRISC, TRISD, TRISE).

Регістри загального призначення використовуються для зберігання даних по розсуду користувача.

Адреса

Адреса

Адреса

Адреса

180h

181h

182h

183h

184h

185h

186h

187h

188h

189h

18Ah

18Bh

18Ch

18Dh

18Eh

18Fh

19Fh

1A0h

1EFh

1F0h

Регістр * непрямої адресації

00h

Регістр * непрямої адресації

80h

Регістр * непрямої адресації

100h

Регістр * непрямої адресації

TMR0

01h

OPTION

81h

TMR0

101h

OPTION REG

PCL

02h

PCL

82h

PCL

102h

PCL

STATUS

03h

STATUS

83h

STATUS

103h

STATUS

FSR

04h

FSR

84h

FSR

104h

FSR

PORTA

05h

TRISA

85h

105h

х

PORTB

06h

TRISB

86h

PORTB

106h

TRISB

PORTC

07h

TRISC

87h

х

107h

х

PORTD(1)

08h

TRISD(1)

88h

х

108h

х

PORTEP)

09h

TRISEP)

89h

х

109h

х

PCLATH

0Ah

PCLATH

8Ah

PCLATH

10Ah

PCLATH

INTCON

0Bh

INTCON

8Bh

INTCON

10Bh

INTCON

PIR1

0Ch

PIE1

8Ch

EEDATA

10Ch

EECON1

PIR2

0Dh

PIE2

8Dh

EEADR

10Dh

EECON2

TMR1L

0Eh

PCON

8Eh

EEDATH

10Eh

Резерв^'

TMR1H

0Fh

x

8Fh

EEADRH

10Fh

Резерв^'

T1CON

10h

x

90h

110h

TMR2

11h

SSPCON2

91h

Регістри

11Fh

Регістри

T2CON

12h

PR2

92h

SSPBUF

13h

SSPADD

93h

SSPCON

14h

SSPSTAT

94h

загального

загального

CCPR1L

15h

x

95h

CCPR1 H

16h

x

96h

призна-

призна-

CCP1CON

17h

x

97h

чення

чення

RCSTA

18h

TXSTA

98h

16 байтів

16 байтів

TXREG

19h

SPBRG

99h

RCREG

1Ah

x

9Ah

CCPR2L

1Bh

x

9Bh

CCPR2H

1Ch

x

9Ch

CCP2CON

1Dh

x

9Dh

ADRESH

1Eh

ADRESL

9Eh

ADCONO

1Fh

ADCON1

9Fh

Регістри загаль- ного призна- чення

96 байтів

20h

7Fh

Регістри загаль- ного призна- чення

80 байтів

A0h

EFh F0h FFh

Регістри

загаль- ного призна- чення

80 байтів

120h

16Fh

170h

17Fh

Регістри

загаль- ного призна- чення

80 байтів

Доступ до 70h- 7Fh

Доступ до 70h- 7Fh

Доступ до 70h- 7Fh

Банк 0 Банк 1 Банк 2 БанкЗ

*- нефізичний регистр

х – не реалізовані, значення при читанні 00h

Рисунок 4.3 – Карта пам'яті даних мікроконтролерів PIC16F876/877

Для виконання непрямої адресації необхідно звернутися до фізично не реалізованого регістра INDF. Звернення до регістра INDF фактично викличе дію з регістром, адреса якого вказана в FSR. Непряме читання регістра INDF (FSR=0) дасть результат 00h. Непрямий запис в регістр INDF не викличе ніяких дій (викликає дії на прапори АЛП в регістрі STATUS). 9-й біт непрямої адреси IRP зберігається в регістрі STATUS<7>. Приклад 9-розрядної непрямої адресації показаний на рисунку 4.4.

Рисунок 4.4 – Приклад 9-розрядної непрямої адресації