Микроконтроллердің негiзгi тағайындалуы

КІРІСПЕ

           Транзистордың пайда болуы ЭЕМ жылдамдығын  секундына он және жүз мың операцияларды орындайтын халге жеткізді. ЭЕМ элементтерінің құрамына транзистор, диодтар, резисторлар, конденсаторлар қосылды. Мұндай ЭЕМ-дер екiншi ұрпақтың машиналарына жатты.

Құрамына электрондық элементтердiң үлкен санын қосатын интегралды микросұлбалар қолданысқа ене бастауы ЭЕМ-нің үшiншi және одан ары қарайғы түрлері жылдамдықтарын тағы бірнеше есе көбейтті және адамның оны басқаруына, жеңіл пайдалануына жол ашты.

Бұйымдарда  микроконтроллерлерді қолдану тек қана техникалық-экономикалық көрсеткiштердiң (құн, сенiмдiлiк, тұтынылатын қуат, габариттi өлшемдер) жоғарылатуға алып келмейді, сонымен қатар бұйымдарды өңдеу уақытын қысқартуға мүмкiндiк бередi және оларды сыртқы ортаның кез келген жағдайына бейімділігін, адапттивтiлігін жақсартады. Микроконтроллерді басқару жүйелерiнде қолдану аз шығындап, биiк тиiмдiлiк көрсеткiштерiне жетуді қамтамасыз етедi.

Микроконтроллерлер құрамында түрлi объекттер және процесстердiң тиiмдi автоматтандыру құралдары болады. Микроконтроллерді бiр микросхемада орналасқан компьютер ретiнде санауға болады. Бұдан оның негiзгi тартымды сапалары: аз габариттер, жоғарғы өнiмдiлiк, сенiмдiлiк және қабiлеттiлiгi тiптен әр түрлi есептердiң орындауы шешіледі.

Микроконтроллер орталық  процессордан (ОП ) тыс жады және көп құрылымды енгізу/шығару функцияларын өз құрамына енгізеді. Олар: аналогтық-цифрлық түрлендiргiштер, мәлiметтiң бiртiндеп және параллель берiлу каналдары, нақты уақыттың таймерлерi, ендiк - импульсты модуляторлар (ЕИМ ), программалалатын импульстердiң генераторы және тағы басқалар.

 Микроконтроллердің  негiзгi тағайындалуы – оны автоматты басқару  жүйелерiнде, тiптен әр түрлi құрылымдарда қолданылуы болып табылады.

1-БӨЛІМ

МИКРОКОНТРОЛЛЕР. 

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

1.1. Микроконтроллерлердің MCS-51, MCS-52, MCS-251  топтары

          Алғашқы микроконтроллерлер (8048-шi топтама ) 1976 жылы батыс нарығында пайда болып, бiрден өңдеушiлер және тұтынушылардың назарын жаулап алды.

          Дегенмен де iс жүзiнде  бұл микроконтроллердің кемшiлiктерi бiрден атап өтiлдi. Өндірушілер ТЕСҚ (тұрақты есте сақтайтын құрал) көлемiнiң тапшылығын үнемi байқады. ЖЕСҚ (жедел есте сақтайтын құрал) көлемі де аз  болды, 64 байттың жартысынан көбін жүйелік регистрлер алып тұрды. Көп командалардың тапшылығы сезілді.

          Осыған байланысты Intel өңдеушi фирмасының алдында ауыр міндет тұрды – ол бойынша микро-ЭЕМ қасиеттерін оның корпусының шығыс санын үлкейтпей және 256 командалық шектен шықпай толықтыру болды. Бұл фирма осыдан кейін 8051 сериялы өнімін шығарды. Олардың жаңа шығарыламы - 8051 өнiмдiлiгі бойынша 8048 сериясынан асып түстi. Ол екi есе көп ЖЕСҚ-на ие болды, төрт енгізу/шығару портын, екi есе көп жалпы тағайындаудың регистрлерiн, екi есептеуiш-таймер және екi үзу сызығын құрамына біріктірді.

         Бұл микро-ЭЕМ-дің пайда болуы  8048-шi топтардың пайдаланылуын артқа шегiндiрді. Олардың шығарылымы және кең қолданылуы бұрын игерiліп келген аппаратураларды, өндірістен және қолданыстан біртіндеп шығара бастады. 1990-шы жылдары микро-ЭЕМ-нің 8051 сериялары қолжетімді және отандық қолданушыларына болды.

          Өңдеушiлер 8051 микро-ЭЕМ жасалған соң да тоқтамады, олар оны жетiлдiруiнiң варианттарын iздестiруді бастады. Бұл үшін оларға микро-ЭЕМ-нің функционалдық мүмкiндiктерін кеңейтіп қана қоймай, сонымен қатар оның өнiмдiлiгiн жоғарылату және оны 8051 топтарымен бағдарламалы сәйкестендіру керек болды. Өйткені барлық бағдарламалар 8051 сериялы микроконтроллер үшiн жазылған және оның аппаратты қолдануының барлық варианттарын қандай да болсын толықтырусыз жаңа микроконтроллерде орындалуы керек болды.

           1995 жылдың басында Intel фирмасы микроконтроллердің жаңа MCS-251 топтарын жарыққа шығарды. Оның пайда болуы бүкiләлемдiк микроконтроллерлердiң MCS-51 топтарының архитектурасындағы сапалық өзгерісті белгiледi.

           Бұл микроконтроллерлерді программалау ассамблер немесе Си тілінде жүргізіледі. Программаны қайта құру үшін программалы симуляторлар (дербес компьютерлерге арналған арнайы программалар, ішкі жүйе) және эмуляторды (микроконтроллерлерге ұқсас электронды құрылғы) қолданады.

          Микроконтроллерлер программасына енгізілген түрлі электронды құрылғылар әр-түрлі әрекеттерді басқару үшін пайдаланылады. Микроконтроллердің микропроцессорлардан айырмашылығы, дербес компьютерлерде қолданылатын оларда қосымша құрылғылар орнатылған. Бұл құрылғылар өз міндеттерін микропроцессорлы микроконтроллерлер ядросы арқылы басқарып отырады.

          Өндірушілердің бағалауы бойынша, микроконтроллерлердiң MCS-251 топтарының MCS-51 мен салыстырғанда өнiмдiлiктері және кейбір қасиеттері байытылған. Микроконтроллерлердiң адрестi кеңiстiгi 16 Мбайтқа дейiн кеңейтілген, сонымен бiрге iшкi регистрлердiң жиыны да ұлғайған. Командалар жүйесiне жаңа нұсқаулардың үлкен саны қосылған.

Артықшылығы:

  • бұйымдардың үлкен номенклатурасы;
  • микроконтроллерлердi өңдеушiлердiң үлкен тәжiрибесi;
  • аспапты құралдардың үлкен саны.

Кемшілігі:

  • Аккумулятор базасындағы арифметика–логикалық  құрылымның баяулығы;
  • нұсқаудағы  такттердiң үлкен саны;
  • бос  командалық циклдердiң  болуы;
  • көп энергия тұтынуы, (MCS-251 ).

1.2. Микроконтроллердің құрылымы

Микроконтроллердің құрылымына негізінен бағыттаушы құрылым, арифметика - логикалық  құрылым және ішкi регистрлердiң  блогы кіреді. Бұл негізгі параметрлер барлық микроконтроллерлер құрамында болады. Микроконтроллерде сигнал алмасу, яғни екі жақты алмасу мәліметтердің     8-разрядты магистралі арқылы жүзеге асады. Бұл құрылымдар арасында бағдарлаудың ішкі сигналының мәліметтерді беру жүйесі   орналастырылған.   Микроконтроллердің құрылымының схемасы төмендгі 1-суретте көрсетілген.

 

1.1-сурет. Микроконтроллердің құрылым схемасы

1.3. Микроконтроллердің басқару блогы

Басқару блогы және синхронизациялар синхронизацияланған және бағдарлаушы сигналдарды өндiру үшiн арналған. Басқару блогiнiң құрамдарына кiредi (Микроконтроллердің блок схемасы 2-суретте көрсетілген):

  • уақыт аралықтарының құрастыру құрылымы;
  • енгiзу-шығару логикасы;
  • команда регистрi;
  • электр энергиясының тұтынуын басқаратын регистр;
  • командалар дешифраторы, ЭЕМ басқару логикасы.

    Уақыт аралықтарының құрастыру құрылымы iшкi фаза сигналдарын құрастыру және беру үшiн арналған. Машина циклдерiнiң саны командалардың орындалуының ұзақтықтығын анықтайды. БКЭЕМ-ның    (бір кристалды ЭЕМ) түгелдей дерлiк командалары бiр немесе екi машина циклдаларында орындалады.

     Енгiзу-шығару логикасы енгізу/шығару порттары арқылы сыртқы құрылымдармен ақпарат алмасу сигналдарын қабылдау және беру үшiн арналған.

Команда регистрi атқарылатын команданың 8-шi дәрежелiк операция кодын жазу және сақтау үшiн арналған.

  Электр энергиясының тұтынуын басқаратын регистр электр энергиясының тұтынуын кiшiрейту және бөгеу деңгейінiң кiшiрейуi үшiн микроконтроллердiң жұмысын тоқтатуға мүмкiндiк бередi.

Командалар дешифраторы, ЭЕМ басқару логикасы  команданы орындау барысында операция кодтарын микропрограммаға өзгертедi.

 

 

1.2-сурет. Контроллердің қозғалыс блок-схемасы

1.4. Микроконтроллердің арифметика-логикалық құрылымы

     Арифметика-логикалық құрылым арифметикалық және логикалық операцияларды орындауды қамтамасыз ететiн параллел сегiз разрядты құрылымнан тұрады. Арифметика-логикалық құрылым құрамына мыналар кіреді:

  • ТЕСҚ  тұрақтылары,
  • сумматор,
  • қосымша регистр ( В регистры),
  • аккумулятор,
  • бағдарламалардың күйi  регистрі.

ТЕСҚ тұрақтылары мәлiметтердiң екiлiк-ондық кодта берiлуiн өндiрудi қамтамасыз етедi.

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

B регистры операция уақытында көбейту және бөлуде қолданылатын сегiз разрядты регистр. Ол басқа нұсқаларда қосымша жедел регистр сияқты қарала алады.

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

 Бағдарламаның күй регистрі  бағдарламаны орындау кезіндегі арифметика-логикалық құрылымның күйi туралы ақпаратты сақтау үшiн арналған.

Электрондық құрылғыларды басқару  үшiн қолданылатын микросхема  —  микроконтроллер. Микроконтроллер  процессордың функцияларын бойына жинаған  оның құрамында ТЕСҚ және ЖЕСҚ болады. Басқаша айтқанда бұл қарапайым  тапсырмаларды орындай алатын біркристалды компьютер.

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

1.3-сурет.К1830ВЕ751 микроконтроллерінің құрылымдық схемасы

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

          Басқару блогы (Timing and Control) құрылғының блоктармен үйлескен жұмысын оның кез-келген жұмыс режимінде қамтамасыз ететін басқарушы сигналдарды тудыру үшін арналған. Оның құрамына уақыт интервалын қалыптастырушы құрылғы, енгізу-шығару логикасы, командалар регистрі, электр энергиясын тұтынуды реттейтін регистр және де команда дешифраторы, ЭЕМ басқару логикасы.

           Тактілік жиілік генераторы (такті импулсі генераторы) әр түрлі процестерді синхронизациялау үшін берілген жиілікте электрлік импульсті өндіреді. Тактілік импульс эталонды жиілік ретінде қолданылады-олардың санын өлшей отырып, мысалы, уақытша интервалдарды өлшейди.

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

          Уақытша интервалды қалыптастыру құрылғысы циклдер, тактілер және фазалар ішкі синхросигналдарын беру және қалыптастыру үшін арналған. Машиналық циклдердің саны орындалған команділердің ұзақтығын анықтайды.  Негізінде БЭЕМ-нің орындалуы төрт машиналық циклді құрайтын көбейту және бөлу команділерінен басқа барлық команділері бір немесе екі машиналық циклде орындалады. Fг арқылы берілген генератордың жиілігін белгілейік. Онда машиналық циклдің ұзақтығы 12/Fг  тең немесе берілген генератор сигналының 12 периодын құрайды. Еңгізу-шығару логикасы Р0-Р3 еңгізу-шығару порттары арқылы 12/Fг ішкі құрылғыларымен ақпарат ауыстыруды қамтамасыз ететін  сигналдарды шығару және қабылдау үшін арналған.

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

           Электр тұтынуды басқаратын регистр  (PCON) қуат көзін тұтыну азйып кеткенде және микроконтроллер тарапынан болатын бөгеттер деңгейінің төмендеп кеткенде микроконтроллердің жұмысын тоқтатуға мүмкіндік береді.

           Арифметика-логикалық құрылым (ALU)  арифметикалық және логикалық операцияларды орындауды қамтамасыз ететiн параллел сегiз разрядты құрылымнан тұрады.

          Бағдарламаның күй регистрі (PSW)  бағдарламаны орындау кезіндегі арифметика-логикалық құрылымның күйi туралы ақпаратты сақтау үшiн арналған.

          Командалар счетчигі (Program Counter) берілген 16 разрядты адресті ішкі бағдарлама жадысына және 8/16 разрядты адресті сыртқы бағдарлама жадысына қалыптастыру үшін арналған.

          Мәліметтер жадысы (RAM) бағдарламаны орындау кезінде қолданылатын мәліметтерді уақытша сақтауға арналған.

          P0, P1, P2, P3 порттары екіжақты бағытталған енгізу-шығару квазипортына жатады. Ол 32 енгізу-шығару сызығын бейнелей отырып, ЭЕМ мен оның ішкі құрылғыларымен ақпарат алмасуын қамтамасыз етеді.

          Бағдарлама жадысы (EPROM) құрамына тұрақты есте сақтау жүйесін қосқан және бағдарламаларды сақтауға арналған. Микросұлба түріне қарай ТЕСҚ өшірілетін және тазаланатын түрлері қолданылады.

          Мәліметтерді көрсету регистрі (DPTR) 16 разрядты адресті сыртқы жадыға немесе бағдарлама жадысына сақтауға арналған.

          Стек көрсеткіші (SP) кұрамына сегізразрядты регистрді қосқан, кез келген жады ұяшығына мәліметтерді уақытша сақтай алатын жадының ерекше аймағын қалыптастыруға арналған.

 

2-БӨЛІМ

МИКРОКОНТРОЛЛЕРЛЕРДІҢ ЖЕКЕЛЕНГЕН ТОПТАРЫ

2.1. Бiр кристалды микроконтроллер, 78K0R/LG3-M

Renesas Electronics компаниясы электр  энергиясын есептейтін бiрфазалық  статикалық электрондық есептеуiштерiнің  қызметiн жобалауға мүмкiндiк беретiн  78K0R/LG3-M 16-дәрежелiк микроконтроллерлерді  жасап шығарды. Құрамына 20 Мгц  жиiлiкпен жұмыс істейтін және 128 Кбайттық флеш жадысы бар  жоғары өнiмдi 16-биттiк ядроны біріктірген  жаңа микроконтроллерлер есептеуiштiң   барлық негiзгi функцияларын құрамына  біріктірген. 

2.1.-сурет. Бір кристалды 78K0R/LG3-M микроконтроллер

Айырмашылық ерекшелiктері:

  • Бiр фазалық электр энергиясы есептеуiштерiнiң ұлғаймалы функционалдығын қолдауы. Үлкен көлемдi флеш жадының арқасында электр энергиясының бiр фазалық есептеуiштерiндегi әр түрлi функциялардың iске асу мүмкiндiгi.
  • Кiрiстiрiлген метрологиялық iшкi жүйе. Микроконтроллерлер құрамына төрт кiрiстiрiлген 24-биттiк аналогты-цифрлық түрлендiргiш (АЦТ) кіреді. Метрологиялық қозғағыш қосымша функцияларды орындау үшiн калибрлеу функциясын және қуат есептеуiшті іске қосады. Құрылымның активті қуатты өлшеуінің жоғарғы дәлдiктерге жетуіне мүмкіндік туады (қателік шамамен 0.1% құрайды).
  • Ультратөмен энергия тұтыну. Микроконтроллерлер жұмыс қабiлеттiлiгін қорек көзінің кернеуін     1.8-3.6 В аралығында сақтайды және электр энергиясынан ажыратылған жағдайда кішкене корек көзінің арқасында өте аз энергия тұтынып құрылғының нақты уақыт сағатында жұмыс жасауына мүмкіндік туғызады.

2.2. 8-биттік микроконтроллерлер, XC82/XC83Smart

XC82x және XC83x сериялары 24 Мгц  жиiлiкте жұмыс iстейтiн 8-биттiк  Infineon микроконтроллерлерiнің топтарына  жатады. Қазіргі кезде бұл микроконтроллерлер 2-8 Кбайттық флэш жадымен шығарылады. Микроконтроллердің сыртқы көрінісі 4-суретте бейнеленген.

  Микроконтроллерлердiң ең маңызды мiнездемелерiне коммуникациялық интерфейстер, генерациялы ендік импулсті модулятор сигналы және көп каналды 10 биттiк АЦТ, сонымен бірге төмен энергия тұтынудың қауіпсіз режимін жатқызуға болады. Микроконтроллердің стандартты 8 биттiк мәлiметтердi өңдеуiн көбейту/бөлу модулі арқылы математикалық сопроцессор жылдамдатады. Бұл микроконтроллерлердiң базасында қозғалтқыштардың басқару жүйелерi үшiн тиiмдi және интеллектуалды шешiмдердi құруға мүмкiндiк бередi.

2.2-сурет. Infineon микроконтроллерлерiнің сұлбасы

Ерекшелiктері:

  • Сенсорлық басқару (ТЕСҚ-ның кеңейтілген кiтапханасымен);
  • Көбейту/бөлу блогы (өнiмдiлiктi қосымша жоғарылату және басқару мүмкiндiктерiн кеңейту үшiн);
  • 10 битті төрт каналдық АЦТ;
  • Векторлық сопроцессор (коллекторсыз қозғалтқышты векторлық басқару үшiн);
  • Тізбектелген интерфейстердің болуы;
  • Жұмыстың өшу/қосылу тәртiптері.

Микроконтроллерлердiң XC82x/XC83x топтары сенсорлық басқару интерфейсінiң  арқасында қозғалтқыштарды автоматтық басқару және автомобилдiк нарықтың жаңа құрылғылары ретінде қолданыла  бастады. Олардың әрқайсысына жекелей  тоқтала кетсек, XC82x/XC83x микроконтроллерлерінiң  негізгі қолданылу аймақтары  былай жіктеледі:

  • Қозғалтқышты басқару құралдары:
  • Желдеткiштердi, үрлегiштерді және тағы басқа құрылғыларды басқаруға арналған кеңейтілген коммуникациялық құрымдардың тұрақты тоғының коллекторсыз қозғалтқыштарында;
  • Өлшегіш аспаптардың қозғалтқышын тiкелей басқаруда.
  • Автомобилдiң сенсорлық басқару құралдары:
  • Жарық шығаруда жарық диодтарының сәуле тарату түсiн реттеу;
  • Басқару құралдары (терезе көтергiштерді, айнаны, т.б.)
  • Автокөлiктiң төбесіндегі люкті басқару;
  • Отырғыштарды басқару;
  • Орталықтандырылған басқару жүйелерi, мысалы, жылыту, желдету және ауа тазарту;
  • Аспаптық панельдерді жарықтандыруды қамтамасыз етуді басқару.

3-БӨЛІМ

МИКРОКОНТРОЛЛЕРДІҢ  КОМАНДАЛАР ЖҮЙЕСІ

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

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

  • Арифметикалық командалар;
  • Логикалық командалар;
  • Ақпаратты беру командалары;
  • Биттік процессор командалары;
  • Басқарма берілісінің және тармақты командалар.

 

Командалар жүйесінде  қолданылатын символдар және белгілеулер               кестесі

Белгіленуі, символ

Тағайындалуы

А

Аккумулятор

Rn

Таңдалған регистор

r

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

direct

Тура адрестелген 8-биттік ішкі мәліметтердің адрес ұяшығы

@Rr 

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

data8

8-биттік тікелей мәліметтер

dataH

16-биттік тікелей мәліметтердің  үлкен биттері (15-8)

dataL

16-биттік тікелей мәліметтердің  кіші биттері (7-0)

addr11

11-биттік адрес 

addrL

Тағайындалған адрестің кіші биттері

disp8 

8-биттік байт

bit

Тура адрестік бит

a15, a14...a0

Адрес биттері

(Х)[M]

Х элементінің М разряды

 

+

-

*

/

AND

OR

XOR

/X

Операциялар:

Қосу

Алу

Көбейту

Бөлу

Логикалық көбейту (және операциясы)

Логикалық қосу (немесе операциясы)

2 модулі арқылы қосу

Х элементінің инверсиясы


 

Микроконтроллерлерде  қолданылатын операндтар

Белгіленуі

Функциясы

ADC

Тасымалдаумен қосу

ADD

Тасымалдаусыз қосу

ADIW

Тікелей мағынада қосу

AND

Логикалық AND-ны орындау

ANDI

Логикалық AND-ны тіклей мағынада орындау

ASR

Арифметикалық оңға жылжыту

BCLR

Жалауды тазалау

BLD

Бит регисторына Т жалаушасын жүктеу

BRBC

Бит регистор жағдайында тазаланған жағдайда өту

BRBS

Бит регистор жағдайында орнатылған жағдайда өту 

BRCC

Тасылмалдау жалаушасы тазаланған жағдайда өту

BRCS

Тасылмалдау жалаушасы орнатылған жағдайда өту

BREQ

Тең жағдайда өту

BRGE

Тең немесе үлкен болған жағдайда өту

BRHC

Жартылай тасылмалдау  жалаушасы тазаланған жағдайда өту

BRHS

Жартылай тасылмалдау  жалаушасы орнатылған жағдайда өту 

BRID

Глобалды үзуге тыйым  салынған кезде өту

BRIE

Глобалды үзуге рұқсат етілген кезде өту

BRLO

Аз болған жағдайда өту (белгісіз)

BRLT

Аз болған жағдайда өту (белгімен)

BRMI

Минус кезде өту

BRNE

Тең емес кезде өту

BRPL

Плюс жағдайда өту

BRSH

Тең немесе үлкен болған жағдайда өту (белгісіз)

BRTC

Т жалаушасы тазаланған жағдайда өту

BRTS

Т жалаушасы орнатылған жағдайда өту

BRVC

Аса толу тазартылған кезде  өту

BRVS

Аса толу орнатылған кезде  өту

BSET

Жалаушаны орнату

BST

Т жалаушасына регистрдан битті жазу

CALL

Келесі программаны шақыруды орындау

CBI

I/O регистрінде битті өшіру

CBR

Регистрдағы битты өшіру

CLC

Тасымалдау жалаушасын тазарту

CLH

Жартылай тасымалдау жалаушасын тазарту

CLI

Глобалды  үзу жалаушасын тазарту

CLN

Теріс мағына жалаушасын тазарту

CLR

Регистрді тазалау

CLS

Белгі жалаушасын тазарту

CLT

Т жалаушасын тазарту

CLV

Аса толу жалауын тазарту

CLZ

Нольдік мағыналы жалауды  тазарту

COM

Бірлікке дейін толықтыруды  орындау

CP

салыстыру

CPC

Тасымалдау есебімен салыстыру

CPI

Константпен салыстыру

CPSE

Тең болса салыстыру және тексеру

DEC

Декрементирлеу

EOR

Шығаруды орындау

ICALL

Келесі программаны жанама шақыру

IJMP

Жанама өту

IN

I/O портынан мәліметтерді регистрге жазу

INC

Инкрементирлеу

FMUL

Бөлшекті көбейту

FMULS

Сандық бөлшекті көбейту

FMULSU

Белгілі және белгісіз (белгісі  жоқ) бөлшекті көбейту

JMP

Өту

LD Rd,X

Жанама жүктеу

LD Rd,X+

Соңынан инкреминтерлеу арқылы жанама жүктеу

LD Rd,-X

Алдын ала инкреминтерлеу арқылы жанама жүктеу

LDI

Тікелей мағынада жүктеу

LDS

Тікелей мағынада ЖЕСҚ-тан  жүктеу

LPM

Программа жадысына байтты жүктеу

LSL

Логикалық солға жылжыту

LSR

Логикалық оңға жылжыту

MOV

Регистрді көшіру

MUL

Көбейту

NEG

Екіге дейін толықтыру

NOP

Бос команданы орындау

OR

Логикалық OR-ді орындау

ORI

Логикалық OR-ді тікелей мәнмен орындау

OUT

I/O портына регистрден мәліметтерді жазу

POP

Стектен регистрді жүктеу

PUSH

Стекке регистрді орнату

RCALL

Келесі программаны қатысты  шақыру

RET

Бастапқы программаға  кайта оралу

RETI

Үзілуден қайта оралу

RJMP

Қатысты өту

ROL

Тасымалдау арқылы солға  жылжыту

ROR

Тасымалдау арқылы оңға жылжыту

SBC

Тасымалдаумен шегеру

SBCI

Тасымалдаудың тікелей мәнімен  шегеру

SBI

I/O регисторына битті орналастыру

SBIC

I/O регистрінде бит тазаланған болса өткізу

SBIS

I/O регистрінде бит орнатылған болса өткізу

SBIW

Созден тікелей мәнімен  шегеру

SBR

Регистрге битті орналастыру

SBRC

Регистрде  бит тазаланған болса өткізу

SBRS

Регистрде  бит орнатылған болса өткізу

SEC

Тасымалдау флагын орнату

SEH

Жартылай тасымалдау флагын орнату

SEI

Глобалды үзу флагын орнату

SEN

Теріс мән флагын орнату

SER

Регистрдің барлық биттерін орнату

SES

Белгі жалаушысын орнату

SET

Т жалаушасын орнату

SEV

Толу жалауын орнату

SEZ

Нолдік мәне жалауын орнату

SLEEP

SLEEP режимін орнату

ST X,Rr

Жанама жазу

ST Y,Rr

ЖЕСҚ-қа регистрден Ү индексін қолданып жазу

ST Z,Rr

ЖЕСҚ-қа регистрден Z индексін қолданып жазу

STS

Тікелей ЖЕСҚ-қа жазу

SUB

Тасымалдаусыз шегеру

SUBI

Тікелей мәнге шегеру

SWAP

Ниббл орындарын ауыстыру

TST

Нолге немесе минусқа тексеру

WDR

Таймерді түсіру (нолге  айналдыру)


 

Микроконтроллер директивалары

 

 

ДИРЕКТИВА

Мәні

Мысал

Басқару директивасы

CONSTANT

Символдық константты анықтау

constant  cnt=255

#DEFINE

Алмастыру үшiн мәтiндiк тiзбектi анықтама

#define snd portsnd, 1

END

Программа блогiнiң соңы

end

EQU

Тұрақты шаманың анықтамасы

temp    equ 0xF0 

ERROR

Қателiк туралы хабар

error "error line"

ERROR LEVEL

Листингтiң файлында қателiк түрiндегi және  файл қателерi  туралы хабар қондыру

errorlevel 1, -202

INCLUDE

Қоректендірудің басқа файлын қою

include <addmain.asm>

LIST

Егер  алдын ала тыйым салынған болса форматты (микроконтроллер типі, жолдағы символдар саны) анықтауға рұқсат етеді

list p=17c42, f=INHX32, r=DEC

MESSG

Қолданбалы хабарлама құру

messg "see here!"

NOLIST

Қорытындыға тыйым салу

nolist

ORG

Программаның бастапқы адресi орнату

org 0x100

PAGE

Листингтiң файлына беттi қыстыру

page

PROCESSOR

Микроконтроллердiң түрiн орнату

processor 16F84

RADIX

Мәлiметтерлердi бiлдiру үшiн үндемеу бойынша есептеу жүйесiн орнату

radix dec

SET

Тұрақты шаманың анықтамасы. EQU ұқсас, бiрақ кейiнiректе қайта анықтауға болады

temp   set b'00110011'

SPACE

Листингтiң файлына жаңа жолды қыстыру

space 3

SUBTITLE

Листингтiң файлына екiншi тақырыпты қыстыру

subtitle "Main Project"




 

TITLE

Листингтiң файлына тақырыпты қыстыру

title "Project Of PIC"

#UNDEFINE

Белгiлi мәтiндiк тiзбектi алып тастау

#undefine snd

VARIABLE

Нышандық айнымалының анықтамасы

variable temp=0xF0

Шарт

ELSE

(IF) баламалы шартты блокгінің басы

else

ENDIF

Шарттың блогiн аяқтау

endif

ENDW

ПОКА циклінің аяқталуы

endw

IF

Шарттың блогiн басы

if version == 100

IFDEF

Выполнить, если определено

ifdef testing

IFNDEF

Егер анықталынған болса орындау

ifndef testing

WHILE

ПОКА циклы

while i < count

Мәліметтер

CBLOCK

Тұрақты шамалардың блогiн анықтама

cblock 0x20

CONFIG

Микроконтроллердiң кескiнiнiң битiне сипаттама

config H'FFFF'

DATA

Сандық  және мәтiндiк мәлiметтерді жасау

txt   data "please", 0x30

DB

Мәлiметтерлер байтының анықтамасы

temp   db 0xFF

DE

EEPROM-де мәлiметтерлердi анықтау

temp   de 0xF0, 0xF1

DT

Кестені анықтау

temp   dt "text", 0, 0x30

DW

Мәлiметтерлер (2 байт) сөзінің анықтамасы

temp   dw 39, "text"

ENDC

Тұрақты шамалардың блогiн аяқталу

endc

FILL

Тұрақтылар облысының толтыруы

fill 0x1009, 5

IDLOCS

ID анықтау

idlocs H'FFEE'

RES

Жадтың сақтауы

buffer   res 64




 

Микроконтроллер  жадысын ұйымдастыру

 

PIC16F87X микроконтроллерлерінде  жадының үш түрі бар. Бағдарлама  жадысы мен деректер жадысының  ақпарат пен деректерінің бөлек  шиналары болады, олар жұмыстың  параллельді орындалуына мүмкіндік  береді.

Бағдарлама жадасын ұйымдастыру. PIC16F87X микроконтроллері РС командасының 13-разрядты санағышына ие, ол  бағдарлама жадысының 8К×14 сөздерін адрестей алады. PIC16F877-де 8К×14 FLASH бағдарлама жадысыны физикалық түрде іске асырылған. Физикалық орындалмаған жады бағдарламаларын шақыру орындалған жадының адрестеуіне әкеледі. Бастапқы күйге келтіру векторының адресі  – 0000h. Үзу векторының адресі – 0004h.

Деректер жадысын ұйымдастыру. Деректер жадысы жалпы және арнайы (SFR) тағайындалған регистрлері бар 4 банкке бөлінген. RP1 (STATUS<6>) және RPO (STATUS<5>) биттері ақпарат банктерін басқару үшін арналған. Төмендегі кестеде деректер жады банктерін шақыру кезіндегі басқарушы биттердің күйі көрсетілген.

                    

  5.1-кесте

RP1:RP0

Банк

00

0

01

1

10

2

11

3


 

Деректер жады банкісінің көлемі 128 байт (7Fh) болады. Банктің бас жағында арнайы тағайындалған регистрлеры, одан кейін статикалық ОЕҚ ретінде орындалған жалпы тағайындалған  регистрлеры орналасады. Барлық іске асырылған банктердің арнайы таағйындалған регистрлеры болады. Кейбір, жиі қолданылатын арнайы тағайындалған регистрлеры басқа да жады банктерінде бейнеленуі мүмкін.

 

4-БӨЛІМ

МИКРОКОНТРОЛЛЕРЛЕР АДАМ ӨМІРІНДЕ

Қазіргі заманғы техникалық  прогрестің ерекше белгісі – адамның  тіршілік әрекетінің барлық салаларында  электроника және микроэлектроника құралдарының көмегімен басқарылатын техниканың қолданылуы болып табылады. Бұл уақытта ақылды кибернетикалық машиналардың қолданылуы күнделікті іске айналды. Тұрмыста берілген бағдарламамен  жұмыс істейтін ас істейтін, ыдыс және кір жуатын машиналар басқа да адамның жұмысын жеңілдететін техникалыр пайдаланылады.

         Ғылым мен техниканың кез-келген  саласының пайда болуы және  дамуы – белгілі бір уақыт аралығында жүретін, басқа да объективтік және субъективтәк себептер мен жағдайларға тәуелді және өзара байланысты күрделі үрдіс болып табылады. Кейбір жағдайларда осы немесе басқа техникалық құрал ерте пайда болды да, осы техникамен байланысты нақты ғылыми бағыттардың пайда болуына алғы шарттар тудырды. Кейбір жағдайларда, жинақталған ғылыми білімдерімізге байланысты техниканың жаңа турін құру мүмкіндігіне ие боламыз немесе бар техниканы жетілдіреміз.

Микроконтроллердің негiзгi тағайындалуы