 
        
        Мікропроцесори в рез Лекція № 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).
,
від таймерів/лічильників 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
