У і8051 передбачена можливість задання частоти внутрішнього генератора за допомогою кварцу, LС-ланцюжка або зовнішнього генератора. Максимальна частота проходження імпульсів синхронізації - 12 МГц.
Архітектура сімейства і8051 має ряд нових режимів адресації, додаткові інструкції, розширений адресний простір і ряд інших апаратних особливостей. Розширена система команд забезпечує побайтову і побітового адресацію, двійкову і двійково-десятковий арифметику, індикацію переповнення та визначення парності/непарності, можливість реалізації логічного процесора.
Мікроконтролери 8051 оперують двома типами пам'яті : пам'яттю програм і пам'яттю даних. Пам'ять даних може бути реалізована як комбінація розміщеного на кристалі (резидентного або on-chip) статичного ОЗП і зовнішніх мікросхем пам'яті. Для простих апаратно-програмних конфігурацій із застосуванням 8051 буває досить резидентною пам'яті самого мікроконтролера.
Програмний код розміщується в пам'яті програм, яка фізично може бути реалізована у вигляді одноразово програмованого пристрою (EPROM), перепрограмованого пристрою (EEPROM) або флеш-пам'яті. Якщо для запису програм використовується EPROM або EEPROM, то програмний код зазвичай розташовується в зовнішньому по відношенню до мікроконтролера пристрої. У переважній більшості сучасних мікроконтролерів 8051 пам'ять програм розташовується у флеш-пам'яті, що знаходиться, так само як і резидентна пам'ять даних, на одному кристалі.
Пам'ять програм і пам'ять даних фізично і логічно розділені, мають різні механізми адресації, працюють під управлінням різних сигналів і виконують різні функції.
Пам'ять програм може мати максимальний об'єм, рівний 64 Кб, що обумовлено використанням 16-розрядної шини адреси. У багатьох випадках місткість пам'яті програм, розміщених на кристалі 8051, обмежена 4, 8 або 16 Кб. У пам'ять програм окрім команд можуть записуватися константи, управляючі слова ініціалізації, таблиці перекодування вхідних і вихідних змінних і тому подібне. Доступ до вмісту пам'яті програм здійснюється за допомогою 16-бітової шини адреси. Сама адреса формується за допомогою або програмного лічильника (PC), або регістра-покажчика даних (DPTR). DPTR виконує функції базового регістру при непрямих переходах по програмі або використовується в операціях з таблицями.
Для доступу до даних, розміщених у внутрішньому ОЗП, використовується однобайтна адреса. Архітектура внутрішньої пам'яті даних 8051 дозволяє звертатися до окремих біт даних в спеціально виділеній області внутрішнього ОЗП, починаючи з адреси 0x20 і закінчуючи 0x2F (див. рис. 1.2). Таким чином, у вказаному діапазоні адрес можна звертатися до 128-бітових змінних за допомогою команд бітових операцій SETB і CLR. Бітові змінні нумеруються, починаючи з 0x0 і закінчуючи 0x7F. Це не означає, що не можна звертатися до цих елементів пам'яті, як до байтів при звичайних операціях з пам’яттю.
У внутрішньому ОЗП мікроконтролера 8051 виділено 4 банки регістрів загального призначення. При включенні мікроконтролера банком за умовчанням стає банк 0 (див. рис1.2). При цьому регістру R0 відповідає адреса 0x00, регістру R1 - адреса 0x01, нарешті, регістру R7 при використанні банку 0 відповідає адреса 0x07. Якщо банком за умовчанням стає, наприклад, банк 1, то регістру R0 відповідатиме адреса 0x08, регістру R1 - адреса 0x09 і регістру R7 - адреса 0x0F. До адресного простору внутрішнього ОЗП починаючи з адреси 0x80 примикають і адреси регістрів спеціальних функцій.
Рисунок 1.2 – Розподілення внутрішньої пам’яті 8051
Регістри спеціальних функцій (Special Function Registers, SFR) призначені для керування ходом обчислювальних операцій, а також відповідають за ініціалізацію, налаштування і управління портами вводу / виводу, таймерами, послідовним портом. Крім того, регістри спеціальних функцій містять інформацію про пріоритети переривань, а також біти управління роздільною здатністю переривань. Регістри спеціальних функцій із зазначенням їх призначення перераховані в таблиці. 1.1.
Таблиця 1.1 – Призначення регістрів спеціальних функцій
Позначення | Описання | Адреса |
A | Акумулятор | 0E0H |
B | Регістр-розширювач акумулятора | 0F0H |
PSW | Слово стану програми | 0D0H |
SP | Регістр-покажчик стеку | 81H |
DPTR | Регістр-покажчик даних (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 |
Робота мікроконтролера 8051 в системах реального часу була б неможлива без обробки подій, що генеруються зовнішніми пристроями, і установки тимчасових залежностей між подіями в системі.
Класичний мікроконтролер 8051 має 5 джерел переривань: два зовнішніх переривання, ініційованих сигналами на входах, - INT0 (вивод P3.2) і INT1 (вивод P3.3); два переривання таймерів - 0 і 1; переривання послідовного порту. Послідовність виконання двох і більше переривань , що надійшли одночасно, визначається їхнім пріоритету.
Багато вбудованих систем в якості пристрою відображення інформації використовують рідкокристалічні дисплеї (Liquid Crystal Display, LCD). Найбільш часто використовують дисплеї формату 16 × 2 і 20 × 2, які дозволяють вивести максимум по 16 і 20 символів у будь-який з двох рядків. Більшість рідкокристалічних індикаторів, що випускаються в даний час, включає крім самої матриці стандартний інтерфейс управління, заснований на застосуванні контролера, сумісного з HD44780, який є стандартом де-факто для даного класу пристроїв відображення інформації. Типове позначення LCD на схемах показано на рис. 1.3.
Рисунок 1.3 – Схема розміщення виводів рідкокристалічного індикатора
Найважливішою та відмінною рисою архітектури сімейства і8051 є те, що АЛП може поряд з виконанням операцій над 8-розрядними типами даних маніпулювати однорозрядними даними. Окремі програмно-доступні біти можуть бути встановлені, скинуті або замінені їх доповненням, можуть пересилатися, перевірятися і використовуватися в логічних обчисленнях. Тоді як підтримка простих типів даних (при існуючій тенденції до збільшення довжини слова) може з першого погляду здатися кроком назад, ця якість робить МК сімейства і8051 особливо зручними для застосувань, в яких використовуються контролери. Алгоритми роботи останніх за своєю суттю припускають наявність вхідних та вихідних булевих змінних, які складно реалізувати за допомогою стандартних мікропроцесорів. Всі ці властивості в цілому називаються булевих процесором сімейства МCS-51. Завдяки такому потужному АЛП набір інструкцій МК сімейства і8051 однаково добре підходить як для застосувань управління в реальному масштабі часу, так і для алгоритмів з великим об'ємом даних.
Динамічна індикація реалізована за допомогою 5 х 7 матричного РК-дисплею - 2-напрямку на 16 символів – LM016L фірми Hitachi Semiconductor.
2 РОЗРОБКА АПАРАТНОЇ ЧАСТИНИ
2.1 Опис електричних параметрів та схем підключення основних мікросхем
У курсовій роботі вимірювання температури реалізовано за допомогою датчика DS18B20.
Технічні характеристика термодатчика:
– точність ± 0.5 ° C від -10 ° C до +85 ° C;
– розширення, що налаштовується користувачем, від 9 до 12 біт;
– дані передаються за допомогою 1-провідного послідовного інтерфейсу;
– 64-бітнийй унікальний і незмінний серійний номер;
– багатоточкове зчитування;
– робоча напруга від 3.0В до 5.5В;
– TO-92, 150mil 8-контактний SOIC, або 1.98мм x 1.37мм корпус з кульковими виводами (± 2.0 ° C).
Dallas Semiconductor у своїх термодатчиках застосовує інтерфейси SPI, 3-провідний інтерфейс (дуже схожий за логікою на SPI), I ² C і 1-проводний (MicroLan). Цифрові датчики температури Dallas Semiconductor часто містять на кристалі додаткові блоки, що дозволяють значно розширити сферу їх застосування і полегшує побудову блоків автоматики, оскільки містять готові стандартні вузли. Серед таких вузлів можна виділити термостат, статична і енергонезалежна пам'ять, вбудовані регістри критичної температури, програмовані користувачем.
Іноді, з метою економії кількості виводів, застосовується тільки гістерезисних вихід, а в датчиках, що використовують 1-провідний інтерфейс, їх немає взагалі. Ознакою того, що температура вийшла за вказані межі, є встановлення прапорів у регістрах самого термодатчика. Винятком є тільки DS1821 - у нього цифрове виведення в нормальному режимі роботи використовується як гістерезисних вихід термостата. При виробництві напівпровідникових датчиків температури неймовірно складно досягти лінійності перетворення у всьому діапазоні вимірюваних температур, який у більшості датчиків складає -55 .. +125 º С. Як видно з рис. 2.1, на краях цього діапазону спостерігається значне погіршення лінійності і наростання помилки перетворення. Для переважної більшості датчиків різних виробників, відомості, наведені в документації справедливі лише для діапазону -30 .. +110 º С. Тому доводиться застосовувати або ненапівпровідникові температурні датчики, або займатися побудовою коректувальних таблиць. Таким чином, у конструктора в залежності від поставленого перед ним завдання, є вибір, пов'язаний з побудовою коректувальною таблиці - або з її допомогою компенсувати нелінійність перетворення на краях діапазону, або обмежитися вузьким діапазоном вимірювань, але побудувати систему з роздільною здатністю, наданою цією мікросхемою, тобто порядку декількох сотих - однієї десятої частки градуса Цельсія. При цьому коректувальна таблиця заноситься безпосередньо в саму мікросхему.