Контролери
Введення
Однією з характерних особливостей нинішнього етапу науково-технічного прогресу є все більш широке застосування мікроелектроніки в різних галузях народного господарства. Роль мікроелектроніки в розвитку суспільного виробництва визначається її практично необмеженими можливостями у вирішенні різних завдань в усіх галузях народного господарства, глибоким впливом на культуру і побут сучасної людини.
Особлива увага в даний час приділяється впровадженню мікропроцесорів, що забезпечують рішення задач автоматизації керування механізмами, приладами 'і апаратурою. Адаптація мікропроцесора до особливостей конкретного завдання здійснюється в основному шляхом розробки відповідного програмного забезпечення, що заносяться потім в пам'ять програм. Апаратна адаптація в більшості випадків здійснюється шляхом підключення необхідних інтегральних схем обрамлення і організації вводу-виводу, що відповідають розв'язуваної задачі.
У мікропроцесорної техніки виділився самостійний клас великих інтегральних схем (ВІС) - однокристальних мікроЕОМ (ОМЕВМ), які призначені для "інтелектуалізації" устаткування різного призначення. Архітектура однокристальних мікроЕОМ - результат еволюції архітектури мікропроцесорів і мікропроцесорних систем, обумовленої прагненням істотно знизити їх апаратні витрати і вартість. Як правило, ці цілі досягаються як шляхом підвищення рівня інтеграції ВІС, так і за рахунок пошуку компромісу між вартістю, апаратними витратами і технічними характеристиками ОМЕВМ.
ОМЕВМ є прилади, конструктивно виконані у вигляді однієї ВІС і, що включають в себе всі пристрої, необхідні для реалізації цифрової системи управління мінімальної конфігурації: процесор, запам'ятовуючий пристрій даних, запам'ятовуючий пристрій команд, внутрішній генератор тактових сигналів, а також програмувальні інтегральні схеми для зв'язку із зовнішнім середовищем. Використання ОМЕВМ в системах управління забезпечує досягнення винятково високих показників ефективності при настільки низькій вартості (у багатьох застосуваннях система може складатися тільки з однієї БІС ОМЕВМ), що їм, мабуть, немає в найближчому часі альтернативної елементної бази для побудови керуючих та/або регулюючих систем, В даний час понад дві третини світового ринку мікропроцесорних коштів складають саме БІС ОМЕВМ. У деяких публікаціях однокристальних мікроЕОМ (ОМЕВМ) називають "мікроконтроллер". Обгрунтовується це тим обставиною, що такі мікросхеми мають незначні ємності пам'яті, фізичне і логічне поділ пам'яті програм (ПЗУ) і пам'яті даних (ОЗУ), спрощену і орієнтовану на завдання управління систему команд, примітивні методи адресації команд і даних. Специфічна організація введення-виведення інформації зумовлює область їх застосування як спеціалізованих обчислювачів, які включені в контур управління об'єктом або процесом. Структурна організація, набір команд і апаратно-програмні засоби введення-виведення інформації цих мікросхем найкраще пристосовані для вирішення завдань управління і регулювання в приладах, пристроях і системах автоматики, а не для вирішення задач обробки даних. Зазначені вище міркування відображають технічний рівень ОМЕВМ зараз.
Аналіз та класифікація апаратних і програмних засобів контролерів
Класифікація контролерів
b>
Прискорення науково-технічного прогресу і вдосконалення господарського механізму тісно пов'язані з розвитком новітньої інформаційної технології. Тенденція до більшої децентралізації функцій управління об'єктивно потребує вдосконалення безпосередньо робочих місць користувачів, залучених до процесу управління, перш за все за рахунок їх автоматизації. Очевидно, що без конкретних потреб (наприклад, у підвищенні продуктивності інтелектуального рівня особистої праці, виконання роботи швидше і економніше) навряд чи виникла б необхідність в контролерах. Впровадження контролерів дозволяє реалізувати якісно нову інформаційну технологію, при якій споживач інформації одержує і аналізує питання, що цікавлять його дані безпосередньо в процесі спілкування з ПЕОМ, що забезпечує комплексну автоматизацію конкретних задач управління. Робота контролера допомагає краще усвідомлення проблемної ситуації, дозволяє частково або повністю вирішити проблему, підштовхує до оперативного побудови моделі об'єкта управління і, тим самим, до грамотного і швидкого ухвалення рішень.
Спробуємо класифікувати контролери взагалі.
Будемо визначати контролери як сукупність методичних,
схемотехнічних і програмних засобів, що забезпечують роботу користувачів у деякої предметної області. Всі три компоненти абсолютно необхідні для функціонування контролера. Методика проектування контролера не може не бути пов'язаною з методикою його функціонування, оскільки функціонування розвиненого контролера не передбачає можливість його розвитку самими користувачами. Мовні засоби мікроконтролерів є реалізацією методичних засобів з точки зору кінцевого користувача, і дають можливість кінцевому користувачу проводити всі необхідні дії.
До складу методичних засобів повинні входити і засоби
навчання, діапазон яких може бути дуже широкий: від паперових інструкцій до самонавчання систем. Їх призначення полягає в тому, щоб користувач навчився ефективно працювати в умовах автоматизації повного і приватного процесу. Якщо процес досить складний, а користувач не має спеціалізовані навичок, можливе застосування контролерів, які дозволяють поступово ввести користувача в предметну область його автоматизованого процесу. Чим складніша проектується контролер, тим менш функції можуть бути реалізовані користувачем.
Наступний аспект методичного забезпечення - це реалізація заданих функцій контролера, тобто власне його функціонування. Тут необхідні методики визначення мети поточної діяльності, інформаційної потреби, усіляких сценаріїв для опису процесів її реалізації. Ці методичні засоби можуть явним чи неявним чином враховуватися користувачем. У першому випадку користувач у значній мірі сам планує свою діяльність.
Мовні засоби контролера необхідні, перш за все, для однозначного змістового відповідності дій користувачів та реакції ПЕОМ. Без них неможливий процес навчання, організація діалогу, виявлення та виправлення помилок. Складність розробки таких мов полягає в тому, що вони повинні бути переважно непроцедурного. Якщо процедурний мова вказує, як виконується що задається, то непроцедурного - що необхідно виконати без деталізації того, які дії для цього потрібні. Так як кінцеві користувачі не знають в деталях процес реалізації інформаційної потреби, чим вище інтелектуальність контролера, тим більше непроцедурного можливостей повинно бути передбачено в його мовах.
Мови програмування контролера повинні бути користувач орієнтованими, в тому числі і професійно-орієнтованими. Це пов'язано з відмінностями в класифікації користувачів. Слід врахувати, що використання природної мови, не може дати скільки-небудь відчутних переваг через необхідність введення через клавіатуру громіздких конструкцій заради отримання іноді нескладних результатів. Крім того, витрати на побудову лексичного аналізатора для такого контролера можуть зрівнятися з загальними витратами на всі інші складові.
Як і у всякому мовою, основу мов контролерів повинні складати заздалегідь обумовлені терміни, а також опис способів, за допомогою яких можуть встановлюватися нові терміни, замінюючи або доповнюючи існуючі. Вказана обставина призводить до необхідності при проектуванні контролера певним чином класифікувати термінологічну основу контролерів, тобто визначити всі основні синтаксичні конструкції мови та семантичні відносини між термінами та їх сукупностями. У зв'язку з цим може виникнути необхідність у найпростішої класифікації контролерів, наприклад, за можливостями подання даних у деяких користувачів режимах обробки: числові, текстові та змішані. Можливості мови багато в чому визначають і список правил, за якими користувач може будувати формальні конструкції, що відповідають реалізації інформаційної потреби.
Різко зросла потреба в малорозмірний авіаційної техніки послужила поштовхом для розвитку авіаційного обладнання задля зменшення його габаритно-масових характеристик.
Сучасні норми льотної придатності, як вітчизняні НЛГС-3, так і зарубіжні FAR-23, висувають високі вимоги до безпеки польотів, що безпосередньо пов'язано з надійністю застосовуваного устаткування, резервуванням основних каналів інформації та наданням пілоту обмежувальних сигналів можливо при мінімальній вазі обладнання . Тому тема дипломної роботи, спрямованої на створення покажчика швидкості з цифровим виходом УСВІЦ-250, є дуже актуальною.
На підставі огляду методів вимірювання повітряних швидкостей і огляду останніх розробок покажчиків швидкості розроблена конструкція покажчика, в якій використані оригінальні технічні рішення, застосовані в описах УСВІ-200-Е (рухливий індекс Vм.д.), УСБС-200-Е ( видача разової команди Vпр = Vм.д.) і УСЦ-2 (наявність цифрового виходу Vпр.ц.).
Аналіз інструментальних засобів
b>
Повертаючись до мовно-програмним класифікаційними характеристиками, не можна не згадати про засоби розробки контролера, тобто про мови програмування.
Всі мови програмування умовно можна розділити на три рівні:
- машинний код;
- автокодом (мова асемблера);
- мови високого рівня (процедурні мови - BASIC, FORTRAN, PASCAL, C, MODULA-2, ADA; та мови штучного інтелекту - LISP, PROLOG, SMALLTALK, OCCAM).
Машинно-орієнтовані мови
Більш зрозумілі для ЕОМ - це так звані машинно-орієнтовані мови (машинний код і мова асемблера). Більш зрозумілі для людини іменують мовами високого рівня.
Програмне забезпечення на машинно-орієнтованої мови економічно в експлуатації, проте порівняно висока трудомісткість і тривалість розробки програмного забезпечення обумовлюють переважне застосування їх для створення та розвитку програмного забезпечення драйверів і операційних систем з метою найкращого використання апаратних особливостей кожної конкретної ЕОМ.
Мови високого рівня
Алгоритмічні мови (мови програмування високого
рівня загального призначення) є машинно-незалежними,
дозволяють створювати компактні доступні для огляду програми при відносно невеликих витратах часу та праці програмістів. Розробка програм значно спрощується при використанні мов високого рівня в якості мов програмування. Однак при цьому знижується ефективність програм за швидкодією і витратам пам'яті в порівнянні з застосуванням мови асемблера. Але цей недолік з лишком перекривається чіткістю і легкістю написання програми.
Мови високого рівня у свою чергу підрозділяються на
мови процедурного (або імперативного) і евристичного
(декларативного) стилю програмування (мови штучного інтелекту). Найбільш популярні мови програмування
ПЕОМ високого рівня наведені в таблиці 1.2.
Таблиця 1.2.
Мова
Рік розробки
Розробник
Основне застосування
FORTRAN
1954
Дж. Бекуса (США)
Математичні розрахунки, наукові дослідження
BASIC
1965
Дж. Кенемі (США)
Навчання, тестові програми
PASCAL
1971
Н. Вірт (Швейцарія)
Навчання, широке застосування
C
1972
Д. М. Річі (США)
Системне програмування
MODULA-2
1981
Н. Вірт (Швейцарія)
Розробка великих програмних комплексів
LISP
1960
Дж. Маккарті (США)
Системи штучного інтелекту
PROLOG
1971
А. Колмедауер (Франція)
Прийняття рішень, логічний висновок
SMALLTALK
Середина 1970-х
А. КейАнглія)
Системи діалогу з засобами машинної графіки
OCCAM
Початок 1980-х
Фірма INMOS (Англія)
Системи з паралельними процесами
Крім того, у цей час з'явилися мови так званого 4-го покоління - це мови СУБД, електронних таблиць, інтегрованих систем і т.д., які призначені для вирішення вузького кола завдань прикладного характеру (наприклад, обробка баз даних), але зате ще більше, в порівнянні з мовами загального призначення, знижують витрати часу і праці на створення вихідного продукту.
Спеціалізовані мови.
Досвід застосування ПЕОМ для побудови прикладних систем обробки даних показує, що найефективнішим інструментом створення контролера є не універсальні мови високого рівня, а вузькоспеціалізовані мови - як правило мови високого маніпулювання з особливостями мікропроцесора. Характеристики контролера при цьому визначаються, перш за все, прийнятої в
організацією даних і типом використовуваного транслятора.
Системи управління контролера - це програмний продукт, який забезпечує зберігання, оновлення та вибірку інформації, представленої в формалізованому вигляді на різних носіях.
Існує безліч контролерів, що представляються різними
виробниками. Найбільшого поширення набули контролери на основі мікрокомплекта 8051. Найбільшу популярність серед них має мікроконтроллер фірми INTEL 8051.
З-51
b>
ICC8051 підтримує не тільки 8051 (КР1816ВЕ51), а й усі інші мікро-ЕОМ, що використовують ту саму основну архітектуру і систему команд (8032, 8044, 80515, 80525 і т.д.). Може знадобитися тільки зміна оголошень регістрів спеціального призначення і портів введення/виводу.
Особливості ICC8051 V.4.00:
- два режими компіляції: стандарт ANSI і стандарт ANSI + розширення мови для 8051
- Шість моделей пам'яті, що забезпечують підтримку будь-яких завдань, від зовсім простих до складних систем, що використовують переключення банків пам'яті
- Додатковий атрибут для змінних, що визначає тип пам'яті розміщення: DATA, IDATA, XDATA або CODE
- Статичне розміщення локальних змінних дозволяє згенерувати компактний і швидкий код
- Змінні типу SFR (регістр спеціального призначення) і BIT
(прямоадресуемие біти) можуть оголошуватися і використовуватися як стандартні типи даних в мові Сі
- Можливість написання на Сі функцій-обробників переривань (включаючи визначення векторів переривань) без використання асемблера
- поставляються разом з компілятором оголошення SFR і BIT, специфічних для кожного члена сімейства кристалів 8051.
Компілятор Сі ICC8051 підтримує всі основні елементи мови Сі в стандарті ANSI. Змінні розташовуються в пам'яті, починаючи зі старшого байта і закінчуються молодшим ( "старший байт - молодшому за адресою").
Змінні завжди щільно упаковані в пам'яті, тому що архітектура 8051 не потребує вирівнювання даних.
[1] Специфічні для 8051 типи даних sfr і bit відрізняються від стандартних типів даних мови Сі, тому що розміщуються в особливих областях пам'яті.
[2] Опис "char" еквівалентно "unsigned char", але може бути змінено на "signed char" за допомогою опції компілятора-с.
[3] перераховуються змінні ( "enum") розміщуються з використанням найбільш короткого можливого типу даних, який визначається діапазоном перераховуються констант - від "char" до "int".
Assembler (INTEL 8051)
b>
Система мікропрограммірованія є набором компактних програмних продуктів для розробки програм для мікропроцесорів. СМ реалізована для роботи на ряді комп'ютерів, від невеликих 16-розрядних персональних машин до 32-розрядних супермінікомпьютеров.
У ньому є ряд прикладів використання як стандартних ", так і мають особливості засобів РМ. Відзначимо, що незалежні засоби асемблера СМ дуже прості та ефективні.
СМ асемблери - це потужні МАКРО-асемблери із засобами переміщення
програм, з універсальними характеристиками і застосуванням. Хоча асемблери створені на базі одного й того ж основного пакету, вони мають високий ступінь сумісності з асемблера розробників мікропроцесорів. Основні предмети - це способи використання асемблера, підтримка модульного программивання та зв'язок з мовами високого рівня.
Всі асемблери двухпрохідному, виконуються як одна програма. Під час виконання не створюється тимчасових файлів.
Всі асемблери, так само як і ХLINK, використовують для внутрішніх обчислень 32-розрядні структури, що дозволяє віртуально генерувати код будь-якого розміру (тобто не існує межі в 64 кбайт, що могло б ускладнити використання процесорів типу 68000).
Для забезпечення сумісності всередині пакету було застосовано декілька компромісних рішень, з урахуванням сумісності з асемблера розробників мікропроцесорів. Особливо це стосується макро-конструкцій, що сильно розрізняються у різних розробників. У багатьох відносинах, однак, СМ перевершує оригінальні асемблери. Наступна таблиця дає грубе
уявлення про ступінь сумісності цього пакета:
сумісні з:
- машинним командам (іменах і синтаксису)
- директивам визначення констант (іменах і синтаксису)
- директивам розподілу пам'яті (іменах і синтаксису)
- роздільник
- матюками
- основним операторам (+,-,*,/)
- ORG і EQU
Несумісні за:
- директивам переміщення
- розширень операторів
- засобам умовної трансляції
- опціях і командам управління асемблером
- макросредствам.
Зауважимо, що кошти, перераховані в розділі "не сумісні", часто відрізняються від оригінальних асемблером розробників тільки синтаксисом.
Найбільш популярними на сьогоднішній день у програмістів є З-51 і Assembler 8051, тому що обидва вони дозволяють отримувати початковий код.
Постановка завдання
Результатом даного проектування повинен з'явитися програмний продукт контролера, що забезпечує даними обчислювач про швидкість літального апарата. Система повинна забезпечувати зчитування з датчиків і обробку даних, використовуючи наступний набір операцій: зчитування, обробка, формування слів, видача на ЦАП приладової швидкості.
Вхідними даними служать:
счтанние дані з маски приладової швидкості;
счтанние дані з маски максимальної швидкості;
Вихідними формами служать:
слово 206 відповідно до РТМ;
слово 207 відповідно до РТМ;
слово 271 відповідно до РТМ;
дані з ЦАП приладової швидкості.
Крім того, система повинна включати в себе наступні підсистеми:
контроль програмного забезпечення;
контроль про вихід з ладу маски приладової швидкості;
контроль про вихід з ладу маски максимальної швидкості;
контроль про перевищення швидкості більш ніж на 2 км/год, сигналізуючи про перевантаження;
частота оновлення мінімальна 31 мсек по кожному значенням і максимальна 60 мсек по кожному значенню.
Ціна молодшого розряду по 206 і 207 слова 0,11575
В якості базової мови програмування використовувати
мова З-51 спільно з Assembler 8051.
Висновки
У цьому розділі випускної роботи були проведені наступні роботи:
- аналіз автоматизованих контролерів, і мікропроцесорів, на основі чого вироблена їх класифікація;
- розглянуто та проаналізовано проблема вибору інструментальних засобів для розробки контролера, на підставі чого обрані мови З-51 і Assembler;
- на підставі аналізу необхідного до контролера було сформульоване завдання та вимоги до комплексу програм діяльності контролера.
Узагальнена структура і алгоритм функціонування контролера
Дані в системі представляють собою інформацію у вигляді змінних, яким жорстко задані адреси змінних для обміну між програмами обслуговування контролера.
Вибір інструментальних засобів і елементної бази.
При виборі елементної бази приладу контролю враховувалися наступні обставини:
- побудувати розроблювану техніку на сучасному рівні (за функцією, вартості, енергоспоживання і габаритами) виключно на вітчизняних елементах не є можливим;
- тому що потужність, споживана МК, значною мірою визначає можливості розробки економічної апаратури, застосування кабелів живлення невеликого перетину і повинна бути обрана мікро потужна елементна база. Частина схеми контролера може бути виконана на елементної бази з невеликим швидкодією, однак для іншої частини схеми повинні бути застосовані мікро потужні елементи з високою швидкодією. Одним з, таким елементом є мікроконтроллер Intel 87C51FB.
Застосовуваний у розробці мікроконтроллер Intel 87C51FB володіє наступними основними характеристиками, які необхідно знати для виконання поставленої в дипломному проекті задачі.
Intel87C51FB відноситься до сімейства n-МОН технології і випускається в корпусі БІС, що має 40 зовнішніх висновків. Цокольовка корпусу і найменування висновків показані на рис 3.1. Для роботи Intel87C51FB потрібно одне джерело електроживлення 5 В. Через чотири програмованих порту введення/виводу Intel87C51FB взаємодіє із середовищем в стандарті ТТЛ-схем з трьома станами виходу. Корпус Intel87C51FB має два висновки для підключення кварцового резонатора, чотири виводу для сигналів, керуючих режимом роботи МК, і вісім ліній порту 3, які можуть бути запрограмовані користувачем на виконання спеціалізованих (альтернативних) функцій обміну інформацією з середовищем.
Рис 3.1.
Розробки на базі контролерів Intel87C51FB підтримується асемблером, програмним симулятором, внутрісхемним емулятором фірми Phyton і програматором.
Серія Intel87C51FB підходить для широкого спектра додатків від схем високошвидкісного керування автомобільними і електричними двигунами до економічних віддалених приймачів, що показують приладів і зв'язкових процесорів. Наявність ПЗУ дозволяє підлаштовувати параметри в прикладних програмах (коди передавача, швидкості двигуна, частоти приймача і т.д.).
Малі розміри корпусів, як для звичайного, так і для поверхневого монтажу, робить цю серію мікроконтролерів придатної для портативних додатків. Низька ціна, економічність, швидкодія, простота використання і гнучкість введення/виводу робить Intel87C51FB привабливим навіть у тих областях, де раніше не застосовувалися мікроконтролери. Наприклад, таймери, заміна жорсткої логіки у великих системах, співпроцесори.
Наведемо короткий огляд характеристик МК:
- 111 базових команд;
- Більшість команд (94) мають формат один або два байти і виконуються за один або два машинних циклу;
- робоча частота 12 МГц
--байтного АЛП та схеми апаратурною реалізації команд множення і ділення;
- 14 - бітові команди;
- двонаправлена 8-бітна шина;
- пере програмований ПЗУ програм ємністю 64 Кбайт;
- ОЗП даних ємністю 128 байти;
- два 16-бітових таймера/лічильника;
- програмовані схеми введення/виводу (32 ліній);
- блок дворівневого векторного переривання від п'яти джерел;
- асинхронний канал дуплексного послідовного введення/виводу інформації зі швидкістю до 375 Кбіт/с;
- генератор, схему синхронізації і управління;
- 8 х 4 регістрів загального використання;
- 128 програмно-керованих прапорів;
- пряма, непряма і відносна адресація даних і команд;
- чотири джерела переривання:
Структурна схема мікропроцесора
Розглянемо структурну схему мікроконтролера Intel87C51FB малюнок 3.2.
Рис 3.2.
Основу структурної схеми утворює внутрішня двонаправлена 8-бітна шина, яка пов'язує між собою всі основні вузли та пристрої: резидентну пам'ять, АЛП, блок регістрів спеціальних функцій, пристрій управління і порти введення/виводу. Розглянемо основні елементи структури та особливості організації обчислювального процесу.
b>
Арифметичне-логічний пристрій
8-бітове АЛП може виконувати арифметичні операції додавання, віднімання, множення і ділення; логічні операції І, АБО, що виключає АБО, а також операції циклічного зсуву, скидання, інвертування і т.п. В АЛП є програмно недоступні регістри T1 і T2, призначені для тимчасового збереження операндів, схема десяткового корекції та схема формування ознак.
Найпростіша операція додавання використовується в АЛП для інкрементірованія вмісту регістрів, просування регістра-покажчика даних і автоматичного обчислення наступного адреси РПП. Найпростіша операція віднімання використовується в АЛП для декрементірованія регістрів і порівняння змінних.
Найпростіші операції автоматично утворюють "тандеми" для виконання в АЛП таких операцій, як, наприклад, інкрементірованіе 16-бітових реєстрових пар. В АЛП реалізується механізм каскадного виконання найпростіших операцій для реалізації складних команд. Так, наприклад, при виконанні однієї з команд умовної передачі правління за результатом порівняння в АЛП тричі інкрементіруется СК, двічі проводиться читання з РПД, виконується арифметичне порівняння двох змінних, формується 16-бітний адреса переходу і приймається рішення про те, робити або не робити перехід за програмою. Всі перераховані операції виконуються в АЛП всього лише за 2 мкс.
Важливою особливістю АЛП є його здатність оперувати не тільки байтами, але і битами. Окремі програмно-доступні біти можуть бути встановлені, скинуті, інвертовані, передані, перевірені та використані в логічних операціях. Ця здатність АЛП, оперувати битами, настільки важлива, що в багатьох описах Intel87C51FB йдеться про наявність у ньому "Булевського процесора". Для управління об'єктами часто застосовуються алгоритми, які містять операції над вхідними і вихідними Булевського змінними (істина/неправда), реалізація яких засобами звичайних мікропроцесорів пов'язана з певними труднощами.
Таким чином, АЛП може оперувати чотирма типами інформаційних об'єктів: Булевського (1 біт), цифровими (4 біта), байтним (8 біт) і адресними (16 біт). В АЛП виконується 51 різна операція пересилання або перетворення цих даних. Так як використовується 11 режимів адресації (7 для даних і 4 для адрес), то шляхом комбінування "операція/режим адресації" базове число команд 111 розширюється до 255 з 256 можливих при однобайтном коді операції.
резидентна пам'ять
Пам'ять програм і пам'ять даних, розміщені на кристалі фізично і логічно розділені, мають різні механізми адресації, працюють під управлінням різних сигналів і виконують різні функції.
Пам'ять програм (ПЗУ або СППЗУ) має ємність 64 Кбайта і призначена для зберігання команд, констант, керуючих слів ініціалізації, таблиць перекодування вхідних та вихідних змінних і т.п. РПП має 16-бітну шину адреси, через яку забезпечується доступ з лічильника команд або з регістра-покажчика даних. Останній виконує функції базового регістра при непрямих переходах за програмою або використовується в командах, що оперують з таблицями.
Пам'ять даних (ОЗУ) призначена для зберігання змінних в процесі виконання прикладної програми, адресується одним байтом і має ємність 128 байт. Крім того, до адресного простору РПД примикають адреси регістрів спеціальних функцій (РСФ), які перераховані в табл. 3.1.
Пам'ять програм, так само як і пам'ять даних, може бути розширена шляхом підключення зовнішніх ВІС.
Акумулятор і ССП. Акумулятор є джерелом операнда і місцем фіксації результату при виконанні арифметичних, логічних операцій і ряду операцій передачі даних. Крім того, тільки з використанням акумулятора можуть бути виконані операції зрушень, перевірка на нуль, формування прапора паритету і т.п.
Таблиця 3.1. b>
Символ b>
Найменування b>
Адреса b>
* b> ACC
Акумулятор
0E0H
* b> B
Регістр-розширник акумулятора
0F0H
* b> PSW
Слово стану програми
0D0H
SP
Регістр-покажчик стека
81H
DPTR
Регістр-вказівник даних (DPH)
(DPL)
83H
82H
* b> P0
Порт 0
80H
* b> P1
Порт 1
90H
* b> P2
Порт 2
0A0H
* b> P3
Порт 3
0B0H
* b> IP
Регістр пріоритетів
0B8H
* b> IE
Регістр маски переривань
0A8H
TMOD
Регістр режиму таймера/лічильника
89H
* b> TCON
Регістр управління/статус таймера
88H
TH0
Таймер 0 (старший байт)
8CH
TL0
Таймер 0 (молодший байт)
8AH
TH1
Таймер 1 (старший байт)
8DH
TL1
Таймер 1 (молодший байт)
8BH
* b> SCON
Регістр управління приемопередатчиком
98H
SBUF
Буфер прийомопередатчика
99H
PCON
Регістр управління потужністю
87H
Примітка. b> Регістри, імена яких відзначені знаком ( * b>), допускають адресацію окремих біт.
При виконанні багатьох команд в АЛП формується ряд ознак операції (прапорів), які фіксуються в реєстрі ССП. У табл. 3.2. наводиться перелік прапорів ССП, даються їх символічні імена і описуються умови їх формування.
Таблиця 3.2. b>
Символ b>
Позиція b>
Ім'я та призначення b>
C
PSW.7
Прапор переносу. Встановлюється і скидається апаратурними засобами або програмою при
виконання арифметичних і логічних операцій
AC
PSW.6
Прапор допоміжного переносу. Встановлюється і скидається тільки апаратурними засобами при виконанні команд додавання і віднімання і сигналізує про перенесення або позику в бите 3
F0
PSW.5
Прапор 0. Може бути встановлений, скинутий або перевірений програмою як прапор, спеціфіціруемий користувачем
RS1
RS0
PSW.4
PSW.3
Вибір банку регістрів. Встановлюється і скидається програмою для вибору робочого банку регістрів (див. примітка)
OV
PSW.2
Прапор переповнення. Встановлюється і скидається апаратно при виконанні арифметичних операцій
_ b>
PSW.1
Не використовується
P
PSW.0
Прапор паритету. Встановлюється і скидається апаратури в кожному циклі команди і фіксує непарне/парне число одиничних біт в акумуляторі, тобто виконує контроль по парності
Примітка. b>
RS1
RS0
Банк
Межі адрес
0
0
0
00H-07H
0
1
1
08H-0FH
1
0
2
10H-17H
1
1
3
18H-1FH
Найбільш "активним" прапором ССП є прапор переносу, які приймає участь і модифікується в процесі виконання множин операцій, включаючи додавання, віднімання і зрушення. Крім того, прапор переносу (C) виконує функції "булевого акумулятора" в командах, що маніпулюють з битами. Прапор переповнення (OV) фіксує арифметичне переповнення при операціях над цілими числами із знаком і робить можливим використання арифметики в додаткових кодах. АЛУ не управляє прапорами селекції банку регістрів (RS0, RS1), та їх значення повністю визначається прикладною програмою і використовується для вибору одного з чотирьох реєстрових банків.
Широке поширення набуло уявлення про те, що в мікропроцесорах, архітектура яких спирається на акумулятор, більшість команд працюють з ним, використовуючи адресацію "за умовчанням" (неявно). У Intel87C51FB інша справа. Хоча процесор має в своїй основі акумулятор, однак, він може виконувати безліч команд і без участі акумулятора. Наприклад, дані можуть бути передані з будь-якої комірки РПД в будь-який регістр, будь-який регістр може бути завантажений безпосереднім операндом і т.д. Багато логічні операції можуть бути виконані без участі акумулятора. Крім того, змінні можуть бути інкрементіровани, декрементіровани і перевірені (test) без використання акумулятора. Прапори та керуючі біти можуть бути перевірені та змінено аналогічно.
Регістри-покажчики.
8-бітний покажчик стека (РУС) може адресувати будь-яку область РПД. Його вміст інкрементіруется перш, ніж дані будуть запам'ятала в стеку під час виконання команд PUSH і CALL. Вміст РУС декрементіруется після виконання команд POP і RET. Подібний спосіб адресації елементів стека називають предінкрементним/постдекрементним. У процесі ініціалізації Intel87C51FB після сигналу СБР в РУС автоматично завантажується код 07H. Це означає, що якщо прикладна програма не перевизначають стек, то перший елемент даних у стеку буде розташовуватися в комірці РПД з адресою 08Н.
Двухбайтний регістр-вказівник даних (руд) звичайно використовується для фіксації 16-бітного адреси в операціях із зверненням до зовнішньої пам'яті. Командами МК51 регістр-вказівник даних може бути використаний або як 16-бітний регістр, або як два незалежних 8-бітових регістра (DPH і DPL).
Таймери.
b>
У складі коштів Intel87C51FB є регістрові пари з символічними іменами тно, TLO і THI, TLI, на основі яких функціонують два незалежні програмно-керованих 16-бітових таймера/лічильника подій.
Буфер послідовного порту. Регістр з символічним ім'ям SBUF?? редставляет собою два незалежних регістра - буфер приймача і буфер передавача. Завантаження байти в SBUF негайно викликає початок процесу передачі через послідовний порт. Коли байт зчитується з SBUF, це означає, що його джерелом є приймач послідовного порту.
Регістри спеціальних функцій. Регістри із символічними іменами IP, IE, TMOD, TCON, SCON і PCON використовуються для фіксації та програмного зміни керуючих біт і біт стану схеми переривання, таймера/лічильника, приймача-послідовного порту і для управління потужністю електроживлення Intel87C51FB.
Всі чотири порти призначені для введення або виведення інформації побайтно. Кожен порт містить керовані регістр-засувку, вхідний буфер і вихідний драйвер. Усі висновки порту 3 можуть бути використані для реалізації альтернативних функцій, перелічених у табл. 3.3 .. Альтернативні функції можуть бути задіяні шляхом запису 1 у відповідні біти регістра-засувки (Р3.0-Р3.7) порту 3.
Таблиця 3.3. b>
Символ b>
Позиція b>
Ім'я та призначення b>
¬ RD b>
P3.7 b>
Читання. Активний сигнал низького рівня формується апаратурно при зверненні до ВПД b>
¬ WR b>
P3.6 b>
Запис. Активний сигнал низького рівня формується апаратурно при зверненні до ВПД b>
T1 b>
P3.5 b>
Вхід таймера/лічильника 1 или тест-вхід b>
T0 b>
P3.4 b>
Вхід таймера/лічильника 0 або тест-вхід b>
¬ INT1 b>
P3.3 b>
Вхід запиту переривання 1. Сприймається сигнал низького рівня або зріз b>
¬ INT0 b>
P3.2 b>
Вхід запиту переривання 0. Сприймається сигнал низького рівня або зріз b>
TXD b>
P3.1 b>
Вихід передавача послідовного порту в режимі УАПП. Вихід синхронізації в режимі зрушується регістра b>
RXD b>
P3.0 b>
Вхід приймача послідовного порту в режимі УАПП. Введення-виведення даних в режимі зрушується регістра b>
Порт 0 є двонаправленим, а порти 1, 2 та З - квазідвунаправленнимі. Кожна лінія портів може бути використана незалежно для вводу чи виводу інформації. Для того, щоб деяка лінія порту використовувалася для введення, в D-тригер регістра-засувки порту повинна бути записана 1, яка закриває МОП-транзистор вихідний ланцюга.
По сигналу СБР в регістри-засувки всіх портів автоматично записуються одиниці, які налаштовують їх тим самим на режим введення.
Всі порти можуть бути використані для організації введення/виводу інформації з двонаправленим лініях передачі. Однак порти 0 і 2 не можуть бути використані для цієї мети в разі, якщо МК-система має зовнішню пам'ять, зв'язок з якої організовується через загальну поділювану шину адреси/даних, що працює в режимі тимчасового мультиплексування.
Запис в порт.
При виконанні команди, яка змінює вміст регістру-засувки порту, нове значення фіксується в реєстрі в момент S6P2 останнього циклу команди. Проте опитування вмісту регістра-засувки вихідний схемою здійснюється під час фази Р1 і, отже, новий вміст регістра-засувки з'являється на вихідних контактах порту тол