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

ОМК виконує дії над 8-розрядними операндами. Програмна модель центрального процесора 8051 (рис. 3.6) містить шість регістрів. Усі регістри, крім програмного лічильника (лічильника команд) PC, є частиною об'єднаного адресного простору ОЗП даних. Для звертання до них можуть бути використані як символьні імена регістрів - АСС, В, PSW, SP, DPH, DPL, так і їхні абсолютні адреси - 0E0h, 0F0h, 0D0h, 81h, 82h, 83h відповідно.

7

0

Акумулятор ACС

7

0

Регістр B

15

8

7

0

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

15 8 7 0

7 0

7 0

Регістр ознак PSW

C

A C

F 0

RS 1

RS 0

O V

P

Рисунок 3.6 – Програмна модель центрального процесора

Акумулятор (ACС) є джерелом операнда і місцем фіксації результату при виконанні арифметичних, логічних операцій і низки операцій передачі даних. Крім того тільки з використанням акумулятора можуть бути виконані операції зсуву, перевірка на нуль, формування прапора паритету і т. п.

Регістр B - додатковий 8-розрядний регістр. Використовується в операціях множення і ділення. В інших командах може інтерпретуватися як регістр загального призначення.

Регістр-покажчик даних DPTR - 16-розрядний регістр (DPH - старший байт, DPL - молодший байт). Використовується як регістр непрямої адресації при звертанні до пам'яті команд і зовнішньої пам'яті даних. Система команд передбачає можливість звертання до окремих байтів (DPH чи DPL) регістра DPTR, що дозволяє використовувати ці регістри для збереження проміжних результатів чи обчислень як джерело одного з операндів.

Програмний лічильник PC - 16-розрядний регістр, містить адресу поточної команди або адресу операнда, використовуваного в поточній команді. Після скидання мікроконтролера (МК) програмний лічильник автоматично встановлюється в «0». Тому в МК із процесорним ядром MCS-

51 будь-яка програма користувача повинна починатися з адреси 0000h. Команди звертання до РС відсутні. Однак він програмно доступний за допомогою спеціальних процедур.

Покажчик стека SP - 8-розрядний регістр, містить адресу вершини стека. Архітектура процесорного ядра MCS-51 припускає розміщення ділянки стекової пам'яті тільки в ділянці внутрішнього ОЗП даних. Глибина стека обмежена обсягом резидентного ОЗП. При скиданні ОМК покажчик стека встановлюється в положення 07h, призначаючи ділянку стека до першого банку регістрів. Тому при використанні стека після скидання необхідно задавати необхідне значення SP. Звичайно вершина стека розміщається в старших адресах вільної зони.

При запису в стек (команда PUSH) зміст покажчика SP збільшується на 1, а при читанні (команда POP) – зменшується на 1. Покажчик стека апаратно збільшується на 2 при виконанні команд виклику підпрограми (CALL) і звертанні до підпрограми обробки переривань і зменшується на 2 при виконанні команд повернення RET, RETI. У стек при цьому відповідно записується чи витягається вміст РС.

Слово стану процесора ССП (PSW). При виконанні більшості команд в АЛП формується низка ознак операції (прапорів), що фіксуються в регістрі ССП. У таблиці 3.2 наводиться перелік прапорів ССП, даються їхні символічні імена й описуються умови їхнього формування.

Таблиця 3.2 – Формат слова стану процесора PSW

Символ

Позиція

Ім'я і призначення

1

2

3

C

PSW.7

Прапор переносу зі старшого розряду. Установлюється і скидається при виконанні арифметичних і логічних операцій апаратно. Можлива зміна значення з програмними засобами

AC

PSW.6

Прапор допоміжного переносу з третього розряду в четвертий. Установлюється і скидається тільки апаратними засобами при виконанні команд додавання і вирахування

F0

PSW.5

Прапор 0. Може бути встановлений, скинутий чи перевірений програмою як прапор, встановлений користувачем

RS1 RS0

PSW.4 PSW.3

Вибір банку регістрів. Установлюється і скидається програмою для вибору робочого банку регістрів (див. примітку)

OV

PSW.2

Прапор арифметичного переповнення. Установлюється і скидається апаратно при виконанні арифметичних операцій

-

PSW.1

Не використовується

Продовження таблиці 3.2

1

2

3

P

PSW.0

Прапор паритету. Установлюється і скидається в кожному циклі команди тільки апаратно. Набуває значення 1 при парному числі одиничних бітів в акумуляторі

Примітка

RS1

RS0

Банк

Межі адрес

0

0

0

00…07H

0

1

1

08…0FH

1

0

2

10…17H

1

1

3

18…1FH

Найбільше «активним» прапором ССП є прапор переносу, що бере участь і модифікується в процесі виконання багатьох операцій, включаючи додавання, вирахування і зсув. Крім того, прапор переносу (C) виконує функції «булевого аккумулятора» у командах, що маніпулюють з бітами.

Прапор арифметичного переповнення (OV) фіксує перевищення довжини розрядної сітки при операціях над цілими числами зі знаком.

Прапор АС використовується в процедурі корекції результату при виконанні двійково-десяткового додавання.

