Remove ads
З Вікіпедії, вільної енциклопедії
Intel MCS-51 (i8051) — сімейство мікроконтролерів, розроблених фірмою Intel 1980 року для використання у вбудованих системах. Дані мікроконтролери були досить популярними у 90-х роках, згодом їх витіснили розвиненіші аналоги фірм «Microchip Technology» і «Atmel». За рахунок вдалої реалізації мікроконтролера (вбудований УАПП, бітовий процесор i8051) велика кількість наявних на ринку мікроконтролерів має i8051 сумісні процесори, а за рахунок наявності великої кількості аналогів вивчення ядра MCS-51 є одним з перших кроків до вивчення сучасних мікропроцесорів у програмах курсів вищих навчальних закладів.
MCS-51 прийшли на заміну випущеним у 1976 році MCS-48 і на відміну від останніх мали зменшений час виконання команд (в 2,5 — 10 раз в залежності від умов експлуатації), збільшений обсяг вбудованої пам'яті, додаткові пристрої периферії, додаткові команди для програмування. За рахунок даних покращень, мікроконтролери стали зручнішими в програмуванні, дешевші в експлуатації. Наявність булевого процесора затвердила за даними пристроями галузь автоматизації виробництва, оскільки для управління часто використовуються саме полярні сигнали — ввімкнути/вимкнути двигун, запалити/вимкнути індикатор тощо.
Конструктивно, MCS-51 є однокристальними мікроконтролерами гарвардської архітектури, що виконані по n-МОН або КМОН технології. Містять у собі 8-бітний мікропроцесор i8051 з підтримкою булевих операцій над окремими бітами, до 4096 байт вбудованої пам'яті програм (доступної тільки на читання), до 256 байт вбудованої пам'яті даних (доступної на читання і запис), підтримка адресного простору у 64 Кб для пам'яті програм і 64 Кб для пам'яті даних, два-три 16-бітні таймери/лічильники, двосторонній УАПП, 32 лінії двосторонніх портів введення-виведення, генератор тактової частоти.
Існує радянський клон мікропроцесора — МК51 (КР1816ВЕ51).
Надалі буде розглядатись саме оригінальна версія мікроконтролера (якщо не обговорено інше), оскільки інші контролери принципово не відрізняються від оригінального MCS-51.
Чотири 8-розрядні порти Р0…Р3 можуть використовуватися:
Послідовний порт може бути запрограмований на один з чотирьох режимів прийому/передачі шляхом програмування розрядів SM0 і SM1 регістра SCON.
Цей розділ потребує доповнення. (листопад 2010) |
Вбудований універсальний асинхронний приймач/передавач дозволяє досить просто перетворити мікроконтролер у послідовний інтерфейс вводу-виводу. За рахунок різноманітного способу підключення зовнішніх виходів напряму́ до внутрішніх регістрів зсуву і використання внутрішніх таймерів, можна реалізувати сполучення в багатьох режимах, включаючи синхронне і асинхронне. В деяких режимах можливе сполучення без використання зовнішніх компонентів. Режим сумісності з протоколом RS-485 також можливий для реалізації, проте основною перевагою ядра 8051 є можливість підстроювання до дійсних послідовних протоколів керування приладами.
Якщо УАПП (і таймер за необхідності) налаштований, то для програміста лишається написати просту процедуру переривання для заповнення регістру передачі (викликатиметься кожен раз, коли останній біт регістра передачі «віддається» УАППом) і/або очищення/збереження даних в регістрі-приймачі. Для роботи основної програми залишається тільки записувати у стек дані для відправлення і читати зі стеку дані для приймання.
Цей розділ потребує доповнення. (листопад 2010) |
Всього у мікроконтролера є 5 переривань:
В архітектурі 8051 коректне виконання переривання неможливе без завершення виконання попередньої команди[1].
Цей розділ потребує доповнення. (листопад 2010) |
Цей розділ потребує доповнення. (листопад 2010) |
Позначення | Найменування | Адреса | Поч. значення | Примітка |
---|---|---|---|---|
ACC | Акумулятор | E0H | 00H | Цей регістр означає те саме, що і A при програмуванні на асемблері, проте позначення А вказує на роботу з акумулятором, а позначення ACC вказує на роботу з байтом пам'яті. Відповідно, використання мнемоніки A дозволяє скоротити довжину інструкції. |
B | Регістр B | F0H | 00H | Регістр використовується мікроконтролером тільки в операціях множення/ділення. В усіх інших операціях його можна використовувати як загальний регістр |
PSW | Регістр стану програми | D0H | 00H | Його аналог у х86 — регістр прапорців FLAGS |
SP | Покажчик стеку | 81H | 07H | |
DPL | Молодший байт покажчика даних | 82H | 00H | Дані регістри формують один 16-бітний віртуальний регістр DPTR. |
DPH | Старший байт покажчика даних | 83Н | 00H | |
P0 | Порт 0 | 80H | FFH | Регістри-защіпки портів вводу-виводу |
P1 | Порт 1 | 90H | FFH | |
P2 | Порт 2 | A0H | FFH | |
P3 | Порт 3 | B0H | FFH | |
IP | Регістр пріоритетів переривань | B8H | XXX00000b | |
IE | Регістр дозволу переривань | A8H | 0XX00000b | |
TMOD | Регістр режимів таймера/лічильника | 89H | 00H | |
TCON | Регістр керування таймера/лічильника | 88H | 00H | |
TH0 | Таймер/лічильник 0 (старший байт) | 8CH | 00H | |
TL0 | Таймер/лічильник 0 (молодший байт) | 8AH | 00H | |
TH1 | Таймер/лічильник 1 (старший байт) | 8DH | 00H | |
TL1 | Таймер/лічильник 1 (молодший байт) | 8BH | 00H | |
SCON | Керування послідовним портом | 98H | 00H | |
SBUF | Буфер послідовного порту | 99H | Невизначено | Цей регістр, як і DPTR, є також віртуальним. При читанні замість даного регістру підставляється буфер приймача, при записі — буфер передавача. Дані буфери програмно недоступні (щоб програміст не зміг записати у буфер приймача і читати з буфера передавача), проте SBUF — доступний. |
PCON | Керування енергоспоживанням | 87H | n-МОН 0XXXXXXX
КМОН 0XXX0000 |
Цей розділ потребує доповнення. (листопад 2010) |
Цей розділ потребує доповнення. (листопад 2010) |
Цей розділ потребує доповнення. (листопад 2010) |
Цей розділ потребує доповнення. (листопад 2010) |
Цей розділ потребує доповнення. (листопад 2010) |
Цей розділ потребує доповнення. (листопад 2010) |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.