Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой датчик температуры / Пояснительная записка_МПС.doc
Скачиваний:
47
Добавлен:
29.02.2016
Размер:
1.75 Mб
Скачать

2.2 Организация памяти микропроцессорной системы Распределение памяти контроллера приведено на рисунке 4.

МК семейства MCS51 имеют внешний выводEA#, с помощью которого можно запретить работу внутренней памяти программ, для чего необходимо подать на выводEA# “0”. При этом внутренняя память программ отключается и, начиная снулевого адреса, все обращения происходят к внешней памяти программ с формированием сигнала PSEN#. В случае, если EA#=1, работают и внутренняя и внешняя память программ. Для МК, не имеющих внутренней памяти программ, для нормальной работы всегда необходимо задаватьEA#=0.

Таким образом, доступ к внешней памяти программ осуществляется в двух случаях:

  • при действии сигнала EA#=0 независимо от адреса обращения,

  • в любом случае, если программный счетчик (PC) содержит число, большее, чем 0FFFh.

Если центральный процессор осуществляет доступ к внешней памяти программ, сигнал PSEN# вырабатывается дважды во время каждого машинного цикла, (исключение составляет команда MOVC), независимо от того, необходим или нет выбираемый байт для текущей команды. При выборке из внешней памяти программ всегда используется 16-разрядный адрес, младший байт которого выдается через порт Р0, а старший байт - через порт Р2 МК. Байт из внешней памяти программ вводится в МК через порт Р0, который в этом случае используется как шина адреса/данных в режиме мультиплексирования.

Память данных состоит из внешней памяти данных и внутренней памяти данных. Каждая из них имеет свое пространство адресов, так как доступ к ним осуществляется с помощью разных команд.

Внешняя память данных: для работы с внешней памятью данных существуют специальные команды MOVX, которые не влияют на внутреннюю память данных МК. Таким образом, в системе могут одновременно присутствовать внутренняя память данных с адресами 00h-0FFh и внешняя память данных с адресами 0000h-0FFFFh. Обращение к ячейкам внешней памяти данных осуществляется только с использованием косвенной адресации по регистрам R0 и R1 активного банка регистров внутреннего ОЗУ (команды типа MOVX @Ri) или по регистру специальных функций DPTR (команды типа MOVX @DPTR). Соответственно в первом случае будет формироваться 8-разрядный, а во втором случае 16-разрядный адреса внешней памяти данных.

При обращениях к внешней памяти данных адрес выводится через порт Р0 (младший байт) и порт Р2 (старший байт) МК. Обмен байтом данных (запись и чтение) производится через порт Р0 МК, т. е. порт Р0 используется как шина адреса/данных в режиме мультиплексирования.

Считывание данных из внешней памяти данных в МК производится с помощью выходного сигнала МК RD#, а запись данных из МК во внешнюю память данных с помощью выходного сигнала МК WR#.

Внутренняя память данных: в архитектуре MCS-51 пространство адресов внутренней памяти данных объединяет все внутренние программно доступные ресурсы. Это пространство размером 256 байт в свою очередь делится на:

  • пространство адресов внутреннего ОЗУ с адресами 00h-7Fh (размером 128 байт);

  • пространство адресов регистров специальных функций, занимающее адреса 80h-0FFh.

Физически внутреннее ОЗУ данных и область регистров специальных функций являются отдельными устройствами.

Все ячейки внутреннего ОЗУ данных могут адресоваться с использованием прямой и косвенной адресации.

Область внутреннего ОЗУ. В этой области памяти выделяются два особых фрагмента:

  • младшие 32 адреса занимают четыре регистровых банка (Банк0-БанкЗ на рис.5), каждый из которых содержит по восемь регистров общего назначе­ния R0-R7. Текущий банк определяется значением разрядовRS0,RS1 регистраPSW. Команды программы могут обращаться к регистрам, используя их имена R0-R7. Таким образом, младшие 32 ячейки этой части ОЗУ, кроме адресов, имеют имена. Наличие такого механизма работы с ячейками ОЗУ позволяет эконо­мить память программ, т. к. команды, работающие с регистрами R0-R7, ко­роче команд, использующих прямую адресацию;

  • следующие после банков регистров внутреннего ОЗУ данных 16 ячеек (адреса 20h-2Fh) образуют область ячеек, к которым возможна поразрядная адресация. Набор команд МК семейства MCS-51 содержит значительное количество инструкций (команд), по­зволяющих работать с отдельными разрядами (битами), используя при этом прямую адресацию. 128 разрядов (бит), составляющих рассматриваемую область внутрен­него ОЗУ данных, имеют адреса 00h-7Fh и предназначены для работы с такими инструкциями. Разрядная (битовая) адресация ОЗУ показана на рис. 5, где в квадратах, символизирующих разряды (биты), указаны их адреса.

Адрес, h

D7

D6

D5

D4

D3

D2

D1

D0

Адрес, d

7Fh:

127

:

:

:

:

:

:

:

:

:

:

2Fh:

7F

