Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
всё.doc
Скачиваний:
30
Добавлен:
11.03.2015
Размер:
742.4 Кб
Скачать

3.3. Память данных

В правой части рис.3 показано расположение внутренней и внешней памяти данных, доступной пользователю. Подключение внешней памяти данных объемом до 2 Кбайт показано на рис.6, но при этом считывание программы производится из внутреннего ПЗУ. Порт 0 используется для связи с внешним ОЗУ мультиплексированной шиной адреса/данных, а 3 линии портаP2предназначены для выбора страницы ОЗУ. Для управления внешней памятью процессор генерирует сигналыRD и WR.

При этом возможна адресация до 64 Кбайт внешней памяти данных. Адрес может иметь размер в 1 или 2 байта. Однобайтная адресация часто используется при страничной организации ОЗУ. Выбор страниц осуществляется линиями портов ввода-вывода, как показано на рис.6. При использовании двухбайтной адресации старший байт адреса выводится через портP2.

Внутренняя память данных изображена на рис.7. Она может быть разделена на 3 условных блока: «нижний» (lower), «верхний» (upper) и пространствоРегистров Специальных Функций (SFR).

Рис.6. Использование внешней памяти данных

FFh

. . .

. . .

80h

Область внутреннего ОЗУ «Upper 128»

Доступна в режиме косвенной адресации (на I8051-отсутствует )

Область регистров специ-альных функций (SFR)

Доступна в режиме прямой адресации

7Fh

. . .

. . .

00h

Область внутреннего ОЗУ «Lower 128»

Доступна в режиме косвенной и прямой адресации (присутствует на всех кристаллах MCS-51)

Косвенная адресация

прямая адресация

Рис.7. Внутренняя память данных

Внутренняя память данных имеет байтовую адресацию, которая подразумевает 256 байт адресного пространства. Нижние 128 байт ОЗУ присутствуют на всех кристаллах MCS-51 и показаны на рис.8. Первые 32 байта сгруппированы в 4 банка по 8 регистров. Инструкции программы могут оперировать с ними как с регистрами общего назначения R0-R7. Два битаССП(PSW) определяют, какой из банков используется в текущий момент. Это позволяет более эффективно использовать память программ, поскольку регистровые инструкции выполняются быстрее. Переключение регистровых банков эффективно заменяет операция сохранения регистров в стеке на время обработки процедуры прерывания.

Следующие за регистровыми банками 16 байт образуют блок побитно адресуемого пространства. Набор инструкций семейства MCS-51 содержит широкий выбор операций над битами, а 128 бит (16 байт 8) в этом блоке могут быть прямо адресованы. Битовые адреса имеют значения от 00h до 7Fh.

Все байты в нижней 128-байтной половине памяти могут адресоваться как прямо, так и косвенно. Верхняя 128-байтная половина ОЗУ в микро-схеме I8051 отсутствует, но имеется в кристаллах с 256 байтами ОЗУ.

В табл. 2 показано размещение регистров специальных функций (SFR). Эти регистры включают в себя регистры портов, таймеры, средства управления периферией и т.д. Они доступны только при прямой адресации. Для 16 адресов в пространстве SFR имеется возможность как битовой, так и байтовой адресации (табл.4). Побитно адресуемыми регистрами являются регистры, шестнадцатиричные адреса которых заканчивается на 0 или 8. Битовые адреса в этой области располагаются со значения 80h по FFh.

Вся серия имеет базовый набор SFR, как в микросхеме I8051 по тем же адресам. Однако в кристаллах, представляющих собой дальнейшее развитие I8051, имеются и некоторые дополнительные регистры, отсутствующие в базовом варианте. Этим микросхемам свойственны свои уникальные функциональные особенности (такие, как наличие матрицы программируемых счетчиков - PCA, сторожевого таймера -HWDT, АЦП, улучшенная система прерываний и т.д.). Это подразумевает наличие новых регистров, имеющих собственные адреса в пространстве SFR; реально использующих некоторые битовые поля, зарезервированные для битовой адресации SFR в микроконтроллере I8051.

7Fh

. . .

30h

Побайтно адресуемая область ОЗУ

Побитно адресуемая область ОЗУ (битовые адреса 00h-7Fh)

2Fh

7Fh

7Eh

7Dh

7Ch

7Bh

7Ah

79h

78h

2Eh

77h

76h

75h

74h

73h

72h

71h

70h

2Dh

6Fh

6Eh

6Dh

6Ch

6Bh

6Ah

69h

68h

2Ch

67h

66h

65h

64h

63h

62h

61h

60h

2Bh

5Fh

5Eh

5Dh

5Ch

5Bh

5Ah

59h

58h

2Ah

57h

56h

55h

54h

53h

52h

51h

50h

29h

4Fh

4Eh

4Dh

4Ch

4Bh

4Ah

49h

48h

28h

47h

46h

45h

44h

43h

42h

41h

40h

27h

3Fh

3Eh

3Dh

3Ch

3Bh

3Ah

39h

38h

26h

37h

36h

35h

34h

33h

32h

31h

30h

25h

2Fh

2Eh

2Dh

2Ch

2Bh

2Ah

29h

28h

24h

27h

26h

25h

24h

23h

22h

21h

20h

23h

1Fh

1Eh

1Dh

1Ch

1Bh

1Ah

19h

18h

22h

17h

16h

15h

14h

13h

12h

11h

10h

21h

0Fh

0Eh

