Микроконтролери MCS-51: програмен модел, структура, команди. Микроконтролери от семейството mcs51 A. Допълнителни характеристики и характеристики на компонентите

В момента различни компании пускат, без модификация, аналози на това семейство, както от Intel, така и от други производители, тактовата честота и паметта са се увеличили десетократно и продължават да растат. Броят на вградените BIS модули също се разширява, голям брой настоящи модели имат резидентен високоскоростен ADC, който може да бъде до 12, като в същото време може да има повече разреждания. Базиран е на фамилията MCS51 на BIS 8051, 80С51, 8751, 87С51, 8031, 80С31 от Intel, чиито първи версии бяха пуснати през 80-те години.

Микроконтролери на MCS51 Viconani за технологията Know -Mop N -MOP (SERI 8XXXX, аналог - SERI 1816 в Rosya BILOUROSIA) TA K -MOP технология (SERI 8XXXXX, аналог - SERI 1830). Друг символ, последван от 8, означава: 0 – няма ROM на кристала, 7 – 4K ROM с ултравиолетови гуми. Третият символ: 3 – ROM е на кристала, 5 – ако няма ROM, значи има ROM маска на кристала.

І така 80С51 - BIS за k-MOS технология с маска ROM на чипа, 8031 ​​- BIS n-MOS без програмна памет (ROM, RPOM) на чипа, 8751 - BIS n-MOS с резидент (поставен на чипа ) RPOM с ултравиолетово изтриване. Отдалеч можем да видим BIS 8751, има проблеми, които изискват повишено внимание относно свойствата на други схеми, задавайки параметрите, които бяха публикувани за първия сериен BIS. Допълнителна информация за всички текущи модификации, при необходимост, можете да намерите в консултантската и техническата документация на фирмата.

А. Загални характеристики и значение на символите

Основата на фамилията MCS51 е съставена от пет модификации на микроконтролера (идентични по основните характеристики), основната разлика между които е в изпълнението на програмата за памет и интензивността на работа (раздел. таблица 3.1). Осембитов микроконтролер, т.е. Използва команди за обработка на осембитови думи, използва Харвардска архитектура, тактовата честота на основните устройства от семейството е 12 MHz.

Таблица 3.1.

Микро вериги

Вътрешна програмна памет, байт

Тип програмна памет

Вътрешна памет за данни, байт

Тактова честота, MHz

Консумация на ток, mA

MK 8051 и 80C51 съдържат програмируема с маска ROM програмна памет с капацитет от 4096 байта по време на подготовката на кристала и се освобождава от масово произвеждани продукти. MK 8751 съдържа 4096-байтов RPOM с ултравиолетово изтриване и се използва ръчно на етапа на разработка на системата с разширени програми, както и по време на генериране на малки партиди или по време на създаването на системи, които са важни по време на процеса.

периодично регулиране.

MK 8031 ​​​​и 80C31 не пречат на паметта на съхранената програма. Те, както е описано преди модификацията, могат да използват до 64 KB външна програмна памет и ефективно да използват в системи, които изискват много повече от 4 KB на чипа.PZP програмна памет.

Семейството Kozhen MK има резидентна памет за данни с капацитет от 128 байта поради възможността за разширяване на вътрешната RAM за данни до 64 KB при обмен на външна IC RAM.

    централен осембитов процесор;

    програмна памет 4 KB (само 8751 и 87C51);

    памет за данни 128 байта;

    Има осем-битови програмирани I/O портове;

    два 16-битови многорежимни таймера/дозатора;

    система от автовектори с пет вектора и две програмни нива на приоритети;

    крайният интерфейс, който включва универсален дуплексен трансивър, който работи в четири режима;

    тактов генератор.

Командната система MK съдържа 111 основни команди във формат 1, 2 или 3 байта. Микроконтролерът може:

    32 регистъра за правно признаване на RON, организирани като банки във всички регистри с имена R0... R7, изборът на коя банка се посочва от програмата за инсталиране на телефонни номера в регистъра на програмата mi PSW;

    128 програмно-керамични знамена (битов процесор, див. разстояние);

    набор от регистри на специални функции, съдържащи MK елементи. Съществуват следните режими на работа на микроконтролера:

1). Zagalne skidannya. 2).Нормално функциониране. 3).Режим с намалена консумация на енергия и режим на неактивност. 4). Режимът на програмиране на резидентния RPZP е както следва.

Тук обръщаме основно внимание на първите два режима на робота; докладът, описващ склада на робота MK за всички режими, е добавен към Приложение P1.

Зоната RON на битовия процесор се намира в адресното пространство на жилищния OZP с адреси в диапазона от 0 до 80h.

Горната зона съдържа адреса на резидентната RAM памет и разширените специални функционални регистри (SFR, специални функционални регистри). Тези значения са посочени в таблицата. 3.2.

Таблица 3.2.

Назначаване

Име

Батерия

Регистрирайте Б

Регистърът ще стане програма

Индикатор за стека

Витрина с данни. 2 байта:

Нисък байт

Висок байт

Прекъснете приоритетния регистър

Регистърът може да бъде прекъснат

Регистър на режимите таймер/дозатор

Регистър на таймера/дозатора

Таймер/вход 0. Старш байт

Таймер/Шкаф 0. Нисък байт

Таймер/влизане 1. Старш байт

Таймер/Шкаф 1. Нисък байт

Последно управление на порта

Буфер за сериен порт

Управление на всекидневна

* - регистрирам, какво да си призная от bitov адресиране

Нека сега разгледаме функциите на SFR регистрите, които са описани в таблица 3.2.

Батерия ACC - Регистър на батерията. Команди, предназначени за роботи.

вие зад батерията, използвайте мнемоничното „A“, например, MOV а, P2 . Мнемониката "ACC" се използва, например, когато батерията се адресира побитово. Така че, по-символично, името на петия бит на батерията, когато vikoristan асемблер A5M51 ще дойде: ACC. 5. .

Регистър U . Vikorystvovaetsya под часа на операцията на умножение и под. За други инструкции регистърът може да се разглежда като допълнителен супероперативен регистър.

Регистър ще стана програми P.S.W. Поставете информация за програмата и често се инсталира автоматично въз основа на резултата от избраната операция, която често се извършва. Значението на цифрите в регистъра е ясно показано в таблици 3.3 и 3.4.

Таблица 3.3.

Назначаване

Таблица 3.4.

Назначаване

Задаване на битки

Достъп до битове

Прапорщикът е преместен. Редица аритметични и логически инструкции се променят с времето.

Хардуер и софтуер

Прапорщик на допълнителен трансфер. Хардуерът се инсталира/деинсталира в часа на добавената или издадена нова инструкция за вмъкване на трансфер или позиции в бит 3, когато най-малкият байт е създаден в резултата (D0-D3).

Хардуер и софтуер

Прапорщик 0. Прапорщик, който е определен като ползвател.

Програмно

Програмно

Vkazivnik банка на работещи регистри

Програмно

Банка 0 с адреси (00Н - 07Н) Банка 1 с адреси (08Н - 0FН) Банка 2 с адреси (10Н - 17Н) Банка 3 с адреси (18Н - 1FН)

Prapor преименуван. Инсталиран или изхвърлен хардуер, когато аритметичните инструкции за вмъкване се инсталират отново

Хардуер и софтуер

резерва. Тригер за отмъщение, достъпен за запис и четене, който може да се викоризира

Малко паритет. Хардуерът се изхвърля или инсталира в цикъла на кожата с инструкции за вмъкване на сдвоен или несдвоен брой разреждания на батерията, които присъстват в настройката „1“.

Хардуер и софтуер

Показчик стек SP - 8-битов регистър, вместо който се увеличава преди запис на данни в стека, когато се издават команди PUSH и CALL. При изхвърляне се инсталира индикаторът на стека 07H и областта на стека в RAM за данни започва от адрес 08H. Ако има нужда от преназначаване на индикатора на стека, областта на стека може да бъде преместена на всяко място във вътрешната памет за данни на микроконтролера.

Показчик почит ДПТР се състои от висок байт (DPH) и нисък байт

(DPL). Променете 16-битовия адрес при надграждане към външна памет. Можете да използвате-

или като 16-битов регистър, или като два независими осем-битови регистъра.

Порт0 - PortZ. Наред с регистровите битове на специални функции P0, P1, P2, RZ, има и битове - „зареждане“ на основните портове P0, P1, P2, RZ.

Буфер последователен порт SBUF е две части на регистъра: предавателен буфер и приемащ буфер. Когато данните се записват в SBUF, те се изпращат до буфера за прехвърляне и записването на SBUF байта автоматично инициира предаване през серийния порт. Когато данните се четат от SBUF, данните се избират от буфера за получаване.

Регистър таймер. Регистрирани залози (TH0, TL0) и (TH1, TL1) се одобряват 16-

Регистри за съхранение на битове за таймер/дозатор 0 и таймер/дозатор 1.

Регистър управление Регистри на специални функции IP, IE, TMOD, TCON, SCON и PCON могат да се използват за управление и прекъсване на системата, тайно

посещения/болници и сериен порт. Вонята ще бъде разгледана подробно отдалече.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RST BQ2 BQ 1 E.A.

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

Когато функционира, МК ще осигури:

    минимален час на подаване на команда - 1 µs;

    хардуерно умножение и подложка с минимален час на виконане - 4 μs.

MK има възможност за настройка на честотата на вътрешния осцилатор на допълнителен кварц, LC-фенер или външен осцилатор.

Разширената командна система ще осигури байт-байт и бит по бит адресиране, две десети и две десети аритметика, индикация за свръхсъвпадение и сдвояване/отмяна на сдвояване и възможност за внедряване на логически процесор.

Най-важната и мощна характеристика на семейната архитектура MCS51 е, че ALU може да манипулира еднобитови данни с последователни операции върху 8-битови типове данни. Броят налични софтуерни битове може да бъде инсталиран, премахнат или заменен с допълнителни и може да бъде преинсталиран или проверен.

Фиг.3.2. Външни конструкции

микроконтролер

vikorystuvatsya при логически изчисления. Това също е поддръжка за прости типове данни (ако

Според много тенденции може на пръв поглед да погледнем малко назад, което прави микроконтролерите от фамилията MCS51 особено подходящи за приложения, в които се използват контролери. Останалите алгоритми предполагат наличието на входни и изходни булеви променливи, които са трудни за изпълнение с помощта на стандартни микропроцесори. Цялата тази мощност се нарича булев процесор от семейството MCS51. Въпреки това, такъв тежък ALU набор от инструкции за микроконтролери от семейството MCS51 е много подходящ както за обработка в реално време, така и за алгоритми с интензивно използване на данни.

Схемата на микроконтролера е показана на фиг. 3.2. Основната версия на пакета е с 40-пинов DIP пакет. Нека да разгледаме значението на символите.

Още от vysnovki food «0 В" і „5 В" , Кои вина са последвани от основната храна. Информацията на Strum е показана в таблицата. 3.1.

Висновок "RST" - Нулирайте микроконтролера. Когато това се приложи, започва активното високо ниво режим спящ отстъпка и MK правят следното:

Задава програмата за почистване на команди на компютъра и всички регистри на специални функции, включително портове за зареждане P0-P3, индикатора на стека SP и регистъра SBUF, на нула;

    Индикаторът на стека приема стойност, по-висока от 07H;

    защитава всички прекъсвания, работата на таймери-лечители и последващи

    избира BANK 0 RAM, подготвя порт P0-RZ за получаване на данни и разпознаване

споделя ALE и PME компоненти като входове за външна синхронизация;

      в регистрите на специални функции PCON, IP и IE резервните битове се задават на произволни стойности, а всички останали битове се нулират на нула;

      Регистърът SBUF има променливи стойности.

      монтира заключващите фиксатори за портове P0-RZ "1".

Състоянието на регистъра на микроконтролера след нулирането е показано в таблица 3.5.

Таблица 3.5.

Информация

Неидентифициран

0ХХХ0000V за k-MOS 0XXXXXXXB за n-MOS

Иконата RST има алтернативна функция. Чрез това се доставя резервно хранилище за запазване на постоянна памет на мястото на RAM на микроконтролера, когато основната бъде премахната.

Visnovki BQ1, BQ2 Предназначен за свързване на кварцов резонатор, който определя тактовата честота на МК.

Висновок EA` (д външен А рокля външен адреси) - инструкции за активиране на режима на четене на ключови кодове от външна програмна памет, когато е приложено активно ниско ниво. Концепцията има алтернативна цел (функция). Напрежението се подава към новото устройство за програмиране на ROM.

Висновок PME (П програма М Емори д способен Дозвил памет програма) - цели за цикъла на keruvana за четене от паметта на програмата и MK се активира автоматично в цикъла на машината на кожата.

Висновок ALE (А рокля Л дължина д способен Дозвил млад адрес) Поглажда дисплея на по-младата част от адреса на порт P0. Устройството се активира, когато EPROM е програмиран и към него се изпраща импулсен процес на програмиране.

MK може да побере четири групи портове: P0, P1, P2 и P3. Има 40 пина на микроконтролера, които са загубени. Тези портове могат да служат за побитово въвеждане и извеждане на информация, като освен това имат своя собствена специализация. Функционалната схема на порта е показана на фиг. 3.3. Портът съдържа изходни превключватели на транзистори с полеви ефекти, връзки към изхода, превключващи функции, терминал на D-тригера и контролна логика. Във вътрешната шина на MK може да се запише единица или нула. Тази информация може да бъде достъпна чрез функционално превключване на изходните бутони и дисплеите на MK. В същото време транзисторите N и N1 са затворени, но N2 е отворен. На нулевата станция N отваря кривата -

Xia, и N2 затваря. В момента, когато портът избере алтернативна функция, поради специализация, режимът на зареждане е деактивиран. Микроконтролерът може също да повлияе на режима на вмъкване на порта и режима на изход, като се настройва чрез външен сигнал. За тази цел в MK асемблера има специални команди за активиране на подредове. За четене ще бъда изпратен до щифта на безжичния порт.

buti записан преди това

Изглед към интериора

Управление Засувка

Промяна на функциите

Vcc

Уикенд

един. Когато е активирана линията „read load“, изходът е средното „I“, пред което е свързана тази линия

ний автобус MK D Q

Запис на стик C Q

Четене на неща

Изглед към пристанището

Има станция за зареждане, която се вписва във вътрешната шина на MK, когато е активирана

"Chitannya vyvedennya" - лагер на външно извеждане към пристанището.

Порт P0 - Универсален двупосочен порт

въведение-оглед. Зад SIM порта

фиксиран от функцията за организиране на адрес на външни автобуси и

малък 3.3. Функционална схема на порта на микроконтролера

данни за разширяване на програмната памет и паметта за данни

микроконтролер. Когато програмата се изтегли във външната памет или командата за изтегляне на външната памет за данни е завършена, по-младата част от адреса (A0...A7) се инсталира на заглавния порт, който се задейства от високото ниво на ALE изход. След това, когато записвате данни в паметта, информацията, която се записва от вътрешната шина на MK, отива към пин порта P0. При операциите за четене обаче информацията от главния порт отива към вътрешната шина. Специална характеристика на порта P0 е наличието на "pull-up" транзистор N2, който осигурява захранването на терминала. Когато записвате в пин порта на устройство, стойностите просто се прехвърлят в състояние с висок импеданс, което е необходимо за нормалната работа на шината за данни. Ако е необходимо, захранвайте изходите на всякакви външни устройства и след това прехвърлете външни резистори от Lanczug към изходния порт.

Порт P1 – универсален двупосочен вход/изход порт без алтернативни функции.

Порт P2 – универсален двупосочен порт/вход/изход, който е алтернативна функция за преглед на високата част на адреса (A8…A15), когато се прехвърля към външна памет.

Порт P3 – универсален двупосочен входно-изходен порт, който прехвърля и различни алтернативни функции. Алтернативните функции се изпълняват само в случай, че една е записана на щифтовете на главния порт; в други случаи въвеждането на алтернативни функции е блокирано. Нека ги идентифицираме на основата на кожата:

P3.0 RxD (Р ead e хвътрешни дяде, чете външни данни) – въвеждане на новия сериен приемник.

P3.1 TxD (T ype e хвътрешни дяде, предава външни данни) – изход на полученото серийно приемане-предаване.

P3.2 INT0` (ИНТР Errupt, interruption) – въвеждане на външно прекъсване 0.

P3.3 INT1` - Външен вход за прекъсване 1.

P3.4 С/T0 - Въвеждане на нулевия задействан таймер/дозатор.

P3.5 C/T1 - Въвеждане на първия активиран таймер/клиницист.

P3.6 WR` (У rite, write) – показва управлението на цикъла на запис в паметта за данни.

P3.7 РД` (Р ead, read) – извежда се от цикъла на четене от паметта на данни.

Щифтовете към порт P1, P2 и P3 в едно устройство ще видят ток от около 0,2 mA и ще получат ток от 3 mA при нула, щифтовете към порт P0 са затегнати и сградата в едно ще види ток от приблизително 0,8 mA и вземете ток от 5 mA при нула. Кратка информация за разпределението на компонентите на микроконтролера е дадена в таблица 3.6.

Таблица 3.6.

Назначаване

Присвоен на висновката

8-битов двупосочен порт P1. Входни адреси A0-A7 в часа на проверка на вътрешния ROM (RPM)

Вход влизане

Сигналът на общия изхвърляне. Въвеждане на резервния живот на OZP от външното тяло (за 1816 г.)

8-битов двупосочен P3 порт с допълнителни функции

Вход влизане

Последни данни за приемане - RхD

Последни данни за предаване - ТхD

Външен вход за прекъсване 0-INT0`

Вход за външно прекъсване 1-INT1`

Вход за таймер/дозатор 0: - T0

Вход за таймер/дозатор 1: - T1

Извеждане на светкавичен сигнал в часа, когато данните се записват във външната памет: - WR`

Извеждане на стробиращ сигнал в часа на четене от външната памет – RD`

Връзки за свързване на кварцов резонатор.

изходен вход

Загални висновок

8-битов двупосочен порт P2. Извеждане на адреси A8-A15 в режим робот от външна памет. В режим на проверка на вътрешния ROM надстройките P2.0 - P2.6 са избрани като входни адреси A8-A14. Visnovok R2.7 - разрешено четене на ROM.

Вход влизане

Разрешена програмна памет

Изходен сигнал за разрешение за фиксиране на адреса. В часа на програмиране сигналът RPOM: PROG

Вход влизане

Блокиране на робота от вътрешната памет. При програмиране на РПЗП се подава сигнал UРR

Вход влизане

8-битов двупосочен порт P0. Шина за адрес/данни от външна памет. Изход на данни D7-D0 в режим на проверка на вътрешния PPP (IPPP).

Вход влизане

Vividennya vidzherel напрежение +5V

ЛЕКЦИОНЕН ПЛАН

1. Въведение

2. Аритметични и логически инструкции

3. Команди за пренос на данни

4. Булеви операции

5. Инструкции за преход

1. Въведение

Командна система MCS-51поддържа единичен набор от инструкции, значения до инсталирането на 8-битови алгоритми за управление на устройства. Възможно е да се използват гъвкави методи за адресиране на вътрешна RAM, извършване на битови операции върху малки структури от данни. Активирана е системата за адресиране на еднобитови променливи данни като отделен тип данни, което позволява избор на битови ръбове в логически и основни команди на булева алгебра.

Режими на адресиране : набиране на команди MCS-51поддържа такива режими на адресиране. Директно адресиране: операндът е обозначен с 8-битовия адрес в инструкцията Директното адресиране е ограничено до по-младата половина на вътрешната памет за данни и регистри SFR. Непряко адресиране: Инструкцията адресира регистър, за да съответства на адреса на операнда Този тип адресиране се използва за външен и вътрешен OCP. Регистрите могат да се използват за вмъкване на 8-битови адреси R0і R1избрана регистърна банка или индикатор за стек SP. За 16-битово адресиране регистърът на индикатора за данни се премахва ДПТР.

Инструкции за регистъра : регистрирам R0-R7Текущата регистърна банка може да бъде адресирана чрез специфични инструкции чрез вмъкване на 3-битово поле, което сочи към номера на регистъра в самата инструкция. Този тип поле няма адрес в командата. Операции със специални специални регистри: Инструкции за действия vikorist индивидуални регистри (например операции с батерията, ДПТРи т.н.). Всеки път, когато адресът на операнда е посочен в командата. VIN се указва от кода на операцията.

Без средни константи : Константата може да бъде поставена директно до командата след кода на операцията.

Индексно адресиране : Индексното адресиране може да се използва само за достъп до програмната памет или в режим на четене. В какъв режим можете да видите таблицата в програмната памет. 16-битов регистър ( ДПТРили софтуерен лечител) сочи към основния адрес на необходимата таблица, а акумулаторът сочи към входната точка преди нея.

Команди за набиранеИма 42 мнемонични команди за указване на 33 функции на системата. Синтаксисът на повечето команди на асемблерния език се състои от присвояване на мнемонична функция, последвано от операнди, които показват методи за адресиране и типове данни. Различните типове данни и режими на адресиране се обозначават чрез вмъкване на операнди, а не чрез промени в мнемоничните стойности.

Командната система може мислено да се раздели на пет групи: аритметични команди; логически команди; команди за прехвърляне; битови процесорни команди; команди за демонтаж и предаване на управлението. Символите, които се използват в командната система, са посочени по-долу.

Таблица. Значения на символи, които се използват в командната система

Назначаване, симв

Възлагане

Батерия

Регистър на базирана на потоци банка от регистри

Номер на присвоения регистър, определен от екипа

директен

8-битовият вътрешен адрес на данни се адресира директно, което може да бъде средата на вътрешната RAM памет за данни (0-127) или специалния функционален регистър SFR (128-255)

Индиректно адресиране на 8-битовата среда на вътрешната RAM памет за данни

8-битов без средатаКакво е включено в кода на операцията (OPC)

данниH

Високи битове (15–8) от средни 16-битови данни

данниL

Young бие (7–0) средни 16-битови данни

11-битови адреси на дестинация

addrL

Адреси на младите хора за признание

8-битов байт за изместване със знак

Бит от директно адресиране, чийто адрес поставя COP, който се намира във вътрешната RAM за данни или регистъра на специалните функции SFR

a15, a14...a0

Адреси и присвоявания на битове

Вместо елемент X

Вместо адреса, който се съхранява в елемент X

Разреждане на елемент X


+

*
И
ИЛИ
XOR

Операции:
допълнителен
vidnіmannya
умножение
По-долу
логическо умножение (операция I)
логическо сгъване (операция ABO)
Добавен след модул 2 (който включва ABO)
Инверсия на елемент X

Присвояването на мнемонични функции е уникално свързано със специфични комбинации от методи за адресиране и типове данни. Системата от команди може да има 111 такива записа.

2. Аритметични и логически инструкции

Як п пример аритметични инструкции, Добавената операция може да бъде една от следните команди.

ДОБАВЯНЕА,7 Е 16 - Вместо това добавете числото 7 към регистър А F 16 запишете резултата с регистър A;

ДОБАВЯНЕА,@ Р0 – добавя към регистър А номера, адреса на който (@ – търговски при ) се записва в системния регистърР 0 (индиректно адресиране) и запишете резултата в регистър A;

ДОБАВЕТЕ A,R7– добавяне към вместо регистър А вместо регистърР 7 и запишете резултата в регистър А;

ДОБАВИ A, #127- Добавете към регистрация номер, спестяващ адрес 127 ( # – символ на числото) и запишете резултата в системния регистър T- Re A.

Всички аритметични инструкции се изпълняват в един машинен цикъл, за всяка инструкция INC DPTR(Индикатор за изместване на данни ДПТРдо следващия байт), което отнема два машинни цикъла, както и операция за умножение, която отнема 4 машинни цикъла. Всеки байт във вътрешната памет за данни може да бъде увеличен или намален без нужда от батерия.

Инструкции MUL ABИма умножение на данните в батерията върху данните, които са в регистър B, поставяйки данните в регистър A (по-младата половина) и B (по-старата половина).

Инструкции DIV ABразделяне (разделяне - подраздел) вместо акумулатора към стойностите на регистър B, оставяйки излишъка в B и особено в акумулатора.

Инструкции DA Aпредназначен за две-десет аритметични операции (аритметични операции с числа, дадени в две-десет код). Не се страхувайте да промените числото две на двейково-десятково, И също така ще гарантира правилния резултат при добавяне на две числа от две десети.

дупето логическа команда: Логическата операция може да се използва като една от следните команди:

ANLА,7 Е 16 - Логично е да се умножава вместо регистър А с числото 7 F 16 и резултатът се записва в регистър А;

ANLА,@ Р1 - Логично е вместо регистър А да се умножава по числото, чиито адреси се съхраняват в регистъраР 1 (индиректно адресиране) и запишете резултата в регистър A;

ANL A,R6- Логично е да се умножи вместо регистър А по вместо регистърР 6, запишете резултата в регистър A;

ANL A,#53 – логическо умножение вместо регистър А по числото, адреса на магазина, който е 53 16 и резултатът се записва в регистър А.

Всички логически операции върху акумулаторното пространство отнемат един машинен цикъл, останалите – два. Логическите операции могат да се извършват върху всеки от долните 128 байта на вътрешната памет за данни или върху всеки регистър SFR (специални функционални регистри) в режим на директно адресиране без смяна на батерията.

След това операциите за циклично съхранение RL A, RLC A се преместват вместо батерията с един бит надясно или наляво. В случай на лявата циклична връзка, по-младият бит се премества на по-старата позиция. В случаите на десен цикличен синус се получава обрат.

Операция СМЕНА АТокообменът между младите и старите е в батерията.

3. Команди за пренос на данни

Екип MOV dest, srcви позволява да прехвърляте данни между средата на вътрешната памет и областта на регистъра на специални функции SFRбез батерия використан. В този случай роботът с горната половина на вътрешния OZP може да работи само в режим на индиректно адресиране и може да бъде разширен до регистри SFR– вече не се предлага в режим на директно адресиране.

За всички микросхеми MCS-51Стекът е разположен точно до резидентната памет за данни и расте по-високо. Инструкции НАТИСНЕТЕПървоначално стойностите в регистъра на индикатора на стека са по-големи SPи след това записва байтове данни в стека. Екип НАТИСНЕТЕі POPсамо в режим на директно адресиране (запис или актуализиране на байтове), но стекът винаги е наличен в индиректно адресиране през регистъра SP. По този начин стекът може да използва горните 128 байта памет за данни. Тези маркировки включват способността да се използват команди за низове за адресиране на регистри SFR.

Инструкциите за прехвърляне на данни включват 16-битова операция за прехвърляне MOV DPTR,#данни16, който се използва за инициализиране на регистъра на индикатора за данни ДПТРСлед час ще погледна таблицата в програмната памет или за достъп до външната памет за данни.

Операция XCH A,байтТой е настроен да обменя данни между батерията и байта, който се адресира. Екип XCHD A, @Riе подобен на предния, но в размяната на операндите участват само тези за по-малките.

За достъп до външна памет за данни се използва индиректно адресиране. Всеки еднобайтов адрес има регистър на vikorist R0или друго R1банка поток регистър, а за 16-bit – регистър за показване на данни ДПТР. По какъвто и да е начин за достъп до външната памет за данни, батерията играе ролята на приемаща информация.

За достъп до таблици, намиращи се в програмната памет, използвайте следните команди:

MOVC A,@A+ ДПТР ;

MOVC A,@A+ настолен компютър .

Как основният адрес на таблицата vikory се присвоява на регистъра на индикатора за данни ДПТРили друго настолен компютър(програма лечител), а изместването е взето от А. Тези команди се използват само за четене на данни от програмната памет, но не и за запис в нея.

4. Булеви операции

Микросхеми MCS-51инсталирайте “булев” процесор във вашия склад. Вътрешната RAM има 128 директно адресируеми бита. Обхват на специални функционални регистри SFRможе да поддържа до 128 битови полета. Биологичните инструкции включват интелигентни преходи, препращане, изхвърляне, инверсии, операции „I“ и „ABO“.Всички тези битове са налични в режим на директно адресиране.

Прехвърлен бит CFв регистъра на специалните функции „думата ще стане програма P.S.W.» се описва като еднобитов акумулатор на булев процесор.

5. Инструкции за преход

Адресите на операциите за преход се обозначават от асемблера отделно и чрез референтни стойности в пространството на програмната памет. Адресите на интелигентните преходи се сглобяват при референтно изместване - знаков байт, който се предава на софтуерния процесор. настолен компютърПо времето на Vikonannya, умовете на прехода. Границите между такива преходи са между минус 128 и 127, точно преди първия байт след инструкцията. В регистъра на специалните функции „думата ще стане програма“ P.S.W.» денят е знак нула, инструкции за това ДЖЕЙ ЗИі JNZПроверете ума "точно нула" като тестване на данните в батерията.

Има три вида команди за безумен преход: SJMP, LJMPі AJMP- Различават се по формата на адреса и предназначението. Инструкции SJMPкодира адреса като очевидно забравен и заема два байта. Преходното разстояние е ограничено от диапазона от минус 128 до 127 байта на инструкция SJMP.

В инструкциите LJMP Vikorist идентифицира адреса на дестинацията като 16-битова константа. Общата команда е общо три байта. Адресите за присвояване могат да бъдат присвоени на всяко място в програмната памет.

Екип AJMP 11-битова адресна константа на Vikorist. Командата се състои от два байта. Когато тази инструкция бъде премахната, по-младият 11-битов адрес на лечителя се заменя с 11-битовия адрес на командата. Пет старши части от софтуерния лечител настолен компютърще стане непроменим. По този начин преходът може да се случи в средата на 2K-байтов блок, в който е вмъкната инструкцията, която следва командата AJMP.

Има два вида команди на подпрограмата: LCALLі ОБАЖДАНЕ. Инструкции LCALL 16-битовият адрес на vikorist на извиканата подпрограма. Във всеки случай подпрограмата може да бъде премахната от всяко място в програмната памет. Инструкции ОБАЖДАНЕ 11-битов адрес на подпрограма на Vikorist. В този случай подпрограмата, която се извиква, трябва да бъде пакетирана в един 2K-байтов блок със следните инструкции ОБАЖДАНЕ. Опциите за команда за нападение се поставят в стека на адреса на атакуващата команда и се омагьосват от софтуерния лечител настолен компютър ново значение.

Подпрограмата завършва с инструкция RET, което ви позволява да се върнете към инструкции, за да следвате команда ОБАДЕТЕ СЕ. Тази инструкция изважда адреса, върнат от стека, и го вмъква в програмата за почистване. настолен компютър . Инструкции РЕТИ Vikoristovatsya да се обърне от подпрограмите за прекъсване на обработката. Единство РЕТИизглед RETвярва, че РЕТИИнформира системата, че обработката е приключила. Yakshcho по време на viconny РЕТИНяма други прекъсвания, тогава е идентично RET.

Инструкции DJNZпредназначени за цикли на керуване. За цикъла Vikonanny н След като трябва да добавите байтове и стойности към лекаря н след това затворете тялото на цикъла с командата DJNZ, което показва началото на цикъла.

Екип CJNEизравнява двата си операнда като неподписани цели и след това скача до адреса, посочен в него, тъй като подравнените операнди не са равни. Ако първият операнд е по-малък от другия, тогава битът се прехвърля CF е инсталиран на „1“.

Всички команди в сглобена форма заемат 1, 2 или 3 байта.

UDC 681.5, 681.325.5 (075.8)

BBK 32.973.202-018.2 и 73

Щербина О. Н.Изчислителни машини, системи и мерки. Микроконтролери и микропроцесори в системите за управление: cheb. Пос_бник/О.М. Щербина, П.А. Нечаев-СПб.: Политехнически институт. ун-т, 2012.-226 с.

Той показва подмяната на националния стандарт на обучение и специалностите в областта на управлението на техническите системи, енергетиката и електротехниката и подмяната на началната учебна програма на дисциплината „Компютърна техника” без машини, системи или средства.”

Фундаменталното хранене на логическата организация на микропроцесорните системи се изследва с помощта на основната архитектура на фамилията микроконтролери MCS-51 от Intel. Описана е технологията за програмиране на микроконтролери с помощта на асемблер и CI езици.

Може да бъде полезен за студенти и разработчици на напреднали технически познания, специалисти по автоматизация на процеси и производство, както и за инженери-проектанти на микропроцесорни системи.

Заменя и националния стандарт по дисциплините „Микроконтролери и микропроцесори в системи за управление” и „Електронни средства за автоматизация” за бакалавърска, инженерна и магистърска подготовка директно 1404 00 „Електроенергетика и електротехника”.

Съгласете редакционните и редакционните решения в името на

Държавен политехнически университет в Санкт Петербург.

© Щербина А. Н., Нечаев П. А., 2012

© Държава Санкт Петербург

Политехнически университет, 2012

ISBN 978-5-7422-3553-8


Влизане.. 7

Раздел 1. Архитектура на семейството MCS51. 10

1.1 Характеристики на газа 10

1.2 Блокова диаграма 11



1.3 Предназначение на компонентите на микроконтролера 8051 15

1.4 Организация на паметта 17

1.4.1 Програмна памет (PPM) 18

1.4.2 Памет за данни (DMS) 19

1.4.3 Регистри на специални функции. 20

1.4.4 Регистър на варантите (PSW) 23

1.5 Инсталиране и синхронизация 26

1.6 Организация на входно-изходните портове 27

1.6.1 Доклади зад кулисите. 27

1.6.2 Алтернативни функции. 27

1.7. Таймери / микроконтролери от семейството 8051. 28

1.7.1. Структура на таймерите за лечение. 28

1.7.2 Режими на работа на таймерите за лечение. тридесет

1.8. Сериен порт 32

1.8.1. Структура на серийния порт. 32

1.8.2. Регистър на сервизно/ценово състояние SCON.. 34

1.8.3. PCON.. регистър 36

1.9. Система 37

1.9.1. Променете структурата на системата. 37

1.9.2 Vikonannya подпрограми perervaniya. 40

Глава 2. Характеристики на микроконтролера 80C51GB.

2.1 Функционални характеристики 42

2.2 I/O портове P0-P5 43

2.2.1 Функциониране на I/O портове. 43

2.2.2 Запис на пристанището.

2.3 Характеристики на системата за прекъсване 8XC51GB.

Разрешено/ограда за прекъсване. 50

Прекъснете управлението на приоритетите. 51

Външни прекъсвания. 54

2.3. Вузол ADC 56

2.4. Хардуерен пазач 61

2.5. Разкрит отказ на тактов генератор 63

2.6. Матрица на програмирани лекари RSA 64

2.6.1. PCA структура..64

2.6.2. Регистър на практикуващия лекар RSA (CMOD) 66

2.6.3. Регистър на медицинското управление на PCA (CON) 67

2.6.4. Модули за подравняване/фиксация. 68

2.7. Разширение на сериен порт 76

2.8. Таймери/дозатори 79

Поставяне на микроконтролери от групата 8XC51GB.

Раздел 3. Програмиране на MK 8051GB.

3.1. Софтуерен модел 89

3.2 Видове данни 93

3.3 Методи за адресиране на данни 93

3.4 Командна система 95

3.4.1. Загална характеристика. 95

3.4.2 Видове команди. 96

3.4.3 Видове операнди. 97

3.4.4 Команди за замяна на данните на микроконтролера. 98

3.4.5 Инструкции за аритметични операции 8051. 101

3.4.6 Команди за логически операции на микроконтролера 8051. 104

3.4.7 Команди за операции с битове на микроконтролера 8051. 106

3.5 Настройка на програма 111

Раздел 4. Езиково програмиране на ASM-51. 112

4.2 Програма за запис на текст 113

4.3. Езикова азбука. 114

4.4 Идентификатори. 115

4.5 Числа 117

4.6 Директива 118

4.7 Изпълнение на подпрограма 122 ASM51

4.7.1 Структура на подпрограмата-процедура на моя ASM51. 122

4.7.2 Прехвърляне на променливи параметри към подпрограмата. 123

4.7.3 Изпълнение на функцията на подпрограмата на моя ASM51. 123

4.7.4 Внедряване на процедури за обработка с помощта на моя ASM51. 124

4.8 Структурно програмиран асемблер. 125

4.9 Характеристики на излъчване на богато модулни програми. 126

4.10 Избор на сегмент 128

4.10.1 Разделяне на MK паметта на сегменти. 128

4.10.2. Абсолютни сегменти на паметта. 129

4.10.2 Преместени сегменти от паметта. 131

Глава 5. Езиково програмиране S-51. 134

5.1 Общи характеристики на филм 134

5.3 Програмна структура S-51 136

5.3. Програмиране на филми Elementi S-51 138

5.3.1. Символи.. 138

5.3.2. Лексикални единици, разделители и изчиствания. 141

5.3.3 Идентификатор 142

5.3.4 Ключови думи. 143

5.3.5 Константа.. 143

5.4. Вирази във филмови оператори 146

програмиране C-51 146

5.5. Приоритети на военните операции 148

5.6. Програмиране на операторски филм C-51 149

5.6.1. Операторите са изумени. 150

5.6.2 Оператори, какво да подписват. 150

5.6.3 Оператор за присвояване. 151

5.6.4 Ментален оператор. 151

5.6.5 Структурен оператор (). 152

5.6.6 Оператор за цикъл. 152

5.6.7 Оператор за цикъл с директно обръщане на цикъла while. 153

5.6.8 Оператор за цикъла от обръщане на ума след тялото към цикъла do while. 154

5.6.9. Прекъсване на оператора. 155

5.6.10 Оператор за продължаване. 155

5.6.11 Оператор за избор на превключване. 155

5.6.12 Оператор Goto. 157

5.6.13 Оператор Virazu. 158

5.6.14 Оператор за ротация от връщане на подпрограми. 158

5.6.15 Празен оператор. 158

5.7. Зашеметен от моите промени в програмирането на C-51. 159

5.7.1. Зашеметен от промяната. 159

5.7.3 Цели на типовете данни. 161

5.7.4 Числа с плаваща бучка. 162

5.7.5 Нечестиви типове, за да играете на сигурно. 162

5.7.6. Зашеметени масиви в програмата C-51. 164

5.7.7. Конструкции.. 165

5.7.8. Ob'ednannya (sumishi) 166

5.8. Vikoristannya показване в moví C-51 167

5.8.1. Зашеметени показващи. 167

5.8.2. Нетипизирани индикатори. 168

5.8.3. Памет за остарели дисплеи. 169

5.9. Зашеметяване на нови видове промяна 169

5.10. Инициализация на данни 170

5.11. Vikoristannya subprogram u movі програмиране S-51. 170

5.11.1. Важна подпрограма.. 171

5.11.2. Параметри на фърмуера 173

5.11.3. Подпрограмиране напред 174

5.11.4 Подпрограма Viklik.. 176

5.11.5 Подпрограма за рекурсивно повикване. 176

5.11.6 Прекъсване на подпрограмите. 177

5.11.7 Области на промяна и подпрограми. 178

5.12. Богати модулни програми 179

Глава 6. Подготовка на програми за интегрираното ядро ​​на Keil μVision2. 182

6.1 Създаване на моя проект ASM-51 182

6.2 Приложение, създадено от моя проект C за първоначалния контролер в интегрираното ядро ​​на Keil μVision2 188

Глава 7. Описание на първоначалния контролер. 199

7.1. Структура на контролера 199

7.2. Адресно пространство 200

7.2.1. Разделих паметта. 200

7.2.2 Външна памет. 201

7.2.3. Вътрешна памет за данни. 202

7.3. Списък с портове за поставяне и премахване 202

7.4. Последователен порт………………………………...203

7.5. Робот z RKI 205

7.6. Контролни панели………………………………………………………………213

ПРИЛОЖЕНИЕ P2СТРУКТУРА НА ДОКЛАДА ЗА ЛАБОРАТОРНИЯ РОБОТ……..217

Допълнение P3 Машинни команди на Kodi. 217

Използвана литература... 224


Въведете

В усвоените специалности, свързани с автоматизацията на технологичните процеси и производството, разработването на микроконтролери е един от важните раздели.

Светът преживява непрекъснато развитие и появата на нови и нови 16- и 32-битови микроконтролери и микропроцесори, но по-голямата част от пазара на леки микропроцесори все още се губи за 8-битовите устройства. Според всички прогнози на аналитичните компании водещата позиция на 8-битовите микроконтролери на пазара на осветление ще остане в близко бъдеще.

В момента сред всички 8-битови микроконтролери семейството MCS-51 е безспорен лидер в броя на разновидностите и броя на компаниите, които произвеждат неговите модификации. Взе името си от първия представител на семейството си - микроконтролер 8051. В допълнение към набора от периферни устройства, възможността за избор на външна или вътрешна програмна памет и разумна цена за Не се интересувахме от успеха на този микроконтролер в Пазарът.

Предимства на семейството MCS-51:

· архитектура, която е де факто стандарт;

· Изключителната широта на семейството и разнообразието от възможности;

· Наличие на високопроизводителни и усъвършенствани версии на процесори;

· Броят на широко достъпните софтуерни и хардуерни опции е значителен;

· Лесно програмиране на хардуера, включително програмиране на вътрешна верига;

· Евтина и достъпност на основните чипове;

· Наличие на специални версии на контролери за специални умове

· Наличие на версии на контролера с намалено ниво на електромагнитни преходни процеси;

· Широка популярност сред по-старото поколение деца, както в света, така и в страните от LIC;

· Подкрепа на архитектурата с водещите принципи на светлината.

И, знаете, основното предимство: след като сте усвоили основния чип на семейството, е лесно да започнете да работите с такива изчислителни чудовища като микроконтролери от Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments.

Запасът от семейството MCS-51 включва цяла гама микросхеми от най-простите микроконтролери до няколко сгъваеми. Днес има над 200 модификации на микроконтролери от семейството 8051, които се произвеждат от около 20 компании. Скоро се появяват нови варианти на представители на това семейство.

Основните насоки на развитие са:

· Повишен скоростен код (увеличена тактова честота и преработена архитектура);

· Намалено напрежение и консумация на енергия;

· Повишено използване на RAM и FLASH памет на чипа с възможност за вътрешно програмиране на схемата;

· Въвеждане в склада на микроконтролерна периферия за сгъваеми устройства като задвижващи системи, CAN и USB интерфейси и др.

Микроконтролерите от семейството MCS-51 ви позволяват да конфигурирате управлението на различни устройства, както и да внедрявате различни компоненти на аналогови схеми. Всички микросхеми от това семейство работят с една и съща командна система. Голяма част от тях се монтират в нови корпуси с основа, която се избягва (номерацията на основата за кутията). Това ви позволява да използвате микросхеми от различни фирми - производители, без да преработвате електрическите схеми на устройството и програмите.

Основните производители на видове от 51-то семейство в света са Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems и други.

Характеристиките на аналозите на микроконтролерите от семейството MCS-51 (Intel 8XC51FA, 8XC51GB, 80C152) с разширени възможности са показани в таблицата. В 1.

Таблица Б.1

RAM ROM RSA ADC WDT T/C пързалка Канали Характеристика
Atmel: AT89C2051
- - - - UART Flash 2 KB
AT89C4051 - - - - UART Flash 4 KB
AT89S4D12 128K - - - UART, SPI Flash 4 KB
DALLAS Semiconductor: DS5000FP
- - - + UART Bootstrap товарач
DS5001FP - - - + UART Bootstrap товарач
DS8xC520 16K - - + 2xUART 2 DPTR
SIEMENS: C505C
16K - + + UART, CAN 8 DPTR
C515C 64K - + + UART+ SSC+CAN 4 ШИМ, 8 DPTR
Philips: *89C51RA+
- + - + UART 2 ДПТР, 4 лв. обороти, часовник, Flash 8K
P51XAG1x 8K - - + 2 UART
Intel: 8xC51RA
8K - + + UART 4 нива IRQ, clock out
8XC196KC 64K 16K - + - UART 3 ШИМ
80C196KB 64K 8K - + - UART ШИМ

Раздел 1. Архитектура на семейството MCS51

8-битовите едночипови микроконтролери от семейството MCS-51 придобиха голяма популярност сред разработчиците на микропроцесорни системи за управление в зависимост от дизайна на архитектурата. Архитектурата на микроконтролера е съвкупност от вътрешни и външни софтуерно достъпни хардуерни ресурси и командни системи. Архитектурата на фамилията MCS-51 се ръководи значително от целите й за създаване на компактни и евтини цифрови устройства. Микроконтролерите, които комбинират всички микро-EOM функции в една микросхема, се наричат ​​едночипови EOM (SOC).

Intel пусна близо 50 модела, базирани на операционното ядро ​​на микроконтролера Intel 8051. В същото време много други компании, като Atmel, Philips, започнаха да произвеждат свои собствени микроконтролери, разделени в стандарта MCS-51.

подземни характеристики

Основни характеристики на семейството:

· 8-битов централен процесор (CPU), ориентиран към управление на компютърни устройства;

· Централният процесор е оборудван с 8-битова хардуерна умножителна схема;

· Фактът, че в набора от инструкции има голям брой операции за работа с директно адресирани битове, позволява да се говори за процесор за работа с битови данни (Boolean processor);

· Вътрешна (въртяща се на кристала) програмна памет от маскиран или препрограмиран тип, която може да бъде за различни кристали с обем от 4 до 32 KB, в някои версии всеки ден;

· Най-малко 128 байта резидентна RAM за данни, която се използва за организация, регистрационни банки, стек и съхранение на данни;

· Най-малко 32 двупосочни интерфейсни линии (портове), които могат да бъдат индивидуално конфигурирани за въвеждане или извеждане на информация;

· два 16-битови многорежимни лечителя/таймера, които се използват за поддържане на външни процеси, организиране на часовници и часовник на комуникационния порт;

· Двупосочен дуплексен асинхронен приемник (UART), използван за организиране на комуникационни канали между микроконтролера и външни устройства с широк диапазон от скорости на предаване на информация. Є функции за хардуерна и софтуерна интеграция на микроконтролери в свързаната система;

· домашна приоритетна система за поливане, която поддържа поне 5 вектора на поливане от 4 вътрешни и 2 външни водоструйки;

· Генератор на вътрешен часовник.

Блокова схема

Блоковата схема на контролера е представена на фиг. 1.1 и се състои от следните основни функционални звена: управляващ блок, аритметично-логическо устройство, блок таймер/разпределител, сериен интерфейс и блок за прекъсване, програмен контролер, памет за данни и програмна памет. Двупосочната комуникация се осъществява чрез вътрешна 8-битова шина за данни. Почти всички представители на семейството MCS-51 са създадени по тази схема. Различни микросхеми от това семейство са разделени на регистри със специално предназначение (регистри и редица портове).

Блок за време и контрол- предназначения за вибриращи синхронизиращи и управляващи сигнали за осигуряване на координация на интегрираната работа на блоковете OEOM във всички допустими режими на работа. Блокът за управление на склада включва:

бъдещо формиране на часови интервали;

входно-изходна логика;

команден регистър;

регистър за управление на електроснабдяването;

команден декодер, контролна логика на EOM.

малък 1.1. Блокова схема на контролера I8051.

Устройство за формиране на часови интервалиПредназначен за формиране и формиране на вътрешни фазови тактови сигнали, тактови цикли и цикли. Броят на машинните цикли означава сложността на командната последователност. Почти всички OEOM команди се изпълняват в един или два машинни цикъла, с изключение на командите за умножение, чиято тривиалност се извършва в няколко машинни цикъла. Значително честотата на генератора, която се задава чрез F r. Честотата на машинния цикъл е 12/F или задайте 12 периода към сигнала на генератора, който задава. Входно-изходната логика е проектирана да приема видовете сигнали, които осигуряват обмен на информация от външни устройства през входно-изходните портове P0-P3.

Регистър на командитеЦелта на записа е да се запази 8-битовият код на операцията на командата, която се добавя. Операционният код с помощта на команден декодер и управляваща логика EOM се преобразува в микропрограмата на командата.

Регистър за контрол на членството (PCON)Позволява ви да промените робота на микроконтролера, за да промените количеството консумирана електрическа енергия и да промените нивото на въвеждане от микроконтролера. Още по-голяма промяна в количеството електрическа енергия и промяна в транскодирането може да се постигне чрез изключване на генератора на микроконтролера, който го задава. Това може да се постигне чрез обръщане на битовия регистър във връзка с PCON. За версията, произведена с помощта на технологията n-MOS (серия 1816 или чуждестранни микросхеми, имената на които имат буква "c" в средата), регистрационният регистър PCON съдържа само един бит, който осигурява гладко предаване на сериен порт SMOD и ще всеки ден да бъде свързан към електрозахранването.

Аритметична логическа единица (ALU)е паралелно осембитово устройство, което предоставя широк набор от аритметични и логически операции. ALU се състои от:

регистри за батерии, регистри за пестене на време TMP1 и TMP2;

PZP константи;

суматора;

допълнителен регистър (регистър B);

батерия (ACC);

регистърът ще стане програма (PSW).

Регистър батерия и регистър за пестене на време- осембитови регистри, предназначени за улавяне и запазване на операнди за часа на изпълнение на операциите върху тях. Тези регистри не са достъпни програмно.

Постоянен ROMще осигури генерирането на коригиран код по време на подаване на под-десети данни, маскиращ код по време на битови операции и постоянен код.

Паралелен осем-битов суматоре схема от комбиниран тип с последващо прехвърляне, предназначена за изчисляване на аритметични операции на събиране, събиране и логически операции на събиране, умножение, двусмислие и идентичност.

Регистрирайте Б- осембитов регистър, който се променя по време на операцията за умножение. За други инструкции може да се счита за допълнителен оперативен регистър.

Батерия- осемразряден регистър за получаване и запазване на резултата, получен при изпълнение на аритметично-логически операции или операции.

Блок за сериен интерфейс (SIP)цели за организиране на въвеждане - показване на последващи потоци от информация и организиране на система за прекъсване на програмата. Складовият блок включва:

PIP буфер;

логическо управление;

контролен регистър;

предавателен буфер;

първичен буфер;

акцептор на сериен порт;

прекъсване на приоритетния регистър;

допуска се прекъсване на регистъра;

Логиката на обработка на знамената е прекъсната и схемата на векторната вибрация.

Брояч на команди (Програмен брояч)Цели за формиране на резбов 16-битов адрес на вътрешна програмна памет и 8/16-битов адрес на външна програмна памет. Складът за съхранение на команди включва 16-битов компютърен буфер, компютърен регистър и схема за нарастване (увеличена с 1).

Памет за данни (RAM)Проектиран за ежедневно запазване на информацията, която се събира по време на процеса на инсталиране на програмата.

Порти P0, P1, P2, P3Той има квази-двупосочни входно-изходни портове, за да осигури обмен на OEOM информация с външни устройства, създавайки 32 входно-изходни линии.

Регистрацията ще стане програма (PSW)Цели за запазване на информация за LSA завода по време на инсталиране на програмата.

Програмна памет (EPROM)Предназначен за запазване на програми и устройства с постоянна памет (ROM). Някои микросхеми имат застояли маски, които могат да бъдат изтрити от ултравиолетово излагане или FLASH ROM.

Регистър за показване на данни (DPTR)цел за съхраняване на 16-битов адрес на външна памет за данни.

Индикатор за купчина (SP)Това е осембитов регистър, използван за организиране на специална област от паметта за данни (стек), в която можете бързо да запазите произволно количество памет.

1.3 Предназначение на компонентите на микроконтролера 8051(фиг. 1.2)

· U ss - потенциал на подземния дроту ("земя");

· U cc - основно захранващо напрежение +5 V;

· X1, X2 – конектори за свързване на кварцов резонатор;

· RST - вход на микроконтролера;

· PSEN - позволява външната програмна памет да бъде видима само при надграждане до новия ROM;

· ALE – строб на адрес на външна памет;

· EA - активиране на вътрешна програмна памет; Ниво 0, при което входът кара микроконтролера да прекрати програмата само от външния PZP; Игнориране на вътрешното (както си остава);

малък 1.2. Присвояване на щифтове 8051.

· P1 - осембитов квази-двупосочен входно-изходен порт, всеки порт може да бъде програмиран както за вход, така и за изход на информация, независимо от други категории;

· P2 е осем-битов квази-двупосочен порт, подобен на P1, щифтовете на който порт се използват за показване на адресна информация, когато програмата или данните се изтеглят във външна памет (тъй като се използва 16-битово адресиране). оставане). В допълнение, щифтовете на порта се избират, когато са програмирани да въвеждат адреси от висок ред в микроконтролера;

· РЗ - осембитов квази-двупосочен порт, подобен на P1, щифтовете на който порт могат да бъдат оборудвани с редица алтернативни функции, като тези, използвани при работата на таймери, серийния входно-изходен порт, контролера на прекъсванията , и памет за външна програма;

· P0 - мултиплексиращ осембитов двупосочен порт за вход-изход на информация, през този порт се извежда младият байт на адреса и данните в различно време.

Организация на паметта

Цялата серия MCS-51 използва архитектурата на Харвард, за да осигури адресируема памет за програми и данни. Структурата на паметта е показана на фиг. 1.3.

Количеството вътрешна (резидентна) програмна памет (ROM, EPROM или OTP ROM), която се съхранява на кристала, може да бъде зададена на 0 (ROMless), 4K (базов кристал), 8K, 16K или 32K в зависимост от типа на микросхемата. За консумация можете да разширите програмната памет на инсталирания външен PZP. Достъпът до вътрешен или външен PZP се присвоява на стойностите на сигнала на изхода EA (външен достъп):

EA = V cc (жизнено напрежение) - достъп до вътрешния ПЗП;

EA = V ss (земен потенциал) – достъп до външен ROM.

За кристали без PZP (ROMless) EA връзките трябва да бъдат постоянно свързани към V ss.

малък 1.3. Организация на паметта на семейството MCS-51

Строб за четене на външния PZP - (Program Store Enable) се генерира, когато програмата се изтегли във външната памет и е неактивен по време на изтеглянето на PZP, намиращ се на чипа. Областта на долните адреси на програмната памет е прекъсната от системата. Архитектурата на основния чип 8051 поддържа пет функции:

· прекъсване на две външни;

· прекъсване на таймерите два пъти;

· Прекъсване на серийния порт.

На фиг. Фигура 1.4 показва карта на долната област на паметта на програмата.

малък 1.4. Карта на долната част на програмната памет

Програмна памет (PPM)

В микроконтролерите от семейството 8051 програмната памет и паметта за данни са независими и независими устройства, адресирани от различни команди и сигнали, които се управляват.

Обемът на съхранената програмна памет, разположена на чипа на микроконтролера 8051, е до 4 KB (в семейството до 32). При флашване на програми в нова памет, всички микроконтролери от семейството 8051 винаги ще използват 16-битов адрес, който ще осигури достъп до до 64 KB ROM. Микроконтролерът превключва към програмната памет в часа на четене на операционния код и операндите (командния процесор на компютъра) и изпраща командите за копиране на байта от програмната памет към батерията. Когато се използват тези команди, копирането на данни се адресира в средата на паметта на програмата, от която ще се четат данните, може да взаимодейства с компютърния контролер на данни и специалния двубайтов регистър за данни DPTR.

Памет на почитта (MP)

Обемът на паметта за данни, съхранявана на чипа, е 128 байта. Обемът на външната памет за данни може да достигне до 64 KB. Първите 32 байта са организирани в четири банки от регистри с първостепенно значение, които са обозначени като банка 0 - банка 3. Всяка от тях се състои от осем регистъра R0-R7. По всяко време програмата има само една банка от регистри, налична по време на адресирането на регистъра, чийто номер се намира в третия и четвъртия бит на думата, ще стане програмата PSW.

Адреси на областта на битовата памет на микроконтролера 8051

Таблица 1.1

Байтови адреси (шестнадесетичен) Адреси на битки по редици
D7 D6 D5 D4 D3 D2 D1 D0
2F 7F 7E 7D 7C 7B
2E
2D 6F 6E 6D 6C 6B
2C
2B 5F 5E 5 Д 5C 5B
4F 4E 4D 4C 4B
3F 3E 3D 3C 3B
2F 2E 2D 2C 2B
1F 1E 1D 1C
0F 0E 0D 0C
20ч

Адресното пространство, което се губи, може да бъде конфигурирано от разработчика по негово усмотрение: то може да побере зони за стек, система и лични данни. Извикването на паметта на тези данни може да стане по два начина. Първият метод е директно адресиране до средата на паметта. Кой тип адрес в средата е операндът на командата за въвеждане. Друг метод е индиректно адресиране на допълнителни индикаторни регистри R0 или R1: преди изхода на външната команда, адресите в средата могат да бъдат въведени в един от тях, докато не е необходимо да ги отворите.

За прехвърляне на данни към външна памет е необходимо индиректно адресиране за допълнителни регистри R0 и R1 или 16-битов индикаторен регистър DPTR.

Част от паметта за данни е битовата област, в която има възможност за адресиране на разряда на кожата на средната памет с помощта на специални битови команди. Адресите на директно адресирани битове също могат да бъдат записани по същия начин (AddressByte). (Освобождаване от отговорност). Уместността на тези два метода на адресиране може да се види в таблицата. 1.1.

Архитектура на микроконтролера

Усъвършенстваната архитектура на микроконтролерите е ключът към програмирането на асемблерен тип. Структурата на асемблера, форматът на неговите инструкции, адресирането на операндите също се определят пряко от архитектурата. Методът за модификация на архитектурата е:

· Идентифициране на набора от регистри, достъпни за програмиране, тяхното функционално предназначение и структура;

· разумна организация на оперативната памет и ред;

· Информираност за видовете данни;

· Вивченя формат на машинни команди;

· Нарушете организацията на работата.

Архитектурата на фамилията MCS-51 се ръководи значително от целите й за създаване на компактни и евтини цифрови устройства. Всички функции на MK се изпълняват с помощта на една микросхема. Запасът от семейството MCS-51 включва цяла гама микросхеми от най-простите микроконтролери до няколко сгъваеми. Микроконтролерите от семейството MCS-51 ви позволяват да конфигурирате управлението на различни устройства, както и да внедрявате различни компоненти на аналогови схеми. Всички микросхеми от това семейство работят с една и съща командна система, повечето от тях са инсталирани в нови кутии с база, която се избягва (номериране на основите за корпуса). Това ви позволява да използвате микросхеми от различни производители (като Intel, Dallas, Atmel, Philips и др.), Без да преработвате схемите на устройството и програмите.

MCS-51 е базиран на Харвардска архитектура, където адресируемите пространства на програмната памет и данните са разделени.

Блоковата схема на контролера е представена на фиг. 2.3 и се състои от следните основни функционални единици: блок за управление, аритметично-логическо устройство, блок от таймери/разпределители, сериен интерфейс и прекъсване, списък с команди на програмния дозатор) , памет за данни и памет за програми

Двупосочната комуникация се осъществява чрез вътрешна 8-битова шина за данни. Нека да разгледаме доклада за значението на кожния блок. Почти всички представители на семейството MCS-51 са създадени по тази схема. Различни микросхеми от това семейство са разделени на регистри със специално предназначение (регистри и редица портове). Командната система на всички контролери от семейството MCS-51 съдържа 111 основни команди във формат от 1, 2 или 3 байта и не се променя при преминаване от една микросхема към друга. Това ще осигури чудодейната преносимост на програмите от една микросхема на друга.

Блок за управление и синхронизация(Timing and Control) предназначени за генериране на синхронизиращи и управляващи сигнали за осигуряване на координация на цялостната работа на блоковете OEOM във всички допустими режими на работа. Блокът за управление на склада включва:


  • устройство за формиране на часови интервали,
  • комбинирана схема за въвеждане и изтегляне,
  • команден регистър,
  • команден декодер.

Уикенди и почивни дни сигнали към блока за управление и синхронизация:

1 PSEN- Отделно съхранение на програмната памет;

2 ALE- Изходен сигнал за разрешение за фиксиране на адреса;

3 ПРОГ- Програмиране на сигнала;

4 Е.А.– блокиране на робота от вътрешната памет;

5 VPP- Програмиране на напрежението;

6 RST- Сигнал за загално изхвърляне.

Устройството създава часовникови интервали, които са необходими за синхронизиране на последователността от спирания на процесора, поддържане на машинния цикъл и осигуряване на правилна работа на всички вътрешни терминали и буфери на изходния порт. Машинният цикъл се състои от шест крайни състояния (състояния) от S1 до S6, които от своя страна са разделени на две фази:

фаза 1 (Фаза 1 - P1) и фаза 2 (Фаза 2 - P2). По този начин машинният цикъл може да бъде измерен като последователност от часови интервали S1P1, S1P2, S2P1, ..., S6P2. Продължителността на фазата е същата като периода на директните тактови импулси, така че машинният цикъл отнема 12 тактови периода.

Броят на машинните цикли означава сложността на командната последователност. Почти всички команди се изпълняват в един или два машинни цикъла, с изключение на командите за умножение, които могат да бъдат изпълнени в няколко машинни цикъла. Входно-изходната логика е проектирана да приема видовете сигнали, които осигуряват обмен на информация от външни устройства през входно-изходните портове P0-P3.

Регистър на командитеЦелта на записа е да се запази 8-битовият код на операцията на командата, която се добавя. Операционният код с помощта на команден декодер и управляваща логика EOM се преобразува в микропрограмата на командата.

Ориз. 2.3. Блокова схема на едночипов микроконтролер Intel 8051

(дом на MCS-51)

Аритметично-логическо устройство(ALU) е паралелно осем-битово устройство, което предоставя различни аритметични и логически операции. ALU се състои от:

  • регистри за спестяване на време -TMP1 и TMP2,
  • ROM константи,
  • суматора,
  • допълнителен регистър - регистър,
  • батерия - ACC,
  • регистърът на думата ще стане програма (регистър на прапорщиците) - PSW.

Регистър за спестяване на време TMP1, TMP2- осембитови регистри, предназначени за улавяне и запазване на операнди за часа на изпълнение на операциите върху тях. Тези регистри не са достъпни програмно.

Постоянен ROMще осигури генерирането на коригиран код по време на подаване на под-десети данни, маскиращ код по време на битови операции и постоянен код.

Паралелен осем-битов суматоре схема от комбиниран тип с последващо прехвърляне, предназначена за изчисляване на аритметични операции на събиране, събиране и логически операции на събиране, умножение, двусмислие и идентичност.

Регистрирайте Б- осембитов регистър, който се променя по време на операцията за умножение. За други инструкции може да се счита за допълнителен оперативен регистър.

Батерия- осемразряден регистър за приемане и запазване на резултата, получен от аритметично-логически операции или операции за съхранение.

Регистрирането ще се превърне в програма PSW (Programm Status Word)За да спася думата, ще стана командите, които ще бъдат подписани. При въвеждане на голям брой ALU команди се формира поредица от операционни символи (знаци), които се записват в регистъра на програмната дума (PSW). На масата 1 е очертан преводът на флаговете на PSW, дадени са техните символични имена и е описана менталната формация.

Блок за прекъсване на серийния интерфейс - UART (Universal Asynchronous Receiver/Transmitter)цели за организиране на въвеждане - показване на последващи потоци от информация и организиране на система за прекъсване на програмата.

В крайна сметка прекъсването означава отнемащо време изпълнение на основния процес на изчисляване на изпълнението на различни планирани и непланирани действия, задействани от роботизирано оборудване и програми.

Тези действия могат да бъдат от сервизен характер, да се захранват от паралелни сервизни програми или да реагират на рутинни ситуации.

Командната система OMEOM предоставя големи възможности за обработка на данни, осигурява изпълнението на логически, аритметични операции, както и контрол в реално време. Внедрена бит по бит, тетрада по бит (4 бита), байт по байт (8 бита) и 16-битова обработка на данни.

BIS на семейството MCS-51 е 8-битов OMEOM: ROM, RAM, регистрите със специално предназначение, ALU и външните шини имат байтова организация. Двубайтовите данни се обработват само от регистъра на дисплея (DPTR) и програмата за почистване на команди (PC). Обърнете внимание, че регистърът на данните може да бъде или двубайтов регистър DPTR, или два еднобайтови регистъра със специално предназначение DPH и DPL. Командата за почистване винаги се използва като двубайтов регистър.

Наборът от команди OMEOM съдържа 42 мнемонични команди за указване на 33-те функции на системата.

Синтаксисът на повечето команди на асемблерния език се състои от присвояване на мнемонична функция, последвано от операнди, които показват методи за адресиране и типове данни. Различните типове данни и режими на адресиране се обозначават чрез вмъкване на операнди, а не чрез промени в мнемоничните стойности.

Командната система може мислено да бъде разделена на пет групи:

Има следните видове операнди за адресиране:

  • Индиректно регистрово адресиране извън сбора на базовия и индексния регистри

Таблица със символи, използвани в командната система

Назначаване, симв Възлагане
А Батерия
Rn Регистър на базирана на потоци банка от регистри
r Номер на присвоения регистър, определен от екипа
директен 8-битовият вътрешен адрес на данни се адресира директно, което може да бъде средата на вътрешната RAM памет за данни (0-127) или SFR (128-255)
@Rr Индиректно адресиране на 8-битовата среда на вътрешната RAM памет за данни
данни8 8-битов без средата се дава за въвеждане преди COP
данниH Високи битове (15-8) от средни 16-битови данни
данниL Young бие (7-0) средни 16-битови данни
адрес11 11-битови адреси на дестинация
addrL Адреси на младите хора за признание
disp8 8-битов байт за изместване със знак
малко Бит от директно адресиране, адресът на който поставя COP, който се намира във вътрешния OCP на данни или SFR
a15, a14...a0 Адреси и присвоявания на битове
(Х) Вместо елемент X
((Х)) Вместо адреса, който се съхранява в елемент X
(X)[M] Разреждане на елемент X

+
-
*
И
ИЛИ
XOR
Операции:
допълнителен
vidnіmannya
умножение
По-долу
логическо умножение (операция I)
логическо сгъване (операция ABO)
Добавен след модул 2 (който включва ABO)
Инверсия на елемент X

Присвояването на мнемонични функции е уникално свързано със специфични комбинации от методи за адресиране и типове данни. Системата от команди може да има 111 такива записа. Таблицата съдържа списък с команди, подредени по азбучен ред.

Мнемоника функция Прапори
Команда ACALL Абсолютни подпрограми wiklik
добавяне AC, C, OV
Добавено към прехвърленото AC, C, OV
Екип на AJMP Абсолютен преход
Логично "аз"
„I“ е по-логично за change-beats ° С
Изравняване и преход, тъй като има повече от един ° С
CLR A команда Падане на батерията
CLR команда Skidannya bit C, бит
Отбор CPL A Инверсия на батерията
Екип на CPL Битова инверсия C, бит
Екип DA A Корекция на батерията Tens за сгъване AC, C
Екип на DEC<байт> Намаляване
Отбор DIV AB Подил C, OV
Екип DJNZ<байт>, <смещение> Декремент и преход, които не са равни на нула
Team INC<байт> Увеличаване
INC DPTR командване Увеличение на индикатора за данни
Екип JB , Преход при зададен бит
Екипът на JBC , Преход, като малко вмъкване и изтриване на този бит
Екип JC Преход, ако прехвърлянето е инсталирано
Команда JMP @A+DPTR Индиректен преход
Екип JNB , Преход, ако битът не е зададен
Екип на JNC Преход, ако прехвърлянето не е инсталирано
Екип на JNZ Преход, ако вместо батерията не е равна на нула
Отбор JZ Преход, ако вместо батерия има нова 0
LCALL команда Довги Виклик
Екип на LJMP Дълъг преход
Напред zminna-byte
Препращане на битови данни ° С
Команда MOV DPTR, #data16 Анотирайте индикатора за данни с 16-битова константа
MOVC команда A, @ A + ( ) Изпраща байт от програмната памет
Прехвърляне на данни към външна памет (от външна памет)
Не работи