7E

7D

7C

7B

7A

79

78

47

2E:

77

76

75

74

73

72

71

70

46

2D:

6F

6E

6D

6C

6B

6A

69

68

45

2C:

67

66

65

64

63

62

61

60

44

2B:

5F

5E

5D

5C

5B

5A

59

58

43

2A:

57

56

55

54

53

52

51

50

42

29:

4F

4E

4D

4C

4B

4A

49

48

41

28:

47

46

45

44

43

42

41

40

40

27:

3F

3E

3D

3C

3B

3A

39

38

39

26:

37

36

35

34

33

32

31

30

38

25:

2F

2E

2D

2C

2B

2A

29

28

37

24:

27

26

25

24

232

22

21

20

36

23:

1F

1E

1D

1C

1B

1A

19

18

35

22

17

16

15

14

13

12

11

10

34

21:

0F

0E

0D

0C

0B

0A

09

08

33

20:

07

06

05

04

03

02

01

00

32

1F:

:

18:

R7

БАНК 3

R0

31

:

24

17:

:

10:

R7

БАНК 2

R0

23

:

16

0F:

:

08:

R7

БАНК 1

R0

15

:

8

07:

:

00:

R7

БАНК 0

R0

7

:

0

Рис. 5. Разрядная (битовая) адресация ОЗУ

Обращение к внутреннему ОЗУ данных всегда осуществляется с использова­нием 8-разядного адреса.

На рис. 6 изображена область регистров специальных функций. В нее включены все программно доступные регистры (управления и данных):регистры-фиксаторы портов, регистры таймеров/счетчиков, регистры управления и т.п.Эти регистры допускают только прямую адресацию.

Адрес

ячейки

D7

D6

D5

D4

D3

D2

D1

D0

Имя

регистра

Исходное

значение

0F0

F7

F6

F5

F4

F3

F2

F1

F0

B

00h

0E0

E7

E6

E5

E4

E3

E2

E1

E0

ACC

00h

0D0

CY

D7

AC

D6

F0

D5

RS1

D4

RS0

D3

OV

D2

-

P

D0

PSW

00h

0B8

-

-

PT2

BD

PS

BC

PT1

BB

PX1

BA

PT0

B9

PX0

B8

IP

xx000000b

0B0

B7

B6

B5

B4

B3

B2

B1

B0

P3

0FFh

0A8

EA

AF

-

ET2

AD

ES

AC

ET1

AB

EX1

AA

ET0

A9

EX0

A8

IE

0x000000b

0A0

A7

A6

A5

A4

A3

A2

A1

A0

P2

0FFh

99

SBUF

xxxxxxxxb

98

SM0

9F

SM1

9E

SM2

9D

REN

9C

TB8

9B

RB8

9A

T1

99

R1

99

SCON

00h

90

97

96

95

94

93

92

91

90

P1

0FFh

8D

TH1

00h

8C

TH0

00h

8B

TL1

00h

8A

TL0

00h

89

TMOD

00h

88

TF1

8F

TR1

8E

TF0

8D

TR0

8C

IE1

8B

IT1

8A

IE0

89

IT0

88

TCON

00h

87

PCON

00xx0000b

83

DPH

00h

82

DPL

00h

81

SP

07h

80

87

86

85

84

83

82

81

80

P0

0FFh

Рис. 6. Регистры специальных функций

Эта область формально занимает старшие 128 байт внутренней памяти данных, но обращение должно осуществляться по определенным адресам ячеек или отдельных разрядов. Обращение по промежуточным адресам приведет к ошибочному результату.

Видно, что все регистры имеют как символические имена, так и адреса в качестве ячеек внутренней памяти. Часть регистров содержит прямо адресуемые разряды. Адреса разрядов находятся в диапазоне 80Н - 0F7H. Назначение регистров специальных функций следующее:

Имя регистра

Назначение

АСС

Аккумулятор, основной операционный регистр

В

Дополнительный регистр для операций умножения и деления; в других командах может рассматриваться как обычный РОН

PSW

Регистр, хранящий слово состояния программы

IP

Регистр приоритетов прерываний

РЗ

Регистр порта РЗ

IE

Регистр разрешения прерываний

Р2

Регистр порта Р2

SBUF

Регистр данных последовательного порта

SCON

Регистр управления последовательного порта

Р1

Регистр порта Р1

ТН1

Старший регистр таймера/счетчика 1

ТН0

Старший регистр таймера/счетчика 0

TL1

Младший регистр таймера/счетчика 1

TL0

Младший регистр таймера/счетчика 0

TMOD

Регистр режима таймеров/счетчиков

TCON

Регистр управления таймеров/счетчиков

PCON

Регистр управления энергопотреблением

SP

Регистр указателя стека

DPH, DPL

Указатель данных DPTR состоит из регистра старшего байта DPH и регистра младшего байта DPL, содержит 16-разрядный адрес для обращения к внешней памяти данных

Р0

Регистр порта Р0

Соседние файлы в папке Курсовой датчик температуры