С 51 тілінде МК порттарын бағдарламалау. MCS–51 микроконтроллерлер: программа моделі, құрылымы, командалары. Портты оқу режимі

MCS-51 негізгі нұсқасы Қысқаша ақпарат. Қазіргі заманғы 8-биттік микроконтроллерлерде (МК) нақты уақыт режимінде басқару ресурстары бар, олар үшін бұрын бөлек микрокомпьютер тақталары түріндегі қымбат көп чипті макеттер пайдаланылды, атап айтқанда:

● жеткілікті жады сыйымдылығы, оның физикалық және логикалық бағдарлама жадына бөлінуі және деректер жады(Гарвард архитектурасы) және басқару алгоритмдерін орындауға бағытталған командалық жүйе;

● микропроцессорлық басқару жүйесінің минималды конфигурациясын жүзеге асыру үшін қажетті барлық құрылғыларды (процессор, ROM, RAM, енгізу/шығару порттары, үзу жүйесі, биттік ақпаратты өңдеу құралдары және т.б.) қамтиды. Өткен ғасырдың 70-жылдарында компания Intelбірқатар ортақ белгілерімен (разрядтық сыйымдылық, командалық жүйе, негізгі функционалды блоктар жиынтығы және т.б.) біріктірілген MCS-48 8-разрядты микроконтроллерлердің отбасы әзірленіп, өнеркәсіптік өндіріске енгізілді. Бұл отбасының негізгі нұсқасы мыналарды қамтиды:

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

● ішкі бағдарлама жады (1/2/4К байт);

● ішкі деректер жады (64/128/256 байт);

● 27 ішкі және 16 сыртқы енгізу/шығару желілеріне дейін;

● бір 8-биттік таймер-санауыш;

● екі сұрау көзі бар бір деңгейлі үзу жүйесі. 1980 жылы сол компания MCS-51 сегіз разрядты микроконтроллерлердің жаңа тобын жасады, ол MCS-48 отбасының архитектурасына сәйкес келеді, бірақ мүмкіндіктері үлкен.

MCS-51 отбасының архитектурасы соншалықты сәтті болды, ол әлі де 8-биттік МК үшін стандарттардың бірі болып табылады. Сондықтан зерттеу объектісі ретінде салыстырмалы түрде қарапайым басқару жүйелерінде кеңінен қолданылатын осы отбасының микроконтроллерлері таңдалды.

MCS-51 тобы үшін әртүрлі бағдарламаларды дайындау құралдары әзірленді (компиляторлар, аппараттық-бағдарламалық қамтамасыз ету эмуляторлары және т.б.) және стандартты жұмыстардың кітапханаларының үлкен саны бар. Отбасы микроконтроллерлердің микросұлбаларының (чип нұсқаларының) әртүрлі модификацияларын қамтиды. Бұл бөлімдегі мақалаларда MCS-51 тобының микроконтроллерлерінің негізгі нұсқасы (8051 микросұлба KP1816BE51 отандық аналогына сәйкес келеді), құрылымдық және функционалдық тұрғысынан және түсіну тұрғысынан ең қарапайым.

Микросұлбалардың келесі сериялары негізгі нұсқамен үйлесімділікті сақтай отырып, одан жақсартылған өндіріс технологиясымен ерекшеленеді, электрлік параметрлер, қосымша жабдық және функционалдылық. Келесі мақалалар MCS-51 микросұлбалар тобының кейінгі модификацияларының құрылымдық және функционалдық ерекшеліктеріне арналған.
MCS-51 жалпыланған құрылымдық схемасы. МК құрамы, оның жалпыланған құрылымдық схемасы суретте көрсетілген. 7.1.1 мыналарды қамтиды:

● 8-бит Орталық Есептеуіш Бөлім CPU тұрады ALU, басқару құрылғылары UUжәне мекенжай генераторы Ф;

● бағдарламаларды сақтауға арналған 4К байт сыйымдылығы бар маска ROM;

● деректерді сақтауға арналған сыйымдылығы 128 байт оперативті жады;

● енгізу үшін төрт бағдарламаланатын P0–P3 порты– ақпаратты шығару;

● блоктау сериялық интерфейсЕкі сымды желі арқылы сыртқы құрылғылармен ақпарат алмасуға арналған BPI;

● нақты уақыт режимін қолдау үшін BT/C таймерлерінің/есептегіштерінің блогы;

● Орындалатын бағдарламалардың үзілістерін ұйымдастыруға арналған BP үзу блогы. Бұл қорлар қалыптасады тұрғынымикроконтроллердің тікелей чипте орналасқан бөлігі. МК жеке функционалды блоктарға тағайындалған және диаграммада көрсетілмеген көптеген регистрлерді қамтиды.

Диаграммада басқару тізбектері де көрсетілмеген. Блоктар арасындағы екі жақты ақпарат алмасу ішкі 8-бит арқылы жүзеге асырылады деректер шинасыШД-8.

Ішкі 16 биттік мекенжай шинасыША-16 Орталық процессорда жасалған адрес ROM (12 адрес биті) және жедел жадқа (8 төменгі ретті бит) шығарылады.

Сыртқы жадты пайдаланған кезде мекенжайдың ең аз маңызды 8 биттері P0 портына және 3 немесе 8 ең маңызды биттері P2 портына шығарылады.

Интерфейсті логикалық түрде кеңейту үшін порт желілерінің функцияларын біріктіру қолданылады. Мысал ретінде суретте. 7.1.1 нүктелі сызық орындалатын P3 портының сызықтарын көрсетеді баламабасқару сигналдарын беру функциялары, олардың мақсаты төменде талқыланады. Ішкі тактілік генераторды құру үшін МК микросұлбасының қысқыштарына кварц резонаторы және екі конденсатор қосылады (7.1.1-сурет). Синхрондау үшін ішкі сағаттық генератордың орнына сыртқы тербеліс көзін пайдалануға болады. Шартты графикалық белгілеуМК микросұлбалары суретте көрсетілген. 7.1.2, түйреуіштердің белгіленуі және мақсаты – кестеде. 7.1.1. МК-ның функционалды блоктарын және олардың жұмыс істеу принципін қарастырайық. Арифметикалық логикалық құрылғы. Арифметикалық логикалық құрылғы сегіз разрядты операндтар бойынша арифметикалық (көбейту мен бөлуді қоса) және логикалық операцияларды, сонымен қатар логикалық жылжу, нөлдеу, орнату және т.б. операцияларды орындауға арналған. ALU блок-схемасы суретте көрсетілген. 7.1.3.

ALU кіреді

● параллельді сегіз разрядты қосқышАрифметикалық (қосу және азайту) және логикалық (қосу, көбейту, диспаритет және сәйкестендіру) амалдарын орындайтын, ретті тасымалдауы бар комбинациялық типті СМ;

батарея А,негізгі арифметикалық регистрдің функцияларын қамтамасыз ету;

тіркелу B, көбейту және бөлу амалдарын жүзеге асыру үшін немесе функцияларын пайдаланушы анықтайтын қосымша супер операциялық регистр ретінде пайдаланылады;

тіркейді(бағдарламалық құрал қол жетімді емес) уақытша сақтауРВХ1, РВХ2, операцияның ұзақтығына операндтарды қабылдауға және сақтауға арналған;

● ROM тұрақтыларДеректердің екілік ондық көрінісі үшін түзету кодын, разрядтық операцияларға арналған маска кодын және тұрақтылар кодын сақтайтын ROM;

бағдарлама күйінің сөз тізіліміАяқталған операциядан кейін ALU күйін жазатын PSW. Кестеде 7.1.2 PSW регистрінің жеке разрядтарының биттерін тағайындау туралы ақпаратты береді. Басқару құрылғысы. Орталық процессордың басқару блогы (CU). арналғанүйлестіру үшін ынтымақтастыққұрылған тактілік импульстарды және басқару сигналдарын қолданатын барлық МК түйіндері. Ол мыналардан тұрады (7.1.4-сурет):

синхрондау және басқару блогыМашина циклдарын және олардың жеке күйлерін (S) және фазаларын (P) анықтайтын тактілік импульстарды тудыратын және микроконтроллердің жұмыс режиміне байланысты басқару сигналдарының қажетті жиынтығын генерациялайтын басқару жүйесі. Команданы орындау үшін бір, екі немесе төрт машиналық цикл қажет.

Әрбір машина циклі бар алты штат S1–S6, A әрбір күйді қамтиды екі фаза P1, P2, оның ұзақтығы тактілік генератордың тербеліс периоды T 0SC.

Машина циклінің ұзақтығы 12T 0SC. Барлық машина циклдері S1P1 фазасынан бастап және S6P2 фазасына дейін бірдей.

Синхрондау құрылғысы тактілік импульстерден басқа, S1P2–S2P1 және S4P2–S5P1 фазаларында оң импульс түріндегі әрбір машиналық циклде ALE мекенжайының төмен байты үшін екі (кейде бір) штрих сигналын жасайды. Суреттегі уақыт диаграммалары. 7.1.5 машина циклдерін ұйымдастыруды суреттеу;

● командалық регистр РК, командалық декодерӘрбір машиналық циклде орындалатын команданың микробағдарламасына сәйкес микрооперациялар жиынтығын құруға мүмкіндік беретін DC және PLM;

● Р0–Р3 порттары арқылы сыртқы құрылғылармен МК-дан ақпарат алмасуды қамтамасыз ететін сигналдарды қабылдау және беру үшін LVV енгізу/шығару логикасы;

● Сериялық порт деректерінің жылдамдығын екі еселеу үшін PCON.7 күйінде бір қосылған SMOD биті бар PCON тіркелімі. Қалған биттер кейінірек пайдалану үшін сақталған.
Мекенжай генераторы. Мекенжай генераторы (FA) немесе ДК пәрмен есептегіші, арналғанбағдарлама жадысының ағымдағы 16-разрядты адресін және сыртқы деректер жадысының 8/16-разрядты адресін қалыптастыру үшін. Ол мыналардан тұрады (7.1.6-сурет):

● 16-бит буфер B, ол 8-биттік SD деректер шинасы мен адрестің бұрынғы 16-биттік ішкі шинасы (IB) арасында байланысады;

● Ағымдағы мекенжайдың мәнін арттыруға арналған SI өсу тізбегі бағдарлама жадыбірлікке;

● СИ-ден келетін PTA командаларының ағымдағы мекенжайын сақтау үшін тіркелу;

● деректер көрсеткішінің регистрі DPTR , екі 8 разрядты DPH және DPL регистрлерінен тұрады. Ол сыртқы деректер жадының 16 разрядтық мекенжайын сақтауға қызмет етеді және екі тәуелсіз бағдарламалық қамтамасыз ету қолжетімді RON ретінде пайдаланылуы мүмкін;

● бағдарлама жадысының 16-биттік атқарушы мекенжайын немесе сыртқы деректер жадысының 8/16-биттік мекенжайын сақтауға арналған XRF мекенжай генераторының регистрі. Бұл регистр Р0 порты арқылы деректерді жіберу үшін де қолданылады сыртқы құрылғылар MOVX @Rm, A және MOVX @DPRT, A пәрмендерін орындау кезінде.

Деректер жады. Деректер жады арналғанбағдарламаны орындау кезінде қолданылатын ақпаратты қабылдау, сақтау және шығару үшін. Ішкі (резиденттік) деректер жады (7.1.7-сурет) сыйымдылығы 128 байт оперативті жадтан тұрады, стек көрсеткішіС.П. мекенжай тіркелімі RAM RA және декодерДш. Стек көрсеткіші SP - соңғы рұқсат етілген стек ұяшығының мекенжайын қабылдауға және сақтауға арналған 8 разрядты регистр. Қалпына келтіруден кейін стек көрсеткіші 07H мекенжайына орнатылады, ол 08H мекенжайы бар стектің басына сәйкес келеді. PA мекенжай регистрі Dsh декодерімен бірге байт немесе бит ақпараты бар қажетті жад ұяшығына қол жеткізуге мүмкіндік береді.

МК қосылу арқылы деректер жадының сыйымдылығын 64 Кбайтқа дейін арттыру мүмкіндігін береді сыртқы сақтау құрылғылары.Мысал ретінде суретте. 7.1.8 MOVX түріндегі пәрмендерді пайдалана отырып, сыйымдылығы 2К байт сыртқы VPD деректер жадысының бетті ұйымдастыруын көрсетеді @ Rm(m = 0; 1). Бұл жағдайда P0 порты мультиплексирленген мекенжай/деректер шинасы ретінде жұмыс істейді, P2 портының үш жолы сыртқы ЖЖҚ бетін адрестеу үшін пайдаланылады, ал қалған бес жолды енгізу/шығару жолдары ретінде пайдалануға болады.
Суретте. 7.1.9 МК сыртқы жедел жадымен жұмыс істегенде оқу және жазу циклдарының уақыт диаграммаларын көрсетеді. Диаграммалар көрсетеді:

● RSN – ДК командалық есептегішінің жоғары байты;

● DPL, DPH – MOVX @DPTR,A және MOVX A,@DPTR командаларында жанама адрестеу үшін регистр ретінде пайдаланылатын DPTR деректер көрсеткіші регистрінің төмен және жоғары байттары;

● P2 SFR - P2 портының ысырмалары;

● Rm (m = 0, 1) - MOVX @Rm, A және MOVX A, @Rm нұсқауларында жанама мекенжай регистрлері ретінде пайдаланылатын регистрлер;

● Z – жоғары қарсылық күйі;

● D – P0 портынан деректер микроконтроллерге енгізілетін кезең. Бағдарлама жады. Бағдарлама жады бағдарламаларды сақтауға арналған, өзінің (деректер жадынан бөлек) адрестік кеңістігіне ие және тек оқуға арналған. Оның құрамына Dsh декодері және ROM кіреді (7.1.10-сурет). Бағдарлама жадын адрестеу үшін 16 разрядты ДК есептегіші пайдаланылады, сондықтан оның максималды сыйымдылығы 64К байт. Бағдарламаның ішкі жады 4К байт ROM және 12 биттік декодерден тұрады. Сыртқы жады суреттегі диаграммаға сәйкес қосылған. 7.1.11. МК ¯EA істікшесіне 0 В берілсе (7.1.11-суретте көрсетілгендей), ішкі жадыбағдарламалар өшірілген. Барлық жадқа кіру 0000h мекенжайынан басталады. ¯EA істікшелі қуат көзіне қосылғанда, 0000h–FFFFh мекенжайларындағы ішкі бағдарлама жадына және 0FFFh–FFFFh мекенжайларындағы сыртқы бағдарлама жадына кіру автоматты түрде орын алады.

MK бағдарламаларының сыртқы жадын оқу үшін ¯PSEN сигналы жасалады. Ішкі жадпен жұмыс істегенде оқу сигналы қолданылмайды. Бағдарламаның сыртқы жадына кіру кезінде әрқашан 16 разрядты адрес қалыптасады. Мекенжайдың төмен байты машиналық циклдің бірінші жартысында P0 порты арқылы беріледі және регистрдегі ALE стробының кесуімен бекітіледі.Циклдің екінші жартысында P0 порты байттың байт енгізу үшін пайдаланылады. деректерді сыртқы жадтан МК-ға жіберу.

Мекенжайдың ең маңызды байты барлық жадқа қол жеткізу уақытында P2 порты арқылы беріледі.

МК сыртқы оперативті жадымен жұмыс істегенде оқу және жазу циклдарының уақыт диаграммалары суретте көрсетілген. 7.1.12.
Диаграммалар көрсетеді:

● PCL OUT – ДК бағдарлама есептегішінің төменгі байтының шығысы;

● RSN OUT – ДК командалық есептегішінің жоғары байтының шығысы;

● DPH – MOVX @DPTR,A және MOVX A,@DPTR нұсқауларында жанама адрестеу регистрі ретінде пайдаланылатын DPTR деректер көрсеткіші регистрінің жоғары байты;

● P2 SFR - P2 портының ысырмалары;

● INS IN – программа жадынан нұсқау (команда) байт енгізу;

● ADDR OUT – Rm регистрлерінен (m = 0, 1) немесе DPL регистрінен (DPTR төмен регистрі) сыртқы деректер жады мекенжайының төменгі байтты шығару. Енгізу/шығару порттары. Портты тағайындау. 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 МК порттарының әрқайсысының бір арнасы үшін диаграммаларды көрсетеді, оның ішінде:

● алынған деректер битін бекітуге арналған ысырма;

● шығыс күшейткіші каскад(жүргізуші);

● түйін -мен байланысшығыс сатысы (Р2-ден басқа);

● B2 және B3 буферлерінен (Р4 порты үшін) тұратын порттың шығыс жағынан деректер разрядын беруге арналған схема. Ілмек D-флип-флоп болып табылады, оның сағаты ішкі «Істамауға жазу» сигналымен белгіленеді. D флип-флоптың тікелей шығысынан алынған деректер биті МК ішкі деректер шинасы (ID) сызығына «Оқу ысырмасы» сигналы арқылы B1 буфері арқылы бағдарламалы түрде оқылады.

Шығару кезеңі P0 порты - инвертор, оның ерекшеліктері жүк транзисторы VT2 сыртқы жадқа кіру кезінде ғана ашылады (порт арқылы мекенжайлар мен деректерді беру кезінде). Барлық басқа режимдерде жүктеме транзисторы жабық. Сондықтан P0 (7.1.13, а-сурет) жалпы мақсаттағы шығыс порты ретінде пайдалану үшін оның терминалдарына сыртқы жүктеме резисторларын қосу қажет. Порт ысырмасына 1 жазу кезінде инвертор транзисторы VT1 құлыпталады және P0.X портының сыртқы істікшесі жоғары қарсылық күйіне ауыстырылады. Бұл режимде P0.X портының шығысы кіріс ретінде қызмет ете алады. Егер P0 порты жалпы мақсаттағы енгізу/шығару порты ретінде пайдаланылса, оның P0.X істікшелерінің әрқайсысы кіріс немесе шығыс ретінде дербес жұмыс істей алады. Шығару кезеңдері P1, P2, P3 порттары (7.1.13-сурет, b, c, d) VT2 транзисторы ретінде пайдаланылатын ішкі жүктеме резисторы бар инверторлық тізбектерге сәйкес жасалған.

Порт түйреуіштері 0 күйден 1 күйге ауысқанда коммутация уақытын қысқарту үшін VT2 жүктеме транзисторымен параллельді қосымша VT3 транзисторы енгізілді. Транзистор VT3, қақпа тізбегіндегі элементтерді пайдалана отырып, негізгі кварц осцилляторының екі тербеліс кезеңіне тең уақыт ішінде құлыптан босатылады (машина циклінің S1P1, S2P2 фазаларында). Шығару кезеңдері MX мультиплексорын қолданатын P0, P2 порттары (сурет 7.1.13, A, c) ысырмаларға немесе ішкі «Мекенжай/деректер» және «Мекенжай» шиналарына қосылуы мүмкін. Р1 портының шығыс сатысы (7.1.13, 6-сурет) ысырмаға тұрақты түрде қосылған.

Егер P3 портының түйреуіштері шығыс болса және оның ысырмасында 1 болса, онда оның шығыс сатысы аппараттық құралдармен басқарылады. ішкі сигналСәйкес альтернативті функцияның орындалуын қамтамасыз ететін «Баламалы шығару функциясы», яғни. ¯WR, ¯RD немесе RxD сигналдарының бірі сыртқы істікшеде жасалады. Егер порт шығысы кіріс ретінде пайдаланылса, онда оған келетін балама сигнал (TxD, ¯INT0, ¯INT1, T0, T1) «Баламалы кіріс функциясы» ішкі жолына жіберіледі.

Порт жазу режимі.

Портты жазу пәрмені орындалғанда, жаңа мән S6P2 фазасындағы ысырмаға жазылады және келесі машина циклінің S1P1 фазасындағы порттың шығыс істікшесіне тікелей шығады.

Портты оқу режимі

Портты оқу пәрмендері ақпаратты порттың сыртқы түйреуіштерінен немесе ысырма шығыстарынан тікелей оқиды. Бірінші жағдайда порт істікшесінен алынған деректер биті бағдарламалы түрде В2 буфері арқылы МК ішкі деректер шинасы (SD) сызығына «Оқу істіктері» сигналы арқылы оқылады. Сәйкес пәрмендер орындалған кезде аппараттық құралда «Латчқа жазу», «Оқу ысырмасы», «Оқу түйреуіштері» сигналдары жасалатынын ескеріңіз.

Екінші жағдайда «Оқу-Өзгерту-Жазу» деп аталатын режим іске асырылады, онда команда ысырма күйінің сигналын оқиды, қажет болған жағдайда оны өзгертеді, содан кейін оны ысырмаға қайта жазады. «Оқу-Өзгерту-Жазу» режимі келесі командаларды орындау кезінде жүзеге асырылады: ANL, ORL, XRL, JBC; CPL; INC; DEC; 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 г тең немесе басты осциллятор сигналының 12 периодына тең. Енгізу/шығару логикасы 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-ге енгізілген модульдер жиынтығы да кеңейтілуде, қазіргі заманғы модельдердің көп саны 12-ге дейін орнатылған резиденттік жоғары жылдамдықты ADC бар, ал енді көбірек болуы мүмкін, бит. Бірақ MCS51 отбасы Intel LSIs 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 - чипте маска ROM бар k-MOS технологиясына негізделген LSI, 8031 ​​- микросхемада бағдарламалық жады жоқ (ROM, RPOM) n-MOS LSI, 8751 - n-MOS LSI. резидент (чипте орналасқан) ультракүлгін өшіретін RPOM. Біз бұдан әрі 8751 LSI-ны қарастырамыз, қажет болған жағдайда бірінші сериялық LSI үшін жарияланған параметрлерге сілтеме жасай отырып, басқа схемалар арасындағы айырмашылықтар туралы ескертпелер жасаймыз. Қажет болса, барлық заманауи модификациялар туралы қосымша ақпаратты компанияның анықтамалықтарынан және техникалық құжаттамадан таба аласыз.

A. Жалпы сипаттамалар және түйреуіштердің тағайындалуы

MCS51 тобы МК бес модификациясына негізделген (бірдей негізгі сипаттамалары бар), олардың арасындағы негізгі айырмашылық бағдарлама жадысын жүзеге асыру және қуат тұтыну болып табылады (3.1 кестені қараңыз). Микроконтроллер сегіз разрядты, яғни. сегіз разрядты сөздерді өңдеу командалары бар, Гарвард архитектурасы бар, отбасының негізгі үлгілерінің тактілік жиілігі 12 МГц.

3.1-кесте.

Микросхемалар

Бағдарламаның ішкі жады, байт

Бағдарлама жады түрі

Ішкі деректер жады, байт

Сағат жиілігі, МГц

Ток шығыны, мА

MK 8051 және 80C51 микросхеманы жасау кезінде сыйымдылығы 4096 байт болатын маскамен бағдарламаланатын ROM бағдарламалық жадыдан тұрады және жаппай өндірісте қолдануға арналған. MK 8751 құрамында ультракүлгін өшіретін 4096 байт RPOM бар және бағдарламаларды жөндеу кезінде жүйені әзірлеу сатысында, сондай-ақ шағын партиялармен өндіру кезінде немесе жұмыс кезінде қайта жазуды қажет ететін жүйелерді жасау кезінде ыңғайлы.

мерзімді реттеу.

MK 8031 ​​және 80C31 кіріктірілген бағдарлама жадысын қамтымайды. Олар, бұрын сипатталған модификациялар сияқты, 64 Кбайтқа дейін сыртқы бағдарлама жадын пайдалана алады және ROM бағдарламалық жадының айтарлықтай үлкен көлемін (чиптегі 4 Кбайттан) қажет ететін жүйелерде тиімді қолданылады.

Отбасының әрбір МК-да сыртқы ЖЖҚ ИК-терін пайдалану арқылы ЖЖҚ деректерінің жалпы көлемін 64 Кбайтқа дейін кеңейту мүмкіндігі бар сыйымдылығы 128 байт резиденттік деректер жады бар.

    сегіз разрядты орталық процессор;

    4 Кбайт бағдарлама жады (тек 8751 және 87C51);

    128 байт деректер жады;

    төрт сегіз разрядты бағдарламаланатын енгізу/шығару порты;

    екі 16-разрядты көп режимді таймер/санауыш;

    бес векторы және екі бағдарламалық басқарылатын басымдық деңгейі бар автовекторлық үзу жүйесі;

    төрт режимде жұмыс істеуге қабілетті әмбебап дуплексті қабылдағышты қамтитын сериялық интерфейс;

    сағат генераторы.

MK пәрмендер жүйесінде пішімі 1, 2 немесе 3 байт болатын 111 негізгі команда бар. Микроконтроллерде мыналар бар:

    32 жалпы мақсаттағы регистрлер RON, әрқайсысы R0... R7 атаулары бар сегіз регистрдің төрт банкі ретінде ұйымдастырылған, сол немесе басқа банктерді таңдау PSW бағдарламалық күй регистрінде сәйкес биттерді орнату арқылы бағдарламамен анықталады;

    128 бағдарламалық құралмен басқарылатын жалаушалар (биттік процессор, төменде қараңыз);

    МК элементтерін басқаратын арнайы функциялардың регистрлерінің жиынтығы. Микроконтроллердің келесі жұмыс режимдері бар:

1). Жалпы қалпына келтіру. 2).Қалыпты жұмыс. 3).Төмен қуат тұтыну режимі және бос режим. 4). Резидентті RPOM үшін бағдарламалау режимі, егер бар болса.

Мұнда біз бірінші екі жұмыс режиміне тоқталамыз, барлық режимдердегі МК құрамы мен жұмысының толық сипаттамасы Р1 қосымшасында келтірілген.

RON және разрядтық процессор аймағы 0-ден 80 сағатқа дейінгі адрестермен резиденттік жедел жадының адрестік кеңістігінде орналасқан.

Тұрғын ЖЖҚ мекенжайларының жоғарғы аймағында арнайы функциялық регистрлер (SFR, Special Function Register) орналасқан. Олардың мақсаты кестеде берілген. 3.2.

3.2-кесте.

Белгі

Аты

Батарея

Тіркелу В

Бағдарлама күйінің тіркелімі

Стек көрсеткіші

Деректер көрсеткіші. 2 байт:

Төмен байт

Жоғары байт

Басымдық тізілімін үзу

Үзіліс қосу тіркелімі

Таймер/санауыш режимінің тіркелімі

Таймер/есептегішті басқару тізілімі

Таймер/санауыш 0. Жоғары байт

Таймер/санауыш 0. Төмен байт

Таймер/санауыш 1. Жоғары байт

Таймер/санауыш 1. Төмен байт

Сериялық портты басқару

Сериялық буфер

Тұтынуды басқару

* - регистрлер, мүмкіндік беру биттік адрестеу

3.2-кестеде көрсетілген SFR регистрлерінің функцияларын қысқаша қарастырайық.

Батарея ACC - жинақтаушы регистр. Жұмыс істеуге арналған командалар

батареямен бірге «A» мнемоникасын пайдаланыңыз, мысалы, MOV А, P2 . ACC мнемоникасы, мысалы, аккумуляторды биттік адрестеу кезінде пайдаланылады. Осылайша, A5M51 ассемблерін пайдалану кезінде аккумулятордың бесінші битінің символдық атауы келесідей болады: ACC. 5. .

Тіркелу IN . Көбейту және бөлу амалдары кезінде қолданылады. Басқа нұсқаулар үшін В регистрін нақты уақыттағы қосымша регистр ретінде қарастыруға болады.

Тіркелу күй бағдарламалар P.S.W. бағдарламаның күйі туралы ақпаратты қамтиды және орындалған операцияның нәтижесіне қарай ішінара автоматты түрде және ішінара пайдаланушымен орнатылады. Регистр разрядтарының тағайындалуы мен тағайындалуы тиісінше 3.3 және 3.4-кестелерде келтірілген.

3.3-кесте.

Белгі

3.4-кесте.

Белгі

Битті тағайындау

Биттік қатынас

Туды алып жүру. Арифметикалық және логикалық нұсқаулар қатарын орындау кезіндегі өзгерістер.

Аппараттық немесе бағдарламалық құрал

Қосымша тасымалдау жалаушасы. Нәтиженің ең аз маңызды тістеуі (D0-D3) жасалған кезде 3-биттегі тасымалдауды немесе қарызды көрсету үшін қосу немесе алу нұсқаулары кезінде аппараттық құралда орнату/тазарту.

Аппараттық немесе бағдарламалық құрал

Жалау 0. Пайдаланушы анықтайтын жалауша.

Бағдарламалық түрде

Бағдарламалық түрде

Жұмыс тізілімінің банк индексі

Бағдарламалық түрде

0-банк мекенжайлары (00Н - 07Н) мекенжайлары бар 1-банк (08Н - 0FН) 2-банк мекенжайлары (10Н - 17Н) 3-банк мекенжайлары (18Н - 1FН)

Толып кету жалауы. Толып кету жағдайын көрсету үшін арифметикалық нұсқауларды орындау кезінде аппараттық құрал арқылы орнатылады немесе тазартылады

Аппараттық немесе бағдарламалық құрал

Қосалқы. Құрамында қолдануға болатын жазылатын және оқылатын триггер бар

Паритет биті. «1» күйіндегі аккумулятор биттерінің жұп немесе тақ санын көрсету үшін әрбір нұсқаулық циклінде жабдықты қалпына келтіру немесе орнату.

Аппараттық немесе бағдарламалық құрал

Көрсеткіш стек SP - PUSH және CALL нұсқаулары орындалған кезде стекке деректерді жазу алдында мазмұны ұлғайтылатын 8 разрядты регистр. Бастапқы қалпына келтіру кезінде стек көрсеткіші 07H мәніне орнатылады және деректердің жедел жадындағы стек аймағы 08H мекенжайында басталады. Қажет болса, стек көрсеткішін қайта белгілеу арқылы стек аймағын микроконтроллер деректерінің ішкі жедел жадының кез келген жерінде орналастыруға болады.

Көрсеткіш деректер DPTR жоғары байт (DPH) және төмен байттан тұрады

(DPL). Сыртқы жадқа қатынасу кезінде 16 биттік мекенжайды қамтиды. Қолдануға болады

16 разрядты регистр немесе екі тәуелсіз сегіз разрядты регистр болуы мүмкін.

Порт0 - PortZ. P0, P1, P2, RZ арнайы функциялардың регистрлерінің жеке разрядтары P0, P1, P2, RZ порттарының «ысырмалары» биттері болып табылады.

Буфер дәйекті порт SBUF екі бөлек регистрді білдіреді: таратқыш буфері және қабылдағыш буфері. Деректер SBUF-ке жазылғанда, ол таратқыш буферіне енеді, ал SBUF-ке байт жазу автоматты түрде сериялық порт арқылы жіберуді бастайды. Деректер SBUF-тен оқылғанда, ол қабылдағыш буферінен алынады.

Тіркеулер таймер. (TH0, TL0) және (TH1, TL1) жұптарын 16 нысанын тіркеңіз

сәйкесінше таймер/санауыш 0 және таймер/санауыш үшін бит санау регистрлері.

Тіркеулер басқару. 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

Жұмыс істеу кезінде МК мыналарды қамтамасыз етеді:

    қосу командаларының ең аз орындалу уақыты 1 мкс;

    ең аз орындалу уақыты 4 мкс болатын аппараттық көбейту және бөлу.

МК кварц, LC тізбегі немесе сыртқы осциллятор арқылы ішкі осциллятор жиілігін орнату мүмкіндігін береді.

Кеңейтілген нұсқау жүйесі байт пен разрядты адрестеуді, екілік және екілік ондық арифметиканы, толып кету индикациясын және жұп/тақ анықтауды және логикалық процессорды жүзеге асыру мүмкіндігін қамтамасыз етеді.

MCS51 отбасы архитектурасының ең маңызды және айрықша ерекшелігі - ALU 8-биттік деректер түрлерінде операцияларды орындауға қосымша бір разрядты деректерді басқара алады. Бағдарламаға қол жетімді жеке биттерді орнатуға, тазалауға немесе олардың толықтыруларымен ауыстыруға, жіберуге, тексеруге және

3.2-сурет. Сыртқы түйреуіштер

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

логикалық есептеулерде қолданылады. Қарапайым деректер түрлерін қолдау (бар болса)

Ұзағырақ сөз ұзындығына деген қазіргі тенденция бір қарағанда артқа қадам сияқты көрінгенімен, бұл сапа MCS51 микроконтроллерлер тобын контроллерге негізделген қолданбалар үшін әсіресе қолайлы етеді. Соңғысының жұмыс алгоритмдері стандартты микропроцессорлардың көмегімен жүзеге асыру қиын болатын кіріс және шығыс логикалық айнымалылардың болуын болжайды. Бұл қасиеттердің барлығы MCS51 отбасының логикалық процессоры деп аталады. Бұл қуатты ALU микроконтроллерлердің MCS51 тобын нақты уақыттағы басқару қолданбалары үшін де, деректерді қажет ететін алгоритмдер үшін де қолайлы етеді.

Микроконтроллердің схемасы суретте көрсетілген. 3.2. Негізгі нұсқада ол 40 істікшелі DIP пакетіне оралған. Енді түйреуіштердің мақсатын қарастырайық.

Қуат түйреуіштерінен бастайық «0 IN" Және «5 IN" , ол арқылы ол негізгі тамақтануды алады. Ағымдағы тұтыну кестеде келтірілген. 3.1.

Қорытынды "RST" - микроконтроллерді қалпына келтіру. Бұл түйреуішке белсенді жоғары деңгей қолданылғанда режимі жалпы қалпына келтіру және МК келесі әрекеттерді орындайды:

P0-P3 порт ысырмаларынан, SP стек көрсеткішінен және SBUF регистрінен басқа ДК бағдарламасының есептегішін және барлық арнайы функция регистрлерін нөлге орнатады;

    стек көрсеткіші 07H тең мәнді қабылдайды;

    барлық үзу көздерін, таймер-санауыш пен серияларды өшіреді

    BANK 0 RAM таңдайды, деректерді қабылдау және анықтау үшін P0-RZ порттарын дайындайды

сыртқы тактілеуге арналған кірістер ретінде ALE және PME түйреуіштерін бөліседі;

      регистрлерде арнайы функциялар PCON, IP және IE резервтік биттері кездейсоқ мәндерді қабылдайды, ал қалған барлық разрядтар нөлге қалпына келтіріледі;

      SBUF регистрі кездейсоқ мәндерге орнатылады.

      P0-PZ порттарының ысырмаларын «1» күйіне орнатады.

Қалпына келтіруден кейінгі микроконтроллер регистрлерінің күйлері 3.5-кестеде көрсетілген.

3.5-кесте.

ақпарат

Белгісіз

n-MOS үшін k-MOS 0XXXXXXXB үшін 0ХХХ0000V

RST түйреуішінің балама функциясы да бар. Микроконтроллердің ЖЖҚ мазмұнын негізгісі жойылған кезде өзгеріссіз сақтау үшін резервтік қуат ол арқылы беріледі.

қорытындылар BQ1, BQ2 МК тактілік жиілігін анықтайтын кварц резонаторын қосуға арналған.

Қорытынды EA` (Е xternal А көйлек сыртқы мекенжайы) - осы түйреуішке белсенді төменгі деңгей қолданылған кезде сыртқы бағдарлама жадынан басқару кодтарын оқу режимін белсендіруге арналған. Шығарудың балама мақсаты (функциясы) бар. Ол бағдарламалау режимінде RPOM-дан бағдарламалау кернеуімен қамтамасыз етіледі.

Қорытынды PME (П бағдарлама М эмори Е қабілетті рұқсат жады бағдарламалар) - бағдарлама жадынан оқу циклін басқаруға арналған және әрбір машиналық циклде МК автоматты түрде іске қосылады.

Қорытынды ALE (А көйлек Л анг Е қабілетті рұқсат кіші мекенжайлары) P0 порты арқылы адрестің төменгі ретті бөлігінің шығысын строб жасайды. Шығару сонымен қатар RPOM бағдарламалау кезінде пайдаланылады, ал оған бағдарламалау процесіне арналған строб импульсі беріледі.

МК порттардың төрт тобын қамтиды: P0, P1, P2 және P3. Бұл микроконтроллердің қалған 40 түйреуіштері. Бұл порттар ақпаратты биттік енгізу және шығару үшін қызмет ете алады, бірақ сонымен қатар олардың әрқайсысының өзіндік мамандануы бар. Порттың жалпыланған функционалдық диаграммасы суретте көрсетілген. 3.3. Портта түйреуішке қосылған FET шығыс қосқыштары, функция қосқышы, D флип-флоп ысырмасы және басқару логикасы бар. МК ішкі шинасындағы ысырмаға бірлік немесе нөл жазылуы мүмкін. Бұл ақпарат функционалды қосқыш арқылы шығыс ажыратқыштарға және МК шығысына жіберіледі. Бір күйде N және N1 транзисторларының екеуі де жабық, бірақ N2 ашық. Нөлдік күйде N ашылады-

Ся, ал N2 жабылады. Порт маманданған баламалы функцияны орындаған кезде шығыс ысырма күйі тазаланады. Микроконтроллер порт ысырмасының күйін және сыртқы сигналмен орнатылған оның шығыс күйін бөлек оқи алады. Осы мақсатта МК ассемблерінде сәйкес жолдарды белсендіретін арнайы командалар бар. Сәйкес порт ысырмасындағы түйреуіш күйін оқу үшін

алдын ала жазылады

Ішкі жақтан

Басқару ысырмасы

Функция қосқышы

Vcc

Демалыс күні

бірлік. «Оқу ысырмасы» сызығы іске қосылғанда, осы жол қосылған «ЖӘНЕ» ұяшығының шығысы пайда болады.

оның шиналары MK D Q

C Q ысырмасына жазыңыз

Оқу ысырмасы

Порт пин

Бекіту күйі іске қосылған кезде МК ішкі шинасына беріледі

«оқу шығысы» - порттың сыртқы істікшелі күйі.

Порт P0 – әмбебап қос бағытты порт

енгізу/шығару Бұл порттан тыс

сыртқы адрестік шиналарды ұйымдастыру функциясы және

Күріш. 3.3. Микроконтроллер портының функционалдық диаграммасы

бағдарлама жадын және деректер жадын кеңейтуге арналған деректер

микроконтроллер. Сыртқы бағдарлама жадына қол жеткізген кезде немесе сыртқы деректер жадына қол жеткізу пәрмені орындалғанда, адрестің төменгі ретті бөлігі (A0...A7) ALE істікшелісінде жоғары қақпасы бар порт түйреуіштерінде орнатылады. Содан кейін жадқа деректерді жазу кезінде МК ішкі шинасына жазылған ақпарат Р0 портының түйреуіштеріне жіберіледі. Оқу операцияларында, керісінше, порт түйреуіштерінен ақпарат ішкі шинаға жіберіледі. P0 портының ерекшелігі - шығысқа қуат беретін N2 транзисторының болмауы. Бірлік портының ысырмасына жазу кезінде ол жай ғана деректер шинасы қалыпты жұмыс істеуі үшін қажетті жоғары кедергі күйіне ауысады. Кез келген сыртқы құрылғыларды шығыс арқылы қуаттандыру қажет болса, қуат тізбектерінен порт шығысына дейін сыртқы резисторлар қамтамасыз етілуі керек.

Порт P1 – балама функциялары жоқ әмбебап қос бағытты енгізу/шығару порты.

Порт P2 – әмбебап қос бағытты енгізу/шығару порты, ол балама функция ретінде сыртқы жадқа кіру кезінде адрестің жоғары бөлігін (A8...A15) шығарады.

Порт P3 – әмбебап қос бағытты енгізу/шығару порты, оның әрбір биті әртүрлі альтернативті функцияларды жүзеге асыруды қамтамасыз етеді. Бұл жағдайда альтернативті функциялар порт түйреуіштерінің ысырмаларына жазылған жағдайда ғана орындалады, әйтпесе альтернативті функциялардың орындалуы блокталады. Оларды әр бит үшін бөлек тізімдейміз:

P3.0 RxD (Роқу e Xішкі D yedi, сыртқы деректерді оқу) – кірістірілген сериялық қабылдағышты енгізу.

P3.1 TxD (Ттүрі e Xішкі D yedi, сыртқы деректерді жіберу) – кірістірілген сериялық қабылдағыштың шығысы.

P3.2 INT0` (INT errupt, interrupt) – сыртқы үзу кірісі 0.

P3.3 INT1` – сыртқы үзу кірісі 1.

P3.4 С/T0 – нөлдік кірістірілген таймер/санауыш кірісі.

P3.5 C/T1 – бірінші кірістірілген таймерді/есептегішті енгізу.

P3.6 WR` (В rite, write) – деректер жадындағы жазу циклін басқаруға арналған шығыс.

P3.7 RD` (Р ead, read) – деректер жадынан оқу циклінің шығысын басқару.

P1, P2 және P3 портының түйреуіштері бір бірлікке шамамен 0,2 мА ток шығаруға және нөлде 3 мА ток алуға қабілетті; P0 портының түйреуіштері анағұрлым қуатты және шамамен 0,8 мА ток беруге қабілетті. бір блокта және нөлде 5 мА ток қабылдайды. Микроконтроллер түйреуіштерінің тағайындалуы туралы қысқаша ақпарат 3.6-кестеде келтірілген.

3.6-кесте.

Белгі

Шығару мақсаты

8-биттік екі бағытты порт P1. Ішкі ROM (RPM) тексеру кезінде мекенжай кірісі A0-A7

шығуды енгізіңіз

Жалпы қалпына келтіру сигналы. Сыртқы көзден ЖЖҚ резервтік қуат шығысы (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. Сыртқы жадпен жұмыс істеуге арналған адрес/деректер шинасы. Ішкі ROM (RPM) сынақ режиміндегі деректер шығысы D7-D0.

шығуды енгізіңіз

+5В кернеу көзінен шығатын қуат

ДӘРІС ЖОСПАРЫ

1. Кіріспе

2. Арифметикалық және логикалық нұсқаулар

3. Мәліметтерді тасымалдау командалары

4. Логикалық операциялар

5. Секіру нұсқаулары

1. Кіріспе

Командалық жүйе MCS-51 8-биттік жетекті басқару алгоритмдерін орындауға арналған нұсқаулардың бір жинағын қолдайды. Ішкі жедел жадты адрестеу және шағын деректер құрылымдарында биттік операцияларды орындау үшін жылдам әдістерді қолдануға болады. Логикалық алгебраның логикалық және басқару командаларында жеке разрядтарды пайдалануға мүмкіндік беретін дербес деректер типі ретінде бірразрядты айнымалыларды адресациялаудың кең жүйесі бар.

Адрес режимдері : пәрмендер жинағы MCS-51келесі адрестеу режимдерін қолдайды. Тікелей адрестеу: Операнд нұсқаудағы 8 разрядты адреспен анықталады. Тікелей адрестеу ішкі деректер жады мен регистрлердің төменгі жартысы үшін ғана қолданылады SFR. Жанама адрестеу: Нұсқау операндтың мекенжайын қамтитын регистрге жүгінеді. Бұл түріадрестеу сыртқы және ішкі жедел жады үшін қолданылады. Регистрлерді 8 разрядты адрестерді көрсету үшін пайдалануға болады R0Және R1таңдалған тізілімдер банкі немесе стек көрсеткіші SP. 16-биттік адрестеу үшін тек деректер көрсеткішінің регистрі пайдаланылады DPTR.

Нұсқауларды тіркеу : тіркеледі R0–R7ағымдағы тізілімдер банкіне нұсқаулықтың өзінде регистр нөмірін көрсететін 3 разрядты өрісі бар арнайы нұсқаулар арқылы хабарласуға болады. Бұл жағдайда пәрменде сәйкес мекенжай өрісі жоқ. Арнайы регистрлерді қолданатын операциялар: кейбір нұсқаулар жеке регистрлерді пайдаланады (мысалы, аккумулятор операциялары, DPTR, және т.б.). Бұл жағдайда операнд адресі командада мүлде көрсетілмейді. Ол операциялық кодпен алдын ала анықталады.

Дербес тұрақтылар : константа операциялық кодтан кейін тікелей командада орналасуы мүмкін.

Индексті адрестеу : Индексті адрестеуді тек бағдарлама жадына қол жеткізу үшін және тек оқу режимінде пайдалануға болады. Бұл режимде бағдарлама жадындағы кестелер қаралады. 16-биттік регистр ( DPTRнемесе бағдарлама есептегіші) қажетті кестенің негізгі мекенжайын көрсетеді, ал аккумулятор оған кіру нүктесін көрсетеді.

Пәрмендер жинағыосы жүйенің 33 функциясын көрсету үшін 42 командалық мнемотехника бар. Ассемблер тілінің нұсқауларының көпшілігінің синтаксисі адрестеу әдістері мен деректер түрлерін көрсететін операндтардан кейінгі мнемоникалық функциядан тұрады. Түрлі түрлердеректер немесе адрестеу режимдері мнемотехникадағы өзгерістермен емес, орнатылған операндтармен анықталады.

Командалар жүйесін бес топқа бөлуге болады: арифметикалық нұсқаулар; логикалық командалар; мәліметтерді тасымалдау командалары; биттік процессор командалары; тармақталу және басқаруды тасымалдау командалары. Командалар жүйесінде қолданылатын белгілер мен белгілер төменде келтірілген.

Кесте. Командалар жүйесінде қолданылатын белгілер мен белгілер

Белгі, таңба

Мақсат

Батарея

Ағымдағы таңдалған тізілім банкінің регистрлері

Жүктелген регистрдің нөмірі командада көрсетілген

тікелей

Ішкі деректердің жедел жады ұяшығы (0–127) немесе SFR арнайы функция регистрі (128–255) болуы мүмкін тікелей адрестелетін 8-биттік ішкі деректер ұяшығының мекенжайы.

Жанама адрестелетін 8-биттік ішкі деректер ЖЖҚ ұяшығы

8-бит тікелейоперациялық кодқа (OPC) енгізілген деректер

деректерH

Жедел 16-биттік деректердің ең маңызды биттері (15–8).

деректерЛ

Жедел 16-биттік деректердің ең аз маңызды биттері (7–0).

11 биттік тағайындау мекенжайы

addrL

Тағайындалған мекенжайдың ең аз маңызды биттері

8-биттік офсеттік байт

Тікелей адрестелетін бит, оның адресі ішкі деректердің жедел жадында немесе SFR арнайы функциялық регистрінде орналасқан COP бар

a15, a14...a0

Тағайындалған мекенжай биттері

X элементінің мазмұны

X элементінде сақталған мекенжайдағы мазмұн

X элементінің М биті


+

*
ЖӘНЕ
НЕМЕСЕ
XOR
/X

Операциялар:
қосу
алу
көбейту
бөлімдер
логикалық көбейту (ЖӘНЕ операциясы)
логикалық қосу (НЕМЕСЕ операциясы)
қосымша модулі 2 (ерекше НЕМЕСЕ)
X элементінің инверсиясы

Функциялық мнемотехника адрестеу әдістері мен деректер түрлерінің арнайы комбинацияларымен бірегей түрде байланысты. Командалар жүйесінде барлығы 111 осындай комбинация болуы мүмкін.

2. Арифметикалық және логикалық нұсқаулар

Қалай б мысал арифметикалық нұсқау, қосу әрекетін келесі пәрмендердің бірі арқылы орындауға болады.

ҚОСУА,7 Ф 16 – А регистрінің мазмұнына 7 санын қосыңыз F 16 және нәтижені А регистрінде сақтаңыз;

ҚОСУА,@ Р0 – А регистрінің мазмұнына мекенжайы болатын санды қосыңыз (@ – коммерциялық сағ ) регистрде сақталадыР 0 (жанама адрестеу) және нәтижені А регистрінде сақтаңыз;

A, R7 ҚОСУ– регистрдің мазмұнына А регистрінің мазмұнын қосыңызР 7 және нәтижені А регистріне сақтаңыз;

A ҚОСУ, №127– А регистрінің мазмұнына сақтау ұяшығының мекенжайы 127 ( # – сан белгісі) және нәтижені тізілімге сақтаңыз Т- қайта А.

Нұсқаудан басқа барлық арифметикалық командалар бір машиналық циклде орындалады INC DPTR(деректер көрсеткішінің ығысуы DPTRкелесі байтқа), екі машина циклін, сондай-ақ 4 машиналық циклде орындалатын көбейту және бөлу операцияларын қажет етеді. Ішкі деректер жадындағы кез келген байтты батареяны пайдаланбай көбейтуге және азайтуға болады.

Нұсқаулар MUL ABөнімді А (төмен жартысы) және В (жоғары жартысы) регистрлеріне орналастыра отырып, аккумулятордағы деректерді В регистріндегі деректерге көбейтуді (көбейтуді) орындайды.

Нұсқаулар DIV ABаккумулятордың мазмұнын В регистріндегі мәнге бөледі (бөледі), қалғанын В-да, ал бөліндіні аккумуляторда қалдырады.

Нұсқаулар Д.Аекілік ондық арифметикалық амалдарға арналған (екілік ондық кодта көрсетілген сандарға арифметикалық амалдар). Ол екілік санды түрлендірмейді BCD, бірақ екі екілік ондық сандарды қосқанда ғана дұрыс нәтиже береді.

Мысал логикалық команда: Логикалық ЖӘНЕ операциясын келесі пәрмендердің бірімен орындауға болады:

ANLА,7 Ф 16 – А регистрінің мазмұнын 7 санына логикалық көбейту F 16 және нәтиже А регистрінде сақталады;

ANLА,@ Р1 – А регистрінің мазмұнын адресі регистрде сақталған санға логикалық көбейтуР 1 (жанама адрестеу) және нәтижені А регистрінде сақтаңыз;

ANL A,R6– А регистрінің мазмұнын регистрдің мазмұнына логикалық көбейтуР 6, және нәтижені А регистріне сақтаңыз;

ANL A,#53 – А регистрінің мазмұнын сақтау ұяшығының адресі 53 16 болатын санға логикалық көбейту және нәтиже А регистрінде сақталады.

Аккумулятордың мазмұны бойынша барлық логикалық операциялар бір машиналық циклде, қалғандары екіде орындалады. Логикалық операциялар ішкі деректер жадының төменгі 128 байт кез келгенінде немесе кез келген регистрде орындалуы мүмкін SFR (арнайы функция регистрлері) батареяны пайдаланбай тікелей адрестеу режимінде.

RL A, RLC A және т.б. айналмалы ауыстыру операциялары аккумулятордың мазмұнын бір бит оңға немесе солға жылжытады. Солға циклдік ығысу жағдайында ең аз маңызды бит ең маңызды орынға жылжытылады. Оң жақ циклдік ығысу жағдайында керісінше болады.

Операция SWAP Aбатареядағы төмен және жоғары тетрадаларды алмастырады.

3. Мәліметтерді тасымалдау командалары

Команда MOV dest,srcішкі ЖЖҚ ұяшықтары немесе арнайы функция тіркелімі аймақтары арасында деректерді тасымалдауға мүмкіндік береді SFRбатареяны пайдаланбай. Бұл жағдайда ішкі жедел жадтың жоғарғы жартысымен жұмыс тек жанама адрестеу режимінде жүзеге асырылуы мүмкін, ал регистрлерге қол жеткізу. SFR– тек тікелей адрестеу режимінде.

Барлық микросұлбаларда MCS-51Стек тікелей резиденттік деректер жадына орналастырылады және жоғары қарай өседі. Нұсқаулар БАСЫҢЫЗалдымен стек көрсеткішінің регистріндегі мәнді арттырады SP, содан кейін стекке деректер байты жазады. Командалар БАСЫҢЫЗЖәне ПОПтікелей адрестеу режимінде ғана қолданылады (байтты жазу немесе қалпына келтіру), бірақ регистр арқылы жанама адрестеу кезінде стекке әрқашан қол жетімді. SP. Осылайша, стек деректер жадының ең жоғарғы 128 байты да пайдалана алады. Дәл осындай ойлар регистрлерді адрестеу үшін стек нұсқауларын пайдалану мүмкіндігін жоққа шығарады SFR.

Деректерді тасымалдау нұсқаулары 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құрамында «логикалық» процессор бар. Ішкі жедел жадта 128 тікелей адрестелетін бит бар. Арнайы функция регистрінің кеңістігі SFRсонымен қатар 128 биттік өрістерге дейін қолдау көрсете алады. Биттік нұсқаулар шартты тармақтарды, тасымалдауларды, қалпына келтіруді, инверсияларды, ЖӘНЕ және НЕМЕСЕ операцияларын орындайды.Барлық көрсетілген биттер тікелей адрестеу режимінде қол жетімді.

Тасымалдау CFарнайы функция регистрінде «бағдарлама күйінің сөзі» P.S.W." логикалық процессор үшін бір разрядты аккумулятор ретінде пайдаланылады.

5. Секіру нұсқаулары

Секіру операцияларының адрестері ассемблер тілінде белгі немесе бағдарлама жады кеңістігіндегі нақты мән арқылы көрсетіледі. Шартты тармақтық адрестер салыстырмалы ығысуға жинақталады - бағдарлама санауышына қосылған белгі байты ДКөтпелі шарт орындалса. Мұндай ауысулардың шекаралары нұсқаудан кейінгі бірінші байтқа қатысты минус 128 мен 127 аралығында болады. Арнайы функция регистрінде «бағдарлама күйінің сөзі» P.S.W.« Нөлдік жалау жоқ, сондықтан нұсқаулар Ж.ЗЖәне JNZаккумулятордағы деректерді сынау ретінде «нөлге тең» шартын тексеріңіз.

Шартсыз өту пәрменінің үш түрі бар: SJMP, LJMPЖәне AJMP– пішімі бойынша әртүрлі тағайындалған мекенжайлар. Нұсқаулар SJMPмекенжайды салыстырмалы ығысу ретінде кодтайды және екі байт алады. Секіру қашықтығы келесі нұсқауға қатысты минус 128-ден 127 байтқа дейінгі диапазонмен шектелген. SJMP.

Нұсқауларда LJMPТағайындалған мекенжай 16-биттік тұрақты ретінде пайдаланылады. Пәрмен ұзындығы үш байт. Тағайындалған мекенжай бағдарлама жадының кез келген жерінде орналасуы мүмкін.

Команда AJMP 11 разрядтық мекенжай тұрақтысын пайдаланады. Команда екі байттан тұрады. Бұл команда орындалғанда адрес санауышының төменгі 11 разряды нұсқаудан 11 разрядты адреске ауыстырылады. Бағдарлама есептегішінің ең маңызды бес биттері ДКөзгеріссіз қалады. Осылайша, көшу 2К-байттық блок ішінде жүзеге асырылуы мүмкін, онда нұсқаулықтан кейінгі нұсқау орналасқан. AJMP.

Ішкі бағдарламаға пәрменді шақырудың екі түрі бар: LCALLЖәне ACALL. Нұсқаулар LCALLшақырылған ішкі бағдарламаның 16 разрядтық мекенжайын пайдаланады. Бұл жағдайда ішкі бағдарлама бағдарлама жадының кез келген жерінде орналасуы мүмкін. Нұсқаулар ACALL 11-биттік ішкі бағдарлама мекенжайын пайдаланады. Бұл жағдайда шақырылатын процедура келесі нұсқаумен бір 2К байт блокта орналасуы керек ACALL. Нұсқаудың екі нұсқасы да келесі нұсқаудың мекенжайын стекке итеріп, оны бағдарлама есептегішіне жүктейді. ДК сәйкес жаңа мән.

Ішкі бағдарлама нұсқаумен аяқталады RET, ол командадан кейін нұсқауға оралуға мүмкіндік береді ҚОҢЫРАУ. Бұл нұсқау стектен қайтару мекенжайын шығарады және оны бағдарлама есептегішіне жүктейді. ДК . Нұсқаулар RETIүзу тәртібінен оралу үшін пайдаланылады. Жалғыз айырмашылық RETIбастап RETболып табылады RETIүзілістерді өңдеудің аяқталғанын жүйеге хабарлайды. Егер орындау кезінде RETIбасқа үзілістер жоқ, онда ол бірдей RET.

Нұсқаулар DJNZциклдарды басқаруға арналған. Циклды орындау үшін Н бір рет есептегішке мәні бар байтты жүктеу керек Н және цикл денесін пәрменмен жабыңыз DJNZ, циклдің басталуын көрсетеді.

Команда 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 МИКРОБАҚЫЛАУ ҚҰРАМЫНЫҢ ПАРМАНДЫҚ ЖҮЙЕСІ.

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

КІРІСПЕ

20 ғасырдың 80-жылдарынан бастап микропроцессорлық технологияда дербес класс пайда болды интегралдық схемалар– әртүрлі мақсаттағы құрылғыларға біріктіруге арналған бір чипті микроконтроллерлер. Олар бір чипті микропроцессорлар класынан ішкі жадының болуымен және сыртқы құрылғылармен өзара әрекеттесу құралдарының дамығанымен ерекшеленеді.

MCS-51 отбасының 8 разрядты бір чипті микроконтроллерлері кеңінен қолданылады. Бұл отбасы Intel 8051 микроконтроллерінің негізінде құрылды, ол жақсы жобаланған архитектурасы арқасында микропроцессорлық басқару жүйесін жасаушылар арасында үлкен танымалдылыққа ие болды. Микроконтроллер архитектурасы - бұл бағдарламалық қамтамасыз етудің қол жетімді аппараттық ресурстары мен командалық жүйелерінің ішкі және сыртқы жиынтығы.

Кейіннен Intel Intel 8051 микроконтроллерінің операциялық ядросы негізінде 50-ге жуық модельді шығарды.Сонымен қатар көптеген басқа компаниялар, мысалы, Atmel, Philips MCS-51 стандартында әзірленген өздерінің микроконтроллерлерін шығара бастады. Сондай-ақ бар отандық аналогы Intel 8051 микроконтроллері - K1816BE51 чипі.

2. INTEL 8051 МИКРО БАСҚАРУ ҚҰРЫЛЫМЫ

Intel 8051 микроконтроллері жоғары деңгейлі n-MOS технологиясына негізделген. Оның негізгі сипаттамалары келесідей:

· басқару функцияларын жүзеге асыру үшін оңтайландырылған сегіз разрядты орталық процессор;

· орнатылған тактілік генератор (максималды жиілік 12 МГц);

· программа жадысының адрестік кеңістігі – 64 КБ;

· деректер жадысының адрестік кеңістігі – 64 КБ;

· ішкі бағдарлама жады – 4 КБ;

· ішкі деректер жады – 128 байт;

· бульдік алгебра амалдарын орындаудың қосымша мүмкіндіктері (разрядтық операциялар);

· 2 он алты разрядты көп функциялы таймер/санауыш;

· толық дуплексті асинхронды қабылдағыш (сериялық порт);

· екі басымдық деңгейі және бес оқиға көзі бар векторланған үзу жүйесі.

1-сурет - Intel 8051 микроконтроллерінің блок-схемасы

Блок-схеманың негізін (1-сурет) микроконтроллердің негізгі түйіндері мен құрылғыларын өзара байланыстыратын ішкі екі бағытты 8 разрядты шин құрайды: резиденттік бағдарлама жады (RPM), тұрақты деректер жады (RDM), арифметикалық-логикалық. блок (ALU), регистр блогының арнайы функциялары, басқару блогы (CU), параллель енгізу/шығару порттары (P0-P3), сонымен қатар бағдарламаланатын таймерлер мен сериялық порт.

2.1. Жадты ұйымдастыру

Бұл микроконтроллерде бағдарламалар мен мәліметтердің кірістірілген (резиденттік) және сыртқы жады бар. Резидентті бағдарлама жадысының (RPM) сыйымдылығы 4 Кбайт, ал тұрақты деректер жадысының (RDM) сыйымдылығы 128 байт.


Микроконтроллердің модификациясына байланысты RPM маска ROM, бір реттік бағдарламаланатын немесе қайта бағдарламаланатын ROM түрінде жүзеге асырылады.

Қажет болса, пайдаланушы сыртқы ROM орнату арқылы бағдарлама жадын кеңейте алады. Ішкі немесе сыртқы ROM-ға қол жеткізу EA (Сыртқы кіру) пиніндегі сигналдың мәнімен анықталады:

EA=VCC (қоректену кернеуі) - ішкі ROM-ға кіру;

EA=VSS (жер потенциалы) – сыртқы ROM-ға қол жеткізу.

Сыртқы бағдарлама және деректер жады әрқайсысы 64 Кбайт болуы мүмкін және P0 және P2 порттары арқылы адрестеледі. 2-суретте Intel 8051 жад картасы көрсетілген.

2-сурет - Intel 8051 жады ұйымы

Сыртқы ROM оқу стробы - (Бағдарламалар дүкенін қосу) сыртқы бағдарлама жадына кіру кезінде жасалады және чипте орналасқан ROM-ға қатынасу кезінде белсенді емес.

Бағдарлама жадысының төменгі адрестерінің аймағын (3-сурет) үзу жүйесі пайдаланады. INTEL 8051 чип архитектурасы бес үзу көздеріне қолдау көрсетеді. Үзуді басқару берілетін адрестерді үзу векторлары деп атайды.

3-сурет – Төменгі бағдарлама жады аймағының картасы

2.2. Арифметикалық логикалық бірлік

8 разрядты арифметикалық логикалық блок (ALU) қосу, алу, көбейту және бөлудің арифметикалық амалдарын орындай алады; логикалық операциялар ЖӘНЕ, НЕМЕСЕ, эксклюзивті НЕМЕСЕ, сондай-ақ циклдік ауыстыру, қалпына келтіру, инверсия операциялары және т.б. Т1 және Т2 бағдарламалық қамтамасыз ету қолжетімсіз регистрлері операндтарды, ондық түзету схемасын (DCU) және мүмкіндіктерді генерациялау схемасын уақытша сақтауға арналған. кіріс жұмысының нәтижесіне (PSW) қосылады.

Қарапайым қосу операциясы ALU-да регистрлердің мазмұнын ұлғайту, деректер көрсеткішінің регистрін (RAR) ілгерілету және келесі бағдарламаның тұрақты жады мекенжайын автоматты түрде есептеу үшін қолданылады. Ең қарапайым алу операциясы ALU-да регистрлерді азайту және айнымалыларды салыстыру үшін қолданылады.

Ең қарапайым операциялар, мысалы, 16-биттік регистр жұптарын көбейту сияқты операцияларды орындау үшін автоматты түрде «тандемдерді» құрайды. ALU күрделі командаларды орындау үшін қарапайым операцияларды каскадты орындау механизмін жүзеге асырады. Мәселен, мысалы, шартты басқаруды беру пәрмендерінің бірін орындау кезінде ALU-дағы салыстыру нәтижесіне сүйене отырып, бағдарлама есептегіші (ДК) үш есе артады, RDM екі рет оқылады, екі айнымалыны арифметикалық салыстыру орындалады, 16-разрядты көшу адресі қалыптасады, бағдарлама бойынша көшуді жасау немесе жасамау туралы шешім қабылданады. Жоғарыда аталған операциялардың барлығы небәрі 2 мкс ішінде орындалады.

ALU маңызды ерекшелігі оның тек байттарды ғана емес, сонымен қатар биттерді де жұмыс істеу мүмкіндігі болып табылады. Бағдарламалық құралға қол жетімді жеке биттерді орнатуға, тазалауға, инверсиялауға, жіберуге, тексеруге және логикалық операцияларда пайдалануға болады. Бұл қабілет өте маңызды, өйткені объектілерді басқару үшін логикалық айнымалылар енгізу және шығару операцияларын қамтитын алгоритмдер жиі пайдаланылады, оларды іске асыру әдеттегі микропроцессорларды қолданудың белгілі бір қиындықтарымен байланысты.

Осылайша, ALU ақпараттық объектілердің төрт түрімен жұмыс істей алады: логикалық (1 бит), цифрлық (4 бит), байт (8 бит) және адрестік (16 бит). ALU бұл деректерді қайта жіберу немесе түрлендіру үшін 51 түрлі әрекетті орындайды. 11 адрестеу режимі (деректер үшін 7 және мекенжайлар үшін 4) болғандықтан, операция мен адрестеу режимін біріктіру арқылы 111 нұсқаудың негізгі саны бір байт операциялық кодпен мүмкін болатын 256 нұсқаның 255-іне дейін кеңейтіледі.

2.3. Резидентті бағдарлама және деректер жады

Тұрғылықты (чипте) программалық жады (RPM) және деректер жады (RDM) физикалық және логикалық түрде бөлінген, әртүрлі адрестеу механизмдері бар, әртүрлі сигналдардың басқаруымен жұмыс істейді және әртүрлі функцияларды орындайды.

RPM бағдарламасының жадысының сыйымдылығы 4 Кбайт және командаларды, тұрақтыларды, инициализацияны басқару сөздерін, кіріс және шығыс айнымалылар үшін түрлендіру кестелерін және т.б. сақтауға арналған. Жадта 16 разрядты адрес шинасы бар, ол арқылы қол жеткізу компьютерден қамтамасыз етіледі. ДК бағдарлама есептегіші немесе регистрден, деректер көрсеткішінен (DPTR). DPTR жанама бағдарлама секірулері үшін негізгі регистр ретінде қызмет етеді немесе кесте операцияларында қолданылады.

RDM деректер жады қолданбалы бағдарламаны орындау кезінде айнымалыларды сақтауға арналған, бір байтпен адрестеледі және сыйымдылыққа ие.
128 байт. Сонымен қатар, оның адрестік кеңістігі Кестеде келтірілген арнайы функциялық регистрлердің адрестеріне іргелес орналасқан. 1.

Бағдарлама жады деректер жады сияқты кеңейтілуі мүмкін
Сыртқы чиптерді қосу арқылы 64 КБ.

1-кесте

Арнайы функция регистрінің блогы

Аты

Батарея

Аккумуляторды кеңейту регистрі

Бағдарлама күй сөзі

Стек көрсеткішінің регистрі

Мәліметтер көрсеткішінің регистрі

Басымдық тізілімін үзу

Үзіліс маскасы тіркелімі

Таймер/санауыш режимінің тіркелімі

Таймерді басқару/күй тіркелімі

Таймер 0 (жоғары байт)

Таймер 0 (төмен байт)

Таймер 1 (жоғары байт)

Таймер 1 (төмен байт)

Трансиверді басқару тізілімі

Трансивер буфері

Қуатты басқару регистрі

Ескерту.Аты (*) белгісімен белгіленген регистрлер жеке биттерді адрестеуге мүмкіндік береді.

2.4. Аккумулятор және жалпы регистрлер

Аккумулятор (А) арифметикалық, логикалық операцияларды және бірқатар мәліметтерді тасымалдау операцияларын орындау кезінде операндтың көзі және нәтиженің орны болып табылады. Сонымен қатар, ауысым операциялары, нөлді тексеру, паритеттік жалаушаны генерациялау және т.б. тек аккумулятордың көмегімен орындалады.

Пайдаланушының қарамағында 8 жалпы мақсаттағы R0–R7 регистрлерінің төрт банкі бар (9-сурет). Дегенмен, PSW регистр биті арқылы таңдалған төрт банктің тек біреуінің регистрлерін пайдалануға болады.

2.5. Бағдарлама күйінің сөздерінің регистрі және оның жалаулары

ALU-да көптеген нұсқаулар орындалғанда, бағдарлама күйінің сөзінің (PSW) регистрінде жазылатын бірқатар операциялық атрибуттар (жалаушалар) жасалады. Кестеде 2 PSW жалауларының тізімін береді, олардың символдық атауларын береді және олардың қалыптасу шарттарын сипаттайды.

кесте 2

PSW бағдарламасының күйі Word пішімі

Аты мен мақсаты

Туды алып жүру. Арифметикалық және логикалық операцияларды орындау кезінде аппараттық немесе бағдарламалық құрал арқылы орнату және қалпына келтіру

Көмекші жалауша. Қосу және азайту нұсқаулары орындалғанда және 3-битте тасымалдау немесе қарыз алу туралы сигнал бергенде ғана аппараттық құрал арқылы орнатылады және тазартылады

Жалау 0. Бағдарлама пайдаланушы көрсеткен жалауша ретінде орнатуға, тазалауға немесе тексеруге болады.

Тіркеу банкін таңдау. Регистрлердің жұмыс банкін таңдау үшін бағдарламалық құрал арқылы орнату және қалпына келтіру (3-кесте)

Толып кету жалауы. Арифметикалық амалдарды орындау кезінде аппараттық құрал арқылы орнату және қалпына келтіру

Қолданылмайды

Паритет жалауы. Әрбір циклде аппараттық құрал арқылы орнату және қалпына келтіру және аккумулятордағы бір биттің тақ/жұп санын бекітеді, яғни паритетті орындайды.

3-кесте

Жұмыс тізілімінің банкін таңдау

Мекенжай шекаралары

Ең «белсенді» PSW жалауы көптеген операциялар, соның ішінде қосу, алу және ауыстыру кезінде тартылатын және өзгертілетін тасымалдау жалауы болып табылады. Сонымен қатар, тасымалдау жалауы (CY) битпен манипуляциялау нұсқауларында «Логикалық аккумулятор» ретінде қызмет етеді. Толып кету жалауы (OV) таңбаланған бүтін сан операцияларында арифметикалық толып кетуді анықтайды және екі толықтауыш кодтарында арифметиканы пайдалануға мүмкіндік береді. ALU регистрлер банкінің таңдау жалауларын (RS0, RS1) бақыламайды, олардың мәні қолданбалы бағдарламамен толығымен анықталады және төрт тізілім банкінің біреуін таңдау үшін қолданылады.

Байт ретінде PSW регистрін келесідей көрсетуге болады:

Архитектурасы аккумуляторға негізделген микропроцессорларда нұсқаулардың көпшілігі жасырын адрестеу арқылы аккумуляторда жұмыс істейді. Intel 8051 басқаша. Процессор батареяға негізделгенімен, оның қатысуынсыз көптеген командаларды орындай алады. Мысалы, мәліметтерді кез келген RDM ұяшығынан кез келген регистрге тасымалдауға болады, кез келген регистрді жедел операндпен жүктеуге болады және т.б. Көптеген логикалық операцияларды аккумулятордың қатысуынсыз орындауға болады. Сонымен қатар, айнымалы мәндерді аккумуляторды қолданбай-ақ көбейтуге, азайтуға және тексеруге болады. Жалаушалар мен басқару биттерін дәл осылай тексеруге және өзгертуге болады.

2.6. Көрсеткіш регистрлері

8-биттік стек көрсеткіші (SP) кез келген RDM аймағын адрестей алады. Оның мазмұны PUSH және CALL нұсқаулары кезінде стекке деректер сақталмас бұрын көбейтіледі. POP және RET пәрмендері орындалғаннан кейін SP мазмұны азаяды. Стек элементтерін адрестеу әдісі алдын ала өсу/пост-азайту деп аталады. Микроконтроллерді инициализациялау кезінде RST сигналынан кейін SP-ге 07H коды автоматты түрде жүктеледі. Бұл қолданбалы бағдарлама стекті қайта анықтамайынша, стектегі бірінші деректер элементі 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) ақпаратты байтпен енгізуге немесе шығаруға арналған. Әрбір портта басқарылатын ысырма регистрі, кіріс буфері және шығыс драйвері бар.

Сыртқы жадқа кіру кезінде Р0 және Р2 порттарының шығыс драйверлері, сондай-ақ Р0 портының кіріс буфері қолданылады. Бұл жағдайда уақытты мультиплекстеу режимінде Р0 порты арқылы алдымен адрестің төменгі байты шығарылады, содан кейін деректер байты шығарылады немесе қабылданады. P2 порты мекенжай ені 16 бит болған жағдайда мекенжайдың ең маңызды байты шығарады.

P3 портының барлық түйреуіштерін кестеде көрсетілген балама функцияларды орындау үшін пайдалануға болады. 4. Бұл функцияларды P3 портының ысырма регистрінің (P3.0-P3.7) сәйкес биттеріне 1 жазу арқылы қосуға болады.

4-кесте

Балама P3 порт функциялары

Аты мен мақсаты

Оқу. Белсенді төмен деңгейлі сигнал сыртқы деректер жадына кіру кезінде аппараттық құрал арқылы жасалады

Жазба. Белсенді төмен деңгейлі сигнал сыртқы деректер жадына кіру кезінде аппараттық құрал арқылы жасалады

Таймер/санауыш кіріс 1 немесе сынақ кірісі

Таймер/санауыш кірісі 0 немесе сынақ кірісі

Үзіліс сұрауының кірісі 1. Төмен деңгей немесе өшіру сигналын сезінеді

Үзіліс сұрауының кірісі 0. Төмен деңгей немесе өшіру сигналын сезінеді

UART режиміндегі сериялық порт таратқыш шығысы. Ауысым регистр режиміндегі сағат шығысы

UART режимінде сериялық порт қабылдағыш кірісі. Ауысым регистр режимінде деректерді енгізу/шығару

0 порты екі бағытты, ал 1-3 порттары квази-екі бағытты. Әрбір порт жолын енгізу немесе шығару үшін дербес пайдалануға болады.

RST сигналы негізінде блоктар автоматты түрде барлық порттардың ысырма регистрлеріне жазылады, осылайша оларды енгізу режиміне орнатады.

Барлық порттарды екі бағытты беру желілері арқылы ақпаратты енгізу/шығаруды ұйымдастыру үшін пайдалануға болады. Дегенмен, егер жүйеде уақытты мультиплекстеу режимінде жұмыс істейтін жалпы ортақ мекенжай/деректер шинасы арқылы ұйымдастырылатын сыртқы жады болса, P0 және P2 порттарын осы мақсат үшін пайдалану мүмкін емес.

Енгізу/шығару порттарына қол жеткізу байтпен, жеке битпен немесе биттердің ерікті комбинациясымен жұмыс істейтін командалар арқылы мүмкін болады. Сонымен қатар, порт әрі операнд, әрі нәтиженің тағайындалған жері болған жағдайларда басқару құрылғысы автоматты түрде «оқу-өзгерту-жазу» деп аталатын арнайы режимді жүзеге асырады. Бұл кіру режимі сигналдарды порттың сыртқы түйреуіштерінен емес, оның ысырма регистрінен енгізуді қамтиды, бұл бұрын шығарылған ақпаратты қате оқуды болдырмайды. Порттарға қол жеткізудің бұл механизмі командаларда жүзеге асырылады:




Жоғарғы