Програмирање на MK порти на јазикот C 51. Микроконтролери MCS–51: програмски модел, структура, команди. Режим за читање пристаниште

Основна верзија MCS-51 Кратки информации. Современите 8-битни микроконтролери (MCs) имаат такви контролни ресурси во реално време, за кои се користеа претходно скапи распореди со повеќе чипови во форма на посебни табли за микрокомпјутер, имено:

● имаат доволен мемориски капацитет, негова физичка и логичка поделба на програмска меморија и меморија на податоци(Харвардска архитектура) и команден систем фокусиран на извршување на контролни алгоритми;

● да ги вклучи сите уреди (процесор, ROM, RAM, влезно/излезни порти, систем за прекини, средства за обработка на бит-информации итн.) неопходни за спроведување на микропроцесорски контролен систем со минимална конфигурација. Во 70-тите години на минатиот век компанијата ИнтелРазвиено е и пуштено во индустриско производство семејство 8-битни микроконтролери MCS-48, обединети со голем број заеднички карактеристики (битен капацитет, команден систем, сет на главни функционални блокови итн.). Основната верзија на ова семејство вклучува:

● 8-битен процесор;

● внатрешна програмска меморија (1/2/4K бајти);

● внатрешна меморија за податоци (64/128/256 бајти);

● до 27 внатрешни и 16 надворешни В/И линии;

● еден 8-битен тајмер-бројач;

● систем за прекин на едно ниво со два извора на барања. Во 1980 година, истата компанија разви ново семејство на осум-битни микроконтролери, MCS-51, кое е компатибилно со архитектурата на семејството MCS-48, но има поголеми можности.

Архитектурата на семејството MCS-51 се покажа како толку успешна што сè уште е еден од стандардите за 8-битни MKs. Затоа, предмет на проучување беше избран да бидат микроконтролери од оваа фамилија, кои се широко користени во релативно едноставни контролни системи.

Развиени се различни алатки за подготовка на програми за семејството MCS-51 (компајлери, хардверско-софтверски емулатори итн.) и има голем број библиотеки со стандардни рутини. Семејството вклучува различни модификации на микроциркути (верзии на чипови) на микроконтролери. Написите во овој дел детално ја разгледуваат основната верзија на микроконтролерите од семејството MCS-51 (микроколото 8051 одговара на домашниот аналог KP1816BE51), наједноставниот во структурна и функционална смисла и од гледна точка на разбирање.

Последователните серии на микроциркути, додека ја одржуваат компатибилноста со основната верзија, се разликуваат од неа во подобрената технологија на производство, електрични параметри, дополнителен хардвер и функционалност. Следниве написи се посветени на структурните и функционалните карактеристики на последователните модификации на семејството на микроциркути MCS-51.
Генерализиран блок дијаграм на MCS-51. Составот на MC, чиј генерализиран блок дијаграм е прикажан на сл. 7.1.1, вклучува:

● 8-битен ПроцесоротПроцесорот кој се состои од ALU, контролни уреди UUи генератор на адреси Ф;

● маскирајте ROM со капацитет од 4K бајти за складирање на програми;

● RAM меморија со капацитет од 128 бајти за складирање податоци;

● четири програмабилни порти P0–P3 за влез– излез на информации;

● блок сериски интерфејс BPI за размена на информации со надворешни уреди преку двожична линија;

● блок на BT/C тајмери/бројачи за одржување на режимот во реално време;

● BP прекин блок за организирање прекини на извршни програми. Овие средства се формираат жителдел од микроконтролерот кој се наоѓа директно на чипот. МК вклучува голем број на регистри, кои се доделени на посебни функционални блокови и не се прикажани на дијаграмот.

Дијаграмот исто така не покажува контролни кола. Двонасочната размена на информации помеѓу блоковите се врши преку внатрешни 8-битни магистрала за податоциШД-8.

Со внатрешен 16-битен адреса автобусША-16 Адресата генерирана во процесорот излегува во ROM (12 адресни бита) и во RAM (8 бита со низок ред).

Кога користите надворешна меморија, 8-те најмалку значајни бита од адресата се емитуваат во портата P0 и 3 или 8 најзначајни бита на портата P2.

За логично проширување на интерфејсот, се користи комбинирање на функциите на линиите на пристаништето. Како пример на сл. 7.1.1 линијата со точки ги прикажува линиите на портата P3 што работат алтернативафункции на пренос на контролни сигнали, чија цел ќе биде разгледана подолу. За да се создаде внатрешен генератор на часовник, кварцен резонатор и два кондензатори се поврзани со терминалите на микроциркулата MK (сл. 7.1.1). Наместо внатрешен генератор на часовник, за синхронизација може да се користи надворешен извор на осцилации. Условно графичка ознака MK микроциркулите се прикажани на сл. 7.1.2, ознака и намена на пиновите - во табела. 7.1.1. Да ги разгледаме функционалните блокови на МК и принципот на нивната работа. Аритметички логички уред. Аритметичко-логичкиот уред е дизајниран да врши аритметички (вклучувајќи множење и делење) и логички операции на осум-битни операнди, како и операции на логичко поместување, нулање, поставување итн. Блок-дијаграмот на ALU е прикажан на сл. 7.1.3.

ALU вклучува

● паралелни осум битни собирачСМ од комбиниран тип со секвенцијално носење, извршување аритметички (собирање и одземање) и логички (собирање, множење, диспаритет и идентитет) операции;

батерија А,обезбедување на функциите на главниот аритметички регистар;

регистрираатБ, се користи за спроведување на операции за множење и делење или како дополнителен супероперативен регистар, чии функции ги одредува корисникот;

регистри(софтверот не е достапен) привремено складирањеРВХ1, РВХ2, наменети за примање и складирање на операнди за времетраење на операцијата;

● ROM константи ROM, кој го складира кодот за корекција за бинарното децимално претставување на податоците, кодот на маската за операциите на битови и кодот за константите;

статус на програмата збор регистар PSW, кој ја евидентира состојбата на ALU по завршената операција. Во табелата 7.1.2 дава информации за доделување на битови од поединечни битови од PSW регистарот. Контролен уред. Контролна единица (CU) на централниот процесор наменетиза координација соработкасите MK јазли кои користат генерирани такт импулси и контролни сигнали. Се состои од (сл. 7.1.4):

единица за синхронизација и контролаКонтролниот систем, кој генерира часовни импулси кои ги дефинираат машинските циклуси и нивните индивидуални состојби (S) и фази (P) и, во зависност од режимот на работа на микроконтролерот, го генерира потребниот сет на контролни сигнали. Потребни се еден, два или четири машински циклуси за да се изврши команда.

Секој машински циклус има шест држави S1–S6, A секоја држава вклучува две фази P1, P2, чие времетраење е периодот на осцилација на генераторот на часовникот T 0SC.

Времетраењето на машинскиот циклус е 12T 0SC. Сите машински циклуси се исти, почнувајќи од фазата S1P1 и завршувајќи со фазата S6P2.

Покрај такт пулсирањата, уредот за синхронизација генерира два (понекогаш и еден) влезни сигнали за нискиот бајт на адресата ALE во секој машински циклус во форма на позитивен импулс во фазите S1P2–S2P1 и S4P2–S5P1. Временски дијаграми на Сл. 7.1.5 ја илустрира организацијата на машинските циклуси;

● команден регистар RK, команден декодер DC и PLM, овозможувајќи во секој машински циклус да генерира збир на микро-операции во согласност со микропрограмата на извршената команда;

● LVV влезно/излезна логика за примање и издавање сигнали кои обезбедуваат размена на информации од МК со надворешни уреди преку портите P0–P3;

l PCON регистар, кој има еден овозможен SMOD бит во положбата PCON.7 за двојно да ја удвои брзината на податоци на сериската порта. Останатите битови се резервирани за подоцнежна употреба.
Генератор на адреси. Генератор на адреси (FA) или бројач на команди на компјутер, наменетиза да се формира моменталната 16-битна адреса на програмската меморија и 8/16-битна адреса на надворешната меморија за податоци. Се состои од (сл. 7.1.6):

● 16-битен тампон B, кој комуницира помеѓу 8-битната SD магистрала за податоци и 16-битната внатрешна магистрала (IB) на поранешната адреса;

● Коло за зголемување на SI за зголемување на вредноста на тековната адреса програмска меморијапо единица;

● регистар за складирање на тековната адреса на PTA команди кои доаѓаат од SI;

● регистар на покажувач на податоци DPTR , кој се состои од два 8-битни регистри DPH и DPL. Служи за складирање на 16-битна адреса на надворешна меморија за податоци и може да се користи како два независни RON достапни за софтвер;

● регистар на генератор на XRF адреси за складирање на извршната 16-битна адреса на програмската меморија или 8/16-битната адреса на надворешната меморија за податоци. Овој регистар исто така се користи за пренос на податоци преку портата P0 до надворешни уредипри извршување на командите MOVX @Rm, A и MOVX @DPRT, A.

