Uploaded by GC Channel

Бағдарламалық инженерия Зертхана жумыстары

advertisement
№1 зертханалық жұмыс. CAD Proteus. Редакторда жұмыс жасау. Компоненттер.
Жобаны модельдеу.
1. Proteus құрылғысының бағдарламалық жасақтамасымен таныстыру
Proteus - бұл екі негізгі бағдарламаны біріктіретін CAD класты бағдарламалық
пакет: ISIS - нақты уақыт режимінде электрондық тізбектерді шығаруға және шешуге
арналған құрал және ARES - баспа платаларын жасауға арналған құрал. Біз тек ISIS
қолданамыз.
Рисунок 1.1 – Бағдарламаның жарлығы (а) мен PROTEUS – тің басты пердесі (б)
PROTEUS – тің құрамы (1.2 - сурет).
Сурет 1.2 – PROTEUS -тың негізгі тақтасының құрамы
PROTEUS - тің негізгі тақтасында үлгіні құруға арналған қадамдар (1.3- сурет):
1) жаңа құжат жасаңыз (іске қосылған кезде, ол кез келген басқа бағдарламадағыдай
әдепкі бойынша жасалады);
2) Біз кітапханаға барамыз, ол үшін «P» түймесін басыңыз. Кілт сөздер жолына өзіңіз
қалаған элементтің атауын енгізіңіз, алдымен шам (шам), содан кейін «OK» түймесін
басыңыз, содан кейін қайтадан кітапханаға өтіңіз («P» батырмасы), ал кілт сөздерде Swspdt-mom (ауыстырғыш) енгізіп, «ОК» басыңыз.
Элементтерді таңдағанда элементтер тобын пайдалануға болады (кітапханада,
элементтер сынып бойынша топтастырылған) немесе сіз оны кілт сөздер жолынан іздей
аласыз. Қажетті элементтің атын енгізуіңіз керек, әр элементті таңдағаннан кейін ОК
батырмасын басыңыз, содан кейін қайтадан кітапханаға барыңыз (1.4 - сурет).
Сурет 1.3 – PROTEUS - тің негізгі тақтасында үлгіні құру қадамдары
3) селектор терезесінде бізге қажет элементті таңдап, жұмыс терезесінде бос орынды
тінтуірдің сол жақ батырмасымен нұқыңыз, содан кейін объектіні орналастырғыңыз
келетін жерге екінші рет шертіңіз (1.5 - сурет);
Сурет 1.4 – Кітапханадағы элементтерді таңдаңыз
4) Таңдау режимін таңдау терезесінде «Терминалдар» батырмасын басып, «Жер»
тармағын таңдаңыз, оны элементтер сияқты жұмыс алаңына қойыңыз да, «Қуат» (көз)
тармағын таңдап, оны жұмыс аймағына қойыңыз (1.6 және 1.7 - суреттер);
а)
б)
в)
Сурет 1.5 – Таңдау (а), орналастыру (б) және затты панельге бекіту (в)
Сурет 1.6 – Жерге орналастыру (Ground)
Сурет 1.7 – Выделение и размещение источника питания (Power)
5) Енді қуат элементінде (көзі) тінтуірдің сол жақ батырмасын екі рет шертіп, оның
қасиеттерінің терезесін ашамыз, пайда болған терезеде, Белгі қойындысында, жол
бағанында «+ 5V» деп жазамыз. «ОК» түймесін басыңыз (1.8 - сурет);
Сурет 1.8 – Электрмен жабдықтауды таңдау (Power)
6) Мұның бәрі орындалғаннан кейін біз диаграммада көрсетілгендей элементтерді
қосуымыз керек (1.9-сурет), ол үшін тінтуірдің жүгіргісін элементті қалдыратын сымға
жылжытыңыз (жүгіргіштің түсі жасылға ауысады), тінтуірдің сол жақ батырмасымен
басып, сымды бізге керек элементке апарыңыз. оны қосыңыз, содан кейін тінтуір түймесін
қайта басыңыз. Осылайша біз тізбектегі барлық элементтерді байланыстырамыз (1.10сурет);
Сурет 1.9 – Элементтерді қосу
Сурет 1.10 – Жұмысқа қосылуға дайын сұлба
7) Енді сіз батырманы
басу арқылы модельдеуді бастай аласыз. Коммутатордың
контактілері жабық болғанда, шам жануы керек, егер сіз қуат элементінің қасиеттеріндегі
кернеу мәнін өзгертсеңіз, шамның түсінің өзгеруін байқай аласыз (1.10-сурет);.
Сурет 1.11 – Шамның жағылуын симуляциялау
№2 зертханалық жұмыс. ARDUINO платформасының
бағдарламалық бөліктері. Цифрлық микросұлбалар
аппараттық
және
2.1 Arduino Uno платформасының аппараттық бөлігіне шолу
Аrduino Uno – ның аппараттық бөлігінің жалпы сипаттамасын қарастырайық.
Arduino – да жұмыс барысын бақылау үшін индикаторлар қарастырылған. Индикаторлар
4 жарық диодтан тұрады. Олар төменгі суретте жасыл түспен қоршалған.
Индикаторлардың жарықтануы келесіні блдіреді (Сурет 2.1):
"ON"- тақта ток көзіне қосылып тұр;
"TX"- UART интерфейсі бойынша контроллер сыртқа мәлімет жіберуде;
"RX"- UART интерфейсі бойынша контроллер сырттан мәлімет қабылдауда;
"L" - 13 пинге жалғанған (pin, ағыл.- микросұлбаның аяғы).
Сурет 2.1 – Arduino Uno платформасы
Arduino Uno – ның бөліктерін қарастырайық:
1) Жазылған программалардың кодтары (скетчтер) орналасқан негізгі құрылғы микроконтроллер. Біздің тақтада бұл - ATmega328.
2) – USB интерфейсі арқылы скетчтерді микроконтроллерге жазамыз.
3) – ATmega16U2 контроллерінде жасалынған USB - UART өткізгіші. Оның негізгі
міндеті программалық кодты керекті форматқа ауыстыру. Көптеген Arduino – ларда
орнатылған микроконтроллерлер USB – мен тікелей жұмыс атқара алмағандықтан, USB UART өткізгіштері қолданыланады.
4) – USB - портты үлкен токтан қорғау үшін 500 мА – лік қорғағыш орналыстырылған.
5) – сыртқы ток көзіне қосылу. Бұл тақталарда ток көзіне USB арқылы немесе тура
жалғауға болады.
6) – диод сыртқы ток көзіне жалғанғанда, полюстардың ауысуынан қорғайды (егер
байқамай ток көзінің «+» мен «-» ауыстырғанда).
7) – MOSFET – транзистор мен
8) – операциялық күшейткіштің арқасында ток көздерін таңдау автоматты түрде жүзеге
асады.
9) – кернеу стабилизаторы. Кірістегі кернеу +7 вольттан +12 вольтқа дейін ауытқуы
мүмкін. Сондықтан, бұл стабилизатор кіріс кернеуді өзінің шығысынан әрқашан + 5 вольт
түрінде тұрақты шығарып тұрады.
10) – Осы тақтада қосымша + 3.3 вольт стабилизатор қарастырылған.
11) – конденсаторлар стабилизатордың кернеуінің бір қалыпты болуын қамтамасыз етеді.
12) – кварцтық резонатор микроконтроллердің жұмысшы жиілігін береді, бізде 16 МГц.
13) – түйме контроллерді қайта жүктеуге арналған (Reset).
Arduino Uno – ның кіріс – шығыстары

14 цифрлық кірістер пен шығыстары бар (0,1 және 2 – 13 пиндері);

6 аналогтық кірістер (А0 – А5 пиндері);

6 аналогтық шығыстар (цифрлық қатарда ( ˜ - титло) белгісі бар пиндер);

СОМ – портта 2 пин: берілгендерді тізбектеп жіберуге ТХ (1 – ші пин) және
берілгендерді тізбектеп қабылдауға RХ (0 – ші пин).
1.2 АRDUINO - ның программалау бөліміне шолу
АRDUINO
программасын компьютерге орналастырғанда, экранда жіберуші
программаның жарлығы (1.2, а сурет) орналасады. Жүктеу кезінде экранда программаның
бет пердесі шығады (1.2, ә сурет ).
Сурет 2.2 – АRDUINO программасының жарлығы (а) мен бет пердесі (ә)
Аrduino – да программалау тілі болып Си тілі қабылданған. Әр – түрлі құрылғылар
үшін жазылған программаны скэтч деп атайды. Программалық ортаны іске қосқанда
экранда панель пайда болады.
Скэтч екі бөлімнен тұрады:
1. Жүктеу бөлімі (setup) - бағдарламаның негізгі берілгендерін енгізуге арналған. Бұл
бөлім бір – ақ рет программаны алғашқы жүктегенде орындалады.
2. Орындау бөлімі (loop) - жүктелген бағдарламаны циклда орындайды.
Arduino программалау ортасының панелі
бірнеше өңірден тұрады:
1.
Мәзір – дің көмегімен панелді
редакциялауға болады;
2.
Аспаптар панелінде бізге екі
опция қажет болады: Компилятор және
Жүктегіш;
3.
Текстік редактор – да скетчтердің
кодын жазып редакциялаймыз;
4.
Консол
Компилятордың
жұмысын экранға шығарады (Сурет 2.3).
Сурет 2.3 – Arduino программалау
ортасының панелінің жалпы түрі
Аспаптар мәзіріне көңіл аударайық. Бұл мәзірде бізге екі батырма әрқашан қажет
болады (Сурет 2.4).
Сурет 2.4 – Аспаптар панеліндегі Компиляция және Скэтчті жүктеу батырмалары
Астыңғы өңірде (КОНСОЛ) – да алынған hex - файл – дың компиляция процесін
бақылап көріп тұру үшін, келесі амал жасауға тиіспіз (Сурет 2.5):
Файл –> Настройки
Ашылған НАСТРОЙКИ (РЕТТЕУ) панелінде (Сурет 2.6) Показывать подробный
вывод при компиляции жолағында белгі (˅) қоямыз. Әрі қарай ОК батырмасын
басамыз. Arduino программалау ортасы жұмысқа дайын.
Сурет 2.5 – Файл –> Настройки
Сурет 2.6 – Консолді реттеу
Егер компиляция қатесіз аяқталса, КОНСОЛ - да көрсетілгендей мәлімет шығады.
Компиляцияланған скетч PROTEUS – ке жүктеледі (Сурет 2.7).
Сурет 2.7 – КОНСОЛ – да шығатын компиляцияланған скетчтің мәліметі
Сурет 2.8 – hex - файлды көшіру
Скэтчті компиляциялағаннан кейін КОНСОЛ - да hex – файл - ды іздеп тауып оны
көшіріп аламыз (Сурет 2.8 ). Көшіріп алынған hex – файл - ды PROTEUS – ті ашып
симуляторға жүктейміз (Сурет 2.9).
Сурет 2.9 – Скэтчті PROTEUS – ке жүктеу
1.3 Цифрлық микросұлба
Барлық цифрлық құрылғылар логикалық микросұлбалардан тұрады (Сурет 2.10).
Олардың әрқайсысының міндетті түрде сыртпен байланыстыратын құралдары болады
(немесе оларды қарапайым тілмен, «аяқтар», ағыл, pin деп атайды):
• ток көздері: сұлбаларда әдетте көрсетілмейтін жалпы (немесе «жер», ағыл. ground) және
кернеудің көздері (көп жағдайда +5 В немесе +3,3 В);
• сыртқы цифрлық сигналдарды енгізетін кіріс сигналдарынан (немесе «кірістерден»);
• сыртқа сигналдарды шығаратын (немесе «шығыс аяқтары» - нан) тұрады.
Әрбір микросұлба қандай – да бір тәсілмен кіріс сигналдарының тізбектерін шығыс
сигналдарының тізбектеріне түрлендіреді. Түрлендіру әдісі көбінесе кесте түрінде (ақиқат
кестесі деп аталады) немесе барлық сигналдардың уақытша тәуелділіктерінің кестесі
уақыт диаграммалары түрінде сипатталады.
Сурет 2.10 - Цифрлық микросұлба
Барлық сандық микросұлбалар екі рұқсат етілген кернеу деңгейіне ие болатын
логикалық сигналдармен жұмыс істейді. Осы деңгейлердің бірі логикалық бір деңгейі
(немесе бір деңгейі) деп аталады, ал екінші деңгейі логикалық нөл деңгейі (немесе нөл
деңгейі) деп аталады. Көбінесе кернеудің төмен деңгейі логикалық нөлге тең («0») және
логикалық деңгей жоғары деңгейі бірге («1») сәйкес келеді. Бұл жағдайда олар «оң
логика» қабылданады делінеді. Алайда, үлкен қашықтықта және микропроцессорлық
жүйелерде сигналдар жібергенде, кейде кері логикалық мән нөлдік жоғары кернеу деңгейі
және логикалық бір төмен деңгейде қолданылады. Бұл жағдайда олар «теріс логика» деп
аталады.
№ 3 зертханалық
элементтері
жұмыс.
Цифрлық
құрылғылардың
базалық
логикалық
Қазіргі заманғы цифрлық құрылғылар мен жүйелердің элементтік базасы сандық
интегралды сұлбалар болып табылады.
Цифрлық интегральданған сұлба (ИС) - бұл интегралданған технологиямен
дайындалған, жеке корпуста дайындалған және дискретті (цифрлық) сигналды түрлендіру
үшін нақты функцияны орындайтын микроэлектрондық өнім. Цифрлық сигналдарды
қарапайым түрлендіруді атқаратын цифрлық ИС - терді логикалық элементтер (ЛЭ) деп
атаймыз.
Логикалық алгебра немесе булдық алгебра математика аппаратын пайдалана
отырып, цифрлық ИС жұмысын және олардың негізінде жасалынған құрылғыларды
сипаттайды. Буль алгебрасы цифрлық құрылғыларды синтездеу, алгебра және екілік
жүйенің түсініктері мен категорияларына негізделген.
Буль алгебрасының негізгі ұғымдары: айнымалы (аргумент) пен логикалық
функция ұғымдары болып табылады.
“0” немесе “1” мәндерінің біреуін қабылдайтын цифрлық сигналды логикалық
айнымалы (аргумент) деп атаймыз. Бұл логикалық айнымалыларды екілік айнымалылар
деп те атауға болады. Айнымалылар х0 , х1 , х2 ,… символдарымен өрнектеледі.
“0” немесе “1” символдарының бірін қабылдайтын екілік айнымалылардың
функциясын (белгіленуі – у) логикалық (бульдік) функция деп атайды.
Сонымен, айнымалылар (аргумент) мен функциялар тек қана екі түрлі мәндерге ие
бола алады. Буль алгебрасында осы функция мен айнымалылар (аргументтер) бір –
бірімен эквиваленттік жағдайы («=» теңдік белгісі) арқылы қатынас құрады және үш
түрлі операциялар анықталады:
а) логикалық қосу (дизъюнкция), + немесе  ;
б) логикалық көбейту (конъюнкция),  немесе &;
в) логикалық терістеу (инверсия), X - инверсия операциясы (X - аргумент немесе
функцияның символы).
3.1 Логикалық терістеу (Инверсия)
«Бас тарту» - бір аргументтің (сондай - ақ, инверсия, ЕМЕС логикалық терістеу деп
аталатын) функциясы. Бұл функцияның аналитикалық формасы:
y  a,
бұл жерде y - логикалық функция, а - аргумент.
Сурет 3.1 – Инвертордың ГОСТ (а) және ANSI (ә) стандарттары бойынша ШГБ - сі,
уақыттық диаграммасы (б) мен ақиқат кестесі (в)
Электронды ЛЭ, «БАС ТАРТУ» функциясын жүзеге асыратын инвертор немесе
«ЕМЕС» ЛЭ (ағыл. NOT, орыс. НЕ) деп аталады. Инвертордың әр – түрлі стандарттағы
шартты графикалық белгіленуі (ШГБ), уақыттық диаграммасы мен ақиқат кестесі 3.1
суретте көрсетілген. ЛЭ - нің кірісі сол жақ, шығысы – оң жақта. Шығу жолақтарында
оның тікбұрышты үшбұрышпен бірігуі жерінде инверсия символы – кішкентай шеңбер
арқылы бейнеленеді. Цифрлық техника тілінде инверсия шығыс сигналы (у) кіріс (х)
сигналын терістейтінін білдіреді.
3.2 Логикалық көбейту (Конъюнкция)
«Конъюнкция» функциясы – бұл екі немесе одан көп цифрлардың аргументтерінің
функциясы (функцияның басқа аттары: логикалық көбейту, логикалық ЖӘНЕ
байланысы). «Конъюнкция» функциясының екі айнымалыға арналған аналитикалық
форма:
y  a  b немесе y  a & b .
ЕРЕЖЕ: «Конъюнкция» операциясы орындалған кезде, егер кірістегі тек қана бір
аргументтің мәні «0» - ге тең болса функцияның мәні «0» - ге тең болады.
«Конъюнкция» функциясын жүзеге асыратын ЛЭ – ті конъюнктор немесе «ЖӘНЕ»
ЛЭ – ті (ағыл. AND, орыс. И) деп атайды. Конъюнктордың әр – түрлі стандарттағы
шартты графикалық белгіленуі (ШГБ), уақыттық диаграммасы мен ақиқат кестесі 3.2
суретте көрсетілген.
Сурет 3.2 – Конъюнктордың ГОСТ (а) және ANSI (ә) стандарт-тары бойынша ШГБ - сі,
уақыттық диаграммасы (б) мен ақиқат кестесі (в)
3.3 Логикалық қосу (Дизъюнкция)
«Дизъюнкция» функциясы – бұл функция екі немесе одан да көп аргументтердің
логикалық қосылу функциясы (функцияның басқа атаулары: логикалық қосу, логикалық
НЕМЕСЕ байланысы).
«Дизъюнкция» функциясын жүзеге асыратын ЛЭ дизъюнктор деп атайды. Бұл ЛЭ –
ті «НЕМЕСЕ» (ағыл. OR, орыс. ИЛИ) деп те атайды. Екі аргументі бар дизъюнктордың
аналитикалық формасы:
y  a  b немесе y  a  b .
ЕРЕЖЕ: «Дизъюнкция» операциясы орындалған кезде, егер кірістегі тек қана бір
аргументтің мәні «1» - ге тең болса функцияның мәні «1» - ге тең болады.
Дизъюнктордың әр – түрлі стандарттағы шартты графикалық белгіленуі (ШГБ),
уақыттық диаграммасы мен ақиқат кестесі 3.3 суретте көрсетілген.
Сурет 3.3 – Дизъюнктордың ГОСТ (а) және ANSI (ә) стандарттары бойынша ШГБ - сі,
уақыттық диаграммасы (б) мен ақиқат кестесі (в)
2.4 «Шеффер штрихы» функциясы
«Шеффер штрихы» (басқа атауы – «ЖӘНЕ – ЕМЕС» логикалық байланысы) – бұл
екі немесе одан да көп аргументтердің логикалық көбейтінділерін терістейтін функция.
«Шеффер штрихы» функциясын жүзеге асыратын ЛЭ – ті «ЖӘНЕ – ЕМЕС» (ағыл.
AND - NOT, орыс. И - НЕ) деп те атайды. Екі аргументі бар «ЖӘНЕ – ЕМЕС»
функциясының аналитикалық формасы:
y  a *b
немесе y  a  b .
ЕРЕЖЕ: «Шеффер штрихы» операциясы орындалған кезде, егер кірістегі тек қана
бір аргументтің мәні «0» - ге тең болса функцияның мәні «1» - ге тең болады.
«ЖӘНЕ – ЕМЕС» функциясының әр – түрлі стандарттағы ШГБ -ленуі, уақыттық
диаграммасы мен ақиқат кестесі 3.4 суретте көрсетілген.
Сурет 3.4 – «Шеффер штрихы» – ның ГОСТ (а) және ANSI (ә) стандарттары бойынша
ШГБ - сі, уақыттық диаграммасы (б) мен ақиқат кестесі (в)
2.5 «Пирстың сілтемесі» функциясы
«Пирстың сілтемесі» (басқаша атауы – «НЕМЕСЕ – ЕМЕС» логикалық байланысы) – бұл
екі немесе одан да көп аргументтердің логикалық қосындысын терістейтін функция.
«Пирстың сілтемесі» функциясын жүзеге асыратын ЛЭ – ті «НЕМЕСЕ – ЕМЕС»
(ағыл. OR - NOT, орыс. ИЛИ - НЕ) деп те атайды. Екі аргументі бар «НЕМЕСЕ – ЕМЕС»
функцияның аналитикалық формасы:
y  ab
немесе y  a  b
ЕРЕЖЕ: «Пирстың сілтемесі» операциясы орындалған кезде, егер кірістегі тек қана
бір аргументтің мәні «1» - ге тең болса функцияның мәні «0» - ге тең болады.
«НЕМЕСЕ – ЕМЕС» функциясының әр – түрлі стандарттағы шартты графикалық
белгіленуі (ШГБ), уақыттық диаграммасы мен ақиқат кестесі 3.5 суретте көрсетілген.
Сурет 3.5 – «Пирстың сілтемесі» - нің ГОСТ (а) және ANSI (ә) стандарттары бойынша
ШГБ - сі, уақыттық диаграммасы (б) мен ақиқат кестесі (в)
2.6 Әрмәнділік (Модуль М2 бойынша сумма)
«Модуль М2 бойынша сумма»– бұл екі немесе бірнеше аргументтердің функциясы.
Бұл функцияның тағы бір атауы «ӘРМӘНДІЛІК» (ағыл. ХOR, орыс. «Исключающее
ИЛИ»).
х1 және х2 аргументтерге арналған «ӘРМӘНДІЛІК» функциясының аналитикалық
формасы:
y  x1  x2
Екілік х1 және х2 аргументтердің арифметикалық суммасы: 0+0=0; 0+1=1; 1+0=1;
1+1=10 болады. Соңғы жағдайда, бір саны іргелес жоғарғы разрядқа өтеді. Осы қасиет
қосу құрылғыларын құрастыру кезінде кең қолданады.
Функцияның жұмысын дұрыс түсіну үшін үш аргументтен a, b, c тұратын функцияны
қарастырамыз:
y  a bc
Ақиқат кестелерінде бұл функцияның жұмысы келесідей айқындалады:
Егер кірістегі бірлердің саны жұп болса, шығысында у = 0;
Егер кірісте бірлердің саны тақ болса, шығысында у = 1.
Ескерту: Кейбір ЛЭ – де кері логика болуы мүмкін.
Әрмәнділік функциясының әр – түрлі стандарттағы шартты графикалық белгіленуі
(ШГБ), уақыттық диаграммасы мен ақиқат кестесі 3.6 суретте көрсетілген.
1.
2.
Сурет 3.6 – Әрмәнділік функциясының ГОСТ (а) және ANSI (ә) стандарттарындағы
ШГБ - сі, тура ақиқат кестесі (б), кері ақиқат кестесі (в), және XILINX – та алынған кері
логиканың уақыттық диаграммасы (г)
2.7 Буфер
Буфер (delay - кешіктіру) функциясы – берілген элементпен ешқандай
логикалық амал жасамайды. Оның міндеті –басқа сигналдармен келісімге келу арқылы,
берілген сигналды белгілі бір уақытқа ұстап тұру.
Сурет 3.7 – Буфердің ГОСТ (а) және ANSI (ә) бойынша ШГБ - сі, уақыттық
диаграммасы (б) мен ақиқат кестесі (в)
№ 4 зертханалық жұмыс. Шифрлауыш комбинациялық құрылғылар
4 Кодер - сұлбасы, жұмыс кестесі
Кодер (басқаша атауы шифрлауыш., ағыл. Coder – CD., орыс. шифратор) - М
кірісі және N шығысы бар комбинациялық құрылғы. М - унитарлы код, ал N - екілік
разрядты код. Кодер кірісіндегі унитарлы кодты шығысына екілік код түрінде шығарады.
Унитарлы код (ағыл. unitary code) деп, бірнеше разрядты берілген екілік кодтағы
сандардың тек қана бір разрядында логикалық «1» болатын кодты айтамыз (тура
унитарлы код). Егер берілген екілік кодтағы сандардың тек қана бір разрядында
логикалық «0» болатын болса, онда бұл кодты кері (инверсті) унитарлы код деп атаймыз.
Кодердің жұмысының мысалы ретінде ондық сандардың 0 - ден 7 – ге дейінгі ондық
кодты екілік кодқа шифрлайтын құрылғыны қарастырамыз (Сурет 4.1).
Сурет 4.1 – Кодердің ШГБ – ленуі
Бұл сұлбаның келесі кіріс және шығыс сигналдары болады:
 Ақпараттық жеті кірісі Х1,…, Х7;
 Ақпараттық үш шығысы Y0, Y1, Y2.
Кодердің жұмыс кестесін құрастырайық. Ең алдымен шығыс сигналдарын
анықтайық. Y0 – Y2 сигналдары екілік кодта 8 комбинация құрайды (Кесте 4.1).
Кесте 4.1. Шығыс сигналдарының комбинациялары
Кодердің кіріс сигналдарын тура унитарлы кодта болатынын ескеріп
комбинацияларын құрастырайық. Төмендегі кестедегі 1 – ші жолақта Y0 – Y2 = 000
комбинациясы қарастырылады. 2 – ші жолақтан 8 – ші жолаққа дейін 1 –ден бастап 7 – ге
дейін унитарлы код жазамыз (Кесте 4.2).
Кесте 4.2. Кодердің толық жұмыс кестесі
Осы кестені қолданып кодердің шығыс сигналдарының (Y0 – Y2) функцияларына
арналған теңдеулер жазайық. Мысалы, Y0 функциясына айнымалыларды қалай
таңдайтынын көрсетейік. Функция құрғанда біз тек қана (Y0 = «1») мәні бар жолақтарды
қарастырамыз (тура унитарлы код) (Кесте 4.3).
Кесте 4.3 Y0 = «1» комбинациясы
Біздің Y0 функциямыз Х – тің келесі мәндерінде логикалық «1» - ге тең болады:
Х1, Х3, Х5 және Х7. Сондықтан Y0 функциясы төменде көрсетілген теңдеумен
өрнектеледі:
Осы әдісті қолданып Y1 мен Y2 үшін де функциялардың мәндерін өрнектейміз:
Қарастырып отырған үш (Y0 – Y2) функцияларымыз логикалық қосу (дизъюнкция)
арқылы өзінің қызметін атқарады. Кодерді құрастыру үшін бізге үш 4 - НЕМЕСЕ (орыс. 4
– ИЛИ, ағыл. 4 - OR) логикалық элементтері қажет болады. Бұл жерде 4 саны ЛЭ – тің
кіріс сигналдарының санын көрсетеді. НЕМЕСЕ (орыс. ИЛИ, ағыл. OR) жазбасы – ЛЭ –
тің түрін анықтайды. Өнеркәсіптік жолмен шығарылатын микросұлбалардың ішінде 4 НЕМЕСЕ – ЕМЕС (мысалы К155ЛЕ3, аналогы SN7425) ИС болады. Сондықтан, шығыс
сигналдарды терістегендіктен (ЕМЕС терістеу операциясы), микросұлбалардың
шығысында кері логика пайдалануға тура келеді. Келесі мысалда біз осы кері логиканы
пайдаланамыз (Сурет 4.2).
Сурет 4.2 – Кодердің принципиалдық сұлбасы
Кодердің PROTEUS – тегі сұлбасы және листингі
АРДУИНО платформасында жинақтауыш тақташада жұмыс атқару үшін алдымен
аталған құрылғының PROTEUS – тегі прототипін салып, бағдарлама жазамыз (Сурет 4.3).
Сурет 4.3 – Терістелген 3 х 2 кодердің PROTEUS – тегі прототипі
№ 5 зертханалық жұмыс. Мультиплексерлік комбинациялық құрылғыларды жобалау
5 Мультиплексер - сұлбасы, жұмыс кестесі
Мультиплексер (Multiplexer) - бұл М ақпараттық (Х0, Х1, …, ХМ-1) және K адрестік
(А0, А1, …. АК-1) кірістері мен тек қана бір шығысы (Y) болатын комбинациялық құрылғы.
Адрестік (А0, А1, …. АК-1) кірістердің комбинациясына байланысты таңдалынған
ақпараттық кірістің мәні құрылғының шығысына беріледі. Аталған кірістермен қатар
мультиплексорда рұқсат беру (E - enable) кіріс сигналы болуы мүмкін. Бұл сигнал
активтелген жағдайда, ол мультиплексордің жұмыс атқаруын қамтамасыз етеді. Біздің
қарастырып отырған суретте Е сигналы инверсиямен берілген. Сондықтан, бұл сигналдың
активтелген жағдайы логикалық «0» болып есептеледі (Е = «0»). Егер бұл сигналдың мәні
логикалық «1» болса (Е = «1») мультиплексордың жұмыс атқаруына тыйым салынады
(Сурет 5.1).
Мультиплексердің ақпараттық кірістерінің саны 2, 4, 8 немесе 16 болуы мүмкін. Біз
қарастырып отырған құрылғымыз 4×1 мультиплексер деп аталады. Оның 4 ақпараттық
(Х0, Х1, Х2, Х3), 2 адрестік (А0, А1) және инверстелген рұқсат беру (Е) кірістері мен 1
шығысы (Y) бар. Бұл мультиплексер КP555КП2 (аналогы SN74LS153) микросұлбасының
жартысы болып табылады.
Сурет 5.1 – Мультиплексердің функционалды сұлбасы
Мультиплексердің жұмыс кестесін құрастырайық. Жоғарыда айтылғандай,
мультиплексердің жұмысы адрестік кірістердің комбинацияларына байланысты болады.
Сондықтан, адрестік сигналдардың А0 – А1 комбинацияларын анықтайық. А0 – А1
сигналдары екілік кодта 4 комбинация құрайды (Кесте 5.1).
Кесте 5.1. Адрестік сигналдардың комбинациялары
Мультиплексердің кірісіне ақпараттық сигналдар логикалық «0» немесе логикалық
«1» ретінде келеді. Сондықтан, ақпараттық кірістердің барлық комбинациясын ескерсек,
бізде 8 комбинация болуы тиіс. Бұдан басқа, рұқсат беру E кіріс сигналын ескеруге
тиіспіз. Бұл сигнал 8 рет логикалық «0» түрінде және бір рет логикалық «1» ретінде
қарастырылуы тиісті. Соңғы жағдайда бұл сигнал мультиплексердің жұмысына тыйым
салады (9 – шы комбинация) (Кесте 5.2).
Кесте 5.2. Мультиплексердің толық жұмыс кестесі
Бұл жерде (*) – бейтарап жағдай. Сигналдың немесе логикалық «0» немесе
логикалық «1» болуы мүмкін. Бірақ бұл сигналдардың мәндері құрылғылардың не кірісіне
не шығысына ешқандай әсер етпейді.
Мультиплексердің шығыс функциясының теңдеуін алу үшін қандай – да бір
адрестік комбинацияны қарастырайық (Кесте 5.3).
Кесте 5.3. Х0 кірісінің жұмыс кестесі
А1 – А0 = «00» болғанда, Х0 ақпараттық кіріс пен рұқсат беруші Е кірістерінің
конъюнкциясына тең болады:
Қалған Х1 – Х3 кірістерінің функциялары дәл осылай алынады. Рұқсат беруші Е
сигналын жақшадан шығарып, мультиплексердің шығыс функциясының теңдеуін аламыз:
Мультиплексердің құрамын анықтаймыз (Сурет 5.2):
Сурет 5.2 – Мультиплексердің құрамы
Мультиплексердің принципиалдық сұлбасын алу үшін төрт логикалық ЖӘНЕ
элементтері мен бір логикалық ЕМЕС элементі қажет болады. Сонымен қатар сұлба құру
үшін А1, А0 және Е сигналдары үшін үш инвертор қажет болады. Бұл инверторлар осы
үш сигналдың тура және терістелген мәндерін енгізу үшін қажет (Сурет 5.3).
Сурет 5.3 – Мультиплексордың принципиалды сұлбасы
Мультиплексордың PROTEUS – тегі сұлбасы және листингі
АРДУИНО платформасында жинақтауыш тақташада жұмыс атқару үшін алдымен
аталған құрылғының PROTEUS – тегі прототипін салып, бағдарлама жазамыз (Сурет 5.4).
Сурет 5.4 – Мультиплексердің PROTEUS – тегі прототипі
№ 6 зертханалық жұмыс. Цифрлық тізбекті (реттілік) элементтерді жобалау
6 Триггерлер. RS-триггер
Асинхронды RS-триггер триггерлердің арасындағы базалық, ең қарапайымы болып
табылады. Асинхронды RS-триггердің екі кірісі болады:
 S (set, орнатқыш) –триггерді жоғарғы жағдайға тұрғызатын кіріс (Q = 1);
 R (reset, түсіру) –триггерді төменгі жағдайға тұрғызатын кіріс (Q = 0).
S кірістегі активті сигнал пайда болған мезгілінде триггерді жоғарғы жағдайға
тұруға міндеттейді (Q = 1), ал R кірістегі активті сигнал пайда болған мезгілінде триггерді
төменгі жағдайға тұруға міндеттейді (Q = 0).
Келесі суретте ЖӘНЕ - ЕМЕС элементтерінен құрастырылған RS - триггердің
шартты графикалық белгіленуі (ШГБ) көрсетілген. ШГБ – ның кірістеріндегі инверсия R
және S кірістерінің активті деңгейлерінің төмен (логикалық нөл) екенін көрсетеді (Сурет
6.1).
Cурет 6.1 – ЖӘНЕ - ЕМЕС элементтерінен құрастырылған RS - триггердің ШГБ
Триггердің жұмысын қарастырайық. Тура шығыс Q, D1 элементінің тура шығысы
болып табылады, ал инверсті шығыс nQ, D2 элементінің шығысы болады:
а) Триггерді жоғарғы жағдайға тұрғызу (Q = 1, бірді орнату). Егер D1 элементінің жоғарғы
кірісіне логикалық «0» беретін болсақ (S = 0, шығысына логикалық «1» орнатады), D1
элементінің төменгі кірісінің жағдайына қарамастан (0 немесе 1), t кідіріс - уақыт кедергісі
өткеннен кейін, D1 элементінің шығысында логикалық «1» орнатылады. D1 элементінің
шығысында орнатылған логикалық «1» D2 элементінің жоғарғы кірісіне беріледі. Бұл
жерде төменгі кірісінің мәні логикалық «1» болғандықтан (R = 1), t кідіріс - уақыт
кедергісі өткеннен кейін, D2 элементінің шығысында логикалық «0» орнатылады.
Сонымен, 2t кідіріс уақыт өткеннен кейін триггер жоғарғы жағдайға өтеді(Q = 1, nQ = 0 ).
Cурет 6.2 – ЖӘНЕ - ЕМЕС элементтерінен құрастырылған RS - триггердің
принципиалды сұлбасы
ә) Триггерді төменгі жағдайға тұрғызу (Q = 0, нөлге түсіру). Егер D2 элементінің төменгі
кірісіне логикалық «0» беретін болсақ (R = 0, шығысына логикалық «0» орнатады), D2
элементінің жоғарғы кірісінің жағдайына қарамастан (0 немесе 1), t кідіріс - уақыт
кедергісі өткеннен кейін, D2 элементінің шығысында логикалық «1» орнатылады (nQ = 1).
D2 элементінің шығысында орнатылған логикалық «1» D1 элементінің төменгі кірісіне
беріледі. Бұл жерде жоғарғы кірісінің мәні логикалық «1» болғандықтан (S = 1), t кідіріс уақыт кедергісі өткеннен кейін, D1 элементінің шығысында логикалық «0» орнатылады.
Сонымен, 2t кідіріс уақыт өткеннен кейін триггер төменгі жағдайға өтеді (Q = 0, nQ = 1 ).
S = 0 және R = 0 триггер үшін тиым салынған комбинация болып саналады. RS –
триггердің уақыт кедергісін ескере отырып сызылған уақыттық диаграммасы келксі
суретте көрсетілген (Сурет 6.3).
Cурет 6.3 – ЖӘНЕ - ЕМЕС элементтерінен құрастырылған RS - триггердің уақыттық
диаграммасы
Келесі кестеде RS – триггердің жұмыс атқару режимдері көрсетілген.
Кесте 6.1 - RS - триггердің жұмыс атқару режимдері
RS – триггердің сұлбасын НЕМЕСЕ - ЕМЕС элементтері арқылы да құрастыруға
болады. Осы триггердің жұмысын қарастырайық:
а) Триггерді жоғарғы жағдайға тұрғызу (Q = 1). Ол үшін орнатқыш тура мәнде (S = 1), ал
түсіру сигналы теріс (R = 0) мәнде болады;
б) Триггерді төменгі жағдайға тұрғызу (Q = 0). Ол үшін түсіру сигналы тура мәнге (R = 1)
ал орнатқыш (S = 0) теріс мәнде болады.
Қалған екі жағдайда (S = R = 0) және (S = R = 1) триггер тиым салынған
комбинация мен сақтау режимінде тұр деп саналады (Сурет 6.3).
Cурет 6.3 – НЕМЕСЕ - ЕМЕС элементтерінен құрастырылған RS - триггер
RS триггердің PROTEUS – тегі сұлбасы және листингі
PROTEUS – те симуляция жасау үшін RS - триггердің прототипінің сұлбасын
жинастырайық (Сурет 6.4).
Сурет 6.4 – PROTEUS – тегі RS - триггердің прототипі
RS - триггердің листингі:
// RS – триггердің кірістерін тағайындау
int ledPin1 = 13;
int ledPin2 = 11;
void setup()
{
// Пиндерді шығыс сигналдары етіп тағайындаймыз
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
void loop()
{
// Кірістерге мәндер береміз
digitalWrite(ledPin1,HIGH);
digitalWrite(ledPin2,LOW);
delay (3000);
// Жарық диодтарының жарықтануына 3 секунд уақыт тағайындаймыз
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay (3000);
}
№ 7 зертханалық жұмыс. Сумматорларды (Қосылғыш) жобалау
7 Жартылай сумматор
Жартылай сумматорлар екі санды қосу (суммасын есептеу) қызметін атқарады,
және егер жоғарғы разрядқа ауысу пайда болған жағдайда оны ескеріп отыруы қажет. Екі
санның қосындысы модуль арқылы жинақтау (XOR) операциясы арқылы жүзеге асады:
Мұндағы А - бірінші операнд, В - екінші операнд, S - екі санның қосындысы
(суммасы). Ал nA және nB осы екі операндтардың инверсиялары (кері мәндері). А*В екі санды бір - біріне көбейту арқылы, қосу операциясы кезінде пайда болатын жоғарғы
разрядқа ауысу (орыс. перенос):
Сурет 7.1 – Жартылай сумматордың функционалды сұлбасы
Жартылай сумматордың жұмыс логикасы 7.1- ші кестеде көретілген. Екі операнды
да «1» - ге тең болғанда, сандардың қосындысы (суммасы) «0» - ге тең, 1+1= 10 және «1»
жоғарғы разрядқа ауысады.
Жартылай сумматордың жоғарғы разрядқа ауысуын ескере отырып, жұмыс жасау
логикасын 2 кестеде көретеміз. Санның суммасы дизъюнтор ретінде жұмыс жасайды. Екі
операнды да «1» - ге тең болғанда, бірліктің мәні ауытқу разрядына беріледі (С=1). Қосу
операциясын орындаған кезде, 10 - дық санау жүйесінде дұрыс мән алу үшін, ауытқу (С)
мен сумманың разрядтарының мәндері сәйкесінше «2» және «1» мәндеріне тең болуы
керек.
№
A
0
0
1
1
1
2
3
4
B
0
1
0
1
№
A
B
C
1
2
3
4
0
0
1
1
0
1
0
1
0
0
0
1
Кесте 7.1. Ауытқуды есептелмеген қосу амалы
A*nB
nA*B
S
0
0
0
0
0
1
1
0
1
0
0
0
Кесте 7.2. Ауытқуды есептеген қосу амалы
C
S
10 – дық санау жүйесінде
санның
Санның cалмағы
Санның
=
мәні: S + C
2
cалмағы = 1
0
0
0
0
1
1
0
1
1
1
0
2
Жартылай сумматордың PROTEUS – тегі сұлбасы және листингі
PROTEUS – те симуляция жасау үшін жартылай сумматордың сұлбасын
жинастырайық (Сурет 7.2).
Жартылай сумматордың бағдарламаcының листингі келесідей болады:
// PROTEUS - тегі Sum_Proteus программасы
// Кіріс сигналдарды тағайындау
int ledPin1=13;
int ledPin2=12;
void setup()
{
// ledPin – дерді шығыс сигналы етіп тағайындаймыз
pinMode(ledPin1,OUTPUT);
pinMode(ledPin2,OUTPUT);
}
void loop()
{
// Кірістерге мәндер беру
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2,LOW);
delay(3000);
//3 секундтық кідіріс
digitalWrite(ledPin1,LOW);
digitalWrite(ledPin2,HIGH);
delay(3000);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2,LOW);
delay(3000);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
delay(3000);
}
Сурет 7.2 – Жартылай сумматордың PROTEUS – тегі прототипі
№ 8 зертханалық жұмыс. Берілген цифрлік сұлбаларды жобалау
Тізбектес жүктелетін регистрлер
Мысал ретінде тізбектес жүктелетін регистрді қарастырайық.
Триггерлер тізбектесіп қосылған сұлбаларды тізбектес регистрлер деп атаймыз.
Тізбектес регистрлер (ығыстыру регистрі) тізбектелген кодты параллель кодқа
және керісінше аударымға ауыстыру үшін қолданылады. Тізбектелген кодты қолдануға,
өте көп аумақты екілік кодтарды бір ғана линиямен тарату себеп болды (сым қолданатын
телефон линиялары). Параллель кодтарды тарату үшін көп линиялар қажет болады. Егер
екілік кодтарды бір ғана линиямен тарататын болсақ, байланыс линиялары мен
жинақтауыш тақташалардың (ИС – дың корпустарының) өлшемдерін азайтуға болады.
Сурет 8.1 – де екі сатылы толық D - триггерлердің негізінде жиналған және
тізбектес кодты паралель кодқа айналдыратын тізбектес регистрдің принципиальды
сұлбасы және ШГБ - сі көрсетілген. Бұл регистрде бірінші триггердің шығысы екінші
триггердің кірісімен байланысқан, ал екінші триггердің шығысы үшінші триггердің
кірісімен байланысқан т. с. с.
Тізбектес регистр сұлбасындағы жеке триггерлардың кірістерінің синхрондалуы,
паралель регистр сұлбасындағыдай болып бірігеді.Бұл тізбектес регистр құрамына кіретін
барлық триггерлардың ішкі жағдайының бір уақытта ауысуын қамтамасыз етеді.
Тізбектес кодтың паралель кодқа айналуы келесі амалдармен іске асырылады.
Екілік ақпараттың әрбір екілік биті тізбектеліп ең алдымен D0 кірісіне келеді. Әрбір бит С
синхрондау кірісіне түсетін тактілі импульспен регистрге жүктеледі. Бірінші тактілік
импульс түскеннен кейін, SI кірісінің логикалық деңгейі D0 кірісіне жүктеліп, осы бірінші
триггерде сақталады және оның шығысына беріледі. Бұл шығыс екінші триггердің
кірісімен байланысқан, сондықтан, келесі екінші тактілік импульс түскеннен кейін SI – дің
мәні екінші D1 триггердің кірісінде болады және оның шығысына беріледі (Бірінші D0
триггерге SI кірісінің келесі мәні жүктеледі).
Сурет 8.1 – Тізбектес регистрдің сұлбасы мен ШГБ - сі
Үшінші тактілік импульс түскеннен кейін, D1 триггерде сақталған бит оның
шығысына түседі және ол үшінші триггердің кірісімен байланысқандықтан, келесі
импульспен бұл потенциал үшінші D2 триггерге жіберіледі. Бұл уақытта D0 кірісіне SI –
дің үшінші биті, ал D1 кірісіне SI – дің екінші биті жүктеледі.
Төртінші тактілік импульс түскеннен кейін, D2 триггерде сақталған бит оның
шығысына түседі және ол төртінші триггердің кірісімен байланысқандықтан, келесі
импульспен бұл потенциал төртінші D3 триггерге жіберіледі. Бұл уақытта D0 кірісіне SI –
дің төртінші биті, ал D1 кірісіне SI – дің үшінші биті, ал D2 кірісіне SI – дің екінші биті
жүктеледі.
Тізбектес регистрдің жұмыс атқару режимін қарастырайық. Келесі суреттерле
тізбектес регистрдің жұмыс атқару режиміндегі уақыттық диаграммасымен жұмыс атқару
картасы көрсетілген (Суреттер.8.2 және 8.3).
Сурет 8.2 – де көрсетілгендей регистрдің кірісіне жүктелген сан, регистрдің
шығысына ығыспалы түрде шығады. Мысалы, алғашында «1» сигналын SI кірісіне
беретін болсақ, синхроимпульс (С1) келген сайын, SI кірісіндегі «1» келесі тәртіппен
ығысу жасайды (0001 – 0011 – 0111 - 1111). Регистрде тізбектес режим таңдалған болуы
тиіс (V1 = 1 немесе ̅̅̅̅
) (Сурет 8.3).
Сурет 8.2 – Тізбектес регистрдің берілгендерінің ығысуы
Сурет 8.3 – Тізбектес регистрдің жұмыс атқару картасы
Регистрдің PROTEUS – тегі сұлбасы мен листингтері
Сурет 8.1 пен кестелерді негізге алып регистрдің PROTEUS – тегі прототипін
құрастырайық (Сурет 8.4).
Сурет 8.4 – Регистрдің PROTEUS – тегі прототипі
Бұл суретке түсініктеме берейік:
1. Кірістегі барлық сигналдарға ажыратқыш (SW) арқылы логикалық «0» немесе «1»
беруге болады;
2. Регистрдің жұмыс режимдерін таңдау кірісіне (nPE немесе MODE) ажыратқыш арқылы
мән беріп, параллель немесе тізбектес режимде жұмыс атқаратын боламыз;
3. Прототипте синхросигналдарды (С1 және С2) біріктірдік. Бұл тактылық импульстерді
ажыратқыш арқылы симуляциялауға мүмкіндік береді.
Тізбектес регистрдің листингі келесідей болады:
// Тізбектес регистрдің кірістерін тағайындау
byte S1 = 8;
byte MODE = 3;
byte SYNC = 2;
int waitFor = 500;
void setup()
// Регистрдің кіріс сигналдарын шығыс пиндері етіп тағайындау
{
pinMode(S1,OUTPUT);
pinMode(MODE,OUTPUT);
}
void syncStep()
//Синхронизация
{
digitalWrite(SYNC,HIGH);
delay(waitFor);
digitalWrite(SYNC,LOW);
delay(waitFor);
}
void loop()
// Регистрдің кірістеріне мәндер беру
{
digitalWrite(MODE,HIGH);
digitalWrite(S1,HIGH);
syncStep();
digitalWrite(S1,LOW);
syncStep();
}
Параллель регистрдің листингі келесідей болады:
// Параллель регистрдің кірістерін тағайындау
byte D0 = 7;
byte D1 = 6;
byte D2 = 5;
byte D3 = 4;
byte MODE = 3;
byte SYNC = 2;
int waitFor = 500;
void setup()
// Регистрдің сигналдарын шығыс пиндері етіп тағайындау
{
pinMode(D0,OUTPUT);
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
pinMode(D3,OUTPUT);
pinMode(MODE,OUTPUT);
}
void loop()
// Параллель регистрдің кірістеріне мәндер беру
{
digitalWrite(MODE,LOW);
digitalWrite(D0,LOW);
digitalWrite(D1,LOW);
digitalWrite(D2,LOW);
digitalWrite(D3,LOW);
for(int i = 0; i<4; i++) syncStep();
}
void syncStep()
//Синхронизация
{
digitalWrite(SYNC,HIGH);
delay(waitFor);
digitalWrite(SYNC,LOW);
delay(waitFor);
}
№ 9 зертханалық жұмыс. Карно карталарымен жұмыс атқару
Карно карталары
Бұл Буль функцияларын минимизациялайтын графикалық әдіс. Ол логикалық
амалдармен жұмыс істеуді жеңілдетеді. Бұл әдіс екі элементті жартылай парлап қосу мен
бір элементтің екіншісін жұту операциялары болып табылады. Карно карталары
функцияның қайта құрастырылған ақиқат кестесі деп қарастыруға болады.
Карно карталарын 1952 жылы Эдвард В. Вейч ойлап тапты. Ал 1953 жылы «Bell
Labs» компаниясының қызметкері Морис Карно оны сандық электронды сұлбаларды
оңтайлауға қолдануды ұсынды.
Карно карталарында булдық айнымалылар ақиқат кестелерінен беріліп, Грей
кодтарының көмегімен құрастырылады. Грей коды бойынша қатар орналасқан әр келесі
сандық код алдыңғы сандық кодтан бір разрядпен ғана айырмасы болады. Ақиқат
кестесінің әрбір қатарына Карно картасының бір клеткасы сәйкес келеді.
 2, 3 және 4 айнымалылар үшін логикалық функциялар Карно карталарында – 2 –
өлшемді болады. Олар жазықтықта орналасады.
 5 және 6 айнымалылар үшін логикалық функциялар Карно карталарында – 3 –
өлшемді болады. Олар кеңістікте орналасады.
 Бұл әдіс тек 7 – ден аспайтын айнымалылар үшін арналған (Сурет 9.1 ).
Сурет 9.1 – 2 және 3 айнымалыларға арналған Карно картасы
Карно карталарының қасиеттері
1. Логикалық функцияның әрбір аргумент - векторына Карно картасының бір клеткасы
сәйкес келеді.
2. Карно картасының әрбір клеткасына көрші клеткалардың саны айнымалылардың
санына тең болады.
3. Карно картасының кез – келген клеткасындағы аргумент - вектор көрші клеткадағы
аргумент - вектормен бір – бірінен тек бір координата бойынша ғана айырмасы болады.
Карно картасымен жұмыс атқару үшін «контур» түсінігін енгіземіз. Контур –
бірнеше қатар тұрған клеткалардың жиынтығын айтамыз. Жазықтықтағы Карно
карталары үшін контурлар тікбұрыштардан құрылады. Бұл тікбұрыштардың көлемі
келесідей болуы тиіс: 2m x 2n, m, n = 0, 1, 2 …
Сурет 9.2 – Контурлардың түрлері
Ілгерілетілген конъюнктивтік нормальді форма (ІКНФ) алу үшін 0 – ге тең
элементтері бар контурлар алынады. Ілгерілетілген дизъюнкцтивтік нормальді форма
(ІДНФ) алу үшін 1 – ге тең элементтері бар контурлар алынады.
Контурдың тағы бір қасиеті – картаның шекаралаларының «кілегейлілігі».
Шекараның оң жағындағы элементтер, оның сол жақтағы элементтерінің көршісі болып
табылады. Сол секілді, үстіңгі элементтер, астыңғы элементтерге көрші болады. Мысалы
9.3 – ші суреттегі жоғарғы қатардағы 00 және 10 элементтері бір – бірімен «кілегейленіп»,
бір ячейка құрады.
Сурет 9.3 – Контурларды алу
1.
2.
3.
Контурларларды таңдайық.
Бірінші қатарда – 0 және 2 индекстері бір контур екі ячейкалы құрады;
Үшінші тізбек (3, 7, 15, 11 индекстер) төрт ячейкалы контур құрады;
Екінші және үшінші қатарда (5, 7, 13, 15индекстер) төрт ячейкалы контур құрады.
1.5.3 Карно карталарын құру
Мысал қарастырайық. Ақиқат кестесі берілсін (Сурет 9.4 а). Берілген функциялар
үшін жеке үш кесте құрамыз (Сурет 9.4 ә-в).
Сурет 9.4 – Берілген ақиқат кестесі (а) және Y1, Y2, Y3
кестелері
(ә, б, в) функцияларының
Мысалды шешуді жалғастырайық. Элементтері 1 – ге тең контурлар алып,
Ілгерілетілген дизъюнкциялық нормальді форма (ІДНФ) құрамыз. y1 функциясы үшін
Карно картасын толтырайық. Алдымен бірінші жолақты қарастырайық (Сурет 9.5).
Сурет 9.5 – Y1 функциясы үшін Карно картасының бірінші жолағын толтыру
X1X2X3X4 айнымалылардан тұратын кестенің әрбір жолағын бір деңгейлі массив
түрінде қарастырамыз. Ал 4 жолақтан тұратын массивті – матрица ретінде алуға болады.
Бұл жерде X1X2X3X4 айнымалылардың мәні у – тің мәніне тең.
Сурет 9.8 – де көрсетілгендей X1X2 және X3X4 парларының қиылысында у – тің
мәндерін осы төрт жолақ үшін жазамыз. Бұл жерде X1X2 Карно картасының горизонталь
өс бойынша координатасы, ал X3X4 Карно картасының вертикаль өсі бойынша
координатасы:

Бірінші жолақ үшін: X1X2X3X4= 0000, ал Y1 функциясының мәні (Y1= 0).
Сондықтан, Карно картасының ең солғы клеткасына “0” жазылады (X1X2= 00 және
X3X4= 00 координаттарының қиылысы).

Екінші жолақ үшін: X1X2X3X4= 0001, ал Y1 функциясының мәні (Y1= 0). Карно
картасының екінші клеткасына “0” жазылады
(X1X2= 00 және X3X4= 01
координаттарының қиылысы).

Үшінші жолақ үшін: X1X2X3X4= 0010, ал Y1 функциясының мәні (Y1= 0). Карно
картасының үшінші клеткасына “0” жазылады
(X1X2= 00 және X3X4= 10
координаттарының қиылысы).

Төртінші жолақ үшін: X1X2X3X4= 0011, ал Y1 функциясының мәні бірге тең (Y1= 1).
Карно картасының төртінші клеткасына “1” жазылады (X1X2= 00 және X3X4=11
координаттарының қиылысы).
9.6 суретте көрсетілгендей, қалған жолақтарды толтырамыз.
Сурет 9.6 – Y1 функциясы үшін Карно картасын толтыру
Y1 функциясына арналған теңдеу құрастыру үшін 1.5.6 суретте алынған
контурлармен жұмыс атқарамыз. 1.5.7 суретке сәйкес бізде төрт контур алынды.
Сурет 9.7 – Y1 функциясының контурларын таңдау
Бірінші контур төрт клеткадан тұрады - 3,7,5,11. Барлық 4 клеткада X3 және X4
мәндері өзгермейді. (Олар үнемі «11» ге тең).
Сондықтан X3X4 мәндерін ғана
қалдырамыз (Сурет 9.8):
Y1 = X3X4
Сурет 9.8 – Бірінші контур
Екінші контур да төрт клеткадан тұрады - 15,14,11,10. Клеткалардан ауысқан кезде
X1=1 және X3=1 мәндері өзгермейді. Ал X2 мен X 4 – тің мәндері 1 - ден 0 - ге өзгереді.
Екінші контурдан Y1 функциясы үшін X1X3 айнымалылардың мәндерін қалдырамыз
(Сурет 9.9):
Y1 = X1X3
Сурет 9.9 – Екінші контур
Үшінші контур екі клеткадан тұрады -13, 15. X1X2=11 көбейтіндісі мен X4=1
мәндері өзгермейді. Мұнда тек X3 мәні (0 - ден 1 - ге) өзгереді. Үшінші контурдан Y1
фуекциясы үшін X1X2X 4 айнымалыларының мәнін қалдырамыз (Сурет 9.10, а):
Y1 = X1X2X 4
Төртінші контур 2 клеткадан тұрады - 8 және 10. Төртінші жолдағы X1=1 және
̅̅̅=0 мәндері және бірінші, төртінші қатардағы ̅̅̅=0 өзгермейді. Бұл контур үшін
X1̅̅̅̅̅̅мәндерін қалдырамыз (Сурет 9.10, ә):
Y1 = X1̅̅̅̅̅̅
Сурет 1.5.10 – Үшінші (а) және төртінші (ә) контурлар
Біз ІДНФ қолданғандықтан, Y1 функциясы үшін алынған төрт функцияны бір –
бірімен қосамыз (дизъюнкция). Нәтижесінде біз Y1 функциясы үшін келесі мәндерді
аламыз:
Y1 = X3X4+X1X3+X1X2X 4+X1̅̅̅̅̅̅
Сурет 9.11 сурет – Y2 функциясы үшін Карно картасын толтыру
Y2 функциясы үшін ІДНФ қолданып Карно картасын толтырамыз (9.11 сурет).
Бірінші контур екі клеткадан тұрады – 2 және 6. Бұл контурда ̅̅̅ мен X3 және ̅̅̅ - тің
мәндері өзгермейді:
Y2 = ̅̅̅X3̅̅̅
Екінші контур екі клеткадан тұрады – 8 және 12. Бұл контурда ̅̅̅̅̅̅ және X1 – дің
мәндері өзгермейді:
Y2 = X1̅̅̅̅̅̅
Үшінші контур екі клеткадан тұрады – 8 и 9. Бұл контурда X2X3 пен X1– дің
мәндері өзгермейді:
Y2 = X1̅̅̅̅̅̅
Төртінші контур бір клеткадан тұрады – 5. Бұл контурда барлық төрт айнымалы
мәнін өзгертпейді:
Y2 = ̅̅̅X2̅̅̅X4
Бесінші контур да бір клеткадан тұрады – 15. Бұл контурда барлық төрт айнымалы
мәнін өзгертпейді:
Y2 = X1X2 X3X 4
Сонымен, Y2 функциясының теңдеуі келесідей болады:
Y2 = ̅̅̅X3̅̅̅+X1̅̅̅̅̅̅+X1̅̅̅̅̅̅+̅̅̅X2̅̅̅X4 +X1X2 X3X 4
Соңында Y3 функциясы үшін теңдеулер аламыз (9.12 сурет).
Бірінші контур төрт клеткадан тұрады – 12, 13, 14 және 15. Бұл контурда X1 мен
X2 - нің мәндері өзгермейді:
Y3 = X1X2
Екінші контур да төрт клеткадан тұрады – 1, 3 және 9, 11. Бұл контурда ̅̅̅X1 мен
X4 - тің мәндері өзгермейді:
Y3 функциясының теңдеуі:
Y3 = ̅̅̅X4
Y3 = X1X2+̅̅̅X4
Берілген ақиқат кестесі үшін Карно караталарын пайдала отырып үш теңдеу алдық:
Y1 = X3X4+X1X3+X1X2X 4+X1̅̅̅̅̅̅
Y2 = ̅̅̅X3̅̅̅+X1̅̅̅̅̅̅+X1̅̅̅̅̅̅+̅̅̅X2̅̅̅X4 +X1X2 X3X 4
Y3 = X1X2+̅̅̅X4
Сурет 9.12 – Y3 функциясы үшін Карно картасын толтыру
№ 10 зертханалық жұмыс. Күрделі құрылғыларды жобалау
Екілік жинақтауыш есептеуіш - сұлбасы, жұмыс кестесі
Есептеуіш (ағыл. Сounter., орыс. Счетчик) деп кірістегі импульстердің санын
есептеуге арналған құрылғыны айтады. Тактілік кіріске С (Clock) келіп түскен әрбір
импульс есептеуіштің күйін бір бірлікке өзгереді (қосады немесе азайтады).
Есептеуіштерді бірнеше триггерлерді тізбектеп қосу арқылы құрастыруға болады және
бұл есептеуіштің күйі оның триггерлерінің күйімен анықталады. Жинақтайтын
есептеуіштерде әрбір кіріс импульсі оның шықғысындағы санды бір бірлікке ұлғайтады,
шегергіш (азайтатын) есептеуіштерде әрбір кіріс импульсі оның шығысындағы санды бір
бірлікке азайтады.
Есептеуіштің ең қарапайым түрі – екілік есептеуішті Т - триггерінің негізінде
құруға болады. Т - триггерін екілік есептеуішке айналдыру үшін суретте көрсетілгендей
кері байланысы бар әмбебап D - триггерін пайдалануға болады (Сурет 10.1).
Сурет 10.1 – Әмбебап D – триггері негізінде есептеуіш Т – триггердің сұлбасы
Кірісіне импульстер келіп түскен кезде Т - триггері өз күйін қарсы мәнге
өзгертетіндіктен, оны екіге дейін есептейтін есептеуіш ретінде қарастыруға болады.
Әдетте цифрлік құрылғыларда импульстердің көптеп есептеу керек болады. Бұл жағдайда
бірінші есептеуіш триггерінің шығыс сигналын келесі триггердің кіріс сигналы ретінде
пайдалануға болады, яғни ең қарапайым екілік есептеуіштерді бірінен соң бірін рет ретімен жалғау керек. Осылайша, М максималды санға дейін есептейтін кез - келген
есептеуішті құруға болады, ол санды мынадай формуламен анықтауға болады:
мұндағы N – есептеуішке кіретін триггерлер саны.
Он алтыдан аз болатын импульстердің кез келген санын есептеуге мүмкіндік
беретін есептеуіштің сұлбасын қарастырайық (Сурет 10.2).
Кіріске келіп түскен
импульстердің санын есептеуіштің Q0…Q3 шығыстарына қосыла отырып білуге болады.
Бұл сигналдарды екілік сан ретінде қарастыруға болады және бұларды одан әрі екілік
арифметика ережелері бойынша өңдеуге болады.
Сурет 10.2 – Әмбебап D – триггерлер негізінде құрастырылған 4 – разрядты жинақтауыш
есептеуіш
Екілік есептеуіштің жұмысын сипаттап беру үшін 5.1.2 – ші суретте берілген
сигналдардың сұлбаның кірістері мен шығыстарындағы уақытша диаграммаларын
құрастырайық. Бұл уақыттық диаграмма келесі суретте көрсетілген.
16 - лық есептеу жүйесін қарастырайық. Бұл жүйеде разрядтың салмағы деген ұғым
бар. Разрядтардың орналасуы бойынша, оңнан солға қарай разрядтардың салмағы
ұлғаяды. Оң жақтағы ең бірінші разряд ең кіші салмаққа ие болады (Ақпараттық
жүйелерде санау 0 – ден басталғандықтан, 0 – ші разрядтан бастап санаймыз). Мысалы
нөлдік разрядтың салмағы – 1-ге тең, бірінші разрядтың салмағы – 2-ге тең, екінші
разрядтың салмағы – 4-ке тең және одан әрі геометриялық прогрессия бойынша (8, 16, 32,
64,…) салмақ беру қалыптасқан. Нақты микросұлбалардың кірістері мен шығыстары
жоғарыда көрсетілген белгілер бойынша ерекшеленеді. Біздің жағдай үшін есептеуіштің
шығыс разрядтары мынадай салмақтық санаттарға ие болады - Q0 =1, Q1 = 2, Q2 = 4, Q3
=8 (Сурет 10.3).
Есеп С (Clock) кірісіндегі синхроимпульс (сигнал бірден нөлге түскенде, яғни
импульстың артқы фронтымен) бойынша басталады.
Сурет 10.3 – Төртразрядты жинақтауыш есептеуіштің уақыттық диаграммасы
Бірінші синхроимпульс келген кезде бірінші триггердің шығысында Q0 =1, ал
қалған шығыстарда Q1, Q2, Q3 нөлдер болады (Q3 Q2 Q1 Q0 = 0001).
Кесте 10.1 – Жинақтауыш екілік есептеуіштің жұмыс кестесі
Жинақтауыш есептеуіштің жұмысшы картасы келесі суретте қарастырылған.
Есептеуіш дұрыс жұмыс атқару үшін, жұмыс басталарда, ең бірінші есептеуіштің шығыс
сигналдарын «0» - ге түсіру керек. Ол үшін R (reset) сигналын активтеп (R = 1), шығыс
сигналдарды нөлге түсіреміз (Сурет 10.4 - а). Алға санау синхроимпульсі (Up) келген
сайын, есептеуіш алға қарай санау жүргізеді (Сурет 10.4 – ә. б, в). Алдын – ала орнату
сигналы (Load) пассивті жағдайда тұруы тиіс (Сурет 10.4).
Сурет 10.4 – Төртразрядты жинақтауыш есептеуіштің жұмысшы картасы
Екінші синхроимпульс келген кезде екінші триггердің шығысында Q1 =1, бұл екі
санына сәйкес келеді.Сондықтан, қалған шығыстарда Q0, Q2, Q3 нөлдер болады (Q3 Q2
Q1 Q0 = 0010). Үшінші синхроимпульс келген кезде бірінші және екінші триггерлердің
шығыстарында Q0 =1 және Q1=1 болады, бұл үш есебіне сәйкес келеді (1 + 2 = 3).
Сондықтан, қалған екі шығыстарда Q2, Q3 нөлдер (Q3 Q2 Q1 Q0 = 0011). Төртінші
синхроимпульс келген кезде үшінші триггердің шығысында Q2 =1, бұл төрт есебіне
сәйкес келеді, ал қалған шығыстарда Q0, Q1, Q3 нөлдер болады (Q3 Q2 Q1 Q0 = 0100).
Берілген уақытша диаграмманы талдай келе есептеуішке арналған кесте аламыз
(Кесте 10.1).
Талданатын есептеуіштегі барлық триггерлердің бастапқы күйі нөл болсын дерлік.
Осы күйді уақыттық диаграммалардың бастапқы аймағынан көрінеді. Оны 10.1 – ші
кестедегі нөлдік жолға жазып аламыз. Есептеуіштің кірісіне синхроимпульс келіп түскен
кезде бірінші триггер өз күйін қарама - қарсы мәнге өзгертеді, яғни осы триггерге бір
жазылады. Оны 10.1 – ші кестедегі бірінші жолға жазып аламыз. Есептеуіштің кірісіне
келесі синхроимпульс келіп түскен кезде бірінші триггер өз күйін қарама - қарсы мәнге
өзгертеді (1 – ден 0 -ге), ал екінші триггер де өз күйін қарама - қарсы мәнге өзгертеді (0 –
ден 1 -ге), яғни осы триггерге бір жазылады. Оны 10.1 – ші кестедегі екінші жолға жазып
аламыз.
Уақытша диаграмманы талдай отырып, есептеуіштің берілген сұлбасының
шығыстарында 0 - ден 15 - ке дейін сандардың рет - ретімен шығуын бақылауға болады.
Бұл сандар екілік түрде жазылған. Есептеуіштің есептік кірмесіне кезекті импульс келіп
түскен кезде оның триггерінің мәні 1-ге ұлғаяды. Сондықтан, мұндай есептеуіштерге
жинақтауыш екілік есептеуіштер атауы берілген.
15 санына жеткен кезде есептеуіш кезекті синхроимпульс бойынша нөлденеді және
есеп қайта басталады.
Download