ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ

 Алматы энергетика және байланыс институтының

Коммерциялық емес акционерлік қоғамы

 

 

О.Т. Шанаев

ЦИФРЛЫҚ ҚҰРЫЛҒЫЛАР ЖӘНЕ МИКРОПРОЦЕССОРЛАР

 Оқу құралы

 

Алматы 2009

 

Оқу құралында цифрлық құрылғылардың математикалық (арифметикалық және логикалық) негіздері, қиыстырма және тізбектеме құрылғылардың құрылу тәртібі мен іс-әрекеті және олардың қалыпты түрлері, жады құрылғыларының негізгі құрылым принциптері, микропроцессорлардың құрылымы мен олардың іс-әрекеттерінің ұйымдастырылу тәртібі қарастырылады. Микропроцессорлардың негізгі құрылым принциптері мен жұмыс тәртібін түсіндіру ыңғайлылығы үшін нақтылы Intel 8085 микропроцессоры алынып, оның ішкі құрама блоктары мен оның іс-әрекетін басқарушы бағдарламаларының құрылу негіздері қарастырылады.

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

 

Кіріспе

Әртүрлі деңгейдегі жиналымды микросхемалар арқылы жүзеге асырылатын цифрлық құрылғылар мен цифрлық өңдеу тәсілдері заман талабына сай (әртүрлі) құралымдардың негізін қалайды. (Бұл осы мәселелерге байланысты маманданушы студенттердің цифрлық құрылғылар жөнінде жеткілікті деңгейде білім алуын қажет етеді.)

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

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

Оқу құралының екінші бөлімі, жалпы түрде микропроцессорлық жүйе (МПЖ) деп аталатын, есептеу, бақылау-өлшеу және басқару жүйелерінің құрамындағы басты құрылғысы саналатын, микропроцессорлардың құрылымымен, олардың іс-әрекеттерінің ұйымдастырылу тәртібімен таныстыруға арналған. Микропроцессорлардың негізгі құрылым принциптері мен жұмыс тәртібін түсіндіру үшін олардың нақтылы бір түрін қарастыру ыңғайлы келеді. Оқу құралында осындай үлгі ретінде осы заманның басқару жүйелерінде кең қолданылатын қарапайым микропроцессор Intel 8085 алынып, оның ішкі құрама блоктары мен іс-әрекетін басқарушы бағдарламаларының құрылу негіздері қарастырылды.

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

Оқу құралы автордың өндіріс және педагогика саласындағы көпжылдық тәжірибесінің негізінде жазылды. Мазмұны жағынан оқу құралы бакалаврлық оқу жүйесінде 050704 – Есептеу техникасы және бағдарламалы қамтамасыздандыру және 050719 – Радиотехника, электроника және телекоммуникациялар мамандықтарына дайындау барысында оқытылатын “Цифрлық құрылғылар және микропроцессорлар” пәнінің бағдарламасына сәйкес келеді.

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

 

1 Цифрлық құрылғылар

1.1 Цифрлық құрылғылардың математикалық негіздері

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

1.1.1 Екілік санау жүйесі

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

Ондық санау жүйесінде сан жазуға он символ (0 … 9) пайдаланылады (бұл жүйенің ондық санау жүйесі деп аталуы да осыған байланысты). Бұл символдардың сандағы тұрған орнына байланысты құны (салмағы) белгіленеді: ол онның (яғни, санау жүйесінің негізінің) сәйкесті разряд нөмірінің мәніндегі дәрежесі арқылы анықталады. Сонымен, санның ең кіші разрядындағы (нөлінші разрядтағы) символдың құны бір (100), келесі разрядтың (бірінші разрядтың) құны он (101), одан әрі жүз (102), мың (103) және с.с. өзгере береді. Разряд құны, мәніне сәйкесті, бірлік, ондық, жүздік, мыңдық деп және с.с. аталады, ал сан разрядында тұрған символ сәйкесті разряд құнының сан құрамына қанша рет кіретіндігін көрсетеді. Келесі мысал арқылы айтылғанды түсіндірейік:

.

Сонымен, келтірілген санның құрамында 7 бірлік, 5 жүздік, 3 мыңдық бар, ал ондық жоқ (0).

Екілік санау жүйесінде сан жазуға екі символ (0 және 1) пайдаланылады. Разряд құны екінің (яғни, санау жүйесінің негізінің) сәйкесті разряд нөмірінің мәніндегі дәрежесі арқылы анықталады. Сонымен, санның ең кіші разрядындағы (нөлінші разрядтағы) символдың құны бір (20), келесі разрядтың (бірінші разрядтың) құны екі (21), одан әрі төрт (22), сегіз (23) және с.с. өзгере береді. Разряд құны бірлік, екілік, төрттік, сегіздік деп және с.с. аталады, ал екілік код разрядында тұрған символ сәйкесті разряд құнының сан құрамына қанша рет кіретіндігін, дәлірек айтқанда, бар-жоқтығын көрсетеді. Айтылғанды келесі мысал суреттейді:

.

Код құрамындағы символдардың 0 және 1 мәнінде ғана болуына байланысты, олар разрядқа сәйкесті құндық мәннің код құрамында бар-жоқтығын көрсетеді. Мысалы, келтірілген мысалдағы кодтың құрамында бірлік, екілік және сегіздік бар (1), ал төрттік жоқ (0).

 

1.1.2.1 Сандардың түрлендірілімі

1.1.1.1.1 Ондық санның екілік санға түрлендірілуі

Өзімізге үйреншікті ондық сан түріндегі информацияны цифрлық құрылғыда өңдеу үшін ол екілік санау жүйесіндегі сәйкесті көрсетілім түріне, яғни екілік кодқа түрлендірілуі керек. Ол үшін түрлендірілетін сан және алынған кезекті бөлінділер екіге (яғни, жаңа санау жүйесінің негізіне) тізбелеп бөлінеді де, бөлінді мәні нөл болған кезде бөлу операциялары тоқтатылады; жеке бөлу операцияларында анықталған қалдықтардың  шығарылым бағытына қарсы тәртіппен жазылымы осы ондық санның екілік кодын береді. Мысал ретінде, ондық санау жүйесіндегі 75 санына сәйкесті екілік кодтың анықталуын көрсетелік:

7510 = 10010112.

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

Айтылған тәсілдің кемістіктерінен құтылу мақсатында, автор ондық санның екілік кодын анықтауға іс жүзінде пайдаланып жүрген өз тәсілдерін ұсынады және оның біріншісін суреттеуге алдыңғы мысалда алынған 75 саны пайдаланылады:

-       алдымен алынған ондық санның құрамына кіретін екінің ең жоғарғы дәрежесіндегі санның екілік коды жазылады (6410 = 26 = 10000002, бұл санды сөз ыңғайлылығы үшін бірінші қадам коды деп аталық);

-       келесі қадамда түрлендірілетін саннан анықталған бірінші қадам коды алып тасталады да (75 – 64 = 11), қалған санның құрамына кіретін екінің ең жоғарғы дәрежесіндегі сан анықталады (810 = 23 = 10002, бұл санды екінші қадам коды деп аталық);

-       осы тәртіппен жалғастыра отырып, ақырында өзімізге жатталымды кішігірім санның кодына жетеміз (11 – 8 = 3, 310 = 112);

-       алынған бірнеше қадам кодтарын қосу арқылы қажетті код шығарылады.

Бұл тәсілдің айтылған тәртібінің біріктірілген суреттемесін көрсетелік:

Сонымен, қосу тәсілі деп аталатын бұл тәсілдің әр қадамында анықталатын кодтардың жазылымы да (1 және бірнеше нөл), олардың ақырында өзара қосылуы да оңай орындалатын операциялар болғандықтан бұл тәсіл арқылы ондық санның екілік кодын анықтау қиын болмайтындығы сөзсіз. Бірақ, кейбір жағдайда бұл тәсілді одан әрі жеңілдету мүмкіндігі туады. Мысалы, 1000 санының кодын шығару үшін алдыңғы тәсілді пайдалану алты қадамға созылады (512 + 256 + 128 + 64 + 32 + 8). Алынған сан 512-ден гөрі 1024-ке (210) жуық, сондықтан бұл жерде қажетті кодты шығару үшін 1024 санының кодынан 24-тің кодын алу жеңіл болар еді деген ой туады. Бірақ, 1024-тің 10000000000 түріндегі екілік кодынан 24 санының 11000 кодын алу тасымал арқылы жүзеге асырылатындықтан бұл оңай операция емес. 1024-тен 1 кемітілген 1023 санының коды 1111111111 болады және одан 23 санының 10111 кодын алу қиын еместігін осы мысалдың келесі суреттемесінен көреміз:

Сонымен, алу тәсілі деп аталатын екінші тәсіл коды ізделінетін ондық санның екінің нақтылы дәрежелі санынан аздап кем болған кезінде пайдалануға ыңғайлы келеді. Ол келесі тәртіппен жүзеге асырылады:

-       алдымен алынған ондық саннан аздап жоғары болатын екінің нақтылы дәрежесі арқылы сипатталатын саннан 1 кемітілген санның коды алынады (ол қатар жазылған бірнеше 1 арқылы жазылады және ондағы 1-дің саны дәреже мәніне тең болады):

-       бастапқы сан мен алынған кодтың ондық мәнінің айырымы анықталып, келесі қадамда екі тәсілдің ыңғайлысын пайдалану арқылы осы санның коды анықталады;

-       ақырында бірінші қадам кодынан екінші қадам коды алынып, қажетті код шығарылады.

Кейбір жағдайда ондық санға сәйкесті қажетті код айтылған екі тәсілді кезектеп пайдалану арқылы алынады.

  

1.1.1.1.2 Екілік санның ондық санға түрлендірілуі

Керісінше жағдайда, яғни берілген екілік код арқылы оған сәйкесті ондық санды анықтау код жазылымындағы 1 символдарының тұрған разрядтарына сәйкесті құндарын қосу арқылы жүзеге асырылады, оны келесі мысал суреттейді:

1101100012 = 28 + 27 + 25 + 24 + 20 = 256 + 128 + 32 + 16 + 1 = 43310.

1.1.1.1.3 Санның оналтылық жазылымы

Цифрлық құрылғылардың жұмысы екілік сандарға негізделген, бірақ пайдаланушыға мұндай сандармен жұмыс істеу (мысалы, Ассемблер тілінде бағдарлама құру кезінде) оңай нәрсе емес, сондықтан бұндай жағдайда пайдаланушының жұмысын жеңілдету үшін екілік кодтар оналтылық санау жүйесінде көрсетіледі. Жүйенің аталымына сәйкесті, бұл жүйеде сан жазуға (немесе көрсетуге) он алты символ пайдаланылады, олар – 1 … 9, A, B, C, D, E, F.

Ондық санның оналтылық жазылымын, әрине, дәстүрлі тәсілмен, яғни түрлендірілетін санды он алтыға бөліп, шығарылған қалдықтарды кері бағытта жазу арқылы анықтауға болады. Бірақ оны жеңілірек келетін тәсілмен анықтауға болады:

-       алдымен ондық санның екілік коды анықталады;

-       алынған кодтағы символдар кіші разрядынан бастап төрт-төрттен топтарға біріктіріледі;

-       әрбір топтың кодына сәйкесті оналтылық символын қою арқылы түрлендірілетін ондық санның оналтылық жазылымы шығарылады.

Айтылғанды келесі мысал арқылы түсіну қиын емес:

.

1.1.2 Логикалық функциялар

1.1.2.1 Негізгі функциялар

Цифрлық (логикалық) құрылғылардың кірістері мен шығыстарындағы кернеу мәндері логикалық 0 немесе логикалық 1 деп аталатын екі түрлі деңгейде болады. Логикалық құрылғылардың бұл ерекшелігі оларды жобалау үшін немесе осындай дайын құрылғылардың жұмысын талдау үшін логика алгебрасының (немесе Буль алгебрасының) қағидаларын пайдалануға мүмкіндік береді.

Цифрлық құрылғылардың атқарар қызметі сәйкесті логикалық функциялар арқылы сипатталады. Күрделілігі әртүрлі кез келген логикалық функцияны негізгі логикалық функциялар деп аталатын үш функция арқылы суреттеуге болады, олар – ЕМЕС, НЕМЕСЕ, ЖӘНЕ функциялары. Олардың атқарар қызметін кесте түрінде (ол ақиқаттық кестесі деп аталады) немесе сәйкесті логикалық өрнек арқылы суреттеуге болады.

ЕМЕС функциясы – аргументіне қарсы мәнді шығаратын, бір аргументті функция (1.1-кесте), сондықтан бұл функция инверсия (inversion - терістеу) деп те аталады. Оның аргументі Х деп белгіленген болса, онда бұл функция Y= өрнегімен суреттеледі.

1.1 К е с т е

Х1

0

1

1

0

 

  

НЕМЕСЕ функциясы – аргументтерінің барлығы да 0 кезінде ғана 0 шығаратын, ал қалған жағдайда (яғни, аргументтерінің кем дегенде біреуінің мәні 1 болғанда) 1 шығаратын, бірнеше аргументті функция (1.2-кесте). Бұл функция дизъюнкция (disjunction) немесе логикалық қосу (logical addition) деп те атала береді. Оның логикалық өрнегі Х1Х0 түрінде суреттеледі.

1.2 К е с т е

Х1

Х0

Х1Х0

0

0

0

0

1

1

1

0

1

1

1

1

 

 

 

 

ЖӘНЕ функциясы – аргументтерінің барлығы да 1 кезінде ғана 1 шығаратын, ал қалған жағдайда (яғни, аргументтерінің кем дегенде біреуінің мәні 0 болғанда) 0 шығаратын бірнеше аргументті функция (1.3-кесте). Бұл функция конъюнкция (conjunction) немесе логикалық көбейту (logical multiplication) деп те атала береді. Оның логикалық өрнегі Х1Х0 (немесе Х1Х0) түрінде суреттеледі.

1.3 К е с т е

Х1

Х0

Х1Х0

0

0

0

0

1

0

1

0

0

1

1

1

 

 

 

 

 

Суреттелген ЕМЕС, НЕМЕСЕ, ЖӘНЕ функциялары арқылы кез келген күрделі функцияны суреттеуге болады, сондықтан, олар логикалық функциялардың түпнегіздік жинағын (core set) құрады.

1.1.2.2 Әмбебап функциялар

Қарастырылған үш функциядан басқа, әмбебап функциялар деп аталатын екі функция бар, олар – НЕМЕСЕ-ЕМЕС және ЖӘНЕ-ЕМЕС функциялары. НЕМЕСЕ-ЕМЕС функциясы Пирс функциясы деп, ал ЖӘНЕ-ЕМЕС фукциясы Шеффер функциясы деп те атала береді. Олардың сәйкесті логикалық өрнектері  және  түрінде суреттеледі, ал атқарар қызметі 1.4-кестеде келтірілген.

1.4 К е с т е

Х1

Х0

0

0

1

1

0

1

0

1

1

0

0

1

1

1

0

0

 

 

 

  

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

1.1.2.3 Теңдік және теңсіздік функциялары

Ерекше қызметтерге пайдаланылатын тағы екі функцияны қарастыра кетелік, олар – теңдік (немесе арифметикалық қосу) функциясы мен теңсіздік функциясы. Олардың сәйкесті логикалық өрнектері  және  түрінде суреттеледі, ал атқарар қызметі 1.5-кестеде келтірілген.

1.5 К е с т е

Х1

Х0

0

0

0

1

0

1

1

0

1

0

1

0

1

1

0

1

 

 

 

  

1.1.3 Логика алгебрасының заңдары мен заңдылықтары

Цифрлық құрылғылардың схемаларын құру барысында оларды суреттеуші логикалық фунцияларды әртүрлі мақсатқа сай (мысалы, оларды қарапайым түрге келтіру үшін) түрлендіру қажет болады. Бұндай түрлендірімдер логика алгебрасының заңдары мен осы заңдардың жеке жағдайларға тікелей пайдалануға ыңғайландырып шығарылған заңдылықтарының негізінде жүргізіледі (1.6-кесте).

 

1.6 К е с т е

Заңдар

Коммутативтік (commutativity) немесе алмастырылым заңы

Х1Х0 = Х0Х1

Х1Х0 = Х0Х1

Ассоциативтік (associativity) немесе біріктірілім заңы

Х2(Х1Х0) = (Х2Х1)Х0

Х2 (Х1Х0) = (Х2Х1)Х0

Дистрибутивтік (distributivity) немесе таратылым заңы

Х2Х1Х1Х0 = Х1(Х2Х0)

2Х1)(Х1Х0) = Х1(Х2Х0)

де Морган заңы

Заңдылықтар

X0 = X

X0 = 0

X1 = 1

X1 = X

XX = X

XX = X

X = 1

X = 0

X1X1X0 = X1

X1(X1X0) = X1

X1X0 = X1X0

X1(X0) = X1X0

 

Бұл заңдар мен заңдылықтар – симметриялы, яғни олардың дизъюнкциялық және конъюнкциялық түрлері болады. Бұл заңдардың кейбірі дәстүрлі алгебрада қалыптасқан заңдар, сондықтан олардың дұрыстығы күмән тудырмайды, ал дәстүрлі алгебраға тән емес, жаңа заңдар мен заңдылықтардың дұрыстығына көз жеткізу (яғни, оларды дәлелдеу) аргументтерінің орындарына олардың сәйкесті мәндерін (0 мен 1) қойып тексеру арқылы жүзеге асырылады.

 

1.1.4 Күрделі функциялар

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

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

Кесте түрінде сүреттелген функцияның (1.7-кесте) логикалық өрнегін жазудың екі түрлі жолы (тәсілі) бар:

-       көбейтінділердің қосылымы түрінде, яғни алдымен ЖӘНЕ функцияларын пайдаланып, сосын олардың нәтижесін НЕМЕСЕ функциясымен біріктіру арқылы жазу;

-       қосындылардың көбейтілімі түрінде, яғни алдымен НЕМЕСЕ функцияларын пайдаланып, сосын олардың нәтижесін ЖӘНЕ функциясымен біріктіру арқылы жазу.

  

1.7 К е с т е

X2

X1

X0

Y

0

0

0

0

0

0

1

1

0

1

0

0

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

0

1

1

1

1

 

Бірінші тәсіл келесі тәртіппен жүзеге асырылады:

-       функцияның (Y) 1 мәнін қабылдайтын аргумент жинақтарының логикалық көбейтінділері жазылады;

-       алдыңғы айтылған логикалық көбейтінділерді жазу кезінде 1 мәніндегі аргументтер тура түрінде алынады да, 0 мәніндегі аргументтер теріс түрінде алынады (бұндай жазылымдар конъюнктивті термдер деп аталады);

-       жазылған конъюнктивті термдер логикалық қосу функциясы арқылы біріктіріледі.

Кесте түрінде берілген үш аргументті функцияның айтылған тәсілмен жазылған логикалық өрнегі:

.

(1.1)

Енді логикалық өрнектің жазылымының екінші тәсілін қарастыралық, ол келесі тәртіппен жүзеге асырылады:

-       функцияның 0 мәнін қабылдайтын аргумент жинақтарының логикалық қосындылары жазылады;

-       логикалық қосындыларды жазу кезінде 0 мәніндегі аргументтер тура түрінде алынады да, 1 мәніндегі аргументтер теріс түрінде алынады (бұндай жазылымдар диъюнктивті термдер деп аталады);

-       жазылған диъюнктивті термдер логикалық көбейту функциясы арқылы біріктіріледі.

Кесте түрінде берілген үш аргументті функцияның екінші тәсілмен жазылған логикалық өрнегі:

.

(1.2)

1.1.4.1 Логикалық функцияларды минимизизациялау

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

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

1.1.4.1.1 Тікелей түрлендіру тәсілі

Бұл тәсілмен логикалық функцияларды түрлендіру (минимизациялау) функция құрамындағы көрші термдерді тауып, оларға логика алгебрасының жоғарыда келтірілген заңдары мен заңдылықтарын тікелей пайдаланып біріктіру арқылы жүзеге асырылады. Көрші термдерге бір аргументінің ғана айырмашылығы бар термдер жатады. Осы тәсілдің жүргізілу жолын (1.1) және (1.2) өрнектерінің түрлендірілуін қарастыру арқылы түсінуге болады. (1.1) өрнегінің түрлендірілімі:

 (1.2) өрнегінің түрлендірілімі:

 

1.1.4.1.2 Карно картасы арқылы түрлендіру

Карно картасы – логикалық өрнектерді минимизациялауға ыңғайлан-дырылған, функцияның кестелі суреттелімінің ерекше түрі. Жоғарыда алын-ған мысалдағы функцияға құрылған Карно картасы 1.1-суретте келтірілген.

 

 

 

X1

X2

0

6

1

7

1

5

1

4

0

2

1

3

1

1

0

0

 

X0

1.1 Сурет

Карно картасында көрші термдер бірден көзге түседі: келтірілген картаның 1-, 3-, 5-, 7-ұяшықтарындағы бірліктердің өзара бірігіп, нәтижесінде одан X0 ғана қалатындығы және 4-ұяшықтағы бірліктің тек қана 5-ұяшықтағы бірлікпен бірігетіндігі көрініп тұр.