Меморија на податоци. Меморија на податоци наменетиза примање, складирање и издавање информации кои се користат при извршување на програмата. Внатрешната (резидентна) податочна меморија (сл. 7.1.7) се состои од RAM меморија со капацитет од 128 бајти, покажувач на магацинотС.П. регистер за адреса RAM RA и декодерДш. Покажувачот на магацинот SP е 8-битен регистар дизајниран да ја прима и складира адресата на ќелијата на стек до која е последен пристап. По ресетирањето, покажувачот на стекот е поставен на адреса 07H, што одговара на почетокот на стекот со адреса 08H. Регистарот за адреси PA заедно со декодерот Dsh овозможува пристап до потребната мемориска ќелија која содржи бајт или малку информации.

MK обезбедува можност за зголемување на капацитетот на меморијата на податоци до 64 KB со поврзување надворешни уреди за складирање.Како пример на сл. 7.1.8 ја прикажува организацијата на страниците на надворешната меморија за податоци VPD со капацитет од 2K бајти со помош на команди од типот MOVX @ Rm (m = 0; 1). Во овој случај, портата P0 работи како мултиплексирана адресна/податочна магистрала, три линии од портата P2 се користат за адресирање на страница со надворешна RAM меморија, а преостанатите пет линии може да се користат како влезни/излезни линии.
На сл. 7.1.9 покажува временски дијаграми на циклуси за читање и запишување кога МК работи со надворешна RAM меморија. Дијаграмите покажуваат:

● RSN - висок бајт на бројачот на команди на компјутер;

● DPL, DPH - ниски и високи бајти на регистарот за покажувач на податоци DPTR, кој се користи како регистар за индиректно адресирање во командите MOVX @DPTR,A и MOVX A,@DPTR;

● P2 SFR - брави за порти P2;

● Rm (m = 0, 1) - регистри кои се користат во инструкциите MOVX @Rm, A и MOVX A, @Rm како индиректни адресни регистри;

● Z - состојба со висок отпор;

● D - периодот во кој податоците од портата P0 се внесуваат во микроконтролерот. Програмска меморија. Програмската меморија е дизајнирана да складира програми, има сопствен (одделен од меморијата на податоци) адресен простор и е само за читање. Вклучува Dsh декодер и ROM (сл. 7.1.10). 16-битен бројач на компјутер се користи за адресирање на програмската меморија, така што неговиот максимален капацитет е 64K бајти. Внатрешната програмска меморија се состои од ROM од 4K бајти и 12-битен декодер. Надворешната меморија е поврзана според дијаграмот на сл. 7.1.11. Ако 0 V се напојува со пинот ¯EA на MK (како што е прикажано на сл. 7.1.11), внатрешна меморијапрограмите се оневозможени. Сите пристапи до меморијата започнуваат на адресата 0000h. Кога пинот ¯EA е поврзан со извор на енергија, пристапот до внатрешната програмска меморија на адресите 0000h–FFFFh и до надворешната програмска меморија на адресите 0FFFh–FFFFh се случува автоматски.

За читање на надворешната меморија на MK програмите, се генерира сигналот ¯PSEN. Кога работите со внатрешна меморија, сигналот за читање не се користи. При пристап до надворешната програмска меморија, секогаш се формира 16-битна адреса. Нискиот бајт на адресата се пренесува преку портата P0 во првата половина од машинскиот циклус и се фиксира со пресекот на стробот ALE во регистарот. Во втората половина од циклусот, портата P0 се користи за внесување бајт од податоци од надворешна меморија во МК.

Најзначајниот бајт од адресата се пренесува преку портата P2 во текот на целото време на пристап до меморијата.

Временските дијаграми на циклусите за читање и запишување кога MK работи со надворешна RAM меморија се прикажани на сл. 7.1.12.
Дијаграмите означуваат:

● PCL OUT - излез од нискиот бајт на бројачот на програмата за компјутер;

● RSN OUT - излез од високиот бајт на бројачот на команди на компјутер;

● DPH - висок бајт на регистарот за покажувач на податоци DPTR, кој се користи како регистар за индиректно адресирање во инструкциите MOVX @DPTR,A и MOVX A,@DPTR;

● P2 SFR - брави за порти P2;

● INS IN - внесување на инструкција (команда) бајт од програмската меморија;

● ADDR OUT - издавање на нискиот бајт на адресата на надворешната меморија на податоци од Rm регистрите (m = 0, 1) или од DPL регистарот (DPTR низок регистар). I/O пристаништа. Задача за пристаниште.Пристаништа P0, P1, P2, P3 наменетиза размена на информации помеѓу МК и надворешни уреди, а исто така и за извршување на следните функции:

● нискиот бајт на адресата A7…A0 се емитува преку портата P0; бајт на податоци се издава од МК и се внесува во МК при работа со надворешна програмска меморија и надворешна меморија на податоци (временски одвоена);

● преку портата P2, високиот бајт на адресата A15...A8 се емитува кога се работи со надворешна програмска меморија и надворешна меморија за податоци (само кога се користат командите MOVX A,@DPTR и MOVX @DPTR,A);

● линиите на пристаништето P3 може да се користат за извршување на алтернативни функции ако во бравата на оваа линија се внесува 1, инаку на излезот на линијата е фиксирана 0. Алтернативните функции на пиновите на портата P3 се дадени во Табела. 7.1.3.

Карактеристики на кола на пристаништата

На сл. 7.1.13 прикажува дијаграми за еден канал на секоја од MK портите, вклучувајќи:

● брава за фиксирање на примениот податочен бит;

● Излезен засилувач каскада(возач);

● Јазол врска соизлезна фаза (освен P2);

● коло за пренос на податочен бит од излезната страна на портата, составена од бафери B2 и B3 (за портата P4). Заклучувањето е D-flip-flop, тактирано со внатрешниот сигнал „Write to latch“. Податочниот бит од директниот излез на D флип-флопот може да се чита програмски преку баферот B1 со помош на сигналот „Read Latch“ до линијата на внатрешната магистрала за податоци (ID) на MK.

Излезна фазапортата P0 е инвертер, чии карактеристики се манифестираат во фактот што оптоварениот транзистор VT2 се отвора само при пристап до надворешна меморија (при пренос на адреси и податоци преку портата). Во сите други режими, транзисторот за оптоварување е затворен. Затоа, за да се користи P0 (сл. 7.1.13, а) како излезна порта за општа намена, неопходно е да се поврзат надворешни отпорници за оптоварување на неговите терминали. Кога пишувате 1 на бравата на портата, инвертерскиот транзистор VT1 е заклучен и надворешниот игла на приклучокот P0.X се префрлува во состојба со висок отпор. Во овој режим, излезот од портата P0.X може да послужи како влез. Ако портата P0 се користи како влезна/излезна порта за општа намена, секој од неговите P0.X пинови може самостојно да работи како влез или излез. Излезни фазипорти P1, P2, P3 (сл. 7.1.13, б, в, г)направени според кола на инвертер со внатрешен отпорник на оптоварување, кој се користи како транзистор VT2.

За да се намали времето на префрлување кога игличките на приклучокот преминуваат од состојба 0 во состојба 1, паралелно со оптоварениот транзистор VT2 беше воведен дополнителен транзистор VT3. Транзистор VT3, користејќи елементи во колото на портата, се отклучува за време еднакво на два периода на осцилација на главниот кварцен осцилатор (за време на фазите S1P1, S2P2 од машинскиот циклус). Излезни фазипортите P0, P2 (сл. 7.1.13, A, c) со помош на MX мултиплексерот може да се поврзат или со брави или со внатрешните магистрали „Address/data“ и „Address“. Излезната фаза на портата P1 (сл. 7.1.13, 6) е трајно поврзана со бравата.

Ако пинот на портата P3 е излез и неговата брава содржи 1, тогаш неговата излезна фаза се контролира со хардвер внатрешен сигнал„Алтернативна излезна функција“ што обезбедува извршување на соодветната алтернативна функција, т.е. еден од сигналите ¯WR, ¯RD или RxD се генерира на надворешниот пин. Ако излезот на портата се користи како влез, тогаш алтернативниот сигнал што пристигнува до него (TxD, ¯INT0, ¯INT1, T0, T1) се пренесува на внатрешната линија „Алтернативна влезна функција“.

Режим на снимање на порта.

Кога ќе се изврши команда за запишување на портата, новата вредност се запишува на бравата во фазата S6P2 и излегува директно на излезниот пин на портата во фазата S1P1 од следниот циклус на машината.

Режим за читање на порта

Наредбите за читање на портата читаат информации директно од надворешните пинови на пристаништето или од излезите на бравата. Во првиот случај, податочниот бит од пинот на портот се чита програмски преку баферот B2 со помош на сигналот „Read Pins“ до линијата на внатрешната магистрала за податоци (SD) на MK. Забележете дека сигналите „Write to latch“, „Read latch“, „Read pins“ се генерираат во хардверот кога се извршуваат соодветните команди.

Во вториот случај, се имплементира таканаречениот режим „Read-Modify-Write“, во кој командата го чита сигналот за состојбата на бравата, го менува доколку е потребно, а потоа го запишува назад во бравата. Режимот „Read-Modify-Write“ се имплементира при извршување на следните команди: ANL, ORL, XRL, JBC; CPL; INC; ДЕК; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

Читањето информации од излезите на бравите ви овозможува да ги елиминирате грешките при толкувањето на логичкото ниво на иглата на приклучокот. Прочитајте го продолжението на статијата.

Архитектурата на семејството MCS-51 во голема мера е одредена од неговата намена - конструкцијата компактенИ евтини дигитални уреди. Сите функции на микрокомпјутерот се имплементирани со користење на еден микроколо. Семејството MCS-51 вклучува цела палета на микроциркути од наједноставните микроконтролери до доста сложени. Микроконтролерите од семејството MCS-51 ви овозможуваат да ги извршувате двете контролни задачи за различни уреди и да имплементирате поединечни компоненти аналогно коло. Сите микроциркули на ова семејство работат со истиот команден систем, повеќето од нив се спроведуваат во идентични случаи со појавување пинаут(нумерирање на нозете за телото). Ова ви овозможува да користите микроциркути од различни производители (како што се Intel, Dallas, Atmel, Philips итн.) за развиениот уред. без преработка Шематски дијаграмуреди и програми.

Слика 1. Блок-дијаграм на контролерот K1830BE751

Блок-дијаграмот на контролерот е претставен на слика 1. и се состои од следните главни функционални единици: контролна единица, аритметичко-логичка единица, единица за тајмер/бројач, сериски интерфејс и единица за прекин, програмски бројач, податочна меморија и програмска меморија. Двонасочната комуникација се врши со помош на внатрешна 8-битна магистрала за податоци. Ајде внимателно да ја разгледаме целта на секој блок. Речиси сите членови на семејството MCS-51 се изградени според оваа шема. Различни микроциркули од ова семејство се разликуваат само во регистри за специјална намена (вклучувајќи го и бројот на порти). Команден систем сите контролорисемејството MCS-51 содржи 111 основни командисо формат од 1, 2 или 3 бајти и не се менува при движење од еден чип на друг. Ова обезбедува одлична преносливост на програмата од еден чип до друг.

Единица за контрола и синхронизација

Единицата за тајминг и контрола е дизајнирана да генерира синхронизирачки и контролни сигнали кои обезбедуваат координација на заедничкото работење на главните компјутерски единици во сите дозволени начини на работа.Контролната единица вклучува:

  • уред за формирање временски интервали,
  • влезно-излезна логика,
  • команден регистар
  • регистар за управување со енергија,
  • команден декодер, компјутерска логика за контрола.

Уред за формирање временски интервалидизајниран за генерирање и издавање на внатрешни такт сигнали на фази, часовници и циклуси. Бројот на машински циклуси го одредува времетраењето на инструкциите. Речиси сите компјутерски команди се извршуваат во еден или два машински циклуси, освен инструкциите за множење и делење, чие времетраење е четири машински циклуси. Да ја означиме фреквенцијата на главниот осцилатор со F g. Тогаш времетраењето на машинскиот циклус е еднакво на 12/F g или е 12 периоди на сигналот на главниот осцилатор. I/O логиката е дизајнирана да прима и излегува сигнали кои обезбедуваат размена на информации со надворешни уреди преку влезно/излезни порти P0-P3.

Регистар на командидизајниран за снимање и складирање на 8-битниот оперативен код на командата што се извршува. Оперативниот код со помош на команди и компјутерска контролна логика се претвора во микропрограма за извршување на командата.

Регистар за контрола на побарувачката (PCON) ви овозможува да го стопирате микроконтролерот за да ја намалите потрошувачката на енергија и да го намалите нивото на пречки од микроконтролерот. Уште поголемо намалување на потрошувачката на енергија и пречки може да се постигне со запирање на главниот осцилатор на микроконтролерот. Ова може да се постигне со префрлување на битовите на регистарот за контрола на потрошувачката на PCON. За опцијата за производство n-MOS (серијата 1816 или странски чипови кои немаат „c“ во средината на нивното име), регистарот за контрола на потрошувачката PCON содржи само еден бит што ја контролира брзината на бауд на сериската порта SMOD, и нема контролни битови за потрошувачката на енергија.

Заедно со написот „Архитектура на микроконтролери MCS-51“ прочитајте:


http://site/MCS51/tablms.php


http://site/MCS51/SysInstr.php


http://site/MCS51/port.php

Во моментов, различни компании произведуваат многу модификации и аналози на ова семејство, како од Intel, така и од други производители, брзината на часовникот и капацитетот на меморијата се зголемија десет пати и продолжуваат да се зголемуваат. Збирот на модули вградени во LSI исто така се проширува; голем број модерни модели имаат вграден резидентен ADC со голема брзина до 12, а сега може да има повеќе битови. Но, семејството MCS51 се заснова на Intel LSI 8051, 80С51, 8751, 87С51, 8031, 80С31, чии први примероци беа објавени во 1980 година.

Микроконтролерите од семејството MCS51 се направени со користење на висококвалитетна n-MOS технологија (серија 8ХХХ, аналогна - серија 1816 во Русија и Белорусија) и технологија k-MOS (серија 8ХСХХ, аналогна - серија 1830). Вториот знак по 8 значи: 0 – нема EPROM на чипот, 7 – 4K EPROM со бришење со ултравиолетови. Трет знак: 3 – ROM на чип, 5 – ако нема ROM, тогаш има ROM за маска на чипот.

И така, 80С51 е LSI базиран на k-MOS технологија со ROM за маска на чипот, 8031 ​​е n-MOS LSI без програмска меморија (ROM, RPOM) на чип, 8751 е n-MOS LSI со резидент (се наоѓа на чипот) RPOM со ултравиолетово бришење. Понатаму ќе го разгледаме 8751 LSI, правејќи, доколку е потребно, резерви за разликите помеѓу другите кола, наведувајќи ги оние параметри што беа објавени за првите сериски LSI. Доколку е потребно, можете да најдете дополнителни информации за сите модерни модификации во имениците на компаниите и техничката документација.

A. Општи карактеристики и доделување на пиновите

Семејството MCS51 се заснова на пет модификации на MK (со идентични основни карактеристики), чија главна разлика е имплементацијата на програмската меморија и потрошувачката на енергија (види Табела 3.1). Микроконтролерот е осум-битен, т.е. има команди за обработка на осум-битни зборови, има архитектура на Харвард, фреквенцијата на часовникот на основните примероци од семејството е 12 MHz.

Табела 3.1.

Микро кола

Внатрешна програмска меморија, бајти

Тип на програмска меморија

Внатрешна меморија за податоци, бајт

Фреквенција на часовник, MHz

Тековна потрошувачка, mA

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

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

MK 8031 ​​и 80C31 не содржат вградена програма за меморија. Тие, како и претходно опишаните модификации, можат да користат до 64 KB надворешна програмска меморија и ефективно се користат во системи кои бараат значително поголем волумен (од 4 KB на чипот) ROM-програмска меморија.

Секој MK од семејството содржи резидентна податочна меморија со капацитет од 128 бајти со можност за проширување на вкупната количина на RAM податоци до 64 KB преку употреба на надворешни RAM IC-и.

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

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

    меморија на податоци од 128 бајти;

    четири осумбитни програмабилни I/O порти;

    два 16-битни тајмер/бројачи со повеќе режими;

    Систем за прекинување на авто-векторот со пет вектори и две нивоа на приоритетни контролирани софтвер;

    сериски интерфејс, вклучувајќи универзален дуплекс трансивер способен да работи во четири режими;

    генератор на часовници.

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

    32 регистри за општа намена RON, организирани како четири банки од по осум регистри со имиња R0... R7, изборот на една или друга банка го одредува програмата со поставување на соодветните битови во регистарот за статус на програмата PSW;

    128 знаменца контролирани од софтвер (битен процесор, видете подолу);

    збир на регистри на специјални функции кои контролираат МК елементи. Постојат следниве режими на работа на микроконтролерот:

1). Општо ресетирање. 2) .Нормално функционирање. 3).Режим со ниска потрошувачка на енергија и режим на мирување. 4). Режим на програмирање за резидентен RPOM, доколку е достапен.

Овде ќе се фокусираме на првите два режими на работа, детален опис на составот и работата на MK во сите режими е даден во Додаток P1.

RON и областа на бит процесорот се наоѓаат во адресниот простор на резидентната RAM меморија со адреси од 0 до 80h.

Во горната зона на станбените RAM адреси има специјални функционални регистри (SFR, Special Function Registers). Нивната цел е дадена во табела. 3.2.

Табела 3.2.

Означување

Име

Батерија

Регистар б

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

Покажувач на магацини

Покажувач на податоци. 2 бајти:

Низок бајт

Висок бајт

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

Регистар за овозможување прекини

Регистар на тајмер/режим на бројач

Регистар на тајмер/контра контрола

Тајмер/бројач 0. Висок бајт

Тајмер/бројач 0. Низок бајт

Тајмер/бројач 1. Висок бајт

Тајмер/бројач 1. низок бајт

Контрола на сериска порта

Сериски тампон

Управување со потрошувачката

* - регистри, дозволувајќи битно обраќање

Да ги погледнеме накратко функциите на регистрите SFR прикажани во Табела 3.2.

Батерија ACC - акумулаторски регистар. Команди дизајнирани да работат

вие со батеријата, користете го мнемоникот „А“, на пример, MOV А, P2 . Менемониката ACC се користи, на пример, кога битови се адресираат акумулатор. Така, симболичното име на петтиот бит од акумулаторот при користење на асемблерот A5M51 ќе биде како што следува: ACC. 5. .

Регистрирајте се ВО . Се користи за време на операциите за множење и делење. За други инструкции, регистарот Б може да се третира како дополнителен регистар во реално време.

Регистрирајте се држава програми P.S.W. содржи информации за состојбата на програмата и се инсталира делумно автоматски врз основа на резултатот од извршената операција, а делумно од корисникот. Ознаката и целта на битовите на регистарот се дадени во табелите 3.3 и 3.4, соодветно.

Табела 3.3.

Означување

Табела 3.4.

Означување

Доделување битови

Бит пристап

Носете знаме. Промени во текот на извршувањето на низа аритметички и логички инструкции.

Хардвер или софтвер

Дополнително знаме за носење. Поставете/исчистивте во хардвер за време на инструкциите за собирање или одземање за да означите носење или позајмување во битот 3 кога ќе се генерира најмалку значајното грицкање на резултатот (D0-D3).

Хардвер или софтвер

Знаме 0. Дефинирано знаме на корисникот.

Програмски

Програмски

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

Програмски

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

Знаме за прелевање. Поставување или бришење со хардвер за време на извршувањето на аритметички инструкции за да се покаже состојба на прелевање

Хардвер или софтвер

Резервни. Содржи активирач што може да се запише и може да се чита што може да се користи

Паритет малку. Ресетирање на хардверот или подесување на секој инструкциски циклус за да покаже парен или непарен број на битови за батеријата во состојба „1“.

Хардвер или софтвер

Покажувач магацинот СП - 8-битен регистар чија содржина се зголемува пред да се напишат податоци во магацинот кога ќе се извршат упатства за притисок и повик. При почетното ресетирање, покажувачот на магацинот е поставен на 07H и областа на стек во податочната RAM меморија започнува на адресата 08H. Доколку е потребно, со отфрлање на покажувачот на стек, областа на стекот може да се наоѓа каде било во внатрешната RAM меморија на податоците на микроконтролерот.

Покажувач податоци DPTR се состои од висок бајт (DPH) и низок бајт

(DPL). Содржи 16-битна адреса при пристап до надворешна меморија. Може да се користи

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

Порт0 - Порц. Посебни битови од регистрите на специјалните функции 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 Е.А.

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

Кога функционира, MC обезбедува:

    минималното време на извршување за командите за собирање е 1 μs;

    хардверско множење и делење со минимално време на извршување од 4 μs.

MK обезбедува можност за поставување на фреквенцијата на внатрешниот осцилатор користејќи кварц, LC синџир или надворешен осцилатор.

Проширениот инструкциски систем обезбедува адресирање на бајти и битови, бинарна и бинарна децимална аритметика, индикација за прелевање и одредување парни/непарни и можност за имплементација на логички процесор.

Најважната и најпрепознатлива карактеристика на архитектурата на семејството MCS51 е тоа што ALU може да манипулира со еднобитни податоци покрај извршувањето на операциите на 8-битни типови на податоци. Поединечни битови достапни за софтвер може да се постават, исчистат или заменат со нивно дополнување, може да се препратат, проверуваат и

Сл.3.2. Надворешни иглички

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

се користи во логички пресметки. Со оглед на тоа што поддршката за едноставни типови податоци (ако е достапна)

Иако сегашниот тренд кон подолги должини на зборови може да изгледа како чекор наназад на прв поглед, овој квалитет го прави семејството на микроконтролери MCS51 особено погодни за апликации базирани на контролери. Оперативните алгоритми на вториот претпоставуваат присуство на влезни и излезни Булови променливи, кои тешко се имплементираат со користење на стандардни микропроцесори. Сите овие својства колективно се нарекуваат Булова процесор од семејството MCS51. Овој моќен ALU го прави семејството на микроконтролери MCS51 погодни и за апликации за контрола во реално време и за алгоритми кои бараат податоци.

Дијаграмот на колото на микроконтролерот е прикажан на сл. 3.2. Во основната верзија, тој е спакуван во 40-пински DIP пакет. Ајде да ја разгледаме целта на игличките.

Да започнеме со игличките за напојување «0 ВО" И „5 ВО" , преку која добива основна исхрана. Тековната потрошувачка е дадена во Табела. 3.1.

Заклучок „РСТ“ - ресетирање на микроконтролерот. Кога на оваа игла се применува активно високо ниво, на Мод општо ресетирање И МК ги извршува следниве активности:

Го поставува бројачот на програмата за компјутер и сите регистри на специјални функции, освен бравите на портите P0-P3, покажувачот на стекот SP и регистарот SBUF, на нула;

    Покажувачот на магацинот ја зема вредноста еднаква на 07H;

    ги оневозможува сите извори на прекини, тајмер-бројач и сериски

    избира BANK 0 RAM, подготвува порти P0-RZ за примање податоци и одредување

споделува ALE и PME пинови како влезови за надворешно тактирање;

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

      Регистарот SBUF е поставен на случајни вредности.

      Ги поставува бравите на пристаништата P0-PZ на "1".

Состојбите на регистрите на микроконтролерот по ресетирањето се прикажани во Табела 3.5.

Табела 3.5.

Информации

Неизвесно

0ххх0000V за k-mos 0xxxxxxxb за n-mos

RST PIN исто така има алтернативна функција. Резервната енергија се испорачува преку него за да се задржи содржината на RAM меморијата на микроконтролерот непроменета кога главната ќе се отстрани.

заклучоци BQ1, BQ2 се наменети за поврзување на кварцен резонатор кој ја одредува часовната фреквенција на МК.

Заклучок ЕА` (Е внатрешен А фустан надворешен адреса) - дизајниран да го активира режимот на читање контролни шифри од надворешната програмска меморија кога на овој пин се применува активно ниско ниво. Излезот има алтернативна намена (функција). Се напојува со програмски напон од RPOM во режим на програмирање.

Заклучок PME (П рограм М еморија Е може дозвола меморија програми) - е дизајниран да го контролира циклусот на читање од програмската меморија и автоматски се активира од МК во секој машински циклус.

Заклучок АЛЕ (А фустан Л должина Е може дозвола помлади адреси) го строби излезот од делот од адресата со низок редослед преку портата P0. Излезот се користи и при програмирање на RPOM, додека пулсот на строб за процесот на програмирање е доставен до него.

MK содржи четири групи на порти: P0, P1, P2 и P3. Ова се преостанатите 40 пинови на микроконтролерот. Овие порти можат да служат за бит-по-бит внесување и излез на информации, но дополнително, секоја од нив има своја специјализација. Генерализиран функционален дијаграм на пристаништето е прикажан на сл. 3.3. Приклучокот содржи FET излезни прекинувачи поврзани со пинот, функциски прекинувач, брава за флип-флоп D и контролна логика. На бравата на внатрешната магистрала на МК може да се запише единица или нула. Оваа информација се испраќа преку функцискиот прекинувач до излезните прекинувачи и излезот на МК. Во една состојба, двата транзистори N и N1 се затворени, но N2 е отворен. Во нулта состојба се отвора N-

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

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

Од внатрешно

Контролна брава

Функциски прекинувач

Vcc

Викенд

единица. Кога е активирана линијата „за читање бравата“, се појавува излезот од ќелијата „И“ на која е поврзана оваа линија.

нејзините гуми MK D Q

Напиши за да се заклучи C Q

Прочитајте ја бравата

Пристаниште игла

Состојбата на бравата се пренесува до внатрешната магистрала на MC кога е активирана

„Излез за читање“ - состојбата на надворешниот игла на портата.

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

I/O Надвор од ова пристаниште

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

Ориз. 3.3. Функционален дијаграм на портата за микроконтролер

податоци за проширување на програмската меморија и податочната меморија

микроконтролер. Кога се пристапува до надворешната програмска меморија или кога се извршува команда за пристап до надворешната меморија за податоци, делот од адресата со низок ред (A0...A7) се поставува на пиновите на портот, кој е затворен високо на пинот ALE. Потоа, при запишување податоци во меморија, снимените информации од внатрешната магистрала на МК се испраќаат до пиновите на P0 портот. Во операциите за читање, напротив, информациите од пиновите на пристаништето се испраќаат до внатрешната магистрала. Карактеристика на пристаништето P0 е отсуството на транзистор N2 за „повлекување“, кој обезбедува напојување на излезот. Кога пишувате на бравата на портата на единицата, таа едноставно се пренесува во состојба со висока импеданса, што е неопходно за нормално функционирање на магистралата за податоци. Доколку е неопходно да се напојуваат какви било надворешни уреди преку излезот, треба да се обезбедат надворешни отпорници од струјните кола до излезот на приклучокот.

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

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

Пристаниште P3 – универзална двонасочна влезна/излезна порта, од која секој бит обезбедува имплементација на различни алтернативни функции. Во овој случај, алтернативните функции се имплементираат само ако се запишани на бравите на пиновите на пристаништето; во спротивно, извршувањето на алтернативните функции е блокирано. Дозволете ни да ги наведеме одделно за секој бит:

P3.0 RxD (Рад е Xвнатрешен Дјадеше, читаше надворешни податоци) – влез на вградениот сериски трансивер.

P3.1 TxD (Тда е Xвнатрешен Дјаделе, пренесуваат надворешни податоци) – излез од вградениот сериски трансивер.

P3.2 ИНТ0` (ИНТеруптира, прекинува) – влез за надворешен прекин 0.

P3.3 ИНТ1` – влез за надворешен прекин 1.

P3.4 С/T0 – нула вграден влез на тајмер/бројач.

P3.5 C/T1 – внесување на првиот вграден тајмер/бројач.

P3.6 WR` (Вобред, запишување) – излез за контролирање на циклусот на запишување во податочната меморија.

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)

внесете излез

Општ сигнал за ресетирање. Резервна излезна моќност на RAM меморијата од надворешен извор (за 1816 година)

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

внесете излез

Сериски податоци за приемник - RxD

Сериски податоци на предавателот - TxD

Влез за надворешен прекин 0-INT0`

Влез за надворешен прекин 1-INT1`

Влез на тајмер/бројач 0: - T0

Влез на тајмер/бројач 1: - T1

Излез на строб сигнал при пишување во надворешна меморија за податоци: - WR`

Излез на строб сигнал при читање од надворешна меморија за податоци – RD`

Кабли за поврзување на кварцен резонатор.

излез влез

Општ заклучок

8-битна двонасочна порта P2. Адреса A8-A15 излез во режим на надворешна меморија. Во режимот за внатрешна проверка на ROM, пиновите P2.0 - P2.6 се користат како влез на адресите A8-A14. Пин P2.7 - дозвола за читање ROM.

внесете излез

Резолуција на програмска меморија

Фиксацијата на адресата овозможува излезен сигнал. При програмирање на RPOM сигналот: PROG

внесете излез

Блокирање на работата со внатрешна меморија. При програмирање на RPOM се дава UPR сигнал

внесете излез

8-битна двонасочна порта P0. Адреса/податочна магистрала за работа со надворешна меморија. Излез на податоци D7-D0 во режим на тестирање внатрешен ROM (RPM).

внесете излез

Излезна енергија од извор на напон +5V

ПЛАН ЗА ПРЕДАВАЊЕ

1. Вовед

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

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

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

5. Инструкции за скокање

1. Вовед

Команден систем MCS-51поддржува единствен сет на инструкции, кој е дизајниран да извршува 8-битни алгоритми за контрола на активаторот. Можно е да се користат брзи методи за адресирање на внатрешната RAM меморија и извршување на бит операции на мали структури на податоци. Постои обемен систем за адресирање на еднобитни променливи како независен тип на податоци, кој овозможува користење на поединечни битови во логичките и контролните команди на Буловата алгебра.

Режими на адресирање : множество на команди MCS-51ги поддржува следните начини на адресирање. Директно обраќање: Операндот се одредува со 8-битната адреса во инструкцијата. Директното адресирање се користи само за ниската половина од внатрешната меморија за податоци и регистрите СФР. Индиректно адресирање: Инструкцијата се однесува на регистар кој ја содржи адресата на операндот. Овој типадресирањето се користи за надворешна и внатрешна RAM меморија. Регистрите може да се користат за одредување 8-битни адреси R0И R1избрана регистерска банка или покажувач на стек СП. За 16-битно адресирање се користи само регистарот за покажувач на податоци DPTR.

Регистрирајте инструкции : регистри R0-R7тековната регистерска банка може да се адресира преку специфични инструкции кои содржат 3-битно поле кое го означува бројот на регистарот во самата инструкција. Во овој случај, соодветното поле за адреса недостасува од командата. Операции со помош на специјални регистри: некои инструкции користат индивидуални регистри (на пример, операции на акумулатор, DPTRитн.). Во овој случај, адресата на операндот воопшто не е наведена во командата. Тоа е однапред одредено со оперативниот код.

Непосредни константи : константата може да се лоцира директно во командата по оптичкиот код.

Адресирање на индекси : Индексното адресирање може да се користи само за пристап до програмската меморија и само во режим за читање. Во овој режим, се гледаат табелите во програмската меморија. 16-битен регистар ( DPTRили програмски бројач) ја означува основната адреса на саканата табела, а акумулаторот ја означува влезната точка во неа.

Комплет на командиима 42 командни мнемоници за да ги специфицира 33-те функции на овој систем. Синтаксата на повеќето инструкции за асемблерски јазици се состои од функција мнемоник проследена со операнди кои укажуваат на методите за адресирање и типовите на податоци. Различни видовиподатоците или режимите на адресирање се одредуваат од множеството операнди, а не од промените во мнемониката.

Командниот систем може да се подели во пет групи: аритметички инструкции; логички команди; команди за пренос на податоци; команди на бит процесорот; разгранување и контролни команди за пренос. Нотациите и симболите што се користат во командниот систем се дадени подолу.

Табела. Нотации и симболи кои се користат во командниот систем

Ознака, симбол

Цел

Батерија

Регистри на моментално избраната регистарска банка

Бројот на вчитаниот регистар наведен во командата

директно

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

Индиректно адресибилна 8-битна внатрешна податочна RAM ќелија

8-битен директноподатоци вклучени во оперативниот код (OPC)

податоци H

Најзначајните битови (15–8) од непосредните 16-битни податоци

податоциL

Најмалку значајни битови (7–0) од непосредни 16-битни податоци

11-битна одредишна адреса

addrL

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

8-битен потпишан офсет бајт

Директно адресибилен бит чија адреса содржи COP лоциран во внатрешната RAM меморија или специјалниот функционален регистар SFR

а15, а14...а0

Битови за адреса на дестинација

Содржина на елементот X

Содржина на адресата зачувана во елементот X

Бит М од елементот X


+

*
И
ИЛИ
XOR
/X

Операции:
додавање
одземање
множење
поделби
логичко множење (И операција)
логичко собирање (ИЛИ операција)
модул за додавање 2 (ексклузивен ИЛИ)
инверзија на елементот X

Функциските мнемоници се уникатно поврзани со специфични комбинации на методи за адресирање и типови на податоци. Вкупно, има 111 такви комбинации можни во командниот систем.

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

Како стр пример аритметичка инструкција, операцијата за собирање може да се изврши со една од следните команди.

ДОДАЈА,7 Ф 16 - Додадете го бројот 7 на содржината на регистарот a F 16 и зачувај го резултатот во регистарот А;

ДОДАЈА,@ Р0 - Додадете на содржината на регистрирање на бројот чија адреса (@ – комерцијални на ) се чува во регистарР 0 (индиректно адресирање) и чувајте го резултатот во регистарот А;

ДОДАЈ A, R7- Додадете ја содржината на регистарот А на содржината на регистаротР 7 и зачувај го резултатот во регистарот А;

ДОДАЈ А, #127- Додадете на содржината на регистрирај број чија адреса за складирање е 127 ( # - симбол на број) и зачувајте го резултатот во регистарот Т- повторно А.

Сите аритметички упатства се извршуваат во еден машински циклус со исклучок на упатството INC DPTR(поместување на покажувачот на податоци DPTRдо следниот бајт), за кои се потребни два машински циклуси, како и операции за множење и делење извршени во 4 машински циклуси. Секој бајт во внатрешната меморија за податоци може да се зголемува и намалува без користење на батерија.

Инструкции MUL ABврши множење (множење) на податоците во акумулаторот со податоците во регистарот Б, ставајќи го производот во регистрите A (ниска половина) и B (висока половина).

Инструкции DIV ABја дели (подели) содржината на акумулаторот со вредноста во регистарот B, оставајќи го остатокот во B и количникот во акумулаторот.

Инструкции ДА Ае наменет за бинарни децимални аритметички операции (аритметички операции на броеви претставени во бинарен децимален код). Не го претвора бинарниот број во BCD, но го дава точниот резултат само кога се собираат два бинарни децимални броеви.

Пример логичка команда: Логичка операција И може да се изврши со една од следниве команди:

ANLА,7 Ф 16 – логично множење на содржината на регистарот А со бројот 7 F 16 а резултатот е зачуван во регистарот А;

ANLА,@ Р1 – логично множење на содржината на регистарот А со бројот чија адреса е зачувана во регистаротР 1 (индиректно адресирање) и зачувај го резултатот во регистарот А;

ANL A, R6– логично множење на содржината на регистарот А со содржината на регистаротР 6, и зачувај го резултатот во регистарот А;

ANL A,#53 – логично множење на содржината на регистарот А со број чија адреса на ќелија за складирање е 53 16, а резултатот е зачуван во регистарот А.

Сите логички операции на содржината на акумулаторот се изведуваат во еден машински циклус, а остатокот - во два. Логичките операции може да се извршат на која било од пониските 128 бајти внатрешна меморија за податоци или на кој било регистар СФР (специјална функција се регистрира) во режим на директно адресирање без користење на батерија.

Операциите за ротирачко менување RL A, RLC A итн. ја поместуваат содржината на акумулаторот еден бит десно или лево. Во случај на лево циклично поместување, најмалку значајниот бит се преместува на најзначајната позиција. Во случај на десно циклично поместување, се случува спротивното.

Операција SWAP Аги разменува ниските и високите тетради во батеријата.

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

Тим MOV dest,srcви овозможува да пренесувате податоци помеѓу внатрешните ќелии на RAM меморијата или областите за специјални функционални регистри СФРбез користење на батерија. Во овој случај, работата со горната половина од внатрешната RAM меморија може да се изврши само во режим на индиректно адресирање и пристап до регистри СФР– само во режим на директно адресирање.

Во сите микроциркули MCS-51Стакот се става директно во резидентната меморија за податоци и расте нагоре. Инструкции ПУШпрво ја зголемува вредноста во регистарот на покажувачи на стек СП, а потоа запишува бајт податоци на оџакот. Тимови ПУШИ ПОПсе користат само во режим на директно адресирање (пишување или враќање на бајт), но оџакот е секогаш достапен кога индиректно се адресира преку регистар СП. Така, оџакот може да ги користи и најгорните 128 бајти податочна меморија. Истите размислувања ја исклучуваат можноста за користење инструкции за стек за адресирање на регистри СФР.

Инструкциите за пренос на податоци вклучуваат 16-битна операција за пренос MOV DPTR, #податоци16, кој се користи за иницијализирање на регистарот за покажувач на податоци DPTRкога гледате табели во програмската меморија или за пристап до надворешна меморија за податоци.

Операција XCH A, бајтсе користи за размена на податоци помеѓу акумулаторот и адресираниот бајт. Тим XCHD A,@Riслично на претходниот, но се изведува само за пониските тетради вклучени во размената на операнди.

За пристап до надворешната меморија на податоци, се користи само индиректно адресирање. Во случај на адреси од еден бајт, се користат регистри R0или R1тековна регистерска банка, а за 16-битен – регистар на покажувач на податоци DPTR. Со кој било метод за пристап до надворешна меморија на податоци, батеријата ја игра улогата на извор или примач на информации.

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

MOVC A,@A+ DPTR ;

MOVC A,@A+ компјутер .

Содржината на регистарот за покажувач на податоци се користи како основна адреса на табелата DPTRили компјутер(програмски бројач), а поместувањето се зема од А. Овие инструкции се користат исклучиво за читање податоци од програмската меморија, но не и за пишување во неа.

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

Микроциркули MCS-51содржат „Бул“ процесор. Внатрешната RAM меморија има 128 директно адресибилни битови. Специјален функционален регистарски простор СФРможе да поддржува и полиња до 128 бита. Бит-инструкциите вршат условни гранки, преноси, ресетирање, инверзии, И и ИЛИ операции.Сите наведени битови се достапни во режим на директно адресирање.

Носете малку CFво посебната функција регистрирајте „програмски статус збор“ P.S.W." се користи како еднобитен акумулатор за Булова процесор.

5. Инструкции за скокање

Адресите на операциите за прескокнување се означени на асемблерски јазик со ознака или со вистинска вредност во програмскиот мемориски простор. Условните адреси на гранките се составуваат во релативно поместување - бајт на знак додаден на програмскиот бројач компјутерАко е исполнета состојбата на транзиција. Границите на таквите транзиции лежат помеѓу минус 128 и 127 во однос на првиот бајт што следи по инструкцијата. Во специјалната функција регистрирајте го „програмскиот статус збор“ P.S.W.„Нема нула знаме, па упатствата Џ.ЗИ ЈНЗпроверете го условот „еднаков на нула“ како тестирање на податоците во акумулаторот.

Постојат три типа на команда за безусловен скок: СЈМП, ЗЈМПИ ЗНМП- Адреси на дестинацијата што се разликуваат во формат. Инструкции СЈМПја кодира адресата како релативно поместување и зема два бајта. Растојанието на прескокнување е ограничено на опсегот од минус 128 до 127 бајти во однос на следната инструкција СЈМП.

Во упатствата ЗЈМПОдредишната адреса се користи како 16-битна константа. Должината на командата е три бајти. Одредишната адреса може да се наоѓа каде било во програмската меморија.

Тим ЗНМПкористи 11-битна адреса константа. Командата се состои од два бајти. Кога ќе се изврши оваа инструкција, долните 11 бита од бројачот на адреси се заменуваат со 11-битната адреса од инструкцијата. Петте најзначајни битови од програмскиот бројач компјутерОстани непроменет. Така, транзицијата може да се направи во блок од 2K-бајти во кој се наоѓа инструкцијата што ја следи инструкцијата ЗНМП.

Постојат два типа на командни повици до потпрограма: LCALLИ ПОВИК. Инструкции LCALLја користи 16-битната адреса на повиканата потпрограма. Во овој случај, потпрограмата може да се наоѓа каде било во програмската меморија. Инструкции ПОВИККористете 11-битна под-рутинска адреса. Во овој случај, повиканата рутина мора да се наоѓа во еден блок од 2K бајти со следнава инструкција ПОВИК. Двете верзии на инструкцијата ја туркаат адресата на следната инструкција на оџакот и ја вчитуваат во програмскиот бројач компјутер соодветната нова вредност.

Субрутината завршува со упатството РЕТ, што ви овозможува да се вратите на инструкцијата следејќи ја командата ПОВИК. Оваа инструкција ја исфрла повратната адреса од оџакот и ја вчитува во програмскиот бројач. компјутер . Инструкции РЕТИсе користи за враќање од рутините за прекинување. Единствената разлика РЕТИод РЕТДали е тоа РЕТИго известува системот дека е завршена обработката на прекините. Ако во моментот на извршување РЕТИнема други прекини, тогаш е идентично РЕТ.

Инструкции ДЈНЗдизајниран за контрола на циклусите. Да се ​​изврши јамка Н откако ќе треба да вчитате бајт со вредност во бројачот Н и затворете го телото на јамката со командата ДЈНЗ, што укажува на почетокот на циклусот.

Тим CJNEги споредува неговите два операнди како неозначени цели броеви и скока до адресата наведена таму ако операндите што се споредуваат не се еднакви. Ако првиот операнд е помал од вториот, тогаш битот за носење CF е поставено на „1“.

Сите инструкции во составена форма зафаќаат 1, 2 или 3 бајти.

АРХИТЕКТУРА НА СЕМЕЈСТВО НА МИКРОКОНТРОЛЕРИMCS-51

Белешки за предавања за курсеви

„Микропроцесори во контролните системи“, „Микропроцесорска технологија“

„Микропроцесорски алатки и системи“

за студенти од сите форми на студиски специјалности

072000 – Стандардизација и сертификација

210200 – Автоматизација на технолошките процеси

230104 – Компјутерски потпомогнати системи за дизајнирање

Тамбов 2005 година

ВОВЕД.. 3

1. СТРУКТУРА НА МИКРОКОНТРОЛЕРОТ INTEL 8051. 3

1.1. Организација на меморијата. 5

1.2. Аритметичко-логички уред. 6

1.3. Резидентна меморија за програми и податоци. 7

1.4. Акумулатори и регистри за општа намена. 8

1.5. Регистарот на зборови за статус на програмата и неговите знаменца. 9

1.6. Покажувачки регистри. 10

1.7. Специјални регистри на функции. единаесет

1.8. Уред за контрола и синхронизација. единаесет

1.9. Паралелни влезни/излезни порти за информации. 12

1.10. Тајмери/бројачи. 13

1.11. Сериска порта. 18

1.11.1. Регистрирајте SBUF.. 18

1.11.2. Режими на работа со сериска порта. 18

1.11.3. Регистрирај се SCON.. 19

1.11.4. Брзина на прием/пренос. 21

1.12. Систем за прекини. 22

2. КОМАНДЕН СИСТЕМ НА МИКРОКОНТРОЛЕРОТ INTEL 8051. 26

2.1. Генерални информации. 26

2.1.1. Видови наредби. 27

2.1.2. Типови на операнди. 28

2.1.3. Методи за адресирање на податоци. триесет

2.1.4. Знамиња на резултати. 31

2.1.5. Симболичко обраќање. 32

2.2. Команди за пренос на податоци. 33

2.2.1. Структура на информативни врски. 33

2.2.2. Пристап до батеријата. 33

2.2.3. Пристап до надворешна меморија за податоци. 34

2.2.4. Пристап до програмската меморија... 34


2.2.5. Пристап до магацинот. 35

2.3. Аритметички операции. 35

2.4. Логички операции. 39

2.5. Контролирајте ги командите за пренос. 43

2.5.1. Долга транзиција. 43

2.5.2. Апсолутна транзиција. 43

2.5.3. Релативна транзиција. 44

2.5.4. Индиректен трансфер. 44

2.5.5. Условни скокови.. 44

2.5.6. Потпрограми.. 47

2.6. Операции со битови. 48

Тест прашања... 49

ЛИТЕРАТУРА.. 50

Додаток INTEL 8051 КОМАНДЕН СИСТЕМ 51

ВОВЕД

Од 80-тите години на 20 век, се појави независна класа во технологијата на микропроцесори интегрирани кола– микроконтролери со еден чип кои се дизајнирани за интеграција во уреди за различни намени. Тие се разликуваат од класата на микропроцесори со еден чип со присуство на внатрешна меморија и развиени средства за интеракција со надворешни уреди.

Широко се користат 8-битни микроконтролери со еден чип од семејството MCS-51. Ова семејство е формирано врз основа на микроконтролерот Intel 8051, кој се здоби со голема популарност меѓу развивачите на микропроцесорски контролни системи поради неговата добро дизајнирана архитектура. Архитектурата на микроконтролерот е збир на внатрешни и надворешни софтверски пристапни хардверски ресурси и командни системи.

Последователно, Интел објави околу 50 модели базирани на оперативното јадро на микроконтролерот Intel 8051. Во исто време, многу други компании, како што се Atmel, Philips, почнаа да произведуваат свои микроконтролери развиени во стандардот MCS-51. Исто така постои домашен аналогМикроконтролер Intel 8051 - чип K1816BE51.

2. СТРУКТУРА НА МИКРОКОНТРОЛЕРОТ INTEL 8051

Микроконтролерот Intel 8051 се заснова на n-MOS технологија на високо ниво. Неговите главни карактеристики се како што следува:

· осум-битен централен процесор оптимизиран за имплементација на контролни функции;

· вграден генератор на часовник (максимална фреквенција 12 MHz);

· Адресен простор на програмската меморија - 64 KB;

· Адресен простор во меморијата на податоци - 64 KB;

· внатрешна програмска меморија - 4 KB;

· внатрешна меморија за податоци - 128 бајти;

· дополнителни можности за извршување операции на Булова алгебра (битни операции);

· 2 шеснаесет-битни мултифункционални тајмери/бројачи;

· целосно дуплекс асинхрон трансивер (сериска порта);

· векторски прекинувачки систем со две нивоа на приоритети и пет извори на настани.

Слика 1 - Блок дијаграм на микроконтролерот Intel 8051

Основата на блок дијаграмот (сл. 1) е формирана од внатрешна двонасочна 8-битна магистрала, која меѓусебно ги поврзува главните јазли и уреди на микроконтролерот: резидентна програмска меморија (RPM), резидентна меморија за податоци (RDM), аритметичко-логичка единица (ALU), регистрирајте ги специјалните функции на единицата, контролната единица (CU), паралелните I/O порти (P0-P3), како и програмабилните тајмери ​​и сериската порта.

2.1. Организација на меморијата

Овој микроконтролер има вградена (резидентна) и надворешна меморија на програми и податоци. Резидентна програмска меморија (RPM) има капацитет од 4 KB, а резидентна меморија за податоци (RDM) има капацитет од 128 бајти.


Во зависност од модификацијата на микроконтролерот, RPM се имплементира во форма на ROM за маска, еднократен програмабилен или репрограмабилен ROM.

Доколку е потребно, корисникот може да ја прошири програмската меморија со инсталирање на надворешен ROM. Пристапот до внатрешен или надворешен ROM се одредува според вредноста на сигналот на пинот EA (надворешен пристап):

EA=VCC (напон на напојување) - пристап до внатрешен ROM;

EA=VSS (земјен потенцијал) - пристап до надворешен ROM.

Надворешната програма и меморијата на податоци може да бидат по 64 KB и да се адресираат со помош на портите P0 и P2. Слика 2 ја прикажува мемориската картичка Intel 8051.

Слика 2 - Организација на меморијата на Intel 8051

Строба за читање на надворешен ROM - (Program Store Enable) се генерира при пристап до надворешната програмска меморија и е неактивна додека пристапувате до ROM-от што се наоѓа на чипот.

Областа на пониски адреси на програмската меморија (сл. 3) се користи од системот за прекини. Архитектурата на чипови INTEL 8051 обезбедува поддршка за пет извори на прекини. Адресите на кои се пренесува контролата на прекини се нарекуваат вектори на прекини.

Слика 3 - Карта на долната програмска мемориска област

2.2. Аритметичка логичка единица

8-битната аритметичка логичка единица (ALU) може да врши аритметички операции собирање, одземање, множење и делење; логички операции И, ИЛИ, ексклузивни ИЛИ, како и операции на циклично поместување, ресетирање, инверзија итн. Регистри T1 и T2 недостапни за софтвер, наменети за привремено складирање на операнди, коло за децимална корекција (DCU) и коло за генерирање карактеристики се поврзани со резултатот од работењето на влезовите (PSW).

Едноставната операција за собирање се користи во ALU за да се зголеми содржината на регистрите, да се унапреди регистарот на покажувачот на податоци (RAR) и автоматски да се пресмета следната адреса за резидентна меморија на програмата. Наједноставната операција за одземање се користи во ALU за намалување на регистрите и споредување на променливите.

Наједноставните операции автоматски формираат „тандеми“ за извршување операции како што се, на пример, зголемување на 16-битни регистерски парови. ALU имплементира механизам за каскадно извршување на едноставни операции за имплементација на сложени команди. Така, на пример, при извршување на една од командите за пренос на условна контрола, врз основа на споредбениот резултат во ALU, програмскиот бројач (PC) се зголемува три пати, RDM се чита двапати, се врши аритметичка споредба на две променливи, се формира 16-битна адреса за транзиција и се одлучува дали да се изврши или не транзицијата според програмата. Сите горенаведени операции се изведуваат за само 2 μs.

Важна карактеристика на ALU е неговата способност да работи не само со бајти, туку и со битови. Поединечни битови достапни за софтвер може да се поставуваат, бришат, превртуваат, пренесуваат, тестираат и користат во логички операции. Оваа способност е доста важна, бидејќи за контрола на објектите, често се користат алгоритми кои содржат операции на влезни и излезни Булови променливи, чија имплементација е поврзана со одредени тешкотии со користење на конвенционални микропроцесори.

Така, ALU може да работи со четири типа на информациски објекти: Булова (1 бита), дигитална (4 бита), бајт (8 бита) и адреса (16 бита). ALU врши 51 различна операција за проследување или трансформирање на овие податоци. Бидејќи има 11 начини на адресирање (7 за податоци и 4 за адреси), со комбинирање на операцијата и режимот на адресирање, основниот број од 111 инструкции се проширува на 255 од 256 можни со еден бајт оптички код.

2.3. Резидентна програма и меморија за податоци

Резиденцијалната (на чип) програмска меморија (RPM) и меморијата за податоци (RDM) се физички и логички одвоени, имаат различни механизми за адресирање, работат под контрола на различни сигнали и извршуваат различни функции.

Програмската меморија RPM има капацитет од 4 KB и е дизајнирана да складира команди, константи, контролни зборови за иницијализација, табели за конверзија за влезни и излезни променливи итн. Меморијата има 16-битна адресна магистрала, преку која се обезбедува пристап од Програмски бројач на компјутер или од регистарот.покажувач за податоци (DPTR). DPTR функционира како основен регистар за индиректни програмски скокови или се користи во операции со табели.

Податочната меморија RDM е дизајнирана да складира променливи за време на извршување на апликативна програма, адресибилна е за еден бајт и има капацитет
128 бајти. Покрај тоа, неговиот адресен простор е во непосредна близина на адресите на специјалните функционални регистри, кои се наведени во Табела. 1.

Програмската меморија, како и меморијата на податоци, може да се прошири на
64 KB со поврзување на надворешни чипови.

Табела 1

Блок за регистар на специјална функција

Име

Батерија

Регистар за проширување на акумулатор

Збор за статус на програмата

Регистар на покажувач на магацинот

Регистар за покажувач на податоци

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

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

Регистар на тајмер/режим на бројач

Контрола на тајмер/регистар на статус

Тајмер 0 (висок бајт)

Тајмер 0 (низок бајт)

Тајмер 1 (висок бајт)

Тајмер 1 (низок бајт)

Регистар за контрола на трансивер

Тампон на трансиверот

Регистар за контрола на моќноста

Забелешка.Регистрите чии имиња се означени со (*) дозволуваат да се адресираат поединечни битови.

2.4. Акумулатор и општи регистри

Акумулаторот (А) е изворот на операндот и локацијата на резултатот при извршување на аритметички, логички операции и голем број операции за пренос на податоци. Дополнително, операциите за смена, проверка на нула, генерирање на знаменце за паритет итн. може да се вршат само со помош на акумулаторот.

Корисникот има на располагање четири банки од 8 регистри за општа намена R0–R7 (сл. 9). Сепак, можно е да се користат регистрите на само една од четирите банки, која е избрана со помош на битот за регистарот PSW.

2.5. Регистар на зборови за статус на програмата и неговите знаменца

Кога се извршуваат многу инструкции во ALU, се генерираат голем број оперативни атрибути (знамиња), кои се запишуваат во регистарот за статус на програмата за збор (PSW). Во табелата 2 дава список на знамиња на PSW, ги дава нивните симболични имиња и ги опишува условите за нивно формирање.

табела 2

Статус на програмата PSW Формат на збор

Име и цел

Носете знаме. Поставување и ресетирање со хардвер или софтвер при вршење аритметички и логички операции

Знаме за помошно носење. Поставување и бришење само со хардвер кога се извршуваат инструкциите за додавање и одземање и се сигнализира носење или позајмување во бит 3

Знаме 0. Програмата може да го постави, исчисти или проверува како знаменце одредено од корисникот.

Избор на регистарска банка. Поставете и ресетирајте со софтвер за да изберете работна банка на регистри (Табела 3)

Знаме за прелевање. Поставување и ресетирање со хардвер при вршење аритметички операции

Не се користи

Знаме на паритет. Поставување и ресетирање со хардвер во секој циклус и го поправа непарниот/парниот број на еден бит во акумулаторот, т.е. врши паритет

Табела 3

Избор на работна регистарска банка

Граници на адреса

Најактивното знаменце на PSW е знамето за носење, кое е вклучено и изменето за време на многу операции, вклучувајќи собирање, одземање и смени. Дополнително, знамето за носење (CY) функционира како „Бул акумулатор“ во инструкциите за манипулирање со битови. Знамето за прелевање (OV) го детектира аритметичкото прелевање во операциите со потпишани цели броеви и овозможува да се користи аритметика во шифрите на комплементот на двајца. АЛУ не ги контролира знаменцата за избор на банки во регистерот (RS0, RS1), нивната вредност е целосно одредена од програмата за апликација и се користи за избор на една од четирите регистерски банки.

Како бајт, регистарот PSW може да се претстави на следниов начин:

Во микропроцесорите чија архитектура се потпира на акумулатор, повеќето инструкции работат на акумулаторот користејќи имплицитно адресирање. Интел 8051 е различен. Иако процесорот е базиран на батерија, тој може да изврши многу команди без негово учество. На пример, податоците може да се пренесат од која било RDM ќелија во кој било регистар, секој регистер може да се вчита со непосреден операнд, итн. Многу логички операции може да се изведат без вклучување на акумулатор. Дополнително, променливите може да се зголемуваат, намалуваат и проверуваат без користење на акумулатор. Знамињата и контролните битови може да се проверат и менуваат на ист начин.

2.6. Покажувачки регистри

8-битниот покажувач на стек (SP) може да адресира која било област RDM. Неговата содржина се зголемува пред податоците да се зачуваат на оџакот за време на инструкциите PUSH и CALL. Содржината на SP се намалува откако ќе се извршат командите POP и RET. Овој метод на адресирање на елементите на стек се нарекува пред-инкремент/пост-намалување. За време на иницијализацијата на микроконтролерот, по сигналот RST, кодот 07H автоматски се вчитува во SP. Ова значи дека доколку апликациската програма не го замени оџакот, првиот податочен елемент на оџакот ќе се наоѓа на локацијата RDM 08H.

Регистарот за покажувач на податоци од два бајти DPTR обично се користи за снимање на 16-битна адреса во операциите за пристап до надворешната меморија. Со команди на микроконтролерот, регистарот за покажувач на податоци може да се користи или како 16-битен регистар или како два независни 8-битни регистри (DPH и DPL).

2.7. Специјални регистри на функции

Регистрите, симболично наречени IP, IE, TMOD, TCON, SCON и PCON, се користат за заклучување и програмски менување на контролните и статусните битови на колото за прекин, тајмерот/бројачот, серискиот трансивер и управувањето со енергијата. Нивната организација ќе биде детално опишана во деловите 1.8-1.12, кога се разгледуваат карактеристиките на микроконтролерот во различни режими.

2.8. Уред за контрола и синхронизација

Кварцниот резонатор поврзан со надворешните пинови на микроконтролерот ја контролира работата на внатрешниот осцилатор, кој пак генерира сигнали за синхронизација. Контролната единица (CU), врз основа на сигналите за синхронизација, генерира машински циклус со фиксно времетраење еднакво на 12 генераторски периоди. Повеќето инструкции за микроконтролерот се извршуваат во еден машински циклус. За некои инструкции кои работат на зборови од 2 бајти или пристапуваат до надворешна меморија, потребни се два машински циклуси за да се завршат. Само инструкциите за делење и множење бараат четири машински циклуси. Врз основа на овие оперативни карактеристики на контролниот уред, се пресметува времето на извршување на апликативните програми.

Во колото на микроконтролерот, инструкциски регистар (IR) е во непосредна близина на контролниот уред. Неговата функција е да го зачува кодот на командата што се извршува.

Влезни и излезни сигнали на уредот за контрола и синхронизација:

1. PSEN – резолуција на програмска меморија,

2. ALE – излезен сигнал за овозможување на фиксација на адреса,

3. PROG – програмски сигнал,

4. EA – блокирање на работата со внатрешна меморија,

5. VPP – програмски напон,

6. RST – општ сигнал за ресетирање,

7. VPD – излезна моќност за резервна копија на меморија од надворешен извор,

8. XTAL – влезови за поврзување кварцен резонатор.

2.9. Паралелни влезно/излезни порти

Сите четири порти (P0-P3) се дизајнирани да внесуваат или излезат информации бајт по бајт. Секоја порта содржи контролиран регистер за брави, влезен бафер и излезен двигател.

Излезните двигатели на портите P0 и P2, како и влезниот бафер на портата P0, се користат при пристап до надворешна меморија. Во овој случај, преку портата P0 во режим на временско мултиплексирање, најпрво се излегува нискиот бајт на адресата, а потоа се издава или прима податочниот бајт. Портата P2 го дава најзначајниот бајт на адресата во случаи кога ширината на адресата е 16 бита.

Сите пинови на портата P3 може да се користат за имплементација на алтернативните функции наведени во табелата. 4. Овие функции може да се овозможат со запишување 1 на соодветните битови од регистерот за брави (P3.0-P3.7) на портата P3.

Табела 4

Алтернативни функции на пристаништето P3

Име и цел

Читање. Активен сигнал на ниско ниво се генерира од хардверот кога се пристапува кон надворешна меморија за податоци

Снимајте. Активен сигнал на ниско ниво се генерира од хардверот кога се пристапува кон надворешна меморија за податоци

Влез со тајмер/бројач 1 или тест влез

Влез со тајмер/бројач 0 или тест влез

Влез за барање за прекин 1. Чувствува сигнал за ниско ниво или исклучен сигнал

Влез за барање за прекин 0. Чувствува сигнал за ниско ниво или исклучен сигнал

Излез на предавателот на сериска порта во режим UART. Излез на часовникот во режим на поместување регистрација

Влез на приемник на сериски порт во режим UART. Внесување/излез на податоци во режим на регистрација на смена

Портата 0 е двонасочна, а портите 1-3 се квази-двонасочни. Секоја порта линија може да се користи независно за влез или излез.

Врз основа на сигналот RST, единиците автоматски се запишуваат во регистрите за заклучување на сите порти, со што се поставуваат за режим на влез.

Сите порти може да се користат за организирање на влез/излез на информации преку двонасочни далноводи. Меѓутоа, портите P0 и P2 не можат да се користат за оваа намена ако системот има надворешна меморија, со која комуникацијата е организирана преку заедничка споделена адресна/податочна магистрала која работи во режим на мултиплексирање на време.

Пристапувањето до влезните/излезни порти е можно со користење на команди кои работат на бајт, индивидуален бит или произволна комбинација на битови. Покрај тоа, во случаи кога портата е и операнд и дестинација на резултатот, контролниот уред автоматски имплементира посебен режим наречен „читај-измени-пишување“. Овој режим на пристап вклучува внесување сигнали не од надворешните пинови на портата, туку од неговиот регистер за брави, што го елиминира неправилното читање на претходно излезените информации. Овој механизам за пристап до пристаништа е имплементиран во командите:




Врв