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-бітовий арифметико-логічний пристрій, 8-бітові регістри
- Побітова адресація частини оперативної пам'яті
- Система команд із 111 інструкцій
- Архітектура системи команд: акумулятор
- Пам'ять
- Гарвардська архітектура пам'яті
- 8-бітова шина даних
- 16-бітна шина адреси. Можливість адресації до 64 Кб пам'яті програм і до 64 Кб пам'яті даних
- 4096 байт вбудованої пам'яті програм (додаткові 60К досягаються за рахунок зовнішніх мікросхем пам'яті)
- 128 байт вбудованої пам'яті даних (додаткові 64К досягаються за рахунок зовнішніх мікросхем пам'яті)
- Периферія
- 32 двосторонні однобітні лінії (вводу-виводу)
- Двосторонній послідовний порт
- Два 16-бітні таймери/лічильники
- Система з 5 переривань, з 2 рівнями пріоритетів
- Вбудований тактовий генератор
- Енергоощадний режим (тільки у версіях на КМОН технології)
Вбудовані пристрої
Порти вводу-виводу
Чотири 8-розрядні порти Р0…Р3 можуть використовуватися:
- Як 8-розрядні паралельні порти введення/виведення інформації;
- Як 32 однорозрядні лінії введення/виведення;
- При роботі з зовнішньою пам'яттю програм і даних;
- В режимі альтернативних функцій (8 ліній порту Р3);
- При програмуванні та перевірці внутрішньої пам'яті програм.
Послідовний порт може бути запрограмований на один з чотирьох режимів прийому/передачі шляхом програмування розрядів SM0 і SM1 регістра SCON.
- Режим 0 — послідовний порт працює як восьмирозрядний регістр зсуву. Швидкість (частота) прийому/передачі в режимі 0 постійна і складає , де — частота синхронізації ОМЕОМ.
- Режим 1 — прийом/передача даних здійснюється у форматі восьмирозрядного УАПП. Швидкість залежить від частоти переповнення регістра лічильника
- Режим 2 — режими 9-розрядного УАПП з постійною швидкістю обміну. Швидкість прийому/передачі програмно налаштовується на одну із двох можливих величин: або
- Режим 3 — режими 9-розрядного УАПП з перемінною швидкістю обміну. Швидкість залежить від частоти переповнення регістра лічильника
Цей розділ потребує доповнення. (листопад 2010) |
Універсальний асинхронний приймач/передавач (УАПП)
Вбудований універсальний асинхронний приймач/передавач дозволяє досить просто перетворити мікроконтролер у послідовний інтерфейс вводу-виводу. За рахунок різноманітного способу підключення зовнішніх виходів напряму́ до внутрішніх регістрів зсуву і використання внутрішніх таймерів, можна реалізувати сполучення в багатьох режимах, включаючи синхронне і асинхронне. В деяких режимах можливе сполучення без використання зовнішніх компонентів. Режим сумісності з протоколом RS-485 також можливий для реалізації, проте основною перевагою ядра 8051 є можливість підстроювання до дійсних послідовних протоколів керування приладами.
Якщо УАПП (і таймер за необхідності) налаштований, то для програміста лишається написати просту процедуру переривання для заповнення регістру передачі (викликатиметься кожен раз, коли останній біт регістра передачі «віддається» УАППом) і/або очищення/збереження даних в регістрі-приймачі. Для роботи основної програми залишається тільки записувати у стек дані для відправлення і читати зі стеку дані для приймання.
Цей розділ потребує доповнення. (листопад 2010) |
Система переривань
Всього у мікроконтролера є 5 переривань:
- IE0
- TF0
- IE1
- TF1
- TI+RI
В архітектурі 8051 коректне виконання переривання неможливе без завершення виконання попередньої команди.
Цей розділ потребує доповнення. (листопад 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) |
Застосування
- Марсохід використовує для управління мікроконтролер , який являє собою МК із збільшеною кількістю пам'яті програм, який в свою чергу являє собою 80С51 із збільшеною кількістю пам'яті даних і додатковим таймером.
Цей розділ потребує доповнення. (листопад 2010) |
Сімейство мікроконтролерів та аналоги
Відмінності між контролерами у межах сімейства
Цей розділ потребує доповнення. (листопад 2010) |
Мікроконтролери, засновані на ядрі 8051
- Atmel: AT89C51, AT89S51, AT83C5134
- Infineon: XC800
- NXP: NXP700 and NXP900 series
- : C8051 series
- Texas Instruments: CC111x, CC24xx and CC25xx families of RF SoCs
Компілятори та емулятори MCS-51
Цей розділ потребує доповнення. (листопад 2010) |
- Small Device C Compiler (SDCC) — вільний крос-компілятор мови програмування C.
Примітки
- Сергієнко, А. М.; та інші (2009). (PDF). Вісник НТУУ" КПІ": Інформатика, управління та обчислювальна техніка. (50). Архів оригіналу (PDF) за 23 січня 2022. Процитовано 2 грудня 2021.
- . Архів оригіналу за 31 травня 2010. Процитовано 17 жовтня 2010.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 27 жовтня 2008. Процитовано 17 жовтня 2010.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - http://www.datasheetcatalog.org/datasheets/270/45052_DS.pdf
Посилання
- MCS® 51 Microcontroller Family User's Manual, February 1994, Publication number 121517, Intel Corporation; .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Intel MCS 51 i8051 simejstvo mikrokontroleriv rozroblenih firmoyu Intel 1980 roku dlya vikoristannya u vbudovanih sistemah Dani mikrokontroleri buli dosit populyarnimi u 90 h rokah zgodom yih vitisnili rozvinenishi analogi firm Microchip Technology i Atmel Za rahunok vdaloyi realizaciyi mikrokontrolera vbudovanij UAPP bitovij procesor i8051 velika kilkist nayavnih na rinku mikrokontroleriv maye i8051 sumisni procesori a za rahunok nayavnosti velikoyi kilkosti analogiv vivchennya yadra MCS 51 ye odnim z pershih krokiv do vivchennya suchasnih mikroprocesoriv u programah kursiv vishih navchalnih zakladiv Mikrokontroler z simejstva MCS 51 Intel P8051AH DIP korpus MCS 51 prijshli na zaminu vipushenim u 1976 roci MCS 48 i na vidminu vid ostannih mali zmenshenij chas vikonannya komand v 2 5 10 raz v zalezhnosti vid umov ekspluataciyi zbilshenij obsyag vbudovanoyi pam yati dodatkovi pristroyi periferiyi dodatkovi komandi dlya programuvannya Za rahunok danih pokrashen mikrokontroleri stali zruchnishimi v programuvanni deshevshi v ekspluataciyi Nayavnist bulevogo procesora zatverdila za danimi pristroyami galuz avtomatizaciyi virobnictva oskilki dlya upravlinnya chasto vikoristovuyutsya same polyarni signali vvimknuti vimknuti dvigun zapaliti vimknuti indikator tosho Konstruktivno MCS 51 ye odnokristalnimi mikrokontrolerami garvardskoyi arhitekturi sho vikonani po n MON abo KMON tehnologiyi Mistyat u sobi 8 bitnij mikroprocesor i8051 z pidtrimkoyu bulevih operacij nad okremimi bitami do 4096 bajt vbudovanoyi pam yati program dostupnoyi tilki na chitannya do 256 bajt vbudovanoyi pam yati danih dostupnoyi na chitannya i zapis pidtrimka adresnogo prostoru u 64 Kb dlya pam yati program i 64 Kb dlya pam yati danih dva tri 16 bitni tajmeri lichilniki dvostoronnij UAPP 32 liniyi dvostoronnih portiv vvedennya vivedennya generator taktovoyi chastoti Isnuye radyanskij klon mikroprocesora MK51 KR1816VE51 Harakteristika mikrokontroleraVnutrishnya arhitektura mikrokontroleriv i8051 Nadali bude rozglyadatis same originalna versiya mikrokontrolera yaksho ne obgovoreno inshe oskilki inshi kontroleri principovo ne vidriznyayutsya vid originalnogo MCS 51 Yadro 8 bitovij arifmetiko logichnij pristrij 8 bitovi registri Pobitova adresaciya chastini operativnoyi pam yati Sistema komand iz 111 instrukcij Arhitektura sistemi komand akumulyator Pam yat Garvardska arhitektura pam yati 8 bitova shina danih 16 bitna shina adresi Mozhlivist adresaciyi do 64 Kb pam yati program i do 64 Kb pam yati danih 4096 bajt vbudovanoyi pam yati program dodatkovi 60K dosyagayutsya za rahunok zovnishnih mikroshem pam yati 128 bajt vbudovanoyi pam yati danih dodatkovi 64K dosyagayutsya za rahunok zovnishnih mikroshem pam yati Periferiya 32 dvostoronni odnobitni liniyi vvodu vivodu Dvostoronnij poslidovnij port Dva 16 bitni tajmeri lichilniki Sistema z 5 pererivan z 2 rivnyami prioritetiv Vbudovanij taktovij generator Energooshadnij rezhim tilki u versiyah na KMON tehnologiyi Vbudovani pristroyiPorti vvodu vivodu Chotiri 8 rozryadni porti R0 R3 mozhut vikoristovuvatisya Yak 8 rozryadni paralelni porti vvedennya vivedennya informaciyi Yak 32 odnorozryadni liniyi vvedennya vivedennya Pri roboti z zovnishnoyu pam yattyu program i danih V rezhimi alternativnih funkcij 8 linij portu R3 Pri programuvanni ta perevirci vnutrishnoyi pam yati program Poslidovnij port mozhe buti zaprogramovanij na odin z chotiroh rezhimiv prijomu peredachi shlyahom programuvannya rozryadiv SM0 i SM1 registra SCON Rezhim 0 poslidovnij port pracyuye yak vosmirozryadnij registr zsuvu Shvidkist chastota prijomu peredachi v rezhimi 0 postijna i skladaye f B Q 12 displaystyle f BQ 12 de f B Q displaystyle f BQ chastota sinhronizaciyi OMEOM Rezhim 1 prijom peredacha danih zdijsnyuyetsya u formati vosmirozryadnogo UAPP Shvidkist zalezhit vid chastoti perepovnennya registra lichilnika Rezhim 2 rezhimi 9 rozryadnogo UAPP z postijnoyu shvidkistyu obminu Shvidkist prijomu peredachi programno nalashtovuyetsya na odnu iz dvoh mozhlivih velichin f B Q 32 displaystyle f BQ 32 abo f B Q 64 displaystyle f BQ 64 Rezhim 3 rezhimi 9 rozryadnogo UAPP z pereminnoyu shvidkistyu obminu Shvidkist zalezhit vid chastoti perepovnennya registra lichilnika Cej rozdil potrebuye dopovnennya listopad 2010 Universalnij asinhronnij prijmach peredavach UAPP Vbudovanij universalnij asinhronnij prijmach peredavach dozvolyaye dosit prosto peretvoriti mikrokontroler u poslidovnij interfejs vvodu vivodu Za rahunok riznomanitnogo sposobu pidklyuchennya zovnishnih vihodiv napryamu do vnutrishnih registriv zsuvu i vikoristannya vnutrishnih tajmeriv mozhna realizuvati spoluchennya v bagatoh rezhimah vklyuchayuchi sinhronne i asinhronne V deyakih rezhimah mozhlive spoluchennya bez vikoristannya zovnishnih komponentiv Rezhim sumisnosti z protokolom RS 485 takozh mozhlivij dlya realizaciyi prote osnovnoyu perevagoyu yadra 8051 ye mozhlivist pidstroyuvannya do dijsnih poslidovnih protokoliv keruvannya priladami Yaksho UAPP i tajmer za neobhidnosti nalashtovanij to dlya programista lishayetsya napisati prostu proceduru pererivannya dlya zapovnennya registru peredachi viklikatimetsya kozhen raz koli ostannij bit registra peredachi viddayetsya UAPPom i abo ochishennya zberezhennya danih v registri prijmachi Dlya roboti osnovnoyi programi zalishayetsya tilki zapisuvati u stek dani dlya vidpravlennya i chitati zi steku dani dlya prijmannya Cej rozdil potrebuye dopovnennya listopad 2010 Sistema pererivan Vsogo u mikrokontrolera ye 5 pererivan IE0 TF0 IE1 TF1 TI RI V arhitekturi 8051 korektne vikonannya pererivannya nemozhlive bez zavershennya vikonannya poperednoyi komandi Cej rozdil potrebuye dopovnennya listopad 2010 Programistska modelArhitektura pam yati Cej rozdil potrebuye dopovnennya listopad 2010 Tablicya registriv specialnih funkcij Rozmishennya registriv specialnih funkcij u virtualnij pam yati mikrokontrolera Poznachennya Najmenuvannya Adresa Poch znachennya Primitka ACC Akumulyator E0H 00H Cej registr oznachaye te same sho i A pri programuvanni na asembleri prote poznachennya A vkazuye na robotu z akumulyatorom a poznachennya ACC vkazuye na robotu z bajtom pam yati Vidpovidno vikoristannya mnemoniki A dozvolyaye skorotiti dovzhinu instrukciyi B Registr B F0H 00H Registr vikoristovuyetsya mikrokontrolerom tilki v operaciyah mnozhennya dilennya V usih inshih operaciyah jogo mozhna vikoristovuvati yak zagalnij registr PSW Registr stanu programi D0H 00H Jogo analog u h86 registr praporciv FLAGS SP Pokazhchik steku 81H 07H DPL Molodshij bajt pokazhchika danih 82H 00H Dani registri formuyut odin 16 bitnij virtualnij registr DPTR DPH Starshij bajt pokazhchika danih 83N 00H P0 Port 0 80H FFH Registri zashipki portiv vvodu vivodu P1 Port 1 90H FFH P2 Port 2 A0H FFH P3 Port 3 B0H FFH IP Registr prioritetiv pererivan B8H XXX00000b IE Registr dozvolu pererivan A8H 0XX00000b TMOD Registr rezhimiv tajmera lichilnika 89H 00H TCON Registr keruvannya tajmera lichilnika 88H 00H TH0 Tajmer lichilnik 0 starshij bajt 8CH 00H TL0 Tajmer lichilnik 0 molodshij bajt 8AH 00H TH1 Tajmer lichilnik 1 starshij bajt 8DH 00H TL1 Tajmer lichilnik 1 molodshij bajt 8BH 00H SCON Keruvannya poslidovnim portom 98H 00H SBUF Bufer poslidovnogo portu 99H Neviznacheno Cej registr yak i DPTR ye takozh virtualnim Pri chitanni zamist danogo registru pidstavlyayetsya bufer prijmacha pri zapisi bufer peredavacha Dani buferi programno nedostupni shob programist ne zmig zapisati u bufer prijmacha i chitati z bufera peredavacha prote SBUF dostupnij PCON Keruvannya energospozhivannyam 87H n MON 0XXXXXXX KMON 0XXX0000 Cej rozdil potrebuye dopovnennya listopad 2010 Sistema komand Cej rozdil potrebuye dopovnennya listopad 2010 Prikladi program Cej rozdil potrebuye dopovnennya listopad 2010 ZastosuvannyaListivka planetarnogo vsyudihoda Marsohid vikoristovuye dlya upravlinnya mikrokontroler yakij yavlyaye soboyu MK iz zbilshenoyu kilkistyu pam yati program yakij v svoyu chergu yavlyaye soboyu 80S51 iz zbilshenoyu kilkistyu pam yati danih i dodatkovim tajmerom Cej rozdil potrebuye dopovnennya listopad 2010 Simejstvo mikrokontroleriv ta analogiVidminnosti mizh kontrolerami u mezhah simejstva Cej rozdil potrebuye dopovnennya listopad 2010 Mikrokontroleri zasnovani na yadri 8051 Atmel AT89C51 AT89S51 AT83C5134 Infineon XC800 NXP NXP700 and NXP900 series C8051 series Texas Instruments CC111x CC24xx and CC25xx families of RF SoCsKompilyatori ta emulyatori MCS 51Cej rozdil potrebuye dopovnennya listopad 2010 Small Device C Compiler SDCC vilnij kros kompilyator movi programuvannya C PrimitkiSergiyenko A M ta inshi 2009 PDF Visnik NTUU KPI Informatika upravlinnya ta obchislyuvalna tehnika 50 Arhiv originalu PDF za 23 sichnya 2022 Procitovano 2 grudnya 2021 Arhiv originalu za 31 travnya 2010 Procitovano 17 zhovtnya 2010 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 27 zhovtnya 2008 Procitovano 17 zhovtnya 2010 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya http www datasheetcatalog org datasheets 270 45052 DS pdfPosilannyaMCS 51 Microcontroller Family User s Manual February 1994 Publication number 121517 Intel Corporation