Төрт аргументті функцияға арналған Карно картасының түрі 1.2-суретте келтірілген.

 

 

X2

 

X3

12

13

9

8

14

15

11

10

X1

 

6

7

3

2

4

5

1

0

 

 

X0

 

1.2 Сурет

1.1.4.1.3 Арнайы түрлендіргішті пайдалану

Цифрлық құрылғыларды моделдеуге арналған бағдарламаларда мысалы, Electronics Workbench моделдеу жүйесінде минимизациялау жұмысын орындайтын арнайы түрлендіргіш (Logic Converter) орналастырылған. 1.3-суретте осы аспаптың сыртқы түрі және ол арқылы алынған функцияның минимизациялануы келтірілген.

1.3 Сурет


1.2 Қиыстырма құрылғылар

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

1.2.1 Логикалық элементтер

Логикалық элементтер – логикалық функцияларды жүзеге асыруға арналған құрылғылар. 1.4-суретте бұрын қарастырылған қарапайым функцияларды жүзеге асырушы сәйкесті логикалық элементтердің шартты сызба белгілемелері келтірілген.

 

NOT

OR

AND

NOR

NAND

XOR

XNOR

1.4 Сурет

1.2.1.1 Логикалық элементтердің тез әрекеттілігі

Логикалық элементтердің тез әрекеттілігі олардың бір жағдайынан екінші жағдайына ауысу жылдамдығымен анықталады. 1.5-суретте ЕМЕС (NOT) элементі арқылы өзгерелі сигналдардың өту нәтижесі көрсетілген.

1.5 Сурет

Бұнда шығыс сигналының өзгерісінің кіріс сигналының өзгерісінен нақтылы уақытқа кідіретіндігі айқын көрініп тұр. Біздің Electronics Workbench моделдеу жүйесінде жүргізген өлшеміміз бойынша ондағы ЕМЕС элементіндегі сигнал кідірісі 10 ns шамасында болады. Әрине, статикалық (яғни, белгілі уақыт аралығында тиянақты мәнін сақтайтын) сигналдармен істейтін құрылғылардың жұмысына бұндай кідірістің байқарлықтай әсері болмайды. Бірақ кейбір жағдайларда (мысалы, тізбектеме құрылғыларда) бұндай кідірістің құрылғының жұмысына байқарлықтай әсер етуі мүмкін. Кідіріс әрекетін суреттеу мақсатында екі ЕМЕС элементінің кірістеріне қатар берілген екі сигналдың осы элементтер арқылы алынған логикалық қосындысын қарастыралық (1.6-сурет). Схемада көрсетілгендей, бір сигнал екінші элементтің кірісіне екі ЕМЕС элементі арқылы берілген.

1.6 Сурет

Идеалды жағдайда (яғни, ЕМЕС элементтерінде ешқандай кідірістің болмауы кезінде) екі элементтің шығыстарындағы сигнал бірдей болар еді (1.7, a-сурет). Бұл диаграмма статикалық сигналдарды бақылауға арналған Electronics Workbench моделдеу жүйесіндегі Logic Analyzer аталымды арнайы аспап арқылы алынған.

 

a

b

1.7 Сурет

Сезімтал осциллограф арқылы алынған диаграммада (1.7, b-сурет) екінші элементтің бір кірісіне сигналдың екі ЕМЕС элементінен өтуге кеткен 20 ns кідірісінің әсерінен осы элементтің шығысындағы сигнал құрамына бөгде теріс импульстің қосылғанын көреміз. Сигнал құрамындағы бұндай бөгде импульс осы сигналдың түсетін құрылғысының бағдарланған жұмысын бүлдіруі мүмкін, сондықтан бұндай жағдайдың болмауын қамтамасыз ету керек.

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

 

a

b

1.8 Сурет

  

1.2.2 Қиыстырма құрылғыларды құру тәртібі

Қиыстырма құрылғыларды құру келесі тәртіппен жүргізіледі:

-       құрылғының сөз-сөйлем түріндегі түсіндірмесінің негізінде оның ақиқаттық кестесі құрылады;

-       құрылған кестедегі деректер негізінде құрылғының жұмысын суреттеуші логикалық өрнек жазылады;

-       қажетті жағдайда алынған логикалық өрнек минимизацияланады;

-       алынған өрнек құрылғыны құруға бағдарланған түпнегіздік жинаққа (core set) сай түрлендіріледі;

-       ақырғы алынған өрнек негізінде түпнегіздік жинақтың элементтері арқылы құрылғының схемасы құрылады.

Құрылғыны құру тәртібінің бастапқы үш кезеңі бұрын (1.1.4-тарауда) қарастырылған болатын, сондықтан сонда алынған өрнек негізінде негізгі элементтер жинағының элементтері (ЕМЕС, НЕМЕСЕ, ЖӘНЕ) арқылы құрылғының схемасын құрамыз (1.9, a-сурет).

 

a

b

1.9 Сурет

Көптеген жағдайда құрылғының схемасын ЖӘНЕ-ЕМЕС элементтері-нің негізінде құру қажет болады. Бұндай жағдайда өрнек де Морган заңын пайдалану арқылы түрлендіріледі:

1.9, b-суретте құрылғының осы өрнек арқылы құрылған схемасы келті-рілген.

1.2.3 Қалыпты қиыстырма құрылғылар

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

1.2.3.1 Шифраторлар

Шифратор (Coder) – сигналға сәйкесті код қалыптастырушы құрылғы. Мысал ретінде сегіз кірісті (X7 … X0) шифратордың схемасын құру жолын қарастыралық. Кіріс саны сегіз болғандықтан, ол үшразрядты код (C2 … C0, CODE) қалыптастыру керек және кодтың қалыптасқанын жеке сигнал (O, OUT) арқылы құптауы керек (бұл сигнал қалыптасқан кодты қажетті жады буферіне жазып алуға пайдаланылады). Үлкен құрылымның құрамындағы жеке қызмет буындары әдетте, кезекпен  істейді, бұл олардың іске қосу кірісіне сәйкесті деңгейлі сигнал жіберілуі арқылы жүзеге асырылады. Осындай іске қосу кірісі (I, IN) біздің құрастыратын шифраторда да ескерілгені дұрыс. Тағы бір ескеретін мәселе: қалыпты қызмет буындарының іске қосу кірісі мен құптау шығысындағы сигналдың жандандыру деңгейі төменгі (0) мәнінде алынады. Шифратордың информациялық кірістеріне түсетін сигналдардың да жандандыру деңгейі төменгі (0) мәнінде болғаны бұндай құрылғыны іс жүзінде құруға ыңғайлы болады.

Шифратордың келтірілген түсіндірме суреттемесі оның ақиқаттық кестесін құруға толық мәлімет береді, келтірілген түсіндірме мәліметтерінің негізінде сол кестені (1.8-кесте) құралық.

1.8 К е с т е

I

Xi

C2

C1

C0

O

0

0

0

0

0

0

1

0

0

1

0

2

0

1

0

0

3

0

1

1

0

4

1

0

0

0

5

1

0

1

0

6

1

1

0

0

7

1

1

1

0

1

x

0

0

0

1

 

Кесте деректерінің негізінде жазылған шифратор шығыстарының логикалық өрнектері:

;

;

;

.

Бұл өрнектер алдымен НЕМЕСЕ функциялары арқылы жазылып, сосын де Морган заңын пайдалану арқылы ЖӘНЕ-ЕМЕС функциясымен суреттелген түріне түрлендірілді; оған тағы бір себеп – ЖӘНЕ-ЕМЕС элементтерінің олардың ішкі құрылымына байланысты тез әрекеттілігі басқа элементтермен салыстырғанда жоғары болады.

1.10-суретте шифратордың жазылған өрнектер негізінде құрылған схемасы келтірілген.

1.10 Сурет

Шифратор схемада шартты сызба белгілемесімен (1.11, a-сурет) көр-сетіледі, ал 1.11, b-суретте Electronics Workbench бағдарламасының мүмкін-дігін пайдалану арқылы жүзеге асырылған алдыңғы жиналған схеманың біріктірілген жеке блок (Subcircuit) түріндегі суреттемесі келтірілген (оның сәйкесті шықпалары олардың келтірілген құрылым схемасындағы орналастырылым бағытына сай шығарылған).

 

a

b

1.11 Сурет

Құрылған шифратордың айта кететін бір кемшілігі бар, оған екі сигнал қатар жіберілген жағдайда оның шығарған коды шым-шытырық бірдеңеге айналып кетеді. Осындай жағдайды болдырмас үшін шифратордың өндірісте шығарылатын микросхемалары (мысалы, 74148 микросхемасы), әдетте, мәртебелі түрде құрылады. Яғни олар түскен бірнеше сигналдың белгіленген мәртебесі жоғарғысының кодын шығарады да қалғандарына көңіл бөлмейді.

 

 

1.2.3.1.1 Шифратордың өлшемін ұлғайту

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

1.12 Сурет

1.2.3.2 Дешифраторлар

Дешифратор (Decoder) – кірістеріне түскен екілік кодқа сәйкесті шығысында сигнал қалыптастырушы құрылғы. Мысал ретінде төрт теріс шығысты (Q3 … Q0) дешифратордың схемасын құру жолын қарастыралық. Шығыс саны төртеу болғандықтан, оның кірісіне түсетін код екіразрядты (A1A0) болады. Дешифратордың іске қосу кірісіндегі (E, Enable) сигналдың жандандыру деңгейін төменгі (0) мәнінде алалық.

Дешифратордың келтірілген түсіндірме суреттемесінің негізінде, оның ақиқаттық кестесін (1.9-кесте) құрайық.

1.9 К е с т е

E

A1

A0

Q3

Q2

Q1

Q0

0

0

0

1

1

1

0

0

1

1

1

0

1

1

0

1

0

1

1

1

1

0

1

1

1

1

x

x

1

1

1

1

Кесте деректерінің негізінде жазылған дешифратор шығыстарының логикалық өрнектері:

;

;

.

1.13-суретте дешифратордың жазылған өрнектер негізінде құрылған схемасы келтірілген.

1.13 Сурет

Дешифратор схемада шартты сызба белгілемесімен (1.14, a-сурет) көрсетіледі, ал 1.14, b-суретте оның жиналған схемасының біріктірілген жеке блок түріндегі суреттемесі келтірілген.

 

a

b

1.14 Сурет

1.2.3.2.1 Дешифратор негізінде қиыстырма құрылғы құру

Күрделі логикалық функцияның өрнегінің жазылу тәртібін қарастыру кезінде (1.1.4-тарау) функцияның алынған логикалық өрнегіне (1.1) көз салсақ, ондағы әрбір термнің тура сегіз шығысты дешифратордың сәйкесті шығыстарының адресі екендігін көреміз. Демек, осындай дешифратордың сәйкесті шығыстарын бескірісті НЕМЕСЕ элементінің кірістеріне жалғау арқылы берілген функцияны жүзеге асыруға болады. Егер дешифратор теріс шығысты болса, онда (1.1) өрнегін де Морган заңы арқылы түрлендіреміз:

.

Алынған өрнектен берілген құрылғының қызметін теріс шығысты дешифратор негізінде жүзеге асыру үшін оның сәйкесті шығыстарына бескірісті ЖӘНЕ-ЕМЕС элементін жалғау жеткілікті екендігі көрініп тұр (1.15-сурет).

1.15 Сурет

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

1.2.3.3 Мультиплексорлар

Мультиплексор кірістерінің біреуін шығысына қосатын ауыстырғыш қызметін атқарады, қажетті кірістің таңдалуы сілтеу сөзімен жүзеге асырылады. Мультиплексордың кірістері екі топқа бөлінеді: дерек кірістері мен сілтеу кірістері. 

Мультиплексордың кірісті сілтеуге дешифраторды пайдалану арқылы құрылған схемасы 1.16, a-суретте, ал оның шартты сызба белгілемесі 1.16, b-суретте келтірілген.

 

a

b

1.16 Сурет

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

1.2.3.3.1 Мультиплексор негізінде қиыстырма құрылғы құру

Дешифраторлар сияқты мультиплексорлар негізінде де қиыстырма құрылғылардың жұмысын жүзеге асыруға болады. Біз оның екі жолын (тәсілін) қарастыралық.

Бірінші тәсілде жүзеге асырылуы қажетті функцияның сәйкесті аргументтер жинағындағы мәндері мультиплексордың дерек кірістеріне, ал аргумент мәндері оның адрестік кірістеріне беріледі. Бұл жерде мультиплексордың сілтеу (адрестік) кірістерінің саны функцияның аргументтерінің санымен (n) бірдей болу керек, демек, оның дерек кірістерінің саны 2n болады. 1.10-кестеде берілген функцияның осы тәсілмен, яғни сегізкірісті мультиплексор негізінде жүзеге асырылуы 1.17, a-суретте көрсетілген. Бұндағы жеке блок түрінде суреттелген мультиплексордың дерек кірістерінің шықпалары сол жағына, ал сілтеу кірістерінің шықпалары оның үстіңгі жағына орналастырылған.

1.10 К е с т е

X2

X1

X0

Y

0

0

0

1

0

0

1

0

0

1

0

0

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

0

1

1

1

0

 

a

b

1.17 Сурет

Екінші тәсіл, функцияның аргументтерінің саны мультиплексордың сілтеу кірістерінің санынан артық болған жағдайда қолданылады. Бұл кезде мультиплексордың сілтеу кірістеріне аргумент сигналдарының бір бөлігі беріледі де қалғаны оның дерек кірістерін реттеуге пайдаланылады. Келтірілген функцияның осы тәсілмен төрткірісті мультиплексор негізінде жүзеге асырылуы 1.17, b-суретте келтірілген. Бұнда A2 және A1 аргументтері мультиплексордың сілтеу сигналдары ретінде, ал A0 аргументі оның дерек кірістерін реттеуге пайдаланылған.

1.2.3.4 Демультиплексорлар

Демультиплексор дерек кірісіндегі сигналды сілтеу коды арқылы анықталған шығысына жіберетін құрылғы. 

Демультиплексордың дешифратор арқылы құрылған схемасы 1.18, a-суретте, ал оның шартты сызба белгілемесі 1.18, b-суретте келтірілген.

 

a

b

1.18 Сурет

1.2.3.5 Қосуыштар

Қосуыштар – сандарды арифметикалық қосуға арналған құрылғылар. Көпразрядты сандарды қосу бірнеше бірразрядты қосуыштар арқылы жүзеге асырылады. Сондықтан, алдымен сол бірразрядты қосуыштартардың құрылым принциптерін қарастыралық.

1.2.3.5.1 Бірразрядты қосуыштар

Екі бірразрядты санды қосу кезінде олардың қосынды нәтижесі (S, Sum) мен келесі разрядқа жіберілетін тасымал (C, Carry) шығарылу керек, демек, оның жұмысын 1.11-кестемен суреттеуге болады. 

1.11 К е с т е

A

B

S

C

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

 

Кесте деректері негізінде жазылған құрылғы шығыстарының логикалық өрнектері:

.

Осы өрнектердің негізінде құрылған қосуыштың схемасы 1.19, a-суретте, ал оның жеке блок түрінде біріктірілген түрі 1.19, b-суретте келтірілген.

 

a

b

1.19 Сурет

Бұл қосуыш көпразрядты сандардың бірінші разрядтарын қосуға ғана жарайды (сондықтан ол жартылай қосуыш деп аталады), ал оның қалған разрядтарына жарауы үшін оның алдыңғы разрядтан түскен тасымалды да қосатын мүмкіндігі болу керек. Толық қосуыштың жартылай қосуыштар арқылы құрылған схемасы 1.20, a-суретте, ал оның жеке блок түрінде біріктірілген түрі 1.20, b-суретте келтірілген.

 

a

b

1.20 Сурет

1.2.3.5.2 Көпразрядты қосуыштар

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

a

b

c

1.21 Сурет

1.3 Тізбектеме құрылғылар

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

1.3.1 Триггерлер

Триггерлер – екі тиянақты жағдайы бар, бірразрядты екілік сан сақтауға арналған құрылғылар. Оның тиянақты жағдайларының біреуі лог.1-ге, екіншісі лог.0-ге сәйкес келеді. Әдетте, триггерлік құрылымның қарама-қарсы деңгейлі (тура және теріс деп аталатын) екі шығысы болады, триггердің жағдайы оның тура шығысындағы сигнал деңгейімен анықталады.

Информацияның енгізілу (жазылу) тәртібіне байланысты триггерлер асинхронды және синхронды болып бөлінеді.

1.3.1.1 Асинхронды RS-триггерлер

Асинхронды триггерлердің жаңа жағдайға ауысуы тікелей олардың кірісіне берілетін информациялық сигналдардың өзгерісімен ғана анықталады. Оларды НЕМЕСЕ-ЕМЕС немесе ЖӘНЕ-ЕМЕС элементтерінің негізінде құруға болады.

1.3.1.1.1 Тура кірісті RS-триггер

Асинхронды триггердің НЕМЕСЕ-ЕМЕС элементтерінің негізінде құрылған схемасы 1.22, a-суретте келтірілген.

 

a

b

1.22 Сурет

Бұл құрылымның жұмысын 1.12-кестедегі жазылым ретімен талқылау арқылы қарастырайық.

Кестенің бірінші жолында – R = 0, S = 0; екі элементтің де бір кірісінде 0 тұр, ал олардың кері байланыстық кірістерінде қарастырылым басында қандай сигнал тұрғаны белгісіз, демек, құрылымның Q және Q’ шығыстарындағы сигнал деңгейлері де белгісіз.

 

1.12 К е с т е

 

R

S

Q

Q’

1

0

0

?

?

2

1

0

1

3

0

1

1

4

1

1

0

5

0

1

0

6

1

1

0

0

7

0

0

???

???

 

Кестенің екінші жолында – R = 1, S = 0; жоғарғы элементтің бір кірісінде лог.1 тұрғандықтан, бұл элементтің жұмыс логикасына сәйкесті, оның шығысында (Q) лог.0 деңгейлі сигнал туады да, ол кері байланыс жолы арқылы төменгі элементтің екінші кірісіне түседі, нәтижесінде оның шығысында (Q’) лог.1 деңгейлі сигнал туады; сонымен, бұл жағдайда триггер лог.0 жағдайына келтіріледі (яғни, оған 0 жазылады).

Кестенің үшінші жолында – R = 0, S = 0; жоғарғы элементтің R кірісіндегі сигнал деңгейі өзгергенмен оның екінші кірісінде (құрылымның Q’ шығысына жалғанған) лог.1 деңгейі тұрғандықтан, бұл элементтің шығысындағы сигнал деңгейі алдыңғы лог.0 деңгейінде қалады, демек триггердің жағдайы өзгермейді.

Кестенің төртінші жолында – R = 0, S = 1; төменгі элементтің бір кірісінде лог.1 тұрғандықтан, оның шығысында (Q’) лог.0 деңгейлі сигнал туады да, ол кері байланыс жолы арқылы жоғарғы элементтің екінші кірісіне түседі, нәтижесінде оның шығысында (Q) лог.1 деңгейлі сигнал туады; сонымен, бұл жағдайда триггер лог.1 жағдайына келтіріледі (яғни, оған 1 жазылады).

Кестенің бесінші жолында – R = 0, S = 0; төменгі элементтің S кірісіндегі сигнал деңгейі өзгергенмен, оның құрылымның Q шығысына жалғанған кірісінде лог.1 деңгейі тұрғандықтан, бұл элементтің шығысындағы сигнал деңгейі алдыңғы лог.1 деңгейінде қалады, демек, триггердің алдыңғы жағдайы сақталады.

Құрылымның қарастырылған жағдайларынан келесі қорытынды шығаруға болады: R = 1, S = 0 берілу жағдайы триггердің 0 жазу режиміне, R = 0, S = 1 жағдайы триггердің 1 жазу режиміне, ал R = 0, S = 0 жағдайы триггердің жазылған санды сақтау режиміне сәйкес келеді.

Триггердің кірістеріне R = 1, S = 1 берілген кезде (алтыншы жол) екі элементтің де шығыстарында лог.0 деңгейлі сигнал туады да, триггер сақтау режиміне ауыстырылғанда (жетінші жол), триггердің қай жағдайға тиянақталатындығы – кездейсоқ оқиға. Демек, бұндай жағдайды тудырмас үшін, қарастырылған триггердің кірістеріне R = 1, S = 1 берілмеуі керек; сондықтан, бұл жағдай триггердің тиым салынған режимі деп аталады.

Сонымен, қарастырылған триггердің жұмыс режимдерін 1.13-кесте түрінде суреттеуге болады.

 

1.13 К е с т е

R

S

Q

Q’

Режим

0

0

Q0

Q0

Сақтау режимі

0

1

1

0

‘1’ жазу режимі

1

0

0

1

‘0’ жазу режимі

1

1

Тиым салынған режим

 

Қарастырылған триггердің жазу режимдері сәйкесті информациялық сигналдардың (S – Set, R – Reset) бірлік деңгейімен жүзеге асырылатын-дығына байланысты, бұндай триггер тура кірісті триггер деп аталады. Оның шартты сызба белгілемесі 1.22, b-суретте келтірілген.

1.3.1.1.2 Теріс кірісті RS-триггер