Прапор паритету Р забезпечує контроль переданої інформації. Значення біта паритету змінюється при будь-якій операції, у якій АСС є приймачем результату. При прийомі інформації виконується повторне формування Р, а потім порівнюються біти паритету, обчислених при прийомі і передачі інформації.

АЛП не керує прапорами селекції банку регістрів (RS0, RS1) і F0.

Їхні значення цілком визначаються прикладною програмою.

У регістрі ознак відсутні прапори нульового Z і негативного N результатів. Ознака нульового стану акумулятора формується апаратно у всіх командах, у яких акумулятор є приймачем результату. У регістрі ознак дорівненість нулю не відображається. Команди умовного переходу за ознакою Z (JZ і JNZ) варто використовувати після виконання команд, у яких результат операції записується в акумулятор.

Ознака знака результату фіксується в старшому біті АСС, який доступний за допомогою бітових команд умовних переходів (JB, JNB).

Призначення і функції регістрів спеціальних функцій докладно розглянуті в розділі 3.4.

РПД розподілена на 3 зони, кожна з якої має свої функціональні особливості.

Зона регістрів загального призначення (РЗП) (таблиця 3.3) складається з 4-х банків, розташованих з адреси 00h до 1Fh. Кожен банк складається з 8 комірок РПД. Після скидання, активним є нульовий банк. Номер банку встановлюється у слові стану процесора. Перевагою цієї зони є можливість використання прямої регістрової адресації. Команди роботи з регістрами однобайтові і виконуються за мінімальний час (1 мкс). Звичайно в цій зоні розташовують регістри тимчасового збереження інформації. Виключення складають регістри R0, R1 кожного банку, що можуть використовуватися як регістри непрямої адресації при звертанні до РПД чи як індексні регістри при звертанні до зовнішньої пам'яті даних.

Таблиця 3.3 – Структура внутрішньої пам'яті даних

Адреса

Бітові адреси

Адреса

Бітові адреси

Регістр

7Fh

30h

Комірки резидентного ОЗП

0FFh

Комірки резидентного

(вільна зона)

ОЗП

2Fh

7F

7E

7D

7C

7B

7A

79

78

0F0h

F7

F6

F5

F4

F3

F2

F1

F0

B

2Eh

77

76

75

74

73

72

71

70

2Dh

6F

6E

6D

6C

6B

6A

69

68

0E0h

E7

E6

E5

E4

E3

E2

E1

E0

A

2Ch

67

66

65

64

63

62

61

60

2Bh

5F

5E

5D

5C

5B

5A

59

58

0D0h

D7

D6

D5

D4

D3

D2

D1

D0

PSW

2Ah

57

56

55

54

53

52

51

50

29h

4F

4E

4D

4C

4B

4A

49

48

0B8h

-

-

-

BC

BB

BA

B9

B8

IP

28h

47

46

45

44

43

42

41

40

27h

3F

3E

3D

3C

3B

3A

39

38

0B0h

B7

B6

B5

B4

B3

B2

B1

B0

P3

26h

37

36

35

34

33

32

31

30

25h

2F

2E

2D

2C

2B

2A

29

28

0A8h

AF

-

-

AC

AB

AA

A9

A8

IE

24h

27

26

25

24

23

22

21

20

23h

1F

1E

1D

1C

1B

1A

19

18

0A7h

A7

A6

A5

A4

A3

A2

A1

A0

P2

22h

17

16

15

14

13

12

11

10

99h

SBUF

21h

0F

0E

0D

0C

0B

0A

09

08

98h

9F

9E

9D

9C

9B

9A

99

98

SCON

20h

07

06

05

04

03

02

01

00

1Fh

Банк 3 (R7-R0)

90h

97

96

95

94

93

92

91

90

P1

8Dh

TH1

18h

8Ch

TH0

17h

Банк 2 (R7-R0)

8Bh

TL1

8Ah

TL0

10h

89h

TMOD

0Fh

Банк 1 (R7-R0)

88h

8F

8E

8D

8C

8B

8A

89

88

TCON

87h

PCON

08h

83h

DPH

07h

Банк 0 (R7-R0)

82h

DPL

81h

SP

00h

80h

87

86

85

84

83

82

81

80

P0

Зона регістрів спеціальних функцій (РСФ) розташована з адреси 80h до 0FFh. У ній знаходяться основні регістри даних і керування.

Звертання до РСФ можливо тільки з указівкою прямої адреси. У 8051 використовується тільки частина адрес зони РСФ. Невикористані адреси зарезервовані для розвитку ОМК даної серії.

8051 надає великі можливості для роботи з бітовими змінними, котрі мають бути розташовані в бітовій зоні. Бітовий простір починається у бітовій зоні РПД (адреси 20…2Fh), а закінчується в зоні регістрів спеціальних функцій. Звертання до бітів можливо тільки з використанням команд прямої бітової адресації. Адресний простір бітової зони і РПД мають різну метрику.

Вільна зона - особливостей за способами адресації не має.

Структура адресного простору РПД подана в таблиці 3.3. РПД являє собою єдиний адресний простір, кожна зона якого має визначені особливості. У той час є можливість звертатися до будь-якої комірки пам'яті РПД, використовуючи пряму чи непряму адресацію.

Наявність зон, що мають різні функціональні можливості, при грамотному їхньому використанні дозволяє мінімізувати як довжину коду програм, так і час їхнього виконання.