мікроконтролера СІМЕЙСТВА MCS-51
1. СТРУКТУРНА СХЕМА мікроконтролерів сімейства MCS-51
Основою мікроконтролера (див. рис. 1) є 8-ми бітове арифметичне-логічний пристрій (АЛП). Пам'ять МК має Гарвардську архітектуру, тобто логічно поділена: на пам'ять програм - ПП (внутрішню або зовнішню), адресується 16-ти бітовим лічильником команд (СК) і пам'ять даних - внутрішню (резидентна пам'ять даних - РПД) 128 (або 256) байт, а також зовнішню (Зовнішня пам'ять даних - ВПД) до 64 Кбайт. Фізично пам'ять програм реалізована на ПЗП (доступна тільки з читання), а пам'ять даних - на ОЗП (Можливий запис і читання даних).
Прийом та видача зовнішніх сигналів здійснюється через 4 восьмибитового порту Р0 .. Р3. При зверненні до зовнішньої пам'яті програм (ВПП) або пам'яті даних (ВПД) порти Р0 і Р2 використовуються як мультиплексировать зовнішня шина Адреса/Дані. Лінії порту Р3 можуть виконувати також альтернативні функції (Див. табл. 1).
16-ти бітовий регістр DPTR формує адресу ВПД або базовий адресу Пам'яті програм в команді перетворення Акумулятора. Регістр DPTR може також використовуватися як два незалежних 8-ми бітових регістра (DPL і DPH) для зберігання операндів.
8-ми бітовий внутрішній регістр команд (РК) приймає код виконуваної команди; цей код дешифрується схемою управління, яка генерує керуючі сигнали (див. рис. 1).
Звернення до регістрів спеціальних функцій - РСФ (SFR - на рис. 1 вони обведені пунктирною лінією) можливо тільки з використанням прямий байтовой адресації в діапазоні адрес від 128 (80h) і більше.
Резидентна пам'ять даних (РПД) в перших моделях мікроконтролерів сімейства MCS-51 мала об'єм 128 байт. Молодші 32 байти РПД є одночасно і регістрами загального призначення - РОН (4 банка по 8 РОНов). Програма може звернутися до одного з 8-ми РОНов активного банку. Вибір активного банку РОНов здійснюється програмуванням двох біт в регістрі стану процесора - PSW.
Таблиця 1 - Призначення висновків MCS-51
№ вив.
Позначення
Призначення
1 .. 8
Р1 [0 .. 7]
8-ми бітовий квазідвунаправленние порт вводу/виводу
9
RST
Сигнал скидання (активний рівень - високий);
Сигнал RST обнуляє: PC і більшість регістрів спеціальних функцій (SFR), забороняючи всі переривання і роботу таймерів; вибирає Банк РОНов 0; записує в порти Р0_Р3 "всі одиниці", готуючи їх на введення; записує код 07H в покажчик стека (SP);
10 .. 17
P3 [0 .. 7]
P3 [0]
P3 [1]
P3 [2]
P3 [3]
P3 [4]
P3 [5]
P3 [6]
P3 [7]
8-ми бітовий квазідвунаправленние порт введення/виводу; після запису в відповідний розряд "1" - виконує додаткові (альтернативні) функції:
Вхід послідовного порту - RxD;
Вихід послідовного порту - TxD;
Вхід зовнішнього переривання 0 - ~ INT0;
Вхід зовнішнього переривання 1 - ~ INT1;
Вхід таймера/лічильника 0 - Т0;
Вхід таймера/лічильника 1 - Т1;
Вихід строб. сигналу при записі в ВПД - ~ WR;
Вихід строб. сигналу при читанні з ВПД - ~ RD;
18, 19
X1, X2
Висновки для підключення кварцового резонатора або LC-контура;
20
GND
Загальний висновок;
21 .. 28
P2 [0 .. 7]
8-ми бітовий квазідвунаправленние порт введення/виводу; або вихід адреси A [8_15] в режимі роботи з зовнішньою пам'яттю (ВПП або ВПД);
29
PME
Строб читання Зовнішньої Пам'яті програми, видають-ся тільки при зверненні до зовнішнього ПЗУ;
30
ALE
Строб адреси Зовнішньої пам'яті (ВПП або ВПД);
31
ЕА
Відключення РПП, рівень "0" на цьому вході пе-реводіт МК на вибірку команд тільки з ВПП
39 .. 32
Р0 [0 .. 7]
8-ми бітовий двонаправлений порт вводу/виводу; при зверненні до Зовнішньої Пам'яті видає адреси A [0_7] (які записуються в зовнішній регістр за сигналом ALE), а потім обмінюється байтом синхронно з сигналом ~ PME (для команд) або ~ WR, ~ RD (для даних у ВПД), при зверненні до Зовнішньої Пам'яті в регістр порту Р0 записуються всі одиниці, руйнуючи збережену там інформацію;
40
Ucc
Висновок напруги живлення
Перемикання банків РОНов спрощує виконання підпрограм і обробку переривань, тому не потрібно пересилати в стек вміст РОНов основної програми при виклику підпрограми (достатньо в підпрограмі перейти в інший активний банк РОНов).
Звернення до РПД можливо з використанням непрямої або прямий байтовой адресації (пряма байтовая адресація дозволяє звернутися тільки до перших 128-ми байтах РПД).
Розширена область РПД (у мікроконтролерів сімейства MCS-52 і наступних сімейств) з адреси 128 (80h) до 255 (FFh) може адресуватися тільки з використанням непрямого методу адресації.
Таблиця 2 - блок регістрів спеціальних функцій (sfr)
Адреса
dir
Мнемо-код
Найменування
0E0h
* ACC
Акумулятор
0F0h
* B
Регістр розширювач акумулятора
0D0h
* PSW
Слово стану процесора
0B0h
* P3
Порт 3
0A0h
* P2
Порт 2
90h
* P1
Порт 1
80h
* P0
Порт 0
0B8h
* IP
Регістр пріоритетів переривань
0A8h
* IE
Регістр маски переривань
99h
SBUF
Буфер послідовного приймально-передавача
98h
* SCON
Регістр керування/статусу послідовного порту
89h
TMOD
Регістр режимів таймерів/лічильників
88h
* TCON
Регістр керування/статусу таймерів/лічильників
8Dh
TH1
Таймер 1 (старший байт)
8Bh
TL1
Таймер 1 (молодший байт)
8Ch
TH0
Таймер 0 (старший байт)
8Ah
TL0
Таймер 0 (молодший байт)
83h
DPH
Регістр-вказівник даних (DPTR) (старший байт)
<...