ЖӘНЕ-ЕМЕС элементтерінің негізінде құрылған асинхронды триггердің схемасы 1.23, a-суретте келтірілген.

 

a

b

1.23 Сурет

Бұл құрылымның жұмысын 1.14-кестедегі жазылым ретімен қарастыралық.

1.14 К е с т е

 

R

S

Q

Q’

1

1

1

?

?

2

0

0

1

3

1

0

1

4

0

1

0

5

1

1

0

6

0

0

1

1

7

1

1

???

???

 

Кестенің бірінші жолында – R = 1, S = 1; екі элементтің де бір кірісінде 1 тұр, ал олардың кері байланыстық кірістерінде қарастырылым басында қандай сигнал тұрғаны белгісіз, демек, құрылымның Q және Q’ шығыстарындағы сигнал деңгейлері де белгісіз.

Кестенің екінші жолында – R = 0, S = 1; төменгі элементтің бір кірісінде лог.0 тұрғандықтан, бұл элементтің жұмыс логикасына сәйкесті, оның шығысында (Q’) лог.1 деңгейлі сигнал туады да, ол кері байланыс жолы арқылы жоғарғы элементтің екінші кірісіне түседі, нәтижесінде оның шығысында (Q) лог.0 деңгейлі сигнал туады; сонымен, бұл жағдайда триггер лог.0 жағдайына келтіріледі (яғни, оған 0 жазылады).

Кестенің үшінші жолында – R = 1, S = 1; төменгі элементтің R кірісіндегі сигнал деңгейі өзгергенмен, оның құрылымның Q шығысына жалғанған кірісінде лог.0 деңгейі тұрғандықтан, бұл элементтің шығысындағы сигнал деңгейі алдыңғы лог.1 деңгейінде қалады, демек триггердің жағдайы өзгермейді.

Кестенің төртінші жолында – R = 1, S = 0; жоғарғы элементтің бір кірісінде лог.0 тұрғандықтан, оның шығысында (Q) лог.1 деңгейлі сигнал туады да, ол кері байланыс жолы арқылы төменгі элементтің екінші кірісіне түседі, нәтижесінде оның шығысында (Q’) лог.0 деңгейлі сигнал туады; сонымен, бұл жағдайда триггер лог.1 жағдайына келтіріледі (яғни, оған 1 жазылады).

Кестенің бесінші жолында – R = 1, S = 1; жоғарғы элементтің S кірісіндегі сигнал деңгейі өзгергенмен, оның құрылымның Q’ шығысына жалғанған кірісінде лог.0 деңгейі тұрғандықтан, бұл элементтің шығысындағы сигнал деңгейі алдыңғы лог.1 деңгейінде қалады, демек, триггердің алдыңғы жағдайы сақталады.

Құрылымның қарастырылған жағдайларынан келесі қорытынды шығаруға болады: R = 0, S = 1 берілу жағдайы триггердің 0 жазу режиміне, R = 1, S = 0 жағдайы триггердің 1 жазу режиміне, ал R = 1, S = 1 жағдайы триггердің жазылған санды сақтау режиміне сәйкес келеді.

Триггердің кірістеріне R = 0, S = 0 берілген кезде (кестенің алтыншы жолы) екі элементтің де шығыстарында лог.1 деңгейлі сигнал туады да, триггер сақтау режиміне ауыстырылғанда (кестенің жетінші жолы), триггердің қай жағдайға тиянақталатындығы кездейсоқ оқиға. Демек, бұндай жағдайды тудырмас үшін, қарастырылған триггердің кірістеріне R = 0, S = 0 берілмеуі керек, сондықтан, бұл жағдай триггердің тиым салынған режимі болады.

Сонымен, қарастырылған триггердің жұмыс режимдерін 1.15-кесте түрінде суреттеуге болады.

1.15 К е с т е

R

S

Q

Q’

Режим

0

0

Тиым салынған режим

0

1

1

0

 ‘0’ жазу режимі

1

0

0

1

‘1’ жазу режимі

1

1

Q0

Q0

Сақтау режимі

 

Қарастырылған триггердің жазу режимдері сәйкесті информациялық сигналдардың (S – Set, R – Reset) нөлдік деңгейімен жүзеге асырылатын-дығына байланысты, бұндай триггер теріс кірісті триггер деп аталады. Оның шартты сызба белгілемесі 1.23, b-суретте келтірілген.

1.3.1.2 Синхронды триггерлер

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

1.3.1.2.1 Синхронды RS-триггер

Статикалы басқарылымды (яғни, деңгей арқылы басқарылатын) RS-триггердің схемасын теріс кірісті асинхронды RS-триггерге екі ЖӘНЕ-ЕМЕС элементінен тұратын басқару схемасын қосу арқылы жүзеге асыруға болады (1.24, a-сурет).

 

a

b

1.24 Сурет

Бұл триггердің жұмыс режидері 1.16-кестеде суреттелген.

1.16 К е с т е

С

R

S

Q

Q’

Режим

0

x

x

Q0

Q0

Сақтау режимі

1

0

0

Сақтау режимі

0

1

1

0

 ‘1 жазу режимі

1

0

0

1

0жазу режимі

1

1

Q0

Q0

Тиым салынған режим

 

C = 0 кезінде триггер сақтау режимінде болады. Триггердің R мен S кірістеріндегі сигнал деңгейлеріне сәйкесті жағдайға ауысуы С = 1 кезінде жүзеге асырылады. Синхронды RS-триггердің шартты сызба белгілемесі 1.24, b-суретте келтірілген.

1.3.1.2.2 Статикалы басқарылымды D-триггер

Статикалы басқарылымды D-триггердің (Delay – кідіріс) схемасы мен шартты сызба белгілемесі 1.25-суретте келтірілген, ал оның жұмыс режимдері 1.17-кестеде суреттелген.

 

a

b

1.25 Сурет

1.17 К е с т е

С

D

Q

Q’

Режим

0

x

Q0

Q0

Сақтау режимі

1

0

0

1

0жазу режимі

1

1

0

 ‘1 жазу режимі

 

1.3.1.2.3 Динамикалы басқарылымды триггерлер

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

1.3.1.2.3.1 D-триггер

Динамикалы басқарылымды D-триггердің шартты сызба белгілемесі 1.26, a-суретте келтірілген, ал оның жұмыс режимдері 1.18-кестеде суреттелген.

 

a

b

1.26 Сурет

1.18 К е с т е

С

D

Q

Q’

0

0

1

1

1

0

 

Бұл триггердің жағдайының информациялық сигналдың мәніне (D) сәйкесті ауысуы басқару сигналының тура ауытқу (0-ден 1-ге) мезетінде жүзеге асырылады. Оның шартты сызба белгілемесінде басқару сигналының ауытқу бағыты сәйкесті бағыттама түрінде бейнеленеді (1.26, a-суретті қара).

 

1.3.1.2.3.2 JK-триггер

JK-триггердің төрт түрлі жұмыс режимі бар (1.19-кесте): оның үш режимі (‘0’ жазу, ‘1’ жазу, сақтау) RS-триггердегі сияқты, ал төртінші режим санау режимі деп аталады; бұл режимде триггер кезекті жағдайынан қарсы жағдайға ауысады. JK-триггердің келтірілген жұмыс кестесінде және оның шартты сызба белгілемесінде (1.26, b-сурет) оның жағдайын ауыстыруы басқару сигналының теріс ауытқу (1-ден 0-ге) мезетінде жүзеге асырылатындығы сәйкесті бағыттау белгілерімен суреттелді.

1.19 К е с т е

С

J

K

Q

Q’

Режим

0

0

Q0

Q0

Сақтау режимі

0

1

0

1

0жазу режимі

1

0

1

0

 ‘1 жазу режимі

1

1

Q0

Q0

Санау режимі

 

1.3.1.2.3.3 T-триггер

T-триггер санау режимінде істейтін триггер. T-триггердің қызметін жүзеге асыру үшін D-триггер мен JK-триггердің қосылым тәртібі 1.27-суретте келтірілген.

 

a

b

1.27 Сурет

1.3.1.2.3.4 Триггерлердің микросхемалары

Микросхема түрінде D-триггерлер мен JK-триггерлер шығарылады. Бұл микросхемаларда информациялық және басқару сигналдарын енгізу шықпаларымен қатар, бастапқы қойылым сигналдарының (R, S) шықпалары орналастырылады (1.28-сурет). Бұл кірістерге берілетін асинхронды сигналдардың мәртебесі басқа  сигналдарға қарағанда жоғары болады.

 

a

b

1.28 Сурет

1.3.2 Регистрлер

Регистр – көпразрядты екілік сан сақтауға арналған құрылғы. Олар триггерлердің (мысалы D-триггерлердің) негізінде құрылады. Әрине, регистр құрамындағы триггерлердің саны регистрдің разряд санымен анықталады.  Регистрге санның енгізілу тәртібіне байланысты, олардың тізбекті немесе параллель регистр деп аталатын түрлері болады.

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

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

-       Екі түрлі енгізу тәсілі қамтылған әмбебап регистрлер де болады. Осындай әмбебап регистрдің мысалы ретінде 74194 аталымды төртразрядты регистрдің сызба белгілемесі келтірілген (1.29-сурет).

1.29 Сурет

Оның шықпаларының (яғни, оларға берілетін сигналдардың) қызметі:

-       VCC, GND – қорек көзі мен жердің қосылатын шықпалары;

-       A, B, C, Dинформацияны параллель енгізу шықпалары;

-       QA, QB, QC, QD – регистрдің шығыстары;

-       SR – солға ығыстыру кезіндегі информация енгізу шықпасы;

-       SL – оңға ығыстыру кезіндегі информация енгізу шықпасы;

-       S1, S0 – регистрдің жұмыс режимдерін анықтаушы сигналдардың шықпалары: S1 = 0, S0 = 0 – сақтау режимі; S1 = 0, S0 = 1 – солға ығыстыру режимі; S1 = 1, S0 = 0 – оңға ығыстыру режимі; S1 = 1, S0 = 1 – параллель енгізу режимі;

-       CLK – тактілік сигналдың шықпасы;

-       CLR’ – тазарту сигналының шықпасы.

1.3.3 Санауыштар

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

Қарапайым санауыштың мысалы ретінде Electronics Workbench бағдарламасының элементтер қорындағы 7493 аталымды төртразрядты санауыштың сызба белгілемесі көрсетілген (1.30, a-сурет).

 

a

b

1.30 Сурет

Оның құрамында бірразрядты және үшразрядты санауыштар орналастырылған. Бұл микросхеманың шықпаларының  қызметі:

-       VCC, GND – қорек көзі мен жердің қосылатын шықпалары;

-       CKA, QA – бірразрядты санауыштың кірісі мен шығысы;

-       CKB, QB, QC, QD – үшразрядты санауыштың кірісі мен шығыстары;

-       R01, R02 – санауыштарды тазарту сигналының шықпасы.

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

Әмбебап санауыштың мысалы ретінде Electronics Workbench бағдарламасының элементтер қорындағы 74169 аталымды төртразрядты санауыштың сызба белгілемесі көрсетілген (1.30, b-сурет).

Бұл микросхеманың шықпаларының  қызметі:

-       VCC, GND – қорек көзі мен жердің қосылатын шықпалары;

-       A, B, C, D – информацияның параллель енгізілу кірістері;

-       LOAD’ – информацияны параллель енгізу сигналының кірісі;

-       QA, QB, QC, QD – санауыштың шығыстары;

-       D/U’ – санау бағытын анықтаушы сигнал шықпасы;

-       ENP’, ENT’ – санауышты іске қосу сигналдарының кірістері;

-       CLK – тактілік сигналдың кірісі;

-       RCO’ – санау шегіне жету сигналы.

1.4 Жадылық құрылғылар

Жадылық құрылғылар (ЖҚ) – информация сақтауға арналған құрылғылар.

1.4.1 Жадылық құрылғылардың басқару сигналдары

Жадылық құрылғылардың жұмысы келесі сигналдармен басқарылады:

-       A (Address) – адрес, оның разрядтылығы (n) жады құрылымының ұяшық санымен (N) анықталады. Жады құрылымының ұяшық саны, әдетте, екінің тұтас мәнді дәрежесімен сипатталады. Адрес разрядтылығы жадының ұяшық санына n =log2N қатынасымен байланысты;

-       CS (Chip Select) немесе CE (Chip Enable) – микросхеманы таңдау немесе іске қосу сигналы;

-       R/W (Read/Write) – сәйкесті операцияны орындату сигналы;

-       DI (Data Input) және DO (Data Output) – кіріс және шығыс деректерінің сигналдары жүретін желілер. Кейбір жады құрылымдарында олар біріктірілген түрінде пайдаланылады.

1.4.2 Жадылық құрылғылардың басты параметрлері

Жады құрылымдарының жұмыс мүмкіндігі келесі параметрлерімен суреттеледі:

-       информациялық сыйымдылығы – сақталатын информацияның ең жоғарғы көлемі. Ол бит, байт немесе, бірнеше байттан тұратын, сөз санымен сипатталады;

-       ұйымдастырылымы – сақталатын сөз санының олардың разряд санына көбейтіндісі түрінде сипатталады. Мысалы, информациялық сыйымдылығы 2048 бит жады құрылымы 256x8 немесе 128x16 түрінде ұйымдастырылуы мүмкін;

-       тезәрекеттілігі – оқу, жазу операцияларының және оқу/жазу циклының ұзақтығымен бағаланады. Қазіргі заманғы, сөз тобымен (бумасымен) жұмыс істейтін, жады құрылымдарында айтылған дәстүрлі параметрлермен қатар бастапқы байланыс уақыты (Latency) және буманың келесі сөздерінің жіберілім қарқыны (Bandwidth) аталымды жаңа параметрлер енгізілген;

Екі сигналдың (A және B) уақытқа қарай өзара орналасымына байланысты келесі параметрлер беріледі:

-       tSU(A–B) – екі сигналдың басталым мезгілдерінің аралығымен сипатталатын, алғы қойылым уақыты;

-       tH(A–B) – A сигналының басталымы мен B сигналының аяқталым  мезгілдерінің аралығымен сипатталатын, ұсталым уақыты;

-       tV(A–B) – екі сигналдың аяқталым мезгілдерінің аралығымен сипатталатын, сақталым уақыты;

-       tWсигнал ұзақтығы.

1.4.3 Жадылық құрылғылардың негізгі түрлері

Жадылық құрылғылар, өзара қайшы келетін, басты параметрлерінің (информациялық сыйымдылығы мен тезәректтілігінің) шамасына қарай, келесі түрлерге бөлінеді:

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

-       кэш-жады, онда кезекті алмасу операцияларында пайдаланылатын информацияның көшірмесі сақталады, сондықтан олардың қайта қажет болуында шығарылуы тезірек орындалады;

-       негізгі жады (жұмыс жадысы, тұрақты жады), ол процессормен тікелей алмасу режимінде істейді және оның тезәрекеттілігі процессормен мүмкіндігінше, келістірілген;

-       сыртқы жады, олар информациялық сиымдылығы жағынан, ең көлемді құрылымдар, бірақ, олардың тезәрекеттілігі (қозғалмалы құрылғылар негізінде құрылатындықтан) басқа жады түрлерімен салыстырғанда өте төмен болады.

Жадылық құрылғылар, деректерге  шығу тәсіліне қарай келесі түрлеріне бөлінеді:

-       сілтеу арқылы шығарылымды ЖҚ;

-       тізбекті шығарылымды ЖҚ;

-       танымалды шығарылымды ЖҚ.

Сілтеу арқылы шығарылымды ЖҚ-лар RAM (Random Access Memory) және ROM (Read Only Memory) түрлеріне бөлінеді. RAM түрлі ЖҚ-ларда кезекті бағдарламаның орындалуы кезіндегі алмасуға қатысты, кез келген уақытта өзгеретін деректер сақталады. Олардың жадылық элементтері қорек көзіне тәуелді.

RAM түрлі ЖҚ-лар статикалық (SRAM) және динамикалық (DRAM) түрлерге бөлінеді. Оның біріншісінде жады элементтері ретінде триггерлер пайдаланылады, сондықтан олардың тезәрекеттілігі жоғары болады; ал екіншісінде деректер МТШ-құрылымның элементтері арқылы құрылған конденсаторлардың зарядтары түрінде сақталады. Кондесаторлардың өздігінен зарядсыздануы деректерді жояды, сондықтан олардың қайта-қайта (әрбір миллисекунд сайын) қалпына келтіріліп отырылуы керек. Бірақ, динамикалық жады элементтерінің орналастырылу тығыздығы статикалық құрылыммен салыстырғанда бірнеше есе асып түседі.

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

ROM түрлі ЖҚ-лар бағдарлану тәсіліне байланысты бірнеше түрде шығарылады:

-       ROM(M) түріндегі құрылымдар жинам технологиясымен өндірісте шығарылу кезінде арнайы маскалар арқылы бағдарланады да, одан кейін ондағы информация ешқашан өзгертілмейді;

-       PROM (Programmable ROM) түріндегі құрылымдарды пайдаланушының өзі бағдарлайды (яғни, оған қажетті информацияны енгізеді), одан кейін бұл құрылым ROM(M) сияқты тұрақты жады ретінде пайдаланылады;

-       EPROM (Electrically Programmable ROM) және EEPROM (Electrically Erasable Programmable ROM) түріндегі құрылымдардағы информацияны өшіріп, одан кейін оларды қайтадан бағдарлауға болады. EPROM құрылымдарындағы информация ультракүлгін сәулесімен, ал EEPROM құрылымдарындағы информация электр сигналдарымен өшіріледі. Оларды бағдарлау зертханалық жағдайда арнайы бағдарлаушы құрылғылар арқылы жүзеге асырылады.

Тізбекті шығарылымды ЖҚ-ларға жазылған деректер кезек құрады. Кезектегі сөздердің оқылуы олардың жазылым тәртібімен немесе керісінше тәртіппен жүзеге асырылады. Сөздердің тура шығарылым тәртібі FIFO (First In – First Out) буферлері мен файлды және циклді ЖҚ-ларда қолданылады. Сөздердің кері тәртіппен оқылуы LIFO (Last In – First Out) буферлері ретінде істейтін стек түріндегі ЖҚ-ларда қолданылады.

Танымалды шығарылымды ЖҚ-лардағы информацияны іздеу оның жадыдағы орналасымы арқылы емес, cөз құрамына енгізілген арнайы танымал белгісі (tag) арқылы жүзеге асырылады.

1.4.4 Жадылық құрылғылардың негізгі құрылымдары

SRAM және ROM түрлі жадылық құрылғылар 2D, 3D және 2DM құрылымымен құрылады.

1.4.4.1 2D құрылымы

2D құрылымының ұйымдастырылу тәртібі 1.31суретте көрсетілген.

1.31 Сурет

Бұл құрылымда n-разрядты жады ұяшықтары (ЖҰ) бір жол бойында орналасады (суретте – вертикаль бойында), сондықтан бұндай құрылым көбіне сызықты құрылым деп аталады.

Адрес кодының дешифраторы (DC), рұқсат сигналы CS (Chip Select) берілген кезде, шығыс жолдарының біреуін жандандырып, таңдалған жолдағы ұяшыққа, демек, онда сақтаулы сөзге қол жеткізеді. Матрица бағаналарының сәйкесті элементтері вертикаль жолға, яғни ішкі дерек жолына (разряд жолына, оқу/жазу жолына) жалғанған. Бағана элементтерінде сөздердің аттас биттері сақталған. Сөздің жіберілім бағыты R/W (Read/Write) сигналының әрекетіне байланысты оқу/жазу күшейткіштерімен анықталады.

2D құрылымды жадылық құрылғының жады ұяшықтарының санын бірнеше есе ұлғайту керек болса, құрылғыдағы дешифратордың шығыс саны да сонша есе ұлғайтылу керек болады, ал көпшығысты дешифратор құру – қиын мәселе. Сондықтан 2D құрылымы қарапайым құрылымдарда ғана пайдаланылады.

1.4.4.2 3D құрылымы

3D құрылымы (матрицалы құрылым) қоскоординаталы талғам арқылы адрес дешифраторын жеңілдетуге мүмкіндік береді (1.32-сурет).

1.32 Сурет

Бұнда n разрядты адрес коды екіге бөлінеді де, олардың әрбіреуі жеке ажыратылады. Жандандырылған жолдардың қиылысындағы жады элементі (немесе ұяшығы) таңдалады. Бұндай қиылыстар саны

2n/2 х 2n/2 = 2n.

Екі дешифратордың шығыстарының толық саны

2n/2 + 2n/2 = 2n/2+1

болады, ал бұл 2D құрылымдағы дешифратордың шығыс санынан (2n) санынан едәуір кем.

3D құрылымының мүмкіндігі 2D құрылымымен салыстырғанда көбірек болғанмен, оның қолданылым аймағы да шектелген.

1.4.4.3 2DM құрылымы

Үлкен құрылымдардың (мысалы, компьютерлердің) жады жүйелерін ұйымдастыруға арналған 2DM (модификацияланған 2D) құрылымында 2D және 3D құрылымдарының екеуінің де артықшылық жақтары қамтылған  – адрес ажыратылуы жеңілдетілген және екікоординаталы талғанымды жады элементтерінің қажеттігі жоқ.

