Архітектура МК MCS-51.

Структурна схема MCS 51 і принципи роботи.

З погляду програміста МК-51 являє собою 8-розрядний, CISC МК, що має швидкий Гарвардський процесор, пам’ять програм, РПЗП, пам’ять даних, порти вводу/виводу, інтерфейсні схеми, АЛП, блок таймерів/лічильників, блок переривань, програмний лічильник.

Двосторонній обмін інформацією між функціональними блоками здійснюється за допомогою внутрішньої 8-розрядної шини даних.

СК РК - блок управління призначений для вироблення синхронізуючих і керуючих сигналів, що забезпечують координування спільної роботи блоків ОМЕОМ в усіх доступних режимах.

регістри команд, призначені для запису і зберігання 8-розрядного коду операції, використовуваної команди, яка за допомогою дешифратора команд перетворює в 24-розрядний код для ПЛМ.

Р0.0…Р0.7; Р1.0…Р1.7; Р2.0…Р2.7; Р3.0…Р3.7; - порти вводу/виводу, призначені для прийому і видачі сигналів, забезпечують обмін інформацією між ОМЕОМ з внутрішніми пристроями.

ALU(АЛП) - для виконання арифметичних і логічних дій, зсуву, складається з регістру акумулятора, доповнюю чого регістру, акумулятора, регістру стану програми.

В – доповнюючий регістр, використовується під час операцій множення і ділення.

А – акумулятор, 8-розрядний регістр, для прийому і збереження результату, отриманого від АЛП або операцій пересилання.

TМП1 i TМП2 регістри тимчасового збереження 8 –розрядний пристрій для прийому і збереження операндів на час виконання операцій над ними.

PSW – регістр слова стану програми для збереження інформації і стану АЛП при виконанні програми.

Т/С – таймер-лічильник для підрахунку внутрішніх подій, отриманих програмно-керуючих часових затримок, використовується для часозадаючих функцій. В склад Т/С входять:

1) два 16-розрядних регістра Т/С0 і Т/С1;

Т/С0 і Т/С1 виконують функцію зберігання результатів підрахунку. Кожен складається з двох 8-розрядних регістрів ТН0, TL0, TH1, TL1. (ТН - старший, TL – молодший). Кожен з цих регістрів має свою адресу і може бути використаний як РЗП (регістр загального призначення), якщо відповідний таймер не використовується;

2) 8-розрядний регістр режимів Т/С (TMOD);

регістр режимів призначений для прийому і збереження коду, який визначає: один із 4 можливих режимів роботи Т/С0 або Т/С1; виконання функції таймерів чи лічильників; керування по зовнішньому виводу;

3) 8-розрядний регістр керування (TCON);

регістр керування призначений для прийому і зберігання коду управляючого слова;

4) схема інкремента; призначена для збільшення на 1 в кожному машинному циклі зберігаю чого регістра Т/С0 і Т/С1 для яких: встановлено режим таймера і рахунок дозволено; встановлено режим лічильника і рахунок дозволено; і на відповідному вході схеми Т0 (для Т/С0), Т1 (для Т/С1) зафіксований рахуючий імпульс в попередньому машинному циклі;

5) схема фіксації сигналів INT0, INT1, Т0, Т1;схема фіксації сигналів представляє собою 4 тригери. В кожному машинному циклі в них запам’ятовується інформація, яка надходить з виводів INT0, INT1, Т0, Т1;

6) схема керування прапорцями;встановлює та скидає прапорці переповнення Т/С та прапорці запитів зовнішніх переривань;

7) логіка керування Т/Ссинхронізує роботу регістрів Т/С0 і Т/С1 згідно з запрограмованими режимами роботи і синхронізує роботу Т/С з роботою ОМЕОМ.

РС – програмний лічильник, призначений для формування наступної 16-розрядної адреси програмної пам’яті команд і 8 /16-роздяних адрес зовнішньої пам’яті даних;

ОЗП– пам’ять даних, призначена для прийому, зберігання, видачі інформації, яка використовується в процесі виконання програми. Пам’ять даних складається з регістру адрес ОЗП, дешифратора, ОЗП і покажчика стеку. Регістр адрес ОЗП призначений для приймання, зберігання адреси, вибраної за допомогою дешифратора, комірки пам’яті, яка може зберігати як біт, так і байт інформації. ОЗП – це 128 8-розрядних регістрів, призначених для прийому, зберігання і видачі інформації.

SP – покажчик стека. При виконанні команд CALL, ACALL, зберігається вміст покажчика стека збільшеного на 2. При виконанні команд RET, RETI – зменшує на 2.

SPORT – блок послідовного інтерфейсу, або послідовний порт переривань, призначений для організації вводу/виводу послідовної інформації і організації системи переривань програми. в склад блоку входять: буфер ПІП, логіка управління ПІП, регістр управління, буфер передатчика, буфер приймача, приймач/передавач послідовного порту, регістр пріоритетів і регістр дозволу переривань. Послідовний порт – це дуплексний порт (можна передавати і отримувати інформацію одночасно). Буфер прийому дозволяє вести прийом другого байту до того, як попередньо прийнятий байт буде вирахований за час прийому другого байту.

ПЗП – пам’ять програм, призначена для запису і зберігання програми команд користувача, має окремий вид пам’яті з адресами від 0000h до 0FFFh розташовану на кристалі мікросхеми у вигляді електричних програмуючих комірок з можливістю стирання УФ-променями.

Призначення виводів МК 8051

 

Vss – потенціал загального проводу (землі);

Vcc – основна напруга живлення +5В;

Х1, Х2 – виводи для підключення кварцового резонатора;

RST – вхід для загального скидання МК;

PSEN – дозвіл зовнішньої ПП; видається тільки при зверненні до зовнішнього ПЗП;

ALE – строб адреси зовнішньої пам’яті;

ЕА – відключення внутрішньої програмної пам’яті, рівень 0 на цьому вході змушує контролер виконувати програму тільки зовнішнього ПЗП, ігноруючи внутрішнє;

Р1 – 8-бітний квазідвонаправлений порт вводу/виводу: кожен розряд порту може бути запрограмований як на ввід так і на вивід інформації, незалежно від стану інших розрядів;

Р2 – 8-бітний квазідвонаправлений порт, аналогічний Р1; крім того, виводи цього порта використовуються для видачі адресної інформації при зверненні до зовнішньої ПП або даних (якщо використовується 16-бітна адресація останньої).

Р3 – 8-бітний квазідвонаправлений порт, аналогічний Р1; крім того, виводи цього порта можуть виконувати ряд альтернативних функцій, які використовуються при роботі таймерів, порту послідовного вводу/виводу, контролера переривань, і зовнішньої ПП і даних;

Р0 – 8-бітний двонаправлений порт вводу/виводу інформації: при роботі з зовнішніми ОЗП та ПЗП по лініях росту в режимі часового мультиплексування видається адреса зовнішньої пам’яті, після чого здійснюється передача чи прийом даних.

 

3. Організація ПП і даних.

Пам’ять програм.

Як і в більшості МК у 8051, пам’ять програм і пам’ять даних є самостійними і незалежними один від одного пристроями, що адресуються різними командами і управляючими сигналами.

Об’єм вбудованої ПП рівний 4 Кбайт. При зверненні до зовнішньої ПП всі МК сімейства 8051 завжди використовують 16-розрядну адресу, що забезпечує їм доступ до 64 Кбайт ПЗП. МК звертається до ПП при читанні коду операції і операндів (використовуючи лічильник команд РС), а також при виконанні команд переносу байту з ПП в акумулятор. При виконанні команд переносу даних адресація комірки ПП, з якої будуть прочитані дані, може здійснюватися з використанням як лічильника РС, так і двобайтового регістра-покажчика даних DPTR.

Враховуючи, що виконання програми після скидання МК завжди починається з нульової адреси ПП, то при включенні живлення почне виконуватися програма, записана у внутрішньому ПЗП МК.

Доступ до зовнішньої ПП здійснюється в двох випадках:

1) при дії сигналу EA=0 незалежно від адреси звернення

2) у будь-якому випадку, якщо програмний лічильник (РС) містить число більше, ніж максимальний елемент внутрішньої ПП.

Для інших МКів цього сімейства змінюється тільки об’єм внутрішньої ПП і кількість доступних векторів переривань програми.