0Dh

0Ch

0Bh

0Ah

09h

08h

20h

07h

06h

05h

04h

03h

02h

01h

00h

1Fh

. . .

18h

Регистровый банк 3

17h

. . .

10h

Регистровый банк 2

0Fh

. . .

08h

Регистровый банк 1

07h

. . .

00h

< — SP после RESET

Регистровый банк 0

Рис.8. Нижние 128 байт внутреннего ОЗУ

При программировании доступны следующие SFR-регистры:

Аккумулятор (адрес 0E0h). Кроме обращения к аккумулятору командами, использующих мнемонику «A», имеется возможность побито-вой или побайтной адресации, как SFR-регистра. Команды, предназначенные для побитной работы с аккумулятором, применяют мнемонику «ACC». Для обращения к определенному биту аккумулятора на языке ассемблера MCS-51 достаточно записать:ACC.N, где Nномер требуемого бита:

MOV ACC.0, C; пересылка в младший бит аккумулятора флага переноса.

Регистр В (адрес 0F0h). Используется при операциях умножения и деления, а также как сверхоперативный регистр. Обращение к нему, как к регистру SFR , производится аналогично аккумулятору.

Слово Состояния Программы (PSW) (адрес 0D0h). Этот регистр микроконтроллера содержит информацию о состоянии программы. Кроме неявного его использования битовыми и арифметическими командами, может быть адресован как регистр SFR, в том числе и побитно. Каждый бит PSW имеет свою собственную мнемонику, например: «PSW.AC».

Указатель стека SP (адрес 081h). Используется для указания на вершину стека в операциях записи в стек и чтении из него. Неявно используется такими командами, как PUSH, CALL, RET, RETI, POP. По аппаратному сбросу ЦП устанавливается в значение 07h (область стека в этом случае соответственно начинается с адреса внутренней памяти данных 08h) и инкрементируется при каждой записи в стек. Запись в SFR-регистр указателя стека производится для предопределения положения стека во внутренней памяти данных микроконтроллера. Здесь возможна только байтная адресация.

Указатель данных DPTR (адреса 082h, 83h). Состоит из двух байт: старшего DPH и младшего DPL. Используя как 16 или 8-битовый указатель адреса при обращении к внешней памяти или выполнения команды перехода по косвенному адресу. Обращениетолько байтное, отдельно к старшему и младшему байту.

Порты P0-P3 (адреса 80h, 90h, 0A0h, 0B0h). Этим адресам соответствуют регистры-защелки четырех 8-битных портов ввода-вывода микроконтроллера P0, P1, P2 и P3.

Буфер последовательного порта SBUF (адрес 99h). SBUF представляет собой два отдельных регистра«буфер приемника»при чтении из порта и «буфер передатчик»при записи в порт. Доступен только для байтной адресации.

Регистр управления последовательным портом SCON(адрес 098h). Предназначен для управления работой последовательного порта. Обращение к данному регистру может быть как побайтным, так и побитным.

Регистры таймера/счетчика TL0, TL1, TH0, TH1 (адреса 8Ah, 8Bh, 8Ch, 8Dh). Образуют 16-битные регистры таймеров/счетчиков 0 и 1. Подробно описаны в разделе «Организация таймеров/счетчиков». Обращение к регистрамтолько байтное.

Регистр режима таймера/счетчика TMOD (адрес 89h).

Регистр управления таймера/счетчика TCON (адрес 88h). Предназначены для управления работой таймера/счетчика МК.

Регистр разрешения прерываний IE (адрес 0A8h).

Регистр приоритетов прерываний IP (адрес 0B8h). Определяют работу системы прерываний микроконтроллера. Возможно как побитное, так и побайтное обращение к регистрам.

Регистр управления энергопотреблением PCON (адрес 87h). Содержит бит управления скоростью работы последовательного канала и биты, управляющие энергопотреблением в CHMOS-кристаллах (I8051 и т.п.).

Таблица 4

Регистры специальных функций при побитной адресации

Мнемоника регистра / битовые адреса

Адрес

7

6

5

4

3

2

1

0

Имя SFR

F0h

F7h

F6h

F5h

F4h

F3h

F2h

F1h

F0h

B

E0h

E7h

E6h

E5h

E4h

E3h

E2h

E1h

E0h

A

D0h

CV

D7h

AC

D6h

F0

D5h

RS1

D4h

RS0

D3h

OV

D2h

D1h

P

D0h

PSW

B8h

PT2

BDh

PS

BCh

PT1

BBh

PX1

BAh

PT0

B9h

PX0

B8h

IP

B0h

B7h

B6h

B5h

B4h

B3h

B2h

B1h

B0h

P3

A8h

EA

AFh

ET2

ADh

ES

ACh

ET1

ABh

EX1

AAh

ET0

A9h

EX0

A8h

IE

A0h

A7h

A6h

A5h

A4

A3h

A2h

A1h

A0h

P2

98h

SM0

9Fh

SM1

9Eh

SM2

9Dh

REN

9Ch

TB8

9Bh

RB8

9Ah

TI

99h

RI

98h

SCON

90h

97h

96h

95h

94h

93h

92h

91h

90h

P1

88h

TF1

8Fh

TR1

8Eh

TF0

8Dh

TR0

8Ch

IE1

8Bh

IT1

8Ah

IE0

89h

IT0

88h

TCON

80h

87h

86h

85h

84h

83h

82h

81h

80h

P0