Однокристальний контролери сімейства МК51
 Однокристальний мікроконтролери - окремий клас мікросистем. Повний набір їх коштів розташований на одному кристалі. Сюди крім центрального процесора входять пам'ять, підсистема вводу-виводу, засоби в режимі реального часу (РВ). Інтеграція всіх складових частин мікро-ЕОМ на одному кристалі внесла ряд обмежень на принципи її організації, вимагає нових рішень у розвитку її архітектури, не властивих багатокристальні компонування. У результаті було отримано новий клас мікроконтролерів (МК) з притаманними тільки йому принципами побудови архітектури та структурної схеми.
 Структурна організація, набір команд і апаратурно-програмні засоби введення/виводу інформації мікроконтролерів найкраще пристосовані для вирішення завдань управління і регулювання в приладах, пристроях і системах автоматики, а не для вирішення задач обробки даних. Мікроконтролери не є машинами класичного "фон-неймановского" типу, так як фізична і логічна розділеність пам'яті програм і пам'яті даних виключає можливість модифікації і/або заміни (перевантаження) прикладних програм мікроконтролерів під час роботи, що сильно ускладнює їх використання в якості універсальних засобів обробки даних.
 МК51 має у своєму складі: процесор, до складу якого входять 1-байтного АЛУ і схема апаратурною реалізації команд множення і ділення; стирані ПЗУ програм ємністю 4 Кбайта, ОЗУ даних ємністю 128 байт; два 16-бітових таймера/лічильника; програмувальні схеми введення/виводу (32 лінії); блок дворівневого векторного переривання від п'яти джерел; асинхронний канал дуплексного послідовного введення/виводу інформації зі швидкістю до 375 кбіт/с; генератор, схему синхронізації і управління.
 Структурна організація і система команд МК51.
 Мікроконтролер виконаний на основі високорівневої n-МОН технології і випускається в корпусі БІС, що має 40 зовнішніх висновків. Через чотири програмованих порту введення/виводу МК51 взаємодіє із середовищем в стандарті ТТЛ-схем з трьома станами по виходу. У сучасному виконанні мікроконтроллер може бути виконаний також в К-МОП виконанні
 
 Призначення висновків.
 GND - потенціал землі;
 EA/VPP - відключення резидентної пам'яті програм/напруга програмування (21В);
 VCC - основна напруга живлення +5 В;
 ALE/PROG - строб адреси зовнішньої пам'яті/для подачі рівня GND при програмуванні;
 PSEN - дозвіл зовнішньої пам'яті програм;
 RD - стробірующій сигнал при читанні з зовнішньої пам'яті даних або пристрої введення/виводу;
 WR - стробірующій сигнал при записі в зовнішню пам'ять даних або пристрої введення/виводу;
 T0 - вхідний сигнал, опитуваний по командах умовного переходу, так само використовується при програмуванні;
 Т1 - вхідний сигнал, опитуваний по командах умовного переходу, використовується як входу внутрішнього лічильника зовнішніх подій;
 INT0, INT1 - сигнал запиту переривання;
 RST/VPD - сигнал загального скидання/вхід харчування при зниженому енергоспоживанні;
 RXD і TXD - входи послідовного інтерфейсу;
 XTAL1, XTAL2 - входи підключення кварцового резонатора;
 P0, P1, P2, P3 - квазідвунаправленние порти паралельного вводу-виводу (порт P3 несе додаткові функції)
 Арифметико-логічний пристрій
 8-бітове АЛП може виконувати арифметичні операції додавання, віднімання, множення і ділення; логічні операції і, або, що виключає або, а також операції зсуву, скидання, інвертування і т.д. В АЛП є програмно недоступні регістри Т1 і Т2, призначені для тимчасового збереження операндів, схема десяткового корекції та схема формування ознак. Важливою особливістю АЛП є його здатність оперувати не тільки байтами, але і битами. Окремі програмно доступні біти можуть бути встановлені, скинуті, інвертовані, передані, перевірені та використані в логічних операціях.
 резидентна пам'ять
 Пам'ять програм і пам'ять даних, розміщені на кристалі МК51, фізично і логічно розділені, мають різні механізми адресації, працюють під управлінням різних сигналів і виконують різні функції.
 Пам'ять програм (РПП): має ємність 4 Кбайта і призначена для зберігання команд, констант, керуючих слів ініціалізації, таблиць перекодування вхідних та вихідних змінних і т.п. РПП має 16-бітну шину адреси, через яку забезпечується доступ з лічильника команд або з регістра покажчика даних. Останній виконує функції базового регістра при непрямих переходах за програмою або використовується в командах, що оперують з таблицями.
 Пам'ять даних (РПД): призначена для зберігання змінних в процесі виконання прикладної програми, адресується одним байтом і має ємність 128 байт. Крім того, до адресного простору РПД примикають адреси регістрів спеціальних функцій.
 Пам'ять програм, так само як і пам'ять даних, може бути розширена до 64 Кбайт шляхом підключення зовнішніх ВІС.
 У МК51 передбачені чотири банку по вісім робочих регістрів R0 ... R7; банк вибирається полем RS в слові стану програми. Вони виконують общецелевие функції з проміжного зберігання даних. За аналогією з МК48 R0 і R1 кожного банку реалізують також функцію 8-розрядних покажчиків даних. За допомогою набору робочих регістрів істотно зменшується тривалість перемикання контекстів ЦП, що дуже важливо для мікроконтролерів реального часу. У МС51 відсутнє обмеження, що накладаються на процедури обслуговування переривань, властиві МК48.
 Пам'ять програм (64 Кбайт) - однорідна лінійна область, реалізована як внутрішніми, так і зовнішніми засобами. Для сумісності з МК48 передбачено ряд команд, які дозволяють розглядати пам'ять у вигляді набору 2-Кбайтних банків. Подібно архітектурі МК48 всі банки робочих регістрів, а також системний стек розташовуються у внутрішній пам'яті даних. Визначено два способи адресації пам'яті: прямий (direct) і непрямий (@ Ri, де i = 0 ... 1). За допомогою прямої адресації доступна тільки молодша адресного простору внутрішньої пам'яті даних (128 байт), тоді як непряма забезпечує доступ до будь-якої її осередки з діапазону 256 байт. Введення прямої адресації розширило можливості однокристальних мікроконтролерів з обробки даних. Зокрема, з'явилися засоби доступу до робочих регістрів і системного стеку, інтерпретується як звичайні елементу пам'яті.
 
 Мікроконтролер МК51 має розвинену підсистему введення-виведення та засоби управління режимом реального часу. Для їх управління в мікроконтролері передбачено ряд регістрів, які розміщені в окремо прямо адресуються просторі спеціальних регістрів (128 байт). Сюди ж включені і деякі регістри ЦП. Простір спеціальних регістрів разом з молодшою частиною адресного простору внутрішньої пам'яті даних утворюють прямо адресуються область. При цьому спочатку розміщується молодша половина простору внутрішньої пам'яті даних, а потім простір спеціальних регістрів.
 Блок регістрів спеціальних функцій
 Символ
 Найменування
 Адреса
 ACC
 Акумулятор
 0E0H
 B
 Регістр-розширник акумулятора
 0F0H
 PSW
 Слово стану програми
 0D0H
 SP
 Регістр-покажчик стека
 81H
 DPRT
 Регістр-вказівник даних (DPH)
 83H
 (DPL)
 82H
 P0
 Порт 0
 80H
 P1
 Порт 1
 90H
 P2
 Порт 2
 0A0H
 P3
 Порт 3
 0B0H
 IP
 Регістр пріоритетів
 0B8H
 IE
 Регістр маски переривань
 0A8H
 TMOD
 Регістр режиму таймера/лічильника
 89H
 TCON
 Регістр керування/стану таймера
 88H
 TH0
 Таймер 0 (старший байт)
 8CH
 TL0
 Таймер 0 (молодший байт)
 8AH
 TH1
 Таймер 1 (старший байт)
 8DH
 TL1
 Таймер 1 (молодший байт)
 8BH
 SCON
 Регістр управління приемопередатчиком
 98H
 SBUF
 Буфер прийомопередатчика
 99H
 PCON
 Регістр управління потужністю
 87H
 Формат слова стану програми (PSW)
 Символ
 Позиція
 Ім'я та значення
 C
 PSW.7
 Прапор переносу. Встановлюється і апаратурними засобами або програмою при виконанні арифметичних і логічних операцій
 AC
 PSW.6
 Прапор допоміжного переносу. Встановлюється і скидається тільки апаратурними засобами при виконанні команд додавання і віднімання і сигналізує про перенесення або позику в бите 3
 F0
 PSW.5
 Прапор 0. Може бути встановлений, скинутий або перевірений програмою як прапор спеціфіціруемий користувачем
 RS1
 RS0
 PSW.4
 PSW.3
 Вибір банку регістрів. Встановлюється і скидається апаратно при виконанні арифметичних операцій
 OV
 PSW.2
 Прапор переповнення. Встановлюється і скидається апаратно при виконанні арифметичних операцій
 --
 PSW.1
 Не використовується
 P
 PSW.0
 Прапор паритету. Встановлюється і скидається апаратно в кожному циклі команди і фіксує непарне/парне число одиничних біт в акумуляторі, тобто виконує контроль по парності (PSW.0)
 Центральний процесор МК51 містить спеціальну логіку для виконання ряду однобітних операцій, в яких роль акумулятора реалізує прапорець перенесення СУ. Для зберігання бульових даних в архітектурі МК51 передбачено окреме прямо адресуються простір BSEG (256 біт), яке фізично поєднане з прямо адресується частиною внутрішньої пам'яті даних і областю спеціальних регістрів. Hаприклад, акумулятор A, доступний як елемент регістровий пам'яті, може бути прямо адресований і як елемент простору спеціальних регістрів (адреса 0E0h), і як область бітів з адресами 0E0h ... 0E7h. При цьому бітовий адреса 0E0h відноситься до молодшого розряду акумулятора.
 Розміщення в області спеціальних регістрів чотири 8-розрядних псевдодвунаправленних порту вводу-виводу суміщені з двійкового простором, що забезпечує доступ до окремих їх розрядами незалежно один від одного.
 Послідовний інтерфейс
 У складі МК1 введений дуплексний периферійний зв'язковий адаптер, який може бути запрограмований для роботи в одному з чотирьох основних режимів:
 0 синхронний послідовний ВВ зі швидкістю OSC/12;
 1 асинхронний з 10-бітовим кадром і змінною швидкістю передачі;
 2 асинхронний з 11-бітовим кадром і фіксованою швидкістю передачі
 OSC/32 або OSC/64;
 3 асинхронний з 11-бітовим кадром і змінною швидкістю передачі.
 Через універсальний асинхронний приймач (УАПП) здійснюється прийом, передача інформації, представленої послідовним кодом, у повному дуплексному режимі обміну. До складу УАПП входять приймає й передає зсуваються регістри, а також спеціальний буферний регістр (SBUF) приймача. Запис байта в буфер призводить до автоматичної перепису байти в зсувний регістр і ініціює початок передачі байта. Наявність буферного регістра приймача дозволяє поєднувати операцію читання раніше прийнятого байти з прийомом чергового байта. Якщо до моменту закінчення прийому байта попередній байт не був лічений з SBUF, то він буде втрачено.
 Управління режимом роботи УАПП здійснюється через спеціальний регістр з символічним ім'ям SCON. Цей реєстр містить не тільки керуючі біти, що визначають режим роботи послідовного порту, але і дев'ятий біт прийнятих або переданих даних (RB8 і TB8) і біти переривання прийомопередатчика (RI і TI).
 Таймери
 Два програмованих 16-бітових таймера/лічильника (Т/С0 і Т/С1) можуть бути використані в якості таймерів або лічильників зовнішніх подій. При роботі в якості таймера вміст Т/С інкрементіруется у кожному машинному циклі. При роботі в якості лічильника вміст Т/С інкрементіруется під впливом переходу з 1 в 0 зовнішнього вхідного сигналу, що подається на відповідний (Т0, Т1) висновок МК51. Так як на розпізнавання переходу потрібно два машинних цикли, то максимальна частота підрахунку вхідних сигналів дорівнює 1/24 частоти резонатора. На тривалість періоду вхідних сигналів обмежень зверху немає. Для гарантованого прочитання вважаємо вхідного сигналу він повинен утримувати значення 1 як мінімум протягом одного машинного циклу.
 Регістр режиму роботи таймера/лічильника (TMOD)
 Символ
 Позиція
 Ім'я та значення
 GATE
 TMOD.7 для T/C1
 TMOD.3 для T/C0
 Управління блокуванням.
 C/T
 TMOD.6 для T/C1
 TMOD.2 для T/C0
 Біт вибору режиму таймера або лічильника подій.
 M1
 TMOD.5 для T/C1
 TMOD.1 для T/C0
 Біти вибору режиму роботи
 M0
 TMOD.4 для T/C1
 TMOD.0 для T/C0
 Структурна схема роботи T/C0 (T/C1)
 
 Система переривань
 Зовнішні переривання INT0 і INT1 можуть бути викликані або рівнем, або перепадом сигналу з 1 в 0 на входах МК51 в залежності від значень керуючих біт IT0 і IT1 в регістрі TCON.
 Переривання можуть бути викликані або скасовані програмою, тому що всі розглянуті вище прапори переривань програмно-доступні і можуть бути встановлені/скинуті програмою з тим же результатом, як якби вони були встановлені/скинуті апаратурними засобами.
 У блоці регістрів спеціальних функцій є два регістри, призначених для управління режимом переривань і рівнями пріоритету. Їх символічні імена IE та IP відповідно.