2DM құрылымының жады элементтерінің матрицасы (1.33-сурет) 2D құрылымының сипатындай: дешифратордың жандандырылған шығысы толық бір жолды таңдайды. Бірақ 2D құрылымынан ерекше, бұнда жол ұзындығы сақталушы сөздердің разряд санындай емес, одан бірнеше есе асып түседі. Жолдардың біреуін таңдауға адрес кодының An–1... Ak бөлігі пайдаланылады. Адрестің қалған разрядтары (от Ak–1... A0) таңдалған жолдағы көптеген сөздердің қажеттісін мультиплексор арқылы бөліп шығаруға пайдаланылады. Жол ұзындығы – m2k, бұндағы m – сақталушы сөздердің разряд саны. Ұзақтығы 2k жолдың әрбір “кесіндісінен” 2k мультиплексор бір бит таңдайды. Мультиплексорлардың шығыстарында шығыс сөзі қалыптасады. Үш жағдайлы басқарылымды буферлердің ОЕ кірістеріне түсетін CS сигналының рұқсатымен шығыс сөзі сыртқы желіге жіберіледі.

1.33 Сурет

1.4.5 Тұрақты жадылық құрылғылардың байланыс элементтері

1.4.5.1 ROM(M)  құрылғылары

ROM (Read Only Memory) түрлі жадылық құрылғылардың  кейбіреуіндегі информация (ROM(M) және PROM түрлі ЖҚ-да) ешқашан өзгермейді, ал кейбіреуінде (EPROM и EEPROM түрлі ЖҚ-да) өзгертіледі, бірақ ол құрылғының жұмыс режимінде емес, арнайы режимде жүзеге асырылады.

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

Диодты ROM(M) матрицасында (1.34-сурет) горизонталь жолдар – сөз талғам жолдары, ал вертикаль жолдар – оқылым жолдары. Оқылатын сөз диодтардың координат торының түйіндеріндегі орналасысымымен анықталады. Диодтың тұрған кезінде таңдалған горизонталь жолдың жоғары мәнді потенциалы сәйкесті вертикаль жолға жіберіледі де сөздің осы разрядында логикалық бір сигналы шығады. Диодтың жоқ кезінде, вертикаль жол резистор арқылы жерге жалғанғандықтан, осы жолдың потенциалы нолге жуық болады. Көрсетілген матрицадағы талғам жолы Т0 жандандырылғанда 11010001 сөзі оқылады (номері ноль ұяшықта осы сөз сақталған). Т1 жолы жандандырылғанда 10101011 сөзі оқылады (ол номері 1 ұяшықта сақталған). Талғам жолдары – адрес дешифраторының шығыстары, әрбір адрес қиыстырымы дешифратордың сәйкесті шығысын жандандырады да, сілтенген ұяшықтағы сөз оқылады.

1.34 Сурет

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

1.35 Сурет

ROM(M) түрлі ЖҚ-лардың жады элементтері өте аз орын алады, демек, сәйкесті микросхемалардың жиналым деңгейі жоғары болады. Бірақ жиналымды технологиялық тәсілмен бағдарлауға арналған маскаларды жобалау мен жасауға кететін қаражат аса көп болады. Бұндай қаражат олардың кең қолданылатын жағдайында ғана ақталады. Бұдан олардың қолданылым аймағы да анықталады, олар – тұтынушылардың көпшілігіне қажетті, стандартты информация сақтау. Мысалы, маскалы бағдарламалы ЖҚ-ларда алфавит (орысша және латынша) символдарының, қалыпты функциялардың (синустың, квадраттық функциялардың және т.б.) кестелері, стандартты бағдарламалар және с.с. кең қолданылымды информацияның “тігілімдері”[1] болады.

1.4.5.2 PROM құрылғылары

PROM (Programmable ROM) түрлі жадылық құрылғылардың  микросхемалары арнайы жалғамаларды жою немесе оларды құру арқылы бағдарланады. Микросхеманың бастапқы дайындалымында барлық жалғамалар болады (немесе ешқандай жалғама болмайды). Бағдарлаудан кейін олардың қажеттілері ғана қалады (немесе құрылады).

Жойылымды жалғамалы (fuse түрлі) ЖҚ-лардың бастапқы микросхемасында барлық жалғама орналастырылған (яғни, жады матрицасының барлық қиылысында лог.1 тұрады). Бағдарлау кезінде олардың кейбірі, амплитудасы мен ұзақтығы жеткілікті мөлшердегі, ток импульстарымен еріту арқылы жойылады (яғни, жады матрицасының сәйкесті қиылыстарына лог.0 жазылады). Ерітілме жалғамалар диодтардың немесе транзисторлардың электродтарына қосылады (1.36, a-сурет).

Құрылымды жалғамалы (antifuse түрлі) ЖҚ-лардың бастапқы микросхемасының құрамындағы жады матрицасының барлық қиылысында қарсы қосылымды диод түріндегі немесе жұқа диэлектрлік қабат түріндегі құрылым орналастырылған.

 

a

b

1.36 Сурет

Қосдиодты құрылымның (1.36, b-сурет) бастапқы жағдайдағы кедергісі жоғары болады да, бұл қиылыстардың ажыратылған жағдайына, яғни онда лог.0 сақталған элемент тұрғанына сәйкес келеді. Нақтылы қиылыстарды лог.1 жағдайына келтіру үшін, яғни онда бір жазу үшін, бұндағы диодтарға жоғары мәнді кернеу беру арқылы кері бағытта қосылған диод тесіліп, бұл қиылыс тұйықталады да, онда ток жүргізуші жалғама туады.

Диэлектрлік қабатты құрылымдар аса ықшамды келеді, сондықтан олар, негізінде, мүмкіндігі және оған сәйкесті күрделілігі аса жоғары болатын, қазіргі заманғы бағдарламалы құрылымдарда қолданылады.

1.4.5.3 EPROM және EEPROM құрылғылары

Қайта бағдарламалы EPROM және EEPROM түрлі ЖҚ-ларда ескі информацияны өшіріп, оның орнына жаңа информация жазу мүмкіндігі жасалған. Бұл операциялар (өшіру және жазу) олардың жұмыс режимінен шығарылған арнайы жағдайда жүргізіледі.

Информацияның өшірілуі EPROM құрылымында ультракүлгін сәулесімен, ал EEPROM құрылымында электрлік тәсілмен жүзеге асырылады.

Қазіргі заманғы қайта бағдарламалы ЖҚ-лардың жады элементтері ретінде МНТШ-транзисторлар (Металл, Нитрид, Тотық, Шалаөткізгіш) және ЗТИМТШ-транзисторлар (Зарядтардың Тасқынды Инжекциясына негізделген МТШ-транзистор) пайдаланылады. Информация сақтаушы жады элементтерінің қызметі EPROM құрылымында МНТШ-транзисторлардың екі диэлектрлік қабатының (кремний тотығы мен кремний нитридінің) шекарасында зарядтардың ұсталымына, ал EEPROM құрылымында ЗТИМТШ-транзисторларда қосымша қалқыма жаппаның тудырылуына негізделген.

 

2 Микропроцессорлар және микропроцессорлық жүйелер

2.1 Микропроцессорлық жүйелердің құрылым принциптері

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

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

Микропроцессорлық жүйелердің (МПЖ) құрылым негізіне үш принцип алынған:

-       магистралдық;

-       модулдық;

-       микробағдарламалы басқару.

Магистралдық принцип МПЖ-нің қызмет блоктарының арасындағы байланыс сипатын анықтайды; жүйенің барлық блогы өзара жүйелік магистраль (жүйе желісі) арқылы жалғанады және сол арқылы информация алмасады.

Модулдық принцип жүйенің, қызметі жағынан толықтай бітірілген жеке блоктар негізінде құрылатындығын сипаттайды. Әрбір модулдің оны іске қосатын рұқсат кірісі болады;  ондағы сигнал деңгейі модулдің үшінші (жоғары кедергілі) жағдайын, яғни оның жүйе желісіне қосылуын басқарады.

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

Жүйелік магистралға негізгі үш информациалық желі кіреді: олар – адрес желісі АВ (Address Bus), дерек желісі DB (Data Bus) және басқарым желісі СВ (Control Bus).

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

Адрес желісіжадыға (немесе сыртқы құрылғыларға) байланысымды қамтамасыз етуші желі.

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

Басқару желісінің жолдарындағы сигналдар кезекті цикл түрін анықтайды және оның әртүрлі бөліктеріне немесе кезеңдеріне сәйкесті уақыт мезеттерін бекітеді. Онымен қатар, басқару сигналдары процессор (немесе магистралдың өзге қожасының, бастаушының, master) жұмысын жадының немесе енгізу/шығару құрылғыларының (орындаушы құрылғының, slave) жұмысымен келістіреді.

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

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

Енгізу/шығару құрылғыларын немесе сыртқы құрылғыларды (ЕШҚ немесе СҚ) жүйе магистралына қосу үшін олардың сигналдары, сәйкесті енгізу/шығару интерфейстері арқылы жүзеге асырылатын, нақтылы стандарттарға сәйкес болуы керек.

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

2.2 Intel 8085 микропроцессоры

2.2.1. Микропроцессордың құрылымы

Микропроцессор (МП) – қазіргі заманның күрделі цифрлық құрылғыларының (мысалы, компьютердің) құрамына кіретін, информация өңдеуші басты блок.

Микропроцессорлардың негізгі құрылым принциптері мен жұмыс тәртібін түсіну үшін олардың нақтылы бір түрін қарастыру ыңғайлы. Осындай үлгі ретінде қарапайым Intel 8085 микропроцессоры алынды. Өзінің қартаң жасына қарамай, бұл микропроцессор осы күнге дейін өз маңыздылығын жоймай, әлі де өндірісте шығарылады. Әрине, оның қолданылым аймағы – компьютерлер емес, оларда қазіргі заманда одан қуаттырақ және өнімділеу микропроцессорлар қолданылады. Intel 8085 сияқты микропроцессорлар, негізінде, олардың мүмкіншілігі жететін басқару жүйелерінде пайдаланылады.

Intel 8085 микропроцессорының құрылымы 2.1-суретте көрсетілген. Микропроцессордың құрама блоктарының арасындағы информация алмастырылуы оның ішкі сегізразрядты дерек желісі арқылы жүзеге асырылады.

2.1 Сурет

Микропроцессордың құрама блоктарын қарастырайық.

AC (Accumulator) – екісатылы триггер арқылы құрылған және қатарынан екі сөз (операндтардың біреуін және операция нәтижесін) сақтай алатын регистр-аккумулятор.

TR (Temporary Register) – операндтардың біреуін уақытша сақтауға арналған регистр.

ALU (Arithmetic-Logic Unit) – кірістеріне берілген екі сөзге (операндтарға) жүргізілетін операциялардың орындалуын жүзеге асыратын арифметикалық-логикалық құрылғы. Операцияға қатысты операндтардың біреуі уақытша регистрде (TR), ал екіншісі аккумуляторда сақталады; операция нәтижесі де аккумуляторға түседі. ALU тікелей қосу, алу, ығыстыру, сөздерді салыстыру операцияларын және логикалық операцияларды (инверсия, конъюнкция, дизъюнкция, екілік қосу) ғана орындайды. Олардан күрделірек операциялар (көбейту, бөлу және т.б.) қосалқы бағдарламалар арқылы орындалады. ALU құрамында екілік сандарды екілік-ондық кодқа айналдыру схемасы (DA, Decimal Adjust) болады.

RF (Register Flags) – орындалған арифметикалық және логикалық операциялардың нәтижелерінің белгі биттерін көрсететін, ту регистрі. Intel 8085 микропроцессорында бес түрлі белгі пайдаланылады: Z (Zero) – нөлдік белгісі, С (Carry) – тасымал белгісі, AC (Auxiliary Carry) – қосалқы тасымал белгісі, S (Sign) – терістік белгісі, P (Parity) – жұптық белгісі. Нөлдік белгі операция нәтижесінің ноль болғандығын, тасымал белгісі ең үлкен разрядтан  шығарылатын тасымалды (яғни, жетінші разрядтан; разряд номерінің нөлден басталатынын еске түсіріңіз), қосалқы тасымал белгісі үшінші разрядтан шығарылатын (яғни, сегізразрядты сөздің тетрадаларының арасындағы) тасымалды (ол екілік-ондық кодтарға операциялар жүргізуге қажет), терістік белгісі нәтиже таңбасын, жұптық белгісі нәтижедегі бірлік санының жұптығын сипаттайды. Бұл белгілер информацияның өңделу процесін басқару үшін пайдаланылады.

В, С, D, E, H, L – сегізразрядты жалпы қызмет регистрлері (ЖҚР), олар мультиплексор/демультиплексор (MUX/DMUX) арқылы ішкі дерек желісіне байланысқан. Олардың әрбіреуін жеке түрінде де,   В-С, D-E, H-L түрінде қос-қостап (олар В, D, Н жұптары деп аталады), 16-разрядты регистр ретінде де пайдалануға болады. H-L жұбы, әдетте, регистрлік жанама сілтеуге қажетті адресті сақтауға пайдаланылады.

W және Z – уақытша регистрлер, олар жадыдан команданың шығарылуы кезінде деректерді уақытша сақтауға арналған.

SP (Stack Pointer) – 16-разрядты стек көрсеткіші. Стек сөз жинағын сілтеусіз сақтауға ыңғайланған жады құрылымы. Стектің негізгі қызметі – үзіліс бағдарламалары мен қосалқы бағдарламалардың жұмысын қамтамасыз ету. Стектің түбі мен төбесі болады. Стекпен жүргізілетін операциялар – Push (сөзді жау) және Pop (сөзді оқу). Стек ретінде қызмет жадысының нақтылы аймағы бөлінеді де, оның түбі стек көрсеткішінде (SP) стек түбі ретінде белгіленеді. Стекпен жұмыс кезінде стек көрсеткішінде соңғы жазылған ұяшықтың адресі (стектің төбесі) тұрады. Push және Pop командаларының орындалуы кезінде SP мәні кеміп немесе өсіп отырады. Жадының байтты ұйымдастырылымында және стекке регистр жұбындағы дерек енгізілу кезінде үлкен байт SP-1 адресі бойынша, ал кіші байт SP-2 адресі бойынша сақталады да, SP мәні екіге кемиді. Оқу кезінде стектің жоғарғы екі ұяшығындағы дерек сәйкесті регистрлерге орналастырылады да, SP мәні екіге ұлғаяды. Сонымен, стек жұмысы LIFO (Last In – First Out) тәртібімен жүргізіледі, яғни стекке соңғы жазылған сөз бірінші шығарылады.

IP (Instruction Pointer) –  16-разрядты команда санауышы. Онда кезекті орындалатын команданың адресі тұрады. Бастапқы қойылым кезінде ол нөл мәнін қабылдайды, демек, бастапқы қойылым бағдарламасының бірінші командасы нолінші ұяшықта болады. Команда ұзындығы 1...3 байт болады. Жадыдан кезекті байт шығарылғаннан кейін PC мәні ұлғайтылады, команда бірбайтты болса, онда келесі команданың адресі, ал өзгеше жағдайда кезекті команданың келесі байтының адресі шығады. Команданың екінші және үшінші байттары W және Z регистрлеріне түседі.

INC/DEC (Increment/Decrement) схемасы ол арқылы жіберілген сөздерді бірге ұлғайтып немесе кемітіп отырады.

IR (Instruction Register) – команда регистрі. Ол жадыдан команданың бірінші байтын, яғни команда кодын қабылдайды.

DC – команда дешифраторы. Ол команда регистріндегі (IR) команда кодына сәйкесті операцияның машина циклдерін жүзеге асыруға қажетті сигналдар тудырады.

Synchronising and Control блогы команда дешифраторы мен машина циклдерінің шифраторының жағдайы негізінде ахуал сигналдары мен микропроцессорлық жүйені сыртқы құрылғылармен байланыстыратын, сыртқы желіні басқару сигналдарын тудырады.

МП мен жады немесе СҚ арасындағы информация алмасуы кезінде жадының сәйкесті ұяшығының немесе СҚ командасының құрамындағы немесе регистр жұптарының біреуіндегі адресі адрес буферіне (AB) жіберіледі. Үш жағдайлы адрес буфері адрестің үлкен разрядтарын адрес желісінің A15-8 жолдарына жібереді.

Үш жағдайлы адрес/дерек буфері (A/DB) уақыт бойынша кезектесіп, адрестің кіші байтын немесе дерек байтын жібереді.

 Микропроцессордың әртүрлі ішкі регистрлерінің арасында дерек байттарының жіберілімі сегізразрядты ішкі дерек желісі арқылы, ал олардың МПЖ-нің басқа модулдерімен байланысы кезектелімді адрес/дерек желісі арқылы жүзеге асырылады.

Interrupt Control және Sequential I/O Control – үзілісті басқару және тізбекті енгізілім/шығарылымды басқару блоктары.

МП командаларының қалыпты жүргізілімінде олар жадыдан жазылым бағытымен HLT командасына жеткенше бір-бірден шығарылып орындалады. Жеке команданың шығарылуы мен орындалуы команда циклін (КЦ) құрады. Команда циклі бір немесе бірнеше машина циклінен (МЦ) тұрады. МП мен жады немесе СҚ арасында байт жіберуге арналған әрбір байланыс машина циклін қажет қылады. Өз кезегінде машина циклі бірнеше тактіге бөлінеді және такт саны машина циклінің түріне тәуелді болады.

Intel 8085 микропроцессорының келесі түрдегі машина циклдары бар:

1. Команда таңдалымы (OF, Opcode Fetch).

2. Жадыдан оқу (MR, Memory Read).

3. Жадыға жазу (MW, Memory Write).

4. Сыртқы құрылғыдан оқу (IOR, Input-Output Read).

5 Сыртқы құрылғыға жазу (IOW, Input-Output Write).

6. Үзілісті құптау (INA, Interrupt Acknowledge).

7. Желіні босату (BI, Bus Idle).

8. Тоқтатылым (HALT).

Әрбір машина циклінің басында цикл түрін сипаттаушы ахуал сигналдары тудырылады. Олар сыртқы құрылғыға жіберілетін қосалқы басқару сигналдарын қалыптастыруда пайдаланылады.

2.2.2. Микропроцессордың басқару сигналдары

Микропроцессордың шықпаларындағы сигналдар келесі қызметтерді атқарады:

-       A15-8 – жады адресінің үлкен байтын немесе сыртқы құрылғының толық адресін шығаруға арналған үш жағдайлы шығыс жолдары. HOLD, HALT және RESET режимдерінде олардың шықпалары үшінші (жоғары кедергілі) жағдайға ауысады;

-       AD7-0 – машина циклінің бірінші тактісінде жады адресінің кіші байтын немесе сыртқы құрылғының толық адресін шығаруға арналған үш жағдайлы кезектелімді жолдар. Адрес жіберілу тактісінен кейін олар дерек желісі ретінде пайдаланылады;

-       ALE – машина циклінің бірінші тактісінде жіберілген жады адресінің кіші байтын сыртқы адрес регистріне енгізуге рұқсат беру стробы. Адресті регистрге енгізу ALE сигналының артқы ауытқымасымен жүзеге асырылады;

-       ,  – сілтенген жады ұяшығына немесе сыртқы құрылғыға жіберілетін оқу және жазу стробтары. HOLD, HALT және RESET режимдерінде олардың шықпалары үшінші (жоғары кедергілі) жағдайға ауысады;

-       READY – жадының немесе сыртқы құрылғының МП-мен информация алмасуға дайын екендігін көрсететін, кіріс сигналы. Жадының немесе сыртқы құрылғының дайын еместігінде, МП күту жағдайына кіреді де, бұл жағдай бірлік деңгейдегі READY сигналы түскенше созылады;

-       S1, S0 –  МП-дің сыртқы құрылғыға жіберетін ахуал сигналдары. Олар машина циклінің басында қалыптасып, бұл цикл біткенше сақталады;

-       IO/М – жадыны немесе сыртқы құрылғыны таңдау сигналы. Оның жоғарғы деңгейінде сыртқы құрылғыға, ал төменгі деңгейінде жадыға байланыс жүзеге асырылады.

S1, S0 сигналдарымен бірге IO/М сигналы машина циклының түрін анықтайды. Ахуал сигналдары мен ,  және  сигналдарының әртүрлі машина циклына байланысты мәндері 2.1-кестеде келтірілген.

2.1 К е с т е

МЦ түрі

Ахуал сигналдары

Басқару сигналдары

IO/M

S1

S0

OF

0

1

1

0

1

1

MR

0

1

0

0

1

1

MW

0

0

1

1

0

1

IOR

1

1

0

0

1

1

IOW

1

0

1

1

0

1

INA

1

1

1

1

1

0

BI

ҮЖ

x

x

1

1

1

HALT

ҮЖ

0

0

ҮЖ

ҮЖ

1

Келтірілген кестеде ҮЖ арқылы үшінші жағдай белгіленген.

-       x1, x2 – МП-дың ішкі синхроимпульстер генераторының жұмысын қамтамасыз етуші кварцты резонатордың немесе одан басқа жиілік тиянақтаушы тізбектердің қосылатын шықпалары. МП-дың ішкі схемаларының жұмысын сәйкестіруші синхроимпульстер (CLK) шығару үшін генератор импульстері санау триггеріне жіберіледі де, ол қарсы фазалы екі импульстер тізбесін (Ф1 және Ф2) қалыптастырады. Олардың жиілігі (яғни, микропроцессордың жұмыс жиілігі) генератор жиілігінен 2 есе төмен болады. ALE сигналы Ф1 тізбесінен бірінші тактіде бөліп алынған біреуі ретінде қалытастырылады;

-        () – МП-ды бастапқы жағдайына қайтару кірісі. Бұл сигнал қорек көзі қосылған кезде өздігінен қалыптасады, оның кез келген уақытта оператордың командасы арқылы да түсуі мүмкін. Оның әрекетімен PC және IR регистрлері, үзіліс рұқсаты мен желі ұсталымының құпталым триггерлері және т.б. тазартылады;

-       CLK – микропроцессорлық жүйеге жіберілетін синхроимпульстер шығысы. Бұл импульстердің фазасы Ф2 импульстерінің фазасындай, ал жиілігі микропроцессордың x1 және x2 шықпаларындағы жиіліктен екі есе кем болады;

-       RESET – жүйенің сыртқы модулдерін тазарту сигналы, ол тактілік CLK импульстеріне байланыстырылған және оның фазасы  сигналынан өзгеше болады;

-       INTR (Interrupt Request) – векторлық үзіліс сұранысының кірісі. Бағдарлама арқылы үзіліске рұқсат берілген жағдайда, бұл сигнал  стробын тудырады. Бұл сұранысқа сәйкес шақырылатын қосалқы бағдарламаның адресін сыртқы құрылғы жібереді. Тазартылым кезінде сұраныс сигналы қабылданбайды (үзіліске тиым салынған);

-        (Interrupt Acknowledge) – кезекті команда циклі біткеннен кейін жіберілетін, векторлық үзілісті құптау стробы. Ол үзіліс векторын оқу үшін пайдаланылады;

-       RST 5,5; RST 6,5; RST 7,5 – RSTn (n = 5,5; 6,5; 7,5) түріндегі радиалды үзіліс сұранысының кірістері. Бұл сұраныстарға сәйкесті қызмет атқаратын қосалқы бағдарламалардың бастапқы адресі – 8n. Кіріс мәртебелері бекітілген, ең жоғарғы мәртебе RST 7,5 кірісінде. Бұл сұраныс тобының мәртебесі INTR сұранысының мәртебесінен жоғары болады. Бұл сұраныстардың әрбіреуіне және бір-біріне тәуелсіз тиым салуға болады;

-       TRAP – мәртебесі ең жоғарғы дәрежедегі, тиым салынбайтын үзіліс сұранысының кірісі;

-       SID, SOD (Serial Input Data, Serial Output Data) – деректерді тізбекті жіберу кірісі мен шығысы. RIM командасымен кіріс биті аккумулятордың жоғарғы разрядына енгізіледі, SIM командасымен шығыс биті осы разрядтан шығарылады;

-       HOLD – желіні иелену сұранысы. Оны сыртқы құрылғы қалыптастырады;

-       HLDA (Hold Acknowledge) – желінің иеленілуін құптау сигналы. Ол HOLD сигналына жауап ретінде кезекті машина циклының аяғында қалыптастырылады да, МП-дың жүйе желісінен ажыратылғандығын куәлайды. Бұл кезде желілер мен басқарушы , , IO/M және ALE сигналдарының жолдары үшінші жағдайға ауыстырылады.

2.2.3. Микропроцессордың жұмыс тәртібі

Команда циклы КЦ команда таңдалымынан басталады (Opcode Fetch, OF). Бірінші машина циклі Ml әрқашан OF, онда МП команданың бірінші байтын алады. Одан кейін, команданың бірбайтты, екібайтты немесе үшбайтты болуына байланысты бір немесе екі MR (Memory Read) түрлі машина циклінің болуы мүмкін.

Команданың бірінші байтында (b1) операция коды, сілтеу тәсілі жөніндегі мәліметтер, ал егер команда бірбайтты болса, онда операндтың адресі де болады. Бұндағы адрес қысқа адресті “регистр-регистр” түріндегі операцияларға ғана байланысты болады. Жалпы қызметтік 8 регистрді сілтеуге үшразрядты, ал регистр жұптарын сілтеуге екіразрядты адрес жеткілікті. Команданың екінші байтында (b2) операндқа қатысты жады ұяшығының адресінің кіші бөлігі  немесе сыртқы құрылғының адресі немесе операндтың тікелей өзі болады (соңғылар команданың екібайттылық жағдайында). Команданың үшінші байтында (b3) операнд адресінің үлкен бөлігі немесе тікелей берілетін деректің екінші байты (регистрлер жұбына енгізу кезінде) болады. Регистрлер мен регистр жұптарының адрестері 2.2-кестеде берілген.

2.2 К е с т е

Регистрлер

Регистр жұптары

B

C

D

E

H

L

M

A

B

D

H

SP

000

001

010

011

100

101

110

111

00

01

10

11

 

Команданың таңдалып, айқындалғанынан кейін, оны орындауға қосымша машина циклдарының қажет болуы мүмкін. Командада небәрі бірден беске дейін машина циклы болуы мүмкін.

Машина циклі, төменде қарастырылатын қалыпты әрекеттер жүргізілетін, тактілерден тұрады. Әртүрлі машина циклындағы такт саны –3…6, бірақ олардың көпшілігі үш тактіден тұрады.

Команда циклінде 4...18 такт болуы мүмкін.

Әртүрлі машина циклын жүзеге асырушы сигналдарды команданың бірінші байтындағы информация негізінде МП тудырады.

Айтылғанды мысал арқылы суреттелік. Аккумулятордағы деректі жады ұяшығына тура сілтеумен (яғни, адрестің командада көрсетілуі арқылы) жіберуші STA D3D2 (Store Accumulator Direct) командасының орындалуын қарастыралық. Команда – үшбайтты, оның МП-ға жіберілуі үшін үш машина цикліыкерек, оның біріншісінде b1 байты команда регистрына (IR) жіберіліп, келесілерінде b2 және b3 байттары уақытша регистрлерге (W және Z) жіберіледі. Бүкіл команда қабылданғаннан кейін МП аккумулятордағы дерек байтын, адресі МП-ға түскен, жады ұяшығына жіберу жұмысын жүзеге асырады. Сонымен, команда циклы OF-MR-MR-MW тәртібімен жүргізілетін төрт машина циклынан құрылады.

Әрбір машина циклы, тактілік импульстердің аттас ауытқымаларының аралығымен анықталатын, тактілерге (жағдайларға) бөлінеді.

Машина циклының тактілерінде орындалатын қалыпты әрекеттер:

T1 – жадының немесе СҚ-ның адресі AD7-0 және A15-8 желілеріне қойылып, AD7-0 биттерін бекітуге ALE сигналы тудырылады. IO/M, S1 және S0 жолдарында цикл түрін анықтаушы информация қойылады. HALT туы тексеріледі.

Т2 – Ready және Hold кірістері тексеріледі. Егер осы машина циклы команда таңдалымының бір бөлігі болса, онда бағдарлама санауышы бірге ұлғайтылады. BI (освобождения шин) циклінен басқа машина циклдарында басқару стробтарының (,  немесе ) біреуі бірлік жағдайынан жандандырылған нөлдік жағдайына ауысады.

TW (Wait) – жадының немесе СҚ-ның дерек алмасуға дайын еместігінде (READY жолында төменгі деңгейлі кернеу тұрғанда) туады. Адрес, дерек және басқару жолдарының жағдайы такт аяғындағы қалпында қалады. READY сигналы әрбір күту тактісінде тексеріледі.

Т3 – команда немесе  дерек байты микропроцессорға немесе одан жіберіледі. Жандандырылған басқару стробының деңгейі бірлік деңгейіне өзгертіледі.

Т4 – команда регистріндегі код айқындалады.

Т5,6 – кейбір командалардың бітірілуіне қажет кезінде пайдаланылады.

Жүйе желілері пайдаланылмайды.

Машина циклында әрқашан Т1....Т3 тактілері болады, кейде такт саны одан көбірек болуы мүмкін, бірақ оқу мен жазуға үш такт ғана қажет.

2.2.4. Микропроцессордың үзіліс жүйесі

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

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

Intel 8085 микропроцессорының бес үзіліс кірісі мен оларды басқарушы INTA шығысы болады. Үзіліс, оған рұқсаттың бар кезінде, CALL командасының әрекетімен басталады: бағдарлама сануышының (PC) жағдайы стекке жіберіледі, ал оның өзіне орындалатын қосалқы бағдарламаның адресі енгізіледі де, үзіліс сұранысына қажетті жұмыс орындалады.

Микропроцессордың үзілістерге байланысты кірістері: TRAP; RST 5,5; RST 6,5; RST 7,5; INTR. Үзіліс жүйесінің ұйымдастырылымында сұраныстарды жасыру мәселелері шешіліп, олардың мәртебелік деңгейлері анықталады.

Жасыру дегеніміз – сәйкесті кірістің әрекетіне тиым салу. Үзіліс сұраныстарының кірістерінің жасырылымды немесе жасырылмайтын (яғни, әрқашан қабылдайтын жағдайында) болуы мүмкін.

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

TRAP үзілісіне сайланысты қызметтің қосалқы бағдарламасының бастапқы адресі жадының бекітілген, адресі 24Н ұяшықта орналастырылған.

RSTn (n = 5,5; 6,5; 7,5) кірістерінің белгілемесі Restart сөзінен алынған. Бұл кірістердің үзілістері – жасырылмалы, яғни оларға EI (Enable Interrupt) және DI (Disable Interrupt) командалары арқылы рұқсат беруге немесе тиым салуға болады (олардың бәріне қатарынан). Микропроцессордың бастапқы тазартылымы бұл сұраныстардың барлығына да тиым салады, оларға бұдан әрі рұқсат беру үшін EI командасын беру керек. RSTn сұраныстарына жеке тиым салу мүмкіндігі де бар, ол арнайы SIM (Set Interrupt Mask) командасымен аккумулятордың А0...А2 биттерінің алдын ала енгізілген мәндеріне сәйкесті қойылады. RSTn кірістерінің мәртебелері RST 7,5; RST 6,5; RST 5,5 тәртібінде бекітілген. RSTn үзілістерінің қызметінің қосалқы бағдарламаларының бастапқы адрестері n мәнімен анықталады, сәйкесті бағдарламаның жұмысы бағдарлама санауышына 8n мәнін (002СН, 0034Н немесе ООЗСН) енгізуден басталады. Өзгеше айтқанда, бұл кірістердің үзіліс векторлары өздігінен анықталады, яғни оларды сыртқы құрылғыдан жіберудің қажеті болмайды.

RST 7,5 кірісі – динамикалық кіріс, ол сигналдың тура ауытқуына әрекет етеді, яғни сұраныс сигналы динамикалы кірісті триггерге енгізіледі де, оның алып тасталғанында, бұл үзіліс сұранысының қызметі орындалғанша немесе SIM немесе RESET командаларына дейін, онда сақталады. RST 6,5 және RST 5,5 кірістері – статикалық кірістер, олар сигнал деңгейіне әрекет етеді, демек, сұраныс сигналы жойылысымен, алып тасталынады.

INTR (Interrupt) кірісіне түсетін сұраныстың үзіліс векторы МП-ға сырттан жіберілу керек. Бұл кіріске көптеген жағдайда үзілістер контроллері қосылады, ол бірнеше сыртқы құрылғылардың сұраныстарын қабылдап, олардың мәртебелік жасырым мәселелерін шешіп, МП-ға жіберілетін жалғыз INTR сигналы мен сұранысқа сәйкесті үзіліс векторын қалыптастырады. Бұл жағдайда да RSTn командасы орындалады, бірақ n мәні үзіліс көзіне тәуелді болады. Үзілістерге рұқсат бар кезінде INTR сұранысының түсуіне жауап ретінде, микропроцессор  сигналымен үзіліс берілгендігін хабарлайды. Бұл сигнал буферлік күшейткіштердің шығыстық рұқсат кірістеріне түседі.

Үзілістің өңделуі кезінде, EI командасы орындалғанша, TRAP үзілісінен басқа үзілістерге тиым салынады. Жасырылмайтын TRAP үзілісі өзге үзілістерді жібергізбейді, бірақ бұрынғы түскен сұраныстың рұқсаттық жағдайын сақтайды.

2.2.5. Микропроцессордың тізбекті енгізу/шығару жүйесі

Микропроцессордың тізбекті деректерді жіберуге арналған екі кірісі бар: SOD және SID (Serial Output Data және Serial Input Data).

SOD шықпасы SIM командасымен басқарылады, ал SID шықпасындағы сигнал RIM командасымен оқылады. Бұл командалар бұрын RSTn үзілістерінің жасырылымын қою және тазарту командалары ретінде таныстырылғанды, олар тізбекті енгізу/шығаруды басқаруға да пайдаланылады.

SIM командасының орындалуынан бұрын аккумуляторда, биттері 2.3-кестедегі мағынада түсінілетін, сөз қалыптастырылады:

2.3 К е с т е

7

6

5

4

3

2

1

0

SOD

SOE

x

R7,5

MSE

M7,5

M6,5

M5,5

 

Мұндағы SOD – деректердің тізбекті шығысы, SOE (Serial Input Enable) – бірлік мәнінде тізбекті SOD деректерін микропроцессордың сәйкесті шығысына жіберетін сигнал, 5-бит пайдаланылмайды, R 7,5 сәйкесті RST 7,5 кірісін тазартады (осы кірістегі сигналдың динамикалы басқарылымды триггерге қабылданатындығын еске түсіреміз), MSE (Mask Set Enable) 2...0 биттерінің әрекетін жандандырушы сигнал, М 7,5...М 5,5 биттерінің бірлік мәні оларға сәйкесті RST 7,5...RST 5,5 сұраныстарын жасырады, яғни оларға тиым салады.

Мысалы, SOD = 1, RST 6,5 кірісіне рұқсат берілуі, RST 7,5 триггерінің тазартылуы және RST 7,5 мен RST 5,5 кірістерінің жасырылуы екі командамен жүзеге асырылады:

 

MVI А, b2            ; аккумулятор биттерін қою

SIM                      ; жасырым биттерін және SOD битін өзгерту

MVI А, b2 командасы аккумуляторға b2 байтын жібереді, яғни аккумуляторға тіке сілтеу арқылы дерек жіберу операциясын (A) ← (b2) орындайды. Бұл жағдайдағы b2 байтының түрі: 11x11101.

Тізбекті деректерді SID шықпасы арқылы енгізу үшін RIM командасы пайдаланылады. RIM командасының орындалғанынан кейін аккумуляторда биттерінің мағынасы 2.4-кестеде келтірілген сөз қалыптасады:

2.4 К е с т е

7

6

5

4

3

2

1

0

SID

I7,5

I6,5

I5,5

IE

M7,5

M6,5

M5,5

 

Бұндағы SID – тізбекті енгізілетін деректер; I 7,5; I 6,5; I 5,5 – RST7.5; RST6.5 және RST5.5 шықпаларындағы логикалық деңгейлер, IE – үзіліске рұқсат сигналы, М 7,5...М 5,5 – маскалардың логикалық деңгейлері.

I 7,5... I 5,5 биттері сәйкесті логикалық деңгейлерді RIM командасының кезінде қалыптастырады. IE биті EI және DI командаларының қайсысы соңғы орындалғандығын көрсетеді, оған бұл кезде үзіліс режимінің болуы да (оның IE триггерін тазартып, басқа үзілістерге тиым салатындығына байланысты) әсер етеді. М 7.5...М 5,5 биттері үзіліс маскаларының кезекті жағдайларын суреттейді.

2.2.6. Микропроцессордың командалар жүйесі

МП командалары 2.5-кестеде келтірілген. Кестенің бірінші бағанасында командалардың мнемокодтары (жазылым түрі) берілген. Онда регистрлер – r, регистр жұптары – rp, жанама сілтеумен  байланысатын жады ұяшығы – М, команданың үшінші және екінші байттары – b3b2, сыртқы құрылғының адресі – port арқылы берілген.

2.5 К е с т е

Мнемокод

Код

Тулар

Байт саны

Такт саны

Цикл саны

Түсініктеме

1

2

3

4

5

6

7

Жіберім командалары

MOV r1, r2

01DDDSSS

1

4

1

r1 ← (r2)

MOV M, r

01110SSS

1

7

2

[(HL)] ← (r)

MOV r, M

01DDD110

1

7

2

(r) ← [(HL)]

MVI r, b2

00 DDD110

2

7

2

r1 ← b2

MVI M, b2

36

2

10

3

[(HL)] ← b2

LXI rpb3b2

00PP0001

3

10

3

rp ← b3b2

LDA b3b2

3A

3

13

4

A ← b3b2

2.5 кестенің жалғасы

1

2

3

4

5

6

7

STA b3b2

32

3

13

4

b3b2 ← (A)

LHLD b3b2

2A

3

16

5

HL ← b3b2

SHLD b3b2

22

3

16

5

b3b2 ← (HL)

LDAX rp

00PP0010

1

7

2

A ← [(rp)]

STAX rp

00PP1010

1

7

2

[(rp)] ← (A)

XCHG

EB

1

4

1

(HL) ↔ (rp)

Арифметикалық және логикалық операциялардың командалары

ADD r

10000SSS

+

1

4

1

A ← (A) + (r)

ADD M

86

+

1

7

2

A ← (A) + [(HL)]

ADI b2

C6

+

2

7

2

A ← (A) + b2

ADC r

10001SSS

+

1

4

1

A ← (A) + (r) + (TC)

ADC M

8E

+

1

7

2

A ← (A) + [(HL)] + (TC)

ACI b2

CE

+

2

7

2

A ← (A) + b2 + (TC)

SUB r

10010SSS

+

1

4

1

A ← (A) – (r)

SUB M

96

+

1

7

2

A ← (A) – [(HL)]

SUI b2

D6

+

1

7

2

A ← (A) – b2

SBB r

10011SSS

+

1

4

1

A ← (A) – (r) – (TC)

SBB M

9E

+

1

7

2

A ← (A) – [(HL)] – (TC)

SBI b2

DE

+

2

7

2

A ← (A) – b2 – (TC)

INR r

00DDD100

(+)

1

4

1

r ← (r) + 1

INR M

34

(+)

1

10

3

[(HL)] ← [(HL)] + 1

DCR r

00DDD101

(+)

1

4

1

r ← (r) – 1

DCR M

35

(+)

1

10

3

[(HL)] ← [(HL)] – 1

INX rp

00PP0011

1

6

1

rp ← (rp) + 1

DCX rp

00PP1011

1

6

1

rp ← (rp) – 1

DAD rp

00PP1001

1

10

3

[(HL)] ← [(HL)] + (rp)

DAA

27

+

1

4

1

A ← (A)2-10

ANA r

10100SSS

+

1

4

1

A ← (A) ۸ (r)

ANA M

A6

+

1

4

1

A ← (A) ۸ [(HL)]

ANI b2

E6

+

2

7

2

A ← (A) ۸ b2

XRA r

10101SSS

+

1

4

1

A ← (A)  (r)

XRA M

AE

+

1

7

2

A ← (A)  [(HL)]

XRI b2

EE

+

2

7

2

A ← (A)  b2

ORA r

10110SSS

+

1

7

2

A ← (A) ۷ (r)

ORA M

B6

+

1

7

2

A ← (A) ۷ [(HL)]

ORI b2

F6

+

2

7

2

A ← (A) ۷ b2

CMP r

10111SSS

+

1

4

1

 (A) – (r)

CMP M

BE

+

1

4

1

 (A) – [(HL)]

CPI b2

FE

+

2

7

2

 (A) – b2

CMA

2F

1

4

1

 A ←  

2.5 кестенің жалғасы

1

2

3

4

5

6

7

STC

37

C

1

4

1

 TC ← 1

CMC

3F

C

1

4

1

 TC

RLC

07

C

1

4

1

 A7-1 ← (A6-0), A0 ← (TC), TC←A7

RRC

0F

C

1

4

1

 A6-0 ← (A7-1), A7 ← (TC), TC←A0

RAL

17

C

1

4

1

 A7-1 ← (A6-0), A0 ← (A7), TC←A7

RAR

1F

C

1

4

1

 A6-0 ← (A7-1), A7 ← (A0), TC←A0

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

JMP b3b2

C3

3

10

3

PC ← b3b2

Jcond b3b2

11CCCC01

3

10

3

Cond = 1: PC ← b3b2

CALL b3b2

CD

3

18

5

SP ← (PC), PC ← b3b2

Ccond b3b2

11CCC100

3

2/5

9/18

Cond = 1:

SP ← (PC), PC ← b3b2

RET

C9

3

10

3

PC ← [(SP)]

Rcond

11CCC100

3

17/11

5/3

Cond = 1: PC ← [(SP)]

RST n

111nnn111

1

11

3

PC ← 8n

SPHL

E9

1

6

1

SP ← (HL)

Арнайы командалар

PUSH rp

11PP0101

1

11

3

SP ← (SP) – 2;

 [(SP)];[(SP) + 1]← (rp)

PUSH PSW

F5

1

11

3

SP ← (SP) – 2;

[(SP)],[(SP) + 1]←(A),(F)

POP rp

11PP0001

1

10

3

rp ← [(SP)],[(SP) + 1],

SP ← (SP) + 2

POP PSW

F1

1

10

3

F,A ← [(SP)],[(SP) + 1];

SP ← (SP) + 2

XTHL

E3

1

18

5

(HL) ↔ [(SP)],[(SP) + 1]

PCHL

F9

1

5

1

PC ← (HL)

IN port

DB

2

10

3

A ← (port)

OUT port

D3

2

10

3

port ← (A)

EI

FB

1

4

1

Үзіліске рұқсат

ВI

F3

1

4

1

Үзіліске тиым салу

HLT

76

1

7

2

Тоқтатылым

NOP

00

1

4

1

Операция жоқ

RIM

20

1

4

1

Үзіліс маскасын оқу

SIM

30

1

4

1

Үзіліс маскасын жазу

 

Екінші бағанадағы команданың бірінші байтының (b1) кодтары операндтардың адресінің көрсетілуі қажет жағдайда, сегізразрядты екілік сан түрінде, өзге жағдайларда оналтылық сан түрінде берілген. Регистрлердің жалпылама адрестерінің разрядтары дерек көзі үшін S (Data Source) символдарымен, деректің жеткізілетін жері D (Data Destination) символдарымен, регистр жұптары P (Pair) символдарымен бейнеленген. Бұл символдардың орнына командағы қатысты регистрлер мен регистр жұптарының 2.2-кестеде келтірілген адресін қою арқылы нақтылы команданың коды алынады. Шартты ауыстыру командаларының кодындағы шарттардың коды C (Condition) символдарымен белгіленген, олардың түрлері мен белгілемелері 2.6-кестеде келтірілген.

2.6 К е с т е

ССС

Мнемокод (cond)

Шарттар

000

NZ

Нолге тең болмау

001

Z

Нолге тең болу

010

NC

Тасымалдың тумауы

011

C

Тасымалдың тууы

100

PO

Тақтық

101

PE

Жұптық

110

P

Плюс

111

M

Минус

 

Операцияның орындалу белгілері ту регистрінде (2.7-кесте) қалыптасады.

2.7 К е с т е

S

Z

0

AC

0

P

1

C

 

RST командасының кодындағы nnn әріптерімен белгіленген үш разрядтың мәнін үзіліс жүйесі қояды немесе оны бағдарлаушы көрсетеді.

Салыстыру операцияларында операндтарға алу операциясы жүргізіліп, оның нәтижесіне байланысты Z және S белгілері қойылады (бірақ, нәтиже ешқайда сақталмайды).

Үшінші бағанадағы “–” символы команданың орындалуында ешқандай ту көтерілмейтіндігін, “+” символы барлық белгінің қойылатындығын, “(+)” символы тасымал белгісінен басқа белгілердің қойылатындығын, “С” символы тасымал белгісінің ғана қойылатындығын білдіреді.

2.2.7. Микропроцессорда қолданылатын сілтеу тәсілдері

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

Intel 8085 микропроцессорында сілтеу адрестерін қалыптастыру төрт түрлі тәсілмен жүзеге асырылады, олар – тура сілтеу, регистрлік сілтеу, жанама сілтеу және тіке сілтеу тәсілдері.

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

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

Жанама сілтеу тәсілінде командада орындалатын операцияға қатысты операндтың адресі тұрған регистр көрсетіледі. Бұндай командалар да, тура сілтемді командалар сияқты, ықшамды келеді, бірақ олардың орындалуы үшін бұл регистрге (жанама сілтеу регистріне) қажетті адрес алдын ала енгізілуі керек. Жанама сілтеу регистрі ретінде Intel 8085 микропроцессорында H және L регистрлері (HL жұбы) пайдаланылады. Жанама сілтеу тәсілі тізбе түрінде берілген деректерді өңдеуге аса ыңғайлы келеді, бұл кезде адрес бір рет қойылады да, кезекті адрес оның алдыңғы мәнін бірге өзгерту арқылы алынады.

Тіке сілтеу тәсілінде операцияға қатысты операнд тікелей команда құрамында беріледі. Бұндай командалар екібайтты (сыртқы құрылғымен байланысқа) немесе үшбайтты (жадымен байланысқа) болады.

Суреттелген сілтеу тәсілдерінен күрделірек келетін сілтеу тәсілдері де (индексті сілтеу, қатынасты сілтеу және т.б.) бар, бірақ олар Intel 8085 микропроцессоры сияқты қарапайым микропроцессорларда пайдаланылмайды.

Әртүрлі сілтеу тәсілдерін пайдалану бағдарламалардың көлемі мен олардың орындалу уақытын қысқартуға мүмкіндік береді.

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

Қарапайым микропроцессорлық жүйелерде адрес коды екі бөліктен тұратындай түрде қарастырылады. Оның бір бөлігі жүйенің адрестік кеңістігінің сілтенуші объект орналасқан парағын, ал екінші бөлігі объектінің осы парақтағы нақтылы адресін көрсетеді. Жүйенің адрестік кеңістігінің парақтарға бөліну тәртібі жады модулінің құрушы микросхемалардың ұйымдастырылым принциптеріне байланысты.

Жады мен сыртқы құрылғылардың адрестік кеңістігінің пайдаланылу тәртібіне байланысты, “ортақ желілі” және “жеке желілі” деп аталатын, екі түрлі тағұлұм ажыратылады.

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

“Жеке желілі” тағұлұмда жады мен сыртқы құрылғылардың әрбіреуінің  меншікті жеке адрестік кеңістіктері болады. Бұл кезде қай объектімен байланыс болып жатқандығын анықтаушы басқару сигналдары керек болады. Мысалы, IO/М сигналымен жады немесе сыртқы құрылғының сілтенуі көрсетіледі. Бұл жағдайда жады бүкіл адрестік кеңістікті пайдалана алады. Сыртқы құрылғымен дерек алмастыруға IN port және OUT port командалары ғана пайдаланылады да, оған микропроцессордың көптеген ыңғайлы командаларын пайдалануға мүмкіндік болмайды.

Микропроцессордың байланысатын адрестік кеңістігінің мөлшері адрес желісінің разрядының санына тәуелді. Мысалы, 16-разрядты адрес желісі арқылы 216 = 64К, ал 20-разрядты желі арқылы 220 = 1М көлеміндегі объектілермен байланысуға болады.

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

2.3 Микропроцессорлық жүйенің жұмысын бағдарлау

Микропроцессорлық жүйенің жұмысы, шешілетін мәселеге байланысты құрылған командалар тізбесі түріндегі, бағдарламаның басқаруымен жүзеге асырылады. Бұндай бағдарламалар, әдетте, командалардың мнемокодтары арқылы суреттелетін, ассемблер тілінде жазылады. Мнемокодтарды машина тіліне (екілік кодтарға) аударушы (translation) арнайы бағдарлама да Ассемблер деп аталады. Машина тіліндегі бағдарлама микропроцессорлық жүйенің жадылық модулінде сақталады да, оның құрамындағы команда кодтары нақтылы тәртіппен таңдалып (оқылып), ол команда кодтарында берілген мәліметтер (операция коды, сілтеу тәсілі, деректер) негізінде орындалады.

Ассемблер тіліндегі бағдарлама нақтылы тәртіппен келесі түрде жазылады (2.2-сурет).

 

{Белгі:}

Мнемокод

{Операнд(тар)}

; {Түсініктеме}

2.2 Сурет

Көрнекі жақшаларда болуы да, болмауы да мүмкін элементтер келтірілген. Белгі, мнемокод және операндтар бос орын арқылы ажыратылады.

Белгі – команданың символды адресі. Белгілер ауыстыру арқылы баратын командаларда ғана қойылады. Белгі артында қоснүкте қойылады. Белгі аталымының бірінші символы әріп немесе “?”, “.”, “@”, “_”, “$” символдарының біреуі болу керек. Ауыстыру немесе қосалқы бағдарламаларды шақыру командаларында белгі аталымы операнд ретінде пайдаланылады.

Мнемокод команданың ассемблер тіліндегі жазылымы. Мнемокод ретінде команда қызметінің ағылшын тіліндегі мағынасының қысқартылымы пайдаланылады: ADD (ADDition), SUB (SUBtraction), XCHG (eXCHanGe).

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

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

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

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

Соңғы айтылғандарды ескере отырып, 2.2-суретте келтірілген бағдарлама жазылымының алдына үш бағана қосылды: оның біріншісінде бағдарлама жолдарының жолдарының нөмірлері (олар бағдарламаны түсіндіруге ғана пайдаланылады), екіншісінде сәйкесті дерек енгізілетін жады ұяшығының адресі, үшіншісінде оларға енгізілетін команда кодтары мен операндтар көрсетіледі. Құрылған бағдарламалар жадының 2100 адресті ұяшығынан бастап жазылып, келесі бағдарламалар одан әрі жалғастырыла береді. Жеке бағдарлама әдетте RST 7 командасымен аяқталады. Кейбір бағдарламалардың келесі құрылатын бағдарламалардың құрамына қосалқы бағдарлама ретінде енгізілу мүмкіндігін қамтамасыз ету мақсатымен, олар RET командасымен аяқталды.

Команда кодтарын жоғарыда айтылғандай, 2.5-кесте арқылы алуға болады, бірақ бұл оңай жұмыс емес. Сондықтан, команда кодтарының алыну жолын жеңілдету мақсатында бұл кестенің ықшамдалған суреттелімін (2.8-кесте) беруді дұрыс деп санадық. Бұл кестеден қажетті команданың коды ол орналасқан горизонталь және вертикаль жолдардың аталымдарын қатар жазу арқылы (міндетті түрде осы тәртіппен) анықталады.

 

2.8 К е с т е

 

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

 

0

NOP

LXI

B

STAX

B

INX

B

INR

B

DCR

B

MVI

B

RLC

 

DAD

B

LDAX

B

DCX

B

INR

C

DCR

C

MVI

C

RRC

0

1

 

LXI

D

STAX

D

INX

D

INR

D

DCR

D

MVI

D

RAL

 

DAD

D

LDAX

D

DCX

D

INR

E

DCR

E

MVI

E

RAR

1

2

RIM

LXI

H

SHLD

INX

H

INR

H

DCR

H

MVI

H

DAA

 

DAD

H

LHLD

DCX

H

INR

L

DCR

L

MVI

L

CMA

2

3

SIM

LXI

SP

STA

INX

SP

INR

M

DCR

M

MVI

M

STC

 

DAD

SP

LDA

DCX

SP

INR

A

DCR

A

MVI

A

CMC

3

4

MOV

B,B

MOV

B,C

MOV

B,D

MOV

B,E

MOV

B,H

MOV

B,L

MOV

B,M

MOV

B,A

MOV

C,B

MOV

C,C

MOV

C,D

MOV

C,E

MOV

C,H

MOV

C,L

MOV

C,M

MOV

C,A

4

5

MOV

D,B

MOV

D,C

MOV

D,D

MOV

D,E

MOV

D,H

MOV

D,L

MOV

D,M

MOV

D,A

MOV

E,B

MOV

E,C

MOV

E,D

MOV

E,E

MOV

E,H

MOV

E,L

MOV

E,M

MOV

E,A

5

6

MOV

H,B

MOV

H,C

MOV

H,D

MOV

H,E

MOV

H,H

MOV

H,L

MOV

H,M

MOV

H,A

MOV

L,B

MOV

L,C

MOV

L,D

MOV

L,E

MOV

L,H

MOV

L,L

MOV

L,M

MOV

L,A

6

7

MOV

M,B

MOV

M,C

MOV

M,D

MOV

M,E

MOV

M,H

MOV

M,L

HLT

MOV

M,A

MOV

A,B

MOV

A,C

MOV

A,D

MOV

A,E

MOV

A,H

MOV

A,L

MOV

A,M

MOV

A,A

7

8

ADD

B

ADD

C

ADD

D

ADD

E

ADD

H

ADD

L

ADD

M

ADD

A

ADC

B

ADC

C

ADC

D

ADC

E

ADC

H

ADC

L

ADC

M

ADC

A

8

9

SUB

B

SUB

C

SUB

D

SUB

E

SUB

H

SUB

L

SUB

M

SUB

A

SBB

B

SBB

C

SBB

D

SBB

E

SBB

H

SBB

L

SBB

M

SBB

A

9

A

ANA

B

ANA

C

ANA

D

ANA

E

ANA

H

ANA

L

ANA

M

ANA

A

XRA

B

XRA

C

XRA

D

XRA

E

XRA

H

XRA

L

XRA

M

XRA

A

A

B

ORA

B

ORA

C

ORA

D

ORA

E

ORA

H

ORA

L

ORA

M

ORA

A

CMP

B

CMP

C

CMP

D

CMP

E

CMP

H

CMP

L

CMP

M

CMP

A

B

C

RNZ

POP

B

JNZ

JMP

CNZ

PUSH

B

ADI

RST

0

RZ

RET

JZ

 

CZ

CALL

ACI

RST

1

C

D

RNC

POP

D

JNC

OUT

CNC

PUSH

D

SUI

RST

2

RC

 

JC

IN

CC

 

SBI

RST

3

D

E

RPO

POP

H

JPO

XTHL

CPO

PUSH

H

ANI

RST

4

RPE

PCHL

JPE

XCHG

CPE

 

XRI

RST

5

E

F

RP

POP

PSW

JP

DI

CP

PUSH

PSW

ORI

RST

6

RM

SPHL

JM

EI

CM

 

CPI

RST

7

F

 

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

 

 

 

2.3.1. Тізбелі бағдарламалар

Жадының 2250…2254 ұяшықтарында орналастырылған бес санның қосындысын анықтап, қосу нәтижесін жадының келесі бос ұяшығына жазу бағдарламасын құрайық:

 

 

 

 

 

 

 

; 1-бағдарлама

1

2100

3A

 

LDA

2250H

; A ← [2250]

2

2101

50

 

 

 

 

3

2102

22

 

 

 

 

4

2103

47

 

MOV

B, A

; B ← (A)

5

2104

3A

 

LDA

2251H

; A ← [2251]

6

2105

51

 

 

 

 

7

2106

22

 

 

 

 

8

2107

4F

 

MOV

C, A

; C ← (A)

9

2108

3A

 

LDA

2252H

; A ← [2252]

10

2109

52

 

 

 

 

11

210A

22

 

 

 

 

12

210B

57

 

MOV

D, A

; D ← (A)

13

210C

3A

 

LDA

2253H

; A ← [2253]

14

210D

53

 

 

 

 

15

210E

22

 

 

 

 

16

210F

5F

 

MOV

E, A

; E ← (A)

17

2110

3A

 

LDA

2254H

; A ← [2254]

18

2111

54

 

 

 

 

19

2112

22

 

 

 

 

20

2113

80

 

ADD

B

; A ← (A) + (B)

21

2114

81

 

ADD

C

; A ← (A) + (C)

22

2115

82

 

ADD

D

; A ← (A) + (D)

23

2116

83

 

ADD

E

; A ← (A) + (E)

24

2117

32

 

STA

2255H

; [2255] ← (A)

25

2118

55

 

 

 

 

26

2119

22

 

 

 

 

27

211A

FF

 

RST 7

 

;Басқару бағдарламасына қайту

 

Бұл бағдарламада қосылатын бес сан тура сілтемелі LDA командасымен аккумулятор арқылы жадыдан әкелініп (1-, 5-, 9-, 13-, 17-жолдар), оның алғашқы төртеуі регистрлі сілтемелі MOV командасымен микропроцессордың ішкі регистрлеріне (B, C, D, E) көшірілді (4-, 8-, 12-, 16-жолдар). Аккумулятордағы бесінші санға регистрлі сілтемелі ADD командасымен алдыңғы төрт сан қосылып (20-, 22-, 23-, 24-жолдар), алынған нәтиже жадының қажетті ұяшығына шығарылды (24-жол).

Микропроцессордың жұмыс жиілігін 1 МГц деп алып, командалардың 2.5-кестеде берілген орындалу ұзақтығы (такт саны) арқылы бүкіл бағдарламаның орындалу ұзақтығын есептеуге болады:

T = 13*6 + 4*8 + 11 = 121 такт.

Сонымен, бес санды қосуға арналған 27 жолды бағдарламаның орындалу ұзақтығы 121 мкс болды, ал бұл іс жүзінде аз уақыт емес.

Бағдарламаның көлемі мен орындалу ұзақтығын кеміту үшін, оның кемшіліктеріне көңіл бөлейік. Бірінші көзге түсетіні, бағдарлама құрамында үшбайтты 13 тактіде орындалатын 6 команда (LDA, STA) бар, тап солар бағдарламаның орындалу ұзақтығына негізгі себеп болып тұр. Сондықтан, олардың алмастырылу жолдарын анықтау керек. Ол үшін жадыға байланысқа (одан операндтарды әкелуге немесе оған жіберуге) жанама сілтемелі командалар пайдаланған ыңғайлы болады. Осы жолмен өзгертілген бес санды қосу бағдарламасын мына түрде құруға болады:

 

 

 

 

 

 

 

; 2-бағдарлама

1

2120

21

 

LXI

2250H

; HL ← 2250

2

2121

50

 

 

 

 

3

2122

22

 

 

 

 

4

2123

3E

 

MVI

A, 00H

; A ← 00

5

2124

00

 

 

 

 

6

2125

86

 

ADD

M

; A ← (A) + [(HL)]

7

2126

23

 

INX

H

; HL ← (HL) + 1

8

2127

86

 

ADD

M

; A ← (A) + [(HL)]

9

2128

23

 

INX

H

; HL ← (HL) + 1

10

2129

86

 

ADD

M

; A ← (A) + [(HL)]

11

212A

23

 

INX

H

; HL ← (HL) + 1

12

212B

86

 

ADD

M

; A ← (A) + [(HL)]

13

212C

23

 

INX

H

; HL ← (HL) + 1

14

212D

86

 

ADD

M

; A ← (A) + [(HL)]

15

212E

23

 

INX

H

; HL ← (HL) + 1

16

212F

77

 

MOV

M, A

; [(HL)] ← (A)

17

2130

FF

 

RST 7

 

;Басқару бағдарламасына қайту

 

Бұл бағдарламада алдымен тіке сілтемелі LXI командасымен жанама сілтеу регистрлеріне (яғни, HL жұбына) бірінші операндтың адресі жазылды (1-жол), сосын тіке сілтемелі MVI командасымен аккумулятор тазартылды (4-жол). Бұдан кейін аккумуляторға бес сан жадыдағы ретімен қосылды (6-, 8-, 10-, 12-, 14-жолдар). Әрбір келесі санның қосылар алдында HL жұбындағы адрес коды INX командасымен бірге ұлғайтылып, онда жадының келесі ұяшығының адресі анықталды (7-, 9-, 11-, 13-жолдар). Ақырында MOV командасымен акккумуляторда қалыптасқан нәтиже жадының қажетті ұяшығына жіберілді (17-жол).

Бұл бағдарламаның орындалу ұзақтығы:

T = 10 + 7 + 7*5 + 6*5 + 11 = 93 такт.

Сонымен, бес санды қосуға арналған бағдарлама 17 жолға дейін қысқартылып, оның орындалу ұзақтығы 93 мкс болды.

2.3.2. Тарамдалымды бағдарламалар

Алдыңғы бағдарламалар арқылы жүргізілген қосу операцияларының нәтижесінің разряд саны сегізден демек, оның ондық мәні 255-тен аспайды деп саналды. Асып кетер жағдайын ескеру үшін бағдарламаны өзгерту қажет болады. Бұнымен қатар, бағдарламаның әмбебаптылығын қамтамасыз ету үшін есептің берілімін өзгертелік: қосылатын операндтардың саны жадының 2250 ұяшығында, ал одан кейінгі ұяшықтарда олардың мәндері орналастырылған; нәтиже деректерден кейінгі ұяшықтарға шығарылуы керек. Бұл есептің шешілім бағдарламасын келесі түрде құруға болады:

 

 

 

 

 

 

 

; 3-бағдарлама

1

2140

21

 

LXI

2250H

; HL ← 2250

2

2141

50

 

 

 

 

3

2142

22

 

 

 

 

4

2143

4E

 

MOV

C, M

; C ← [(HL)]

5

2144

97

 

SUB

A

; A ← 00

6

2145

47

 

MOV

B, A

; B ← 00

7

2146

23

K1:

INX

H

; HL ← (HL) + 1

8

2147

86

 

ADD

M

; A ← (A) + [(HL)]

9

2148

D2

 

JNC

K2

; TC  1: PC ← 214C

10

2149

4C

 

 

 

 

11

214A

80

 

 

 

 

12

214B

04

 

INR

B

; B ← (B) + 1

13

214C

23

K2:

INX

H

; HL ← (HL) + 1

14

214D

0D

 

DCR

C

; C ← (C) – 1

15

214E

C2

 

JNZ

K1

; TZ  1: PC ← 2146

16

214F

46

 

 

 

 

17

2150

21

 

 

 

 

18

2151

C9

 

RET

 

; PC ← [(SP)]

 

Бағдарламаны үш бөліктен (кезеңнен) тұрады деп қарастыруға болады, олар: дайындық кезеңі, қызмет кезеңі және нәтижені шығару кезеңі. Бағдарламаның дайындық кезеңінде LXI командасы арқылы жанама сілтеу регистрлеріне (яғни, HL жұбына) жадының жұмысқа қажетті бірінші ұяшығының адресі жазылды (1-жол), сосын ондағы операндтар саны микропроцессордың С регистріне әкелінді (4-жол), бұдан кейін аккумулятор бірбайтты SUB (алу) командасы арқылы (5-жол), B регистрі оған аккумуляторды көшіру арқылы тазартылды (6-жол).

Бағдарламаның негізгі өңдеу жұмысын атқару бөлігі (қызмет кезеңі) 7...16 жолдар арасында орналасқан. Бұнда алдымен жанама сілтеу регистріндегі (яғни, HL жұбындағы) адрес ұлғайтылып (7-жол), сосын осы адрес арқылы алынған операнд аккумуляторға қосылады (8-жол). Бұдан кейін нәтиженің сегіз разрядтан асып кетуі (яғни, тасымал шығуы) JNC командасымен тексеріледі де (9-жол), тасымал тууы кезінде B регистрі бірге ұлғайтылады (12-жол), ал оның тумаған кезінде бұл команда орындалмайды. 14-жолдағы DCR командасы арқылы операндтардың санауышы (C регистрі) бірге кемітіліп, операндтардың біткен-бітпегендігі тексеріліп (15-жол), олар бітпеген жағдайында бағдарламаның негізгі жұмысы (біздің жағдайда – қосу операциялары) әрі қарай жалғастырылады (бағдарламаның бұндай құрылымы айналымды құрылым деп аталады), ал олардың біткен жағдайында бағдарлама нәтижені шығару кезеңіне ауыстырылады.

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

2.3.3. Екібайтты сандарды қосу бағдарламасы

Алдыңғы бағдарламалар бірбайтты (яғни, сегізразрядты екілік кодымен суреттелген, ондық мәні 255-тен аспайтын) сандарды қосуға ғана жарайды. Енді екібайтты (яғни, оналтыразрядты екілік кодымен суреттелген) сандарды қосу мүмкіндігін қарастырайық. Жадының 22A0-ұяшығынан бастап жұптап орналастырылған (бірінші байты кіші адрес бойынша, екінші байты келесі адреске) 25 санды қосу бағдарламасын келесі түрде құруға болады:

 

 

 

 

 

 

 

; 4-бағдарлама

1

2160

21

 

LXI

2300H

; HL ← 22A0

2

2161

A0

 

 

 

 

3

2162

22

 

 

 

 

4

2163

0E

 

MVI

C, 19H

; C ← 1916 = 2510

5

2164

97

 

SUB

A

; A ← 00

6

2165

5F

 

MOV

E, A

; B ← 00

7

2166

57

 

MOV

D, A

; B ← 00

8

2167

86

K3:

ADD

M

; A ← [(HL)]

9

2168

5F

 

MOV

E, A

; E ← (A)

10

2169

7A

 

MOV

A, D

; A ← (D)

11

216A

23

 

INX

H

; HL ← (HL) + 1

12

216B

8E

 

ADC

M

; A ← (A) + [(HL)] + (TC)

13

216C

57

 

MOV

D, A

; D ← (E)

14

216D

0D

 

DCR

C

; C ← (C) – 1

15

216E

CA

 

JZ

K4

; TZ = 1: PC ← 2175

16

216F

76

 

 

 

 

17

2170

80

 

 

 

 

18

2171

7B

 

MOV

A, E

; A ← (E)

19

2171

23

 

INX

H

; HL ← (HL) + 1

20

2172

C3

 

JMP

K3

; PC ← 2167

21

2173

67

 

 

 

 

22

2174

21

 

 

 

 

23

2175

23

K4:

INX

H

; HL ← (HL) + 1

24

2176

73

 

MOV

M, E

; [(HL)] ← (E)

25

2177

23

 

INX

H

; HL ← (HL) + 1

26

2178

72

 

MOV

M, D

; [(HL)] ← (D)

27

2179

FF

 

RST 7

 

;Басқару бағдарламасына қайту

 

Бағдарламаның дайындық кезеңінде сілтеу регистрлеріне (яғни, HL жұбына) жадының жұмысқа қажетті бірінші ұяшығының адресі жазылды (1-жол), сосын қосылатын операндтар саны микропроцессордың С регистріне енгізілді (4-жол), бұдан кейін бірбайтты командалар арқылы аккумулятор мен D және E регистрлері тазартылды (5-, 6-, 7-жолдар). Микропроцессордың D және E регистрлері жүргізілген қосу операцияларының нәтижелерін жинақтауға пайдаланылады: оның кіші байты E регистрінде, үлкен байты D регистрінде жиналады.

Бағдарламаның негізгі өңдеу жұмысын атқару бөлігі (қызмет кезеңі) 8...13 жолдар арасында орналасқан. Бұнда жанама сілтеу регистріндегі (яғни, HL жұбындағы) адрес арқылы алынған операнд аккумуляторға қосылады да (8-жол), алынған нәтиже E регистріне жіберіледі (9-жол). Бұдан кейін аккумуляторға нәтиже жинақталымының D регистріндегі үлкен байты әкелініп (10-жол), ұлғайтылған адрес (11-жол) арқылы операндтың екінші байты оған ADC командасымен қосылады (12-жол). Бұл командаға сәйкесті қосу операциясының орындалуы кезінде қосылатын сандармен қатар алдыңғы операциядан шыққан тасымал да (TC) ескеріледі. Бұл нәтиже D регистріне жіберіледі (13-жол). Сосын (тексерім кезеңінде) операнд санауышы (C регистрі) бірге кемітіліп (14-жол), операндтардың біткен-бітпегендігі тексеріледі де (15-жол), олардың біткен жағдайында бағдарлама нәтижені шығару кезеңіне ауыстырылады, ал олардың бітпеген жағдайында қажетті дайындалым арқылы (яғни аккумуляторға нәтиже жинақталымының кіші байты әкелініп) (18-жол), адрес ұлғайтылғаннан (19-жол) кейін бағдарламаның негізгі жұмысы (яғни, қосу операциялары) әрі қарай жалғастырылады (20-жол).

Бұл бағдарламада алынған және D мен C регистрлерінде жинақталған екібайтты нәтиже жадының бастапқы деректерден кейінгі ұяшықтарына байт-байтымен шығарылады (23…26 жолдар).

2.3.4. Тіке сілтемелі командалармен жұмыс істеу

Жоғарыда қарастырылған бағдарламаларда арифметикалық қосу командаларының екі түрі пайдаланылды, олар тура және жанама сілтемелі ADD (тасымалсыз қосу) ADC (тасымалды қосу) командалары. Тіке сілтемелі қосу командаларының (ADI және ACI) пайдаланылуын суреттеу мақсатында 22222 (56CE16), 33333 (823516) және 44444 (AD9C16) сандарын қосу бағдарламасын қарастырайық:

 

 

 

 

 

 

 

; 5-бағдарлама

1

2180

3E

 

MVI

A, CEH

; A ← CE

2

2181

CE

 

 

 

 

3

2182

C6

 

ADI

35H

; A ← (A) + 35

4

2183

35

 

 

 

 

5

2184

5F

 

MOV

E, A

; E ← (A)

6

2185

3E

 

MVI

A, 56H

; A ← CE

7

2186

56

 

 

 

 

8

2187

CE

 

ACI

82H

; A ← (A) + 82 + (TC)

9

2188

82

 

 

 

 

10

2189

57

 

MOV

D, A

; D ← (A)

11

218A

7B

 

MOV

A, E

; A ← (E)

12

218B

C6

 

ADI

9CH

; A ← (A) + 9C

13

218C

9C

 

 

 

 

14

218D

5F

 

MOV

E, A

; E ← (A)

15

218E

7A

 

MOV

A, D

; A ← (D)

16

218F

CE

 

ACI

ADH

; A ← (A) + AD + (TC)

17

2190

AD

 

 

 

 

18

2191

FF

 

RST 7

 

;Басқару бағдарламасына қайту

 

Бағдарламаның басында аккумуляторға бірінші санның кіші байты енгізіліп (1-жол), сосын оған екінші санның кіші байты тасымалсыз қосушы ADI командасымен қосылады да (3-жол), нәтиже E регистріне жіберіледі (5-жол). Бұдан кейін аккумуляторға бірінші санның үлкен байты енгізіліп (6-жол), сосын оған екінші санның үлкен байты тасымалды қосушы ACI командасымен қосылады да (8-жол), нәтиже D регистріне жіберіледі (10-жол).

Келесі кезеңде E және D регистрлеріндегі алдыңғы нәтижелер аккумуляторға кезекпен әкелініп, оларға алдыңғы командалар арқылы үшінші санның сәйкесті байттары қосылады.

2.3.5. Алу командаларымен жұмыс істеу

Микропроцессордың командалар жүйесінде алдыңғы бағдарламаларда пайдаланылған қосу командалары (ADD, ADC, ADI, ACI) сияқты алу командалары бар, олар – SUB, SBB, SUI, SBI командалары. Олардың пайдаланылымын суреттеу мақсатында 5-бағдарламаны жалғастырып, онда алынған (D және E регистрлерінде сақталған) саннан жадының 22C0-22C1 ұяшықтарында орналастырылған екібайтты санды және 11111 (2B6716) санын алу бағдарламасын қарастырайық:

 

 

 

 

 

 

 

; 6-бағдарлама

1

21A0

3A

 

LDA

22C0H

; A ← [22C0]

2

21A1

C0

 

 

 

 

3

21A2

22

 

 

 

 

4

21A3

4F

 

MOV

C, A

; C ← (A)

5

21A4

3A

 

LDA

22C1H

; A ← [22C1]

6

21A5

C1

 

 

 

 

7

21A6

22

 

 

 

 

8

21A7

4F

 

MOV

B, A

; C ← (A)

9

21A8

7B

 

MOV

A, E

; A ← (E)

10

21A9

91

 

SUB

C

; A ← (A) – (C)

11

21AA

5F

 

MOV

E, A

; E ← (A)

12

21AB

7A

 

MOV

A, D

; A ← (D)

13

21AC

98

 

SBB

B

; A ← (A) – (B) – (TC)

14

21AD

57

 

MOV

D, A

; D ← (A)

15

21AE

7B

 

MOV

A, E

; A ← (E)

16

21AF

D6

 

SUI

67H

; A ← (A) – 67

17

21B0

67

 

 

 

 

18

21B1

32

 

STA

22C2H

; [(22C2)] ← (A)

19

21B2

C2

 

 

 

 

20

21B3

22

 

 

 

 

21

21B4

7A

 

MOV

A, D

; E ← (A)

22

21B5

DE

 

SBI

2BH

; A ← (A) – 2B – (TC)

23

21B6

2B

 

 

 

 

24

21B7

32

 

STA

22C3H

; [(22C3)] ← (A)

25

21B8

C3

 

 

 

 

26

21B9

22

 

 

 

 

27

21BA

FF

 

RST 7

 

;Басқару бағдарламасына қайту

 

Бағдарламаның басында жадыдағы екібайтты санның жеке байттары аккумулятор арқылы C және B регистрлеріне жіберілді (1…8 жолдар). Регистрлі сілтемелі SUB және SBB командаларының біріншісі тасымалсыз, екіншісі тасымалды алу операцияларын орындайды (10-, 13-жолдар). Тіке сілтемелі SUI және SBI командаларының біріншісі тасымалсыз, екіншісі тасымалды алу операцияларын орындайды (16-, 22-жолдар).

Жүргізілген операциялар нәтижесі жадының келесі ұяшықтарына жіберіледі (18-, 24-жолдар).

2.3.6. Регистр жұптарымен жұмыс істеу

Жоғарыда екібайтты сандарды қосу тасымалсыз және тасымалды қосу командаларын (ADD және ADC) тізбелеп пайдалану арқылы жүзеге асырылғанды (4-бағдарлама). Intel 8085 микропроцессорының командалар жүйесінде екібайтты сандарды тікелей қосушы командалар да бар, олар – DAD мнемоникасымен суреттелетін командалар. Жадының 22D0-ұяшығынан бастап жұптап орналастырылған (бірінші байты кіші адрес бойынша, екінші байты келесі адреске) үш санды DAD командалары арқылы қосылып, алынған қосындыны екіге көбейту бағдарламасын келесі түрде құруға болады:

 

 

 

 

 

 

 

; 7-бағдарлама

1

21С0

3A

 

LDA

22D0H

; A ← [22D0]

2

21С1

D0

 

 

 

 

3

21С2

22

 

 

 

 

4

21С3

6F

 

MOV

L, A

; L ← (A)

5

21С4

3A

 

LDA

22D1H

; A ← [22D1]

6

21С5

D1

 

 

 

 

7

21С6

22

 

 

 

 

8

21С7

67

 

MOV

H, A

; H ← (A)

9

21С8

3A

 

LDA

22D2H

; A ← [22D2]

10

21С9

D2

 

 

 

 

11

21СA

22

 

 

 

 

12

21СB

4F

 

MOV

C, A

; C ← (A)

13

21СC

3A

 

LDA

22D3H

; A ← [22D3]

14

21СD

D3

 

 

 

 

15

21СE

22

 

 

 

 

16

21СF

47

 

MOV

B, A

; B ← (A)

17

21D0

3A

 

LDA

22D4H

; A ← [22D4]

18

21D1

D4

 

 

 

 

19

21D2

22

 

 

 

 

20

21D3

5F

 

MOV

E, A

; E ← (A)

21

21D4

3A

 

LDA

22D5H

; A ← [22D5]

22

21D5

D5

 

 

 

 

23

21D6

22

 

 

 

 

24

21D7

57

 

MOV

D, A

; D ← (A)

25

21D8

09

 

DAD

B

; HL ← (HL) + (BC)

26

21D9

19

 

DAD

D

; HL ← (HL) + (DE)

27

21DA

29

 

DAD

H

; HL ← (HL) + (HL)

27

21DB

7D

 

MOV

A, L

; A ← (L)

28

21DC

32

 

STA

22D6H

; [(22D6)] ← (A)

29

21DD

D6

 

 

 

 

30

21DE

22

 

 

 

 

31

21DF

7C

 

MOV

A, H

; A ← (HL)

32

21E0

32

 

STA

22D7H

; [(22D7)] ← (A)

33

21E1

D7

 

 

 

 

34

21E2

22

 

 

 

 

35

21E3

FF

 

RST 7

 

;Басқару бағдарламасына қайту

 

Бағдарламаның дайындық кезеңінде (1 – 24-жолдар) жадыдағы екібайтты үш сан аккумулятор арқылы HL, BC және DE регистрлік жұптарына көшіріледі.

Бағдарламаның жұмыс кезеңі, яғни негізгі операциялардың орындалуы үш командамен ғана орындалады. Бұнда HL жұбы оналтыразрядты аккумумулятор ретінде пайдаланылып, DAD командасы арқылы оған алдымен BC жұбындағы (25-жол), сосын DE жұбындағы (26-жол) сан қосылады. Жұмыс кезеңінің соңғы командасы HL жұбын өзіне-өзін қосу арқылы екіге көбейту операциясы орындалады (27-жол).

Бағдарламаның ақырғы шығарым кезеңінде HL жұбындағы нәтиже аккумулятор арқылы жадыға шығарылады (28, 32-жолдар).

Бұл бағдарламаның ұзаққа созылған дайындық кезеңі мен шығарым кезеңін қысқарту үшін стекті пайдалану аса ыңғайлы келеді. Алдыңғы бағдарламаның осы жолмен өзгертілген түрін келесі түрде құруға болады:

 

 

 

 

 

 

 

 

 

; 8-бағдарлама

1

21F0

3A

 

LXI

SP, 22D0H

; SP ← 22D0

2

21F1

D0

 

 

 

 

3

21F2

22

 

 

 

 

4

21F3

E1

 

POP

H

; HL ← [(SP)],[(SP) + 1],

; SP ← (SP) + 2

5

21F4

C1

 

POP

B

; HL ← [(SP)],[(SP) + 1],

; SP ← (SP) + 2

6

21F5

D1

 

POP

D

; HL ← [(SP)],[(SP) + 1],

; SP ← (SP) + 2

7

21F6

09

 

DAD

B

; HL ← (HL) + (BC)

8

21F7

19

 

DAD

D

; HL ← (HL) + (DE)

9

21F8

29

 

DAD

H

; HL ← (HL) + (HL)

10

21FA

00

 

NOP

 

; Бос операция

11

21FB

25

 

PUSH

H

; SP ← (SP) – 2;

[(SP)];[(SP) + 1]← (HL)

12

21FC

FF

 

RST 7

 

;Басқару бағдарламасына қайту

13

21FD

C9

 

RET

 

; PC ← [(SP)]

 

Бұл бағдарламада LXI SP командасы арқылы стектің төбесі белгіленді де (1-жол), одан кейін POP командаларымен сәйкесті регистр жұптарына (HL, BC, DE) жадыда орналасқан екібайтты сандар енгізіліп (4…6-жолдар), алдыңғы бағдарламадағыдай қосу операциялары орындалды (7…9-жолдар). Орындалған қосу операцияларының HL регистрлік жұбындағы нәтижесі жадыға PUSH командасымен шығарылады (11-жол). Нәтиженің HL регистрлік жұбында қалдырылуы қажет жағдайында NOP командасының орнына RST 7 немесе RET командасы қойылу керек (12, 13-жолдағы).

2.3.7. Көбейту бағдарламасы

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

 

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

-        сегізразрядты сандардың көбейтілу нәтижесі оналтыразрядты сан болатындықтан және жеке қосылымдардың да  оналтыразрядты сандарға жүргізілетіндігіне байланысты, оналтыразрядты аккумулятор ретінде HL регистрлік жұбы алынып, ол операция басында тазартылады;

-       DE регистрлік жұбының E регистріне бірінші сан (көбейтілгіш), ал оның D регистріне нөл енгізіліп, көбейтілгіш қосуға ыңғайлы оналтыразрядты санға айналдырылады;

-       екінші сан (көбейтілгіш) оның разрядтарын ығыстырып шығару үшін аккумуляторға (сөзімізді шатыстырмас үшін, оны бұдан әрі A регистрі деп атаймыз) енгізіледі;

-       ығыстыру операциясының санын бақылап отыру үшін, көбейткіштің разряд саны микропроцессордың бір регистріне (мысалы, С регистріне) енгізіледі;

-       әрбір жеке көбейту алдында осы мезетке дейін жиналған нәтиже (HL жұбындағы) солға ығыстырылады;

-       ығыстыру арқылы А регистрінен шығарылған көбейткіштің кезекті разрядының мәні нөл болғанда, жеке көбейту осымен бітеді (яғни, алдыңғы ығыстырыммен);

-       А регистрінен шығарылған көбейткіштің кезекті разрядының мәні бір болғанда, HL жұбына DE жұбы қосылады.

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

 Жадының 22E0- және 22E1-ұяшықтарындағы сандарды келтірілген алгоритм бойынша көбейту бағдарламасын келесі түрде құруға болады:

 

 

 

 

 

 

 

; 9-бағдарлама

1

2200

3A

 

LDA

22E0H

; A ← [22E0]

2

2201

E0

 

 

 

 

3

2202

22

 

 

 

 

4

2203

5F

 

MOV

E, A

; E ← (A)

5

2204

3A

 

LDA

22E1H

; A ← [22E1]

6

2205

E1

 

 

 

 

7

2206

22

 

 

 

 

8

2207

16

 

MVI

D, 00H

; D ← 00

9

2208

00

 

 

 

 

10

2209

21

 

LXI

H, 0000H

; HL ← 0000

11

220A

00

 

 

 

 

12

220B

00

 

 

 

 

13

220C

0E

 

MVI

C, 08H

; C ← 08

14

220D

08

 

 

 

 

15

220E

29

K5:

DAD

H

; HL ← (HL) + (HL)

16

220F

07

 

RLC

 

; TC←A7

17

2210

D2

 

JNC

K6

; TC = 0: PC ← 2214

18

2211

14

 

 

 

 

19

2212

22

 

 

 

 

20

2213

19

 

DAD

D

; HL ← (HL) + (DE)

21

2214

0D

K6:

DCR

C

; C ← (C) – 1

22

2215

C2

 

JNZ

K5

; TZ = 0: PC ← 220E

23

2216

0E

 

 

 

 

24

2217

22

 

 

 

 

25

2218

C9

 

RET

 

; PC ← [(SP)]

 

Бағдарлама арқылы анықталған екі санның көбейту нәтижесі HL регистрлік жұбында қалады. Суреттелген көбейту бағдарламасын келесі бағдарламаның құрамында (10-бағдарламада) қосалқы бағдарлама ретінде пайдалану мүмкіндігін қалдыру үшін, бұл бағдарлама RET командасымен аяқталды.

2.3.8. Қосалқы бағдарламалармен жұмыс істеу

Микропроцессорлық жүйенің негізгі жұмыс бағдарламасының құрамында одан шақырылатын бірнеше қосалқы бағдарламалар болады. Осындай бағдарламаның құрылымы мен жұмыс тәртібін қарастыру мақсатында жадының 22F0-ұяшығынан бастап, қатарлап орналастырылған жиырма төрт санға (ai) жүзгізілетін y = a0*a1 + a2*a3 +  өрнегін есептеу бағдарламасын қарастыралық:

 

 

 

 

 

 

 

; 10-бағдарлама

1

2220

31

 

LXI

SP, 2300H

; SP ← 2300

2

2221

00

 

 

 

 

3

2222

23

 

 

 

 

4

2223

3A

 

LDA

22F0H

; A ← [22F0] … a0

5

2224

F0

 

 

 

 

6

2225

22

 

 

 

 

7

2226

5F

 

MOV

E, A

; E ← (A)

8

2227

3A

 

LDA

22F1H

; A ← [22F1] … a1

9

2228

F1

 

 

 

 

10

2229

22

 

 

 

 

11

222A

CD

 

CALL

2207H

; SP ← (PC), PC ← 2207

12

222B

07

 

 

 

 

13

222C

22

 

 

 

 

14

222D

7D

 

MOV

A, L

; A ← (L)

15

222E

32

 

STA

22A0

; [(22A0)] ← (A)

16

222F

A0

 

 

 

 

17

2230

22

 

 

 

 

18

2231

7C

 

MOV

A, H

; A ← (HL)

19

2232

32

 

STA

22A1

; [(22A1)] ← (A)

20

2233

A1

 

 

 

 

21

2234

22

 

 

 

 

22

2235

3A

 

LDA

22F2H

; A ← [22F2] … a2

23

2236

F2

 

 

 

 

24

2237

22

 

 

 

 

25

2238

5F

 

MOV

E, A

; E ← (A)

26

2239

3A

 

LDA

22F3H

; A ← [22F3] … a3

27

223A

F3

 

 

 

 

27

223B

22

 

 

 

 

28

223C

CD

 

CALL

2207H

; SP ← (PC), PC ← 2207

29

223D

07

 

 

 

 

30

223E

22

 

 

 

 

31

223F

3A

 

LDA

22A0H

; A ← [22A0]

32

2240

A0

 

 

 

 

33

2241

22

 

 

 

 

34

2242

4F

 

MOV

C, A

; C ← (A)

35

2243

3A

 

LDA

22A1H

; A ← [22A1]

36

2244

A1

 

 

 

 

37

2245

22

 

 

 

 

38

2246

47

 

MOV

B, A

; B ← (A)

39

2247

09

 

DAD

B

; HL ← (HL) + (BC)

40

2248

5D

 

MOV

E, L

; E ← (L)

41

2249

54

 

MOV

D, H

; D ← (H)

42

224A

0E

 

MVI

C, 14H

; C ← 1416 = 2010

43

224B

14

 

 

 

 

44

224C

21

 

LXI

H, 22F4h

; HL ← 22F4

45

224D

F4

 

 

 

 

46

224E

22

 

 

 

 

47

224F

CD

 

CALL

2144H

; SP ← (PC), PC ← 8044

48

2250

44

 

 

 

 

49

2251

21

 

 

 

 

50

2252

6F

 

MOV

L, A

; L ← (A)

51

2253

60

 

MOV

H, B

; H ← (B)

52

2254

19

 

DAD

D

; HL ← (HL) + (DE)

53

2255

FF

 

RST 7

 

;Басқару бағдарламасына қайту

 

Бұл бағдарлама қосалқы бағдарламалармен жұмыс істейтін болғандықтан оларға ауысу кезінде негізгі бағдарламаға қайту мүмкіндігін қамтамасыз ету үшін бағдарлама басында (1-жол) жадының нақтылы аймағы стекке бөлініп, оның түбі (SP) белгіленді.

Бірінші көбейтілетін екі сан (a0, a1) E және A регистрлеріне енгізіліп (1…8-жолдар), оларды көбейту үшін қосалқы бағдарлама (9-бағдарлама) шақырылып (11-жол), сол арқылы жүзеге асырылады да, алынған екібайтты нәтиже жады ұяшықтарына уақытша сақтауға жіберіледі (14…19-жолдар). Сосын келесі екі сан (a2, a3) E және A регистрлеріне енгізіліп (22…26-жолдар), олар да қосалқы бағдарлама арқылы көбейтіледі де (28-жол), екібайтты нәтиже HL  регистрлік жұбында қалды. Бұдан кейін, жадыда уақытша сақталған алдыңғы көбейтінді BC регистрлік жұбына енгізіліп (31…38-жолдар), DAD командасы арқылы екі көбейтіндінің қосындысы анықталады да (39-жол), бұл нәтиже DE регистрлік жұбына уақытша сақтауға жіберіледі (40-, 41-жолдар). Келесі кезеңде қосылатын сандардың саны (1416 = 2010 ) С регистріне (42-жол), бірінші санның адресі, бұл жерде жанама сілтеу адресінің регистрі ретінде пайдаланылатын, HL регистрлік жұбына енгізіліп (44-жол), көп санды қосуға арналған қосалқы бағдарлама (3-бағдарлама) шақырылады (47-жол). Бұл кезде алынған BC регистрлік жұбындағы нәтиже  HL регистрлік жұбына көшіріліп (50-, 51-жолдар), оған алдыңғы DE регистрлік жұбындағы екі көбейтіндінің қосындысы қосылып (52-жол), ақырғы нәтиже алынады.

2.3.9. Шешім қабылдау бағдарламалары

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

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

-       микропроцессордың RSTn кірістеріне сыртқы құрылғылардың біреуінен түскен үзіліс сұранысына байланысты қосалқы бағдарламаға ауысу туралы шешім үзілістерге жалпы рұқсаттың алдын ала берілгендігіне (EI (Enable Interrupt) командасымен қойылған) немесе оларға тиым салынғандығына (DI (Disable Interrupt) командасымен қойылған) байланысты қабылданады. Үзіліс сұранысының жұмысына рұқсат берілген жағдайда, сәйкесті қосалқы бағдарламаның бастапқы адресі кіріс нөмірінің мәніне (n = 5,5; 6,5; 7,5) байланысты (8n) анықталады (002СН, 0034Н немесе ООЗСН);

-       параллель адаптердің қай портының (PA, PB, PCH, PCL) іске қосылатындығы, оның қай бағытта (енгізу немесе шығару) дерек жіберетіндігі және қандай режимде (0, 1, 2) істейтіндігі оған жіберілген режимдік басқару сөзінің (БС1) сәйкесті разрядтарының мәндеріне байланысты анықталады. Екінші басқару сөзімен (БС2, ол қою/тазарту сөзі деп аталады) С портының жолдары арқылы жіберілетін басқару сигналдарының деңгейлері (0 немесе 1) қойылады. Басқару сөздерінің қайсысы (БС1 немесе БС2) келгендігі оның екілік кодының жетінші разрядының мәніне байланысты анықталады. Және т.б.

Бағдарламалы шешімдер көптеген жағдайда логикалық командалар арқылы жүзеге асырылады. Олардың орындалу тәртібін суреттеу мақсатында жадының 2300-ұяшығынан бастап орналастырылған таңбалы жетіразрядты 50 санға келесі операциялардың орындалу керек:

a)     жұп мәнді теріс сандардың үлкен тетрадасының разряд мәндерін нөлге айналдыру керек;

b)    тақ мәнді теріс сандардың үлкен тетрадасының разряд мәндерін бірге айналдыру керек;

c)     жұп мәнді оң сандардың кіші тетрадасының разряд мәндерін бірге айналдыру керек;

d)    тақ мәнді оң сандардың барлық разряд мәнін терістеу керек.

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

 

 

 

 

 

 

 

; 11-бағдарлама

1

2260

31

 

LXI

SP, 2400H

; HL ← 2400

2

2261

00

 

 

 

 

3

2262

24

 

 

 

 

4

2263

21

 

LXI

H, 23A0

; HL ← 2300

5

2264

00

 

 

 

 

6

2265

23

 

 

 

 

7

2266

0E

 

MVI

C, 32H

; C← 3216 = 5010

8

2267

32

 

 

 

 

9

2268

16

 

MVI

D, 0FH

; D ← 0F16 = 000011112

10

2269

0F

 

 

 

 

11

226A

1D

 

MVI

E, F0H

; E ← F016 = 111100002

12

226B

F0

 

 

 

 

13

226C

7E

K7:

MOV

A, M

; A ← [(HL)]

14

226D

47

 

MOV

B, A

; B ← (A)

15

226E

07

 

RLC

 

;  A7-1 ← (A6-0), A0 ← (A7),

; TC←A7

16

226F

0F

 

RRC

 

; A6-0 ← (A7-1), A7 ← (TC),

; TC←A0

17

2270

DC

 

CС

2280H

; TC = 1: SP ← (PC),PC ← 2280

18

2271

80

 

 

 

 

19

2272

22

 

 

 

 

20

2273

DA

 

JC

K8

; TC = 1: PC ← 2279

21

2274

79

 

 

 

 

22

2275

22

 

 

 

 

23

2276

CD

 

CALL

2290H

; SP ← (PC), PC ← 2290

24

2277

90

 

 

 

 

25

2278

22

 

 

 

 

26

2279

77

K8:

MOV

M, A

; [(HL)] ← (A)

27

227A

0C

 

INR

C

; C ← (C) – 1

27

227B

C2

 

JNZ

K7

; TZ = 0: PC ← 226C

28

227C

6A

 

 

 

 

29

227D

22

 

 

 

 

30

227E

76

 

HLT

 

; Тоқтатылым

31

227F

 

 

 

 

 

32

2280

E6

 

ANI

01

; A ← (A) ۸ 01

33

2281

01

 

 

 

 

34

2282

CA

 

JZ

K9

; TZ = 1: PC ← 228A

35

2283

8A

 

 

 

 

36

2284

22

 

 

 

 

37

2285

78

 

MOV

A, B

; A ← (B)

38

2286

A2

 

ANA

D

; A ← (A) ۸ (D)

39

2287

CA

 

JMP

KA

; PC ← 228C

40

2288

8C

 

 

 

 

41

2289

22

 

 

 

 

42

228A

78

K9:

MOV

A, B

; A ← (B)

43

228B

B3

 

ORA

E

; A ← (A) ۷  (E)

44

228C

C9

KA:

RET

 

; PC ← [(SP)]

45

228D

 

 

 

 

 

46

228E

 

 

 

 

 

47

228F

 

 

 

 

 

48

2290

E6

 

ANI

01

; A ← (A) ۸ 01

49

2291

01

 

 

 

 

50

2292

CA

 

JZ

KC

; TZ = 1: PC ← 229B

51

2293

9B

 

 

 

 

52

2294

22

 

 

 

 

53

2295

78

 

MOV

A, B

; A ← (B)

54

2296

F6

 

ORI

0FH

; A ← (A) ۷  0F

55

2297

0F

 

 

 

 

56

2298

C3

 

JMP

KD

; PC ← 229E

57

2299

9E

 

 

 

 

58

229A

22

 

 

 

 

59

229B

78

KC:

MOV

A, B

; A ← (B)

60

229C

EE

 

XRI

FF

; A ← (A)  FF

61

229D

FF

 

 

 

 

62

229E

C9

KD:

RET

 

; PC ← [(SP)]

 

Бұл бағдарлама қосалқы бағдарламалармен жұмыс істейтін болғандықтан, оларға ауысу кезінде негізгі бағдарламаға қайту мүмкіндігін қамтамасыз ету үшін негізгі бағдарламаның дайындық кезеңінің басында (1-жол) жадының нақтылы аймағы стекке бөлініп, оның түбі (SP) белгіленді.

Жанама сілтеу регистрлеріне (яғни, HL жұбына) бірінші операндтың адресі енгізіліп (4-жол), С регистріне жадыдан шығарылатын операндтардың саны жазылды (7-жол). Сосын D және E регистрлеріне болашақ операцияларға қажетті тұрақты операндтар енгізілді (9-, 11-жолдар).

Негізгі бағдарламаның қызмет кезеңінде кезекті сан аккумуляторға (13-жол) және В регистріне енгізілді (14-жол). Аккумулятор солға ығыстырылып (15-жол), оның ығысып шыққан 7-разрядының мәні (TC) арқылы бұл санның таңбасы анықталады да (TC = 0 – оң сан, TC = 1 – теріс сан), сәйкесті қосалқы бағдарлама шақырылады (17-, 23-жолдар).

Бірінші қосалқы бағдарламада (32…44-жолдар) теріс санға байланысты мәселелер шешіледі. Санның жұптығы (немесе тақтығы) оның кіші разрядының мәніне (0 – жұп сан, 1 – тақ сан) байланысты анықталады (32-жол).

D регистріндегі тұрақтымен (00001111) жүргізілген логикалық көбейту операциясы (38-жол) жұп санның үлкен тетрадасының разряд мәндерін нөлге айналдырады, ал E регистріндегі тұрақтымен (11110000) жүргізілген логикалық қосу операциясы (43-жол) жұп санның үлкен тетрадасының разряд мәндерін бірге айналдырады.

Екінші қосалқы бағдарламада (48…62-жолдар) оң санға байланысты мәселелер шешіледі. Санның жұптығы (немесе тақтығы) алдыңғы қосалқы бағдарламадағыдай анықталады (48-жол).

Тіке сілтемелі ORI командасы арқылы 0F (00001111) тұрақтысымен  жүргізілген логикалық қосу операциясы (54-жол) тақ санның үлкен тетрадасының разряд мәндерін бірге айналдырады, ал XRI командасы арқылы FF (11111111) тұрақтысымен  жүргізілген екілік қосу операциясы (60-жол) тақ санның барлық разряд мәнін терістейді.

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

Әдебиеттер тізімі

1.     Токхейм Р. Основы цифровой электроники: Пер. с. англ. – М.: Мир, 1988.

2.     Токхейм Р. Микропроцессоры. Курс и упражнения: Пер. с. англ. – М.: Мир, 1988.

3.     Уэйкерли Дж. Ф. Проектирование цифровых устройств: Пер. с. англ. – М.: Постмаркет, 2002.

4.     Опадчий Ю. Ф., Глудкин О. П., Гуров А. И. Аналоговая и цифровая электроника / Под ред. О.П. Глудкина. – М.: Радио и связь, 2003.

5.     Хамахер К. И др. Организация ЭВМ. Пер. с. англ. – СПб.: Питер, 2003.

6.     Угрюмов Е. П. Цифровая схемотехника. – СПб.: БХВ-Петербург, 2004.

7.     Бойко В.И. и др. Схемотехника электронных устройств. Цифровые устройства. – СПб.: БХВ-Петербург, 2004.

8.     Бойко В.И. и др. Схемотехника электронных устройств. Микропроцессоры и микроконтроллеры. – СПб.: БХВ-Петербург, 2004.

9.     Сугано Т. Дж., Уидмер Н. С. Цифровые системы. Теория и практика: Пер. с англ. – М.: Издательский дом “Вильямс”, 2004.

10. Бураханова З.М., Шанаев О.Т. Аналогты және цифрлы электрондық құрылғылар / Оқу құралы. – Алматы: АЭИ, 1992.

11. Бураханова З.М., Шанаев О.Т. Электрондық тізбектер / Оқу құралы. – Алматы: АЭИ, 1996.

12. Бураханова З.М. Дербес ЭЕМ арқылы схемақұралыстық моделдеу / Оқу құралы. – Алматы: АЭжБИ, 1999.

13. Шанаев У.Т. Основы цифровой техники / Учебное пособие. – Алматы: АГУ, 1999.

14. Шанаев О.Т. Цифрлық құрылғылар және микропроцессорлар. Зертханалық жұмыстарға арналған әдістемелік  нұсқаулар. – Алматы: АИЭС, 2008.

15. Шанаев О.Т. Цифрлық құрылғылар және микропроцессорлар. Курстық жұмыстарды орындауға арналған әдістемелік  нұсқаулар. – Алматы: АИЭС, 2008.

16. Шанаев О.Т. Микропроцессорлық жүйелердің құрылғылары. Зертханалық жұмыстарды орындауға арналған әдістемелік  нұсқаулар. – Алматы: АИЭС, 2009.

17. Шанаев О.Т. Electronic Workbench моделдеу жүйесі / казақ және орыс тілдерінде. – Алматы, 2003.

 

Мазмұны 

Кіріспе. 3

1 Цифрлық құрылғылар. 4

1.1 Цифрлық құрылғылардың математикалық негіздері 4

1.1.1 Екілік санау жүйесі 4

1.1.2.1 Сандардың түрлендірілімі 5

1.1.1.1.1 Ондық санның екілік санға түрлендірілуі 5

1.1.1.1.2 Екілік санның ондық санға түрлендірілуі 7

1.1.1.1.3 Санның оналтылық жазылымы.. 7

1.1.2 Логикалық функциялар. 7

1.1.2.1 Негізгі функциялар. 7

1.1.2.2 Әмбебап функциялар. 9

1.1.2.3 Теңдік және теңсіздік функциялары.. 9

1.1.3 Логика алгебрасының заңдары мен заңдылықтары.. 9

1.1.4 Күрделі функциялар. 10

1.1.4.1 Логикалық функцияларды минимизизациялау. 12

1.1.4.1.1 Тікелей түрлендіру тәсілі 12

1.1.4.1.2 Карно картасы арқылы түрлендіру. 12

1.1.4.1.3 Арнайы түрлендіргішті пайдалану. 13

1.2 Қиыстырма құрылғылар. 14

1.2.1 Логикалық элементтер. 14

1.2.1.1 Логикалық элементтердің тез әрекеттілігі 14

1.2.2 Қиыстырма құрылғыларды құру тәртібі 16

1.2.3 Қалыпты қиыстырма құрылғылар. 16

1.2.3.1 Шифраторлар. 16

1.2.3.1.1 Шифратордың өлшемін ұлғайту. 19

1.2.3.2 Дешифраторлар. 19

1.2.3.2.1 Дешифратор негізінде қиыстырма құрылғы құру. 20

1.2.3.3 Мультиплексорлар. 21

1.2.3.3.1 Мультиплексор негізінде қиыстырма құрылғы құру. 22

1.2.3.4 Демультиплексорлар. 23

1.2.3.5 Қосуыштар. 23

1.2.3.5.1 Бірразрядты қосуыштар. 23

1.2.3.5.2 Көпразрядты қосуыштар. 24

1.3 Тізбектеме құрылғылар. 25

1.3.1 Триггерлер. 25

1.3.1.1 Асинхронды RS-триггерлер. 25

1.3.1.1.1 Тура кірісті RS-триггер. 25

1.3.1.1.2 Теріс кірісті RS-триггер. 27

1.3.1.2 Синхронды триггерлер. 29

1.3.1.2.1 Синхронды RS-триггер. 29

1.3.1.2.2 Статикалы басқарылымды D-триггер. 29

1.3.1.2.3 Динамикалы басқарылымды триггерлер. 30

1.3.2 Регистрлер. 32

1.3.3 Санауыштар. 33

1.4 Жадылық құрылғылар. 34

1.4.1 Жадылық құрылғылардың басқару сигналдары.. 34

1.4.2 Жадылық құрылғылардың басты параметрлері 34

1.4.3 Жадылық құрылғылардың негізгі түрлері 35

1.4.4 Жадылық құрылғылардың негізгі құрылымдары.. 36

1.4.4.1 2D құрылымы.. 36

1.4.4.2 3D құрылымы.. 37

1.4.4.3 2DM құрылымы.. 38

1.4.5 Тұрақты жадылық құрылғылардың байланыс элементтері 39

1.4.5.1 ROM(M)  құрылғылары.. 39

1.4.5.2 PROM құрылғылары.. 40

1.4.5.3 EPROM және EEPROM құрылғылары.. 41

2 Микропроцессорлар және микропроцессорлық жүйелер. 42

2.1 Микропроцессорлық жүйелердің құрылым принциптері 42

2.2 Intel 8085 микропроцессоры.. 43

2.2.1. Микропроцессордың құрылымы.. 43

2.2.2. Микропроцессордың басқару сигналдары.. 47

2.2.3. Микропроцессордың жұмыс тәртібі 49

2.2.4. Микропроцессордың үзіліс жүйесі 50

2.2.5. Микропроцессордың тізбекті енгізу/шығару жүйесі 52

2.2.6. Микропроцессордың командалар жүйесі 53

2.2.7. Микропроцессорда қолданылатын сілтеу тәсілдері 56

2.3 Микропроцессорлық жүйенің жұмысын бағдарлау. 58

2.3.1. Тізбелі бағдарламалар. 60

2.3.2. Тарамдалымды бағдарламалар. 62

2.3.3. Екібайтты сандарды қосу бағдарламасы.. 64

2.3.4. Тіке сілтемелі командалармен жұмыс істеу. 65

2.3.5. Алу командаларымен жұмыс істеу. 66

2.3.6. Регистр жұптарымен жұмыс істеу. 67

2.3.7. Көбейту бағдарламасы.. 69

2.3.8. Қосалқы бағдарламалармен жұмыс істеу. 71

2.3.9. Шешім қабылдау бағдарламалары.. 73

Әдебиеттер тізімі 77