Мікропроцесори в рез Лекція № 3
1. Структура пам’яті програм і пам’яті даних мікроЕОМ МСS51.
1.1 Резидентна пам’ять: особливості структури. Вектори переривань.
1.2 Принципи функціонування системи переривань ОЕОМ сімейства MCS51.
2. Регістрова пам’ять. Регістри спец. функцій.
Внутрішня будова: 5 функціональних груп:
1. блок обчислення
2. блок резидентної памяті (програм і даних)
3. блок синхронізації і керування
4. порти вводу/виводу
5. регістри спеціальних функцій (таймери, блок переривань, посл. інтерф., керування живленням ++)
Рис. 2.1 – Структурна схема MSC51
Однокристальний мікроконтролер містить:
блок 8-розрядного ЦП;
пам’ять програм ПЗП ємністю 4 кбайт;
пам’ять даних ОЗП ємність 128 байт;
чотири 8-розрядні програмовані порти введення/виведення Р0-Р3;
послідовний порт;
два 16-розрядні програмовані таймери/лічильники Т/С0, Т/С1;
систему переривань з п’ятьма векторами і двома рівнями пріоритетів;
блок керування (БК).
Блок резидентної пам’яті:
Вказівник команд, або програмний лічильник, призначений для зберігання адреси комірки пам’яті, яка містить код наступної команди. Програму дій МП записано в пам’яті у вигляді послідовності кодів команд. Для переходу до наступної команди вміст лічильника збільшується на одиницю у момент вибирання команди з пам’яті. Наприкінці виконання команди в лічильнику команд зберігається адреса наступної команди.
Вказівник стека – це регістр, який зберігає адресу останньої зайнятої комірки стека. Стеком або стековою пам’яттю називається область пам’яті, організована за принципом «останній прийшов – перший пішов».
2.3 Організація пам’яті мк
|
0FFFH |
|
|
|
23H TI, RI |
|
|
|
1BH T/C1 |
|
|
|
13H INT1 |
|
|
|
0BH T/C0 |
|
|
|
03H INT0 |
|
|
|
00H |
|
|
15 8 |
|
|
PC |
|
|
7 0 |
|
|
|
Рис.2.3 — Структура резидентної пам'яті програм мікроконтролера 8051
|
Резидентна пам'ять програм (рис.2.3) має байтову організацію і доступна тільки для читання.
Резидентна пам'ять програм може бути доповнена зовнішньою пам'яттю. У цьому випадку загальний максимально допустимий обсяг пам'яті програм складе 64 Кб.
Молодші адреси резидентної пам'яті програм відведені під опрацьовування зовнішніх переривань , , від таймерів/лічильників T/C0, T/C1 і переривань від послідовного порту (TI, RI).
У випадку появи якого-небудь із зазначених переривань відбувається звернення до відповідної комірки резидентної пам'яті програм (наприклад, при виникненні переривання в PC записується код 0003H).
Резидентна пам'ять даних (рис.2.4) складається з 128-ми 8-розрядних комірок з адресами 00H-7FH і може бути доповнена зовнішньою пам'яттю даних ємністю до 64 К. При цьому простір резидентної і зовнішньої пам'яті не перетинаються, тому що доступ до них здійснюється за допомогою різних команд.
Молодші 32 байта РПД згруповані в 4 банки по 8 регістрів R0-R7 у кожному. Банк 0, Банк 1, Банк 2 і Банк 3 займають відповідно адреси 00H-07H, 08H-0FH, 10H-17H і 18H-1FH. Наступні після банків регістрів 16 байт (адреси 20H-2FH) чи 128 біт (адреси 00H-7FH) утворюють бітову область, до яких можливе побітове звертання. Набір команд МК містить значну кількість інструкцій, що дозволяють працювати з зазначеними бітами.
Область регістрів спеціальних функцій (РСФ) (рис.2.4) містить 21 регістр, призначення яких наведено в табл.2.2. 11 РСФ допускають побітове звертання (біти з адресами 80H-0F7H).
Резидентна пам'ять даних |
|
|
Регістри спеціальних функцій |
|
||||||||||||||||||
|
7FH |
|
F7 |
F6 |
F5 |
F4 |
F3 |
F2 |
F1 |
F0 |
0F0H |
|||||||||||
|
|
|
E7 |
E6 |
E5 |
E4 |
E3 |
E2 |
E1 |
E0 |
0E0H |
|||||||||||
|
30H |
|
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0D0H |
|||||||||||
7F |
7E |
7D |
7C |
7B |
7A |
79 |
78 |
2FH |
|
- |
- |
- |
BC |
BB |
BA |
B9 |
B8 |
0B8H |
||||
77 |
76 |
75 |
74 |
73 |
72 |
71 |
70 |
2EH |
|
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
0B0H |
||||
6F |
6E |
6D |
6C |
6B |
6A |
69 |
68 |
2DH |
|
AF |
- |
- |
AC |
AB |
AA |
A9 |
A8 |
0A8H |
||||
67 |
66 |
65 |
64 |
63 |
62 |
61 |
60 |
2CH |
|
A7 |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
0A0H |
||||
5F |
5E |
5D |
5C |
5B |
5A |
59 |
58 |
2BH |
|
SBUF |
99H |
|||||||||||
57 |
56 |
55 |
54 |
53 |
52 |
51 |
50 |
2AH |
|
9F |
9E |
9D |
9C |
9B |
9A |
99 |
98 |
98H |
||||
4F |
4E |
4D |
4C |
4B |
4A |
49 |
48 |
29H |
|
97 |
96 |
95 |
94 |
93 |
92 |
91 |
90 |
90H |
||||
47 |
46 |
45 |
44 |
43 |
42 |
41 |
40 |
28H |
|
TH1 |
8DH |
|||||||||||
3F |
3E |
3D |
3C |
3B |
3A |
39 |
38 |
27H |
|
TH0 |
8CH |
|||||||||||
37 |
36 |
35 |
34 |
33 |
32 |
31 |
30 |
26H |
|
TL1 |
8BH |
|||||||||||
2F |
2E |
2D |
2C |
2B |
2A |
29 |
28 |
25H |
|
TL0 |
8AH |
|||||||||||
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
24H |
|
TMOD |
89H |
|||||||||||
1F |
1E |
1D |
1C |
1B |
1A |
19 |
18 |
23H |
|
8F |
8E |
8D |
8C |
8B |
8A |
89 |
88 |
88H |
||||
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
22H |
|
PCON |
87H |
|||||||||||
0F |
0E |
0D |
0C |
0B |
0A |
09 |
08 |
21H |
|
DPH |
83H |
|||||||||||
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
20H |
|
DPL |
82H |
|||||||||||
R7 |
1FH |
|
SP |
81H |
||||||||||||||||||
Банк 3 |
|
|
87 |
86 |
85 |
84 |
83 |
82 |
81 |
80 |
80H |
|||||||||||
R0 |
18H |
|
|
|
||||||||||||||||||
R7 |
17H |
|
|
|
||||||||||||||||||
Банк 2 |
|
|
|
|
||||||||||||||||||
R0 |
10H |
|
|
|
||||||||||||||||||
R7 |
0FH |
|
|
|
||||||||||||||||||
Банк 1 |
|
|
|
|
|
|||||||||||||||||
R0 |
08H |
|
|
|
|
|||||||||||||||||
R7 |
07H |
|
|
|
||||||||||||||||||
Банк 0 |
|
|
|
|
||||||||||||||||||
R0 |
00H |
|
|
|
Рис. 2.4 — Структура резидентної пам'яті даних і регістрів спеціальних функцій мікроконтролера 8051