Арифметико-логічний пристрій
АЛП, розрядністю у 8-бітів, може виконувати арифметичні операції додавання, віднімання, множення і ділення; логічні операції І, АБО, ВИКЛЮЧАЮЧЕ АБО, циклічні зсуви, обнуління, інвертування тощо. В АЛП Рисунок 8.2 Структурна схема МК51 є програмно недоступні регістри Т1 і Т2, що використовуються для тимчасового зберігання операндів, а також схема десяткової корекції і схема формування ознак. АЛП може оперувати чотирма типами інформаційних об’єктів: булевими (1біт), цифровими (4 біти), байтовими (8 біт) і адресними (16 біт). Структура пам’яті МК51 Загальну пам’ять МК можна розділити на п’ять фізичних адресних просторів, які розрізняються програмно, оскільки мають різні способи адресації, так і апаратно, тому що використовуються різні сигнали запису та читання (рисунок 8.3): зовнішня пам’ять програм (ЗПП); зовнішня пам’ять даних (ЗПД); резидентна пам’ять програм (РПП); резидентна пам’ять даних (РПД); регістри спеціальних функцій (РСФ).
Рисунок 8.3 Структура пам’яті
Внутрішня і зовнішня пам’яті програм утворюють єдиний адресний простір ємністю до 64 Кбайт і не розрізняються програмістом, але обов’язково відокремлюються на етапі проектування апаратних засобів. Резидентна пам’ять Пам’ять програм і даних (резидентна, тобто внутрішня) фізично і логічно розділені і мають різні механізми адресації. Пам’ять програм (ПЗП) має ємність 4 Кбайти і використовується для зберігання команд, констант, керуючих слів ініціалізації тощо. Резидентна пам’ять програм (РПП) має 16-бітову шину адреси, яку генерує лічильник команд РС або команд, що формують пряму 8 або 16-розрядну адресу. Комірки 0000...0023Н зарезервовані під вектори переривань при їх обслуговуванні (тобто реалізуються переходи на підпрограми обслуговування переривань).
Резидентна пам’ять даних (РПД) виконує функції оперативної пам’яті і забезпечує зберігання проміжних результатів. Адресується одним байтом і має ємність 128 байтів. Вона складається з трьох частин (рисунок 8.4). - 4 банки регістрів оперативного призначення з адресами 00...1FH; - 16 байтових комірок з адресами 20...2FH, що одночасно утворюють область з 128 однобітових комірок окремої адресації з адресами 00...7FH; - 80 байтових комірок ОЗП з адресами 30...7FH.
Регістри спеціальних функцій Регістри спеціальних функцій займають область резидентної пам’яті з адресами 80...FFH. Перелік даних регістрів поданий в таблиці 8.5, а карта пам’яті на рисунку 8.4 - 8.5.
Таблиця 8.5- Блок регістрів спеціального призначення
Зауваження. Регістри зі значком (*), допускають адресацію окремих бітів. Регістр В застосовується при виконанні команд множення і ділення, а також використовується як подовжувач акумулятора при обробці двобайтових чисел. Акумулятор і ССП Акумулятор є джерелом операнда і місцем фіксації результату при виконанні арифметичних, логічних операцій і операцій маніпулювання бітами. В МК51 акумулятор має звужене застосування, оскільки значна частина команд контролера може виконуватись без його участі.
Результат виконання багатьох команд в АЛП оцінюється ознаками (індикаторами), які фіксуються в регістрі слова стану програм (ССП). В таблиці поданий перелік індикаторів ССП (регістр PSW). Таблиця 8.6- Формат слова стану програм (ССП).
Примітка. Вибір робочого банку регістрів
Індикатор переносу С, крім звичайних функцій подовжувача акумулятора в командах додавання, віднімання і зсувів, виконує функції акумулятора в командах маніпуляції з однобітовими операндами. Індикатор 0V фіксує арифметичні переповнення в операціях зі знаковими числами. Крім того він установлюється в 1 також при діленні на нуль і якщо добуток в операціях множення перевищує 225. Індикатор F0 визначається користувачем під будь-яку ознаку і може бути програмно установленим, обнуленим, перевіреним та про інвертованим. Індикатори RS0 i RS1 визначають один з чотирьох можливих банків регістрів оперативного призначення. Індикаторами керує не АЛП, а програміст у відповідності до таблиці (див.примітку). Функції індикатора додаткового переносу АС є аналогічними до його функцій в МП інших типів. Необхідно зауважити, що акумулятор не відноситься до регістрів оперативного призначення, а разом з регістром PSW входить до складу регістрів спеціальних функцій.
Регістри-покажчики 8-бітовий покажчик стеку SP може адресувати будь-яку область РПД. Вміст регістра SP інкрементується завчасно ніж дані будуть записані в стек під дією команд PUSH i CALL.Вміст SP декрементується після виконання команд POP i RET. Після ініціалізації МК51 за сигналом ‘’Обнуління’’ в SP заноситься код 07Н. Тобто перший елемент даних в стеку буде розміщений в РПД за адресою 08Н. Двобайтовий регістр-покажчик даних DPTR використовується для фіксації 16-бітової адреси в операціях зі зверненнями до зовнішньої пам’яті. Даний регістр може використовуватись як 16-бітовий або як два незалежні 8-бітових регістри DPH i DPL.
Таймери / лічильники В складі апаратних засобів МК51 є регістрові пари з символьними іменами ТНО, TLO i TH1,TL1, що є основою двох незалежних програмно-керованих 16-бітових таймерів/лічильників подій.
Буфер послідовного порта Регістр з символьним іменем SBUF представляє собою два незалежних регістра: буфер приймача і буфер передавача. Посилка байта в SBUF зразу ж викликає процес передачі через послідовний порт. Коли ж байт зчитується з SBUF, то джерелом є приймач послідовного порту.
Регістри спеціальних функцій. Регістри з символьними іменами IE, IP, TMOD, TCON, SCON i PCON використовуються для фіксації і програмної зміни керуючих бітів і бітів стану схеми переривання, таймера/лічильника, приймача/передавача послідовного порта і для керування потужністю живлення МК51. Їх організація буде розглядатись далі.
Читайте также: Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|