на головну | список тем | перегляд презинтацій | самотестування | історія створення

 

 

 

Тема 23. Трігери
23.1. Принцип роботи і різновиди трігерів

В основі будь-якого трігера (англійське - Trigger або Flip-Flop) лежить схема з двох логічних елементів, які охоплені позитивними зворотними зв'язками (тобто сигнали з виходів подаються на входи). В результаті подібного включення схема може знаходитися в одному з двох стійких станів, причому знаходитися скільки завгодно довго, поки на неї подана напруга живлення.

Малюнок 23.1. Схема комірки трігера.

Приклад такої схеми (так званоі комірки трігера) на двох двовходових елементах І-НІ представлений на малюнку 23.1. У схеми є два інверсні входи: -R - скидання (від англійського Reset), і -S - установка (від англійського Set), а також два виходи: прямий вихід Q і інверсний вихід -Q.
Для правильної роботи схеми негативні імпульси повинні поступати на її входи не одночасно. Прихід імпульсу на вхід -R переводить вихід -Q в стан одиниці, а оскільки сигнал -S при цьому одиничний, вихід Q стає нульовим. Цей же сигнал Q поступає по ланцюгу зворотного зв'язку на вхід нижнього елемента. Тому навіть після закінчення імпульсу на вході -R стан схеми не змінюється (на Q залишається нуль, на -Q залишається одиниця). Так само при приході імпульсу на вхід -S вихід переходить Q в одиницю, а вихід -Q - в нуль. Обидва ці стійкі стани комірки трігера можуть зберігатися скільки завгодно довго, поки не прийде черговий вхідний імпульс, тобто схема володіє пам'яттю.
Якщо обидва вхідні імпульси прийдуть строго одночасно, то у момент дії цих імпульсів на обох виходах будуть одиничні сигнали, а після закінчення вхідних імпульсів виходи випадковим чином переключаться в один з двох стійких станів. Так само випадковим чином буде вибрано один з двох стійких станів комірки трігера при включенні живлення. Тимчасова діаграма роботи комірки трігера показана на малюнку 23.1.
Таблиця істинності схеми приведена нижче (таблиця 23.1)..


В стандартні серії цифрових мікросхем входить декілька типів мікросхем трігерів, що розрізняються методами управління, а також вхідними і вихідними сигналами. На схемах трігери позначаються буквою Т. У вітчизняних серіях мікросхем трігери мають найменування ТВ, ТМ і ТР залежно від типу трігера. Найбільш поширено три типи трігерів (малюнок. 23.2):

? RS-трігер (позначається ТР) - найпростіший, але рідко використовується (а);
? JK-трігер (позначається ТВ) має найскладніше управління, також використовується досить рідко (б);
? D-триггер (позначається ТМ) - найпоширеніший тип трігера (в).


Малюнок 23.2. Трігери трьох основних типів

Прикладом RS-трігера є мікросхема ТР2, в одному корпусі якої знаходяться чотири RS-трігери. Два трігери мають по одному входу -R і -S, а два інші трігери - по одному входу -R і по два входи -S1 і -S2, з'єднані по функції І. Всі трігери мають тільки по одному прямому виходу. RS-трігер практично нічим не відрізняється по своїх функціях від комірки трігера, розглянутого раніше (див. Малюнок. 23.1). Негативний імпульс на вході -R перекидає вихід в нуль, а негативний імпульс на вході -S (або на будь-якому з входів -S1 і -S2) перекидає вихід в одиницю. Одночасні сигнали на входах -R і -S переводять вихід в одиницю, а після закінчення імпульсів трігер перемикається випадковим чином в один з своїх стійких станів. Таблиця істинності трігера ТР2 з двома входами установки -S1 -S2 представлена нижче (таблиця 23.2).


JK-трігер значно складніший по своїй структурі, ніж RS-трігер. Він відноситься до так званих тактованих трігерів, тобто він спрацьовує по фронту тактового сигналу. Прикладом може служити показана на малюнку. 23.2 мікросхема ТВ 9, має в одному корпусі два JK-трігери з входами скидання і установки -R і -S. Входи -R і -S працюють точно так, як і в RS-трігері, тобто негативний імпульс на вході -R встановлює прямий вихід в нуль, а інверсний - в одиницю, а негативний імпульс на вході -S встановлює прямий вихід в одиницю, а інверсний - в нуль.
Проте стан трігера може бути змінений не тільки цими сигналами, але і сигналами на двох інформаційних входах J і К і синхросигналом С. Перемикання трігера в цьому випадку відбувається по негативному фронту сигналу С (по переходу з одиниці в нуль) залежно від станів сигналів J і К. При одиниці на вході J і нулі на вході К по фронту сигналу С прямою вихід встановлюється в одиницю (зворотний - в нуль). При нулі на вході J і одиниці на вході К по фронту сигналу С прямий вихід встановлюється в нуль (зворотний - в одиницю). При одиничних рівнях на обох входах J і К по фронту сигналу С трігер міняє стан своїх виходів на протилежні (це називається рахунковим режимом).

Все це видно з таблиці істинності трігера ТВ9 (таблиця 23.3) і тимчасової діаграми його роботи (малюнок 23.3).


Малюнок 23.3. Тимчасова діаграма роботи JK-трігера ТВ9.

Нарешті, найпоширеніший D-триггер займає, можна сказати, проміжне положення між RS-трігером і JK-трігером. Крім загальних для всіх трігерів входів установки і скидання -S і -R він має один інформаційний вхід D (вхід даних) і один тактовий вхід С. Прикладом може служити показана на малюнку 23.2 мікросхема ТМ2, що містить в одному корпусі два D-тригера з прямими і інверсними виходами.


Малюнок 23.4. Тимчасова діаграма роботи D-тригера ТМ2.

Тактується трігер (тобто змінює свій стан) по позитивному фронту сигналу С (по його переходу з нуля в одиницю) залежно від стану входу даних D. Якщо на вході D одиничний сигнал, то по фронту сигналу С прямою вихід трігера встановлюється в одиницю (інверсний - в нуль). Якщо ж на вході D нульовий сигнал, то по фронту сигналу С прямою вихід трігера встановлюється в нуль (інверсний - в одиницю).
Таблиця істинності трігера ТМ2 представлена вище (таблиця 23.4), а тимчасова діаграма роботи показана на малюнку 23.4.
Зупинимося на роботі D-тригера трохи докладніше, оскільки він найбільш часто використовується. При цьому багато зауважень, приведених тут щодо D-тригера, будуть вірні і для інших типів трігерів.
Перш за все відзначимо, що всі приведені тимчасові діаграми відносяться до першого рівня уявлення, до рівня логічної моделі. Звичайно ж, в реальності всі трігери мають тимчасові затримки установки вихідних сигналів, а також пред'являють певні тимчасові вимоги до вхідних сигналів, при порушенні яких будь-який трігер працюватиме нестійко або ж не працюватиме взагалі. Це враховується на другому рівні уявлення (в моделі з тимчасовими затримками).
Наприклад, як вже наголошувалося, вхідні сигнали -R і -S не повинні приходити одночасно, інакше стан трігера буде невизначеним. Тривалість сигналів -R і -S також не повинна бути дуже малою, інакше трігер може на них не зреагувати. Сигнал -R повинен починатися з певною затримкою після закінчення сигналу -S і навпаки. В першому наближенні можна вважати, що мінімально допустимі тимчасові інтервали між вхідними сигналами повинні дорівнювати 1-2 затримкам логічного елемента відповідної серії.
Так само не повинна бути дуже малою тривалість тактового сигналу С (як позитивного імпульсу, так і негативного імпульсу), інакше трігер може перемикатися нестійко. Ця вимога універсальна для всіх мікросхем, що спрацьовують по фронту вхідного сигналу. Принципово важлива і величина тимчасового зсуву (затримки) між встановленням сигналу D і робочим (позитивним) фронтом сигналу С. Цей зсув також не повинен бути дуже малим. Не повинен бути надмірно малим і зсув між закінченням сигналів -R і -S і робочим фронтом сигналу С. Підвищені вимоги пред'являються також до тривалості фронту тактового сигналу С, яка не повинна бути дуже великою. Ця вимога також універсальна для всіх мікросхем, що спрацьовують по фронту вхідного сигналу.
Одним словом, чим складніше мікросхема, тим важливими для неї стають обмеження другого рівня уявлення, тим вище вимоги до розробника по обліку тимчасових затримок і тривалостей сигналів. Правда, вимоги ці не дуже різноманітні і не дуже жорсткі, тому, раз і назавжди засвоївши їх, можна проектувати будь-які схеми без грубих помилок. Найголовніше, що треба запам'ятати, полягає в наступному: цифрові схеми не люблять дуже коротких вхідних сигналів і дуже малих затримок між вхідними сигналами, функціонально зв'язаними між собою. Орієнтир тут дуже простий - величина затримки логічного елемента даної серії. Тому для більш швидких серій обмеження будуть менш жорсткими, а для більш повільних серій - більш жорсткими.
Декілька слів про величини затримок мікросхем трігерів.
Не дивлячись на свою достатньо складну внутрішню структуру мікросхеми трігерів є одними з найшвидших. Затримка спрацьовування трігера звичайно не перевищує 1,5-2 затримок логічного елемента. Причому затримки по входах -R і -S трохи менші ніж по тактовому входу С. В деяких серіях JK-трігери дещо швидші, ніж D-тригери, в інших - навпаки. Важливий параметр трігера - максимальна частота тактового сигналу С. Для її приблизної оцінки можна дотримуватися наступного простого правила: період тактового сигналу С не повинен бути менше величини затримки перемикання трігера по входу С.

 

 

23.2. Основні схеми включення трігерів

Кажучи про області вживання трігерів, ми розглядатимемо виключно D-тригери, оскільки в більшості випадків RS- і JK-трігери можуть бути замінені D-тригерами без погіршення яких би то не було параметрів схеми. Приклади такої заміни показані на маллюнку 23.5.
RS-трігер виходить з D-триггера, якщо в D-тригері не використовувати входи С і D, наприклад, з'єднати їх із загальним дротом (а).

Малюнок 23.5. Включення D-тригера для заміни RS-трігера (а) і JK-трігера в рахунковому режимі (б)

Складнішою є справа із заміною JK-трігера, в якому передбачено більше можливостей, ніж в D-тригері. Проте звичайні два інформаційні входи JK-трігера не так вже і потрібні. А що стосується рахункового режиму, в якому, мабуть, найбільш часто працюють JK-трігери, то він легко реалізується на D-тригері в результаті об'єднання інформаційного входу D з інверсним виходом (б). При цьому по кожному позитивному фронту сигналу С трігер мінятиме свій стан на протилежний: нуль на прямому виході буде змінюватися одиницею і навпаки. Тобто частота вхідного сигналу трігера буде менше частоти вхідного тактового сигналу С в два рази.
Відзначимо також, що для реалізації рахункового режиму частіше за все використовуються не трігери, а лічильники, які будуть розглянуті в наступному розділі.
Особливості трігерів визначають найширший діапазон схем їх включення для вирішення самих різних задач.
Наприклад, за допомогою трігера (будь-якого типу) дуже просто і ефективно розв'язується задача усунення впливу брязкоту контактів механічних перемикачів (малюнок 23.6). Правда в даному випадку необхідний тумблер (або кнопка) з трьома виводами, один з яких поперемінно підключається до двох іншим. При цьому перший же негативний імпульс на вході -R перекидає трігер в стан нуля, а перший же негативний імпульс на вході -S - в стан одиниці. Подальші ж імпульси на обох цих входах, викликані брязкотом контактів, вже ніяк не впливають на трігер. Нижнє (по малюнку) положення вимикача відповідає нулю на виході трігера, а верхнє - одиниці.
Основне вживання трігери знаходять в тих випадках, коли треба сформувати сигнал, тривалість якого відповідає тривалості якоїсь виконуваної операції, якогось тривалого процесу в схемі. Вихідний сигнал трігера при цьому може дозволяти цей самий процес, а може інформувати решту вузлів пристрою про те, що процес йде (або, як то кажуть, служити прапором процесу). Наприклад, в схемі на малюнку 23.7 на початку процесу (операції) по сигналу Старт трігер перекидається в одиницю, а в кінці процесу (операції) по сигналу Стоп трігер перекидається назад в нуль.

Малюнок 23.6. Придушення брязкоту контактів вимикача за допомогою трігера.

Малюнок 23.7. Використовування трігера як прапор процесу.

Для сигналів Старт і Стоп можна, звичайно, використовувати входи трігера -R і -S. Проте більш правильним і універсальним рішенням буде вибір пари входів С і -R або С і -S, що запобігає неоднозначності поведінки трігера при одночасному приході сигналів Старт і Стоп. Якщо використовуються входи С і -R, то на вхід D треба подати одиницю, а якщо застосовуються входи С і -S, то на вхід D треба подати нуль. Таке рішення зручне ще і тим, що як один з сигналів Старт і Стоп може виступати не рівень, а фронт. Саме цей фронт (в потрібній полярності) і треба подати в цьому випадку на тактовий вхід трігера С.
Друга найважливіша область вживання трігерів - це синхронізація сигналів.
Наприклад, трігер дозволяє найбільш просто позбутися паразитних коротких імпульсів на виходах комбінаційних схем, що виникають при майже одночасній зміні декількох вхідних сигналів (малюнок 23.8). Для синхронізації в даному випадку необхідно мати синхросигнал (синхроперехід), супроводжуючий вхідні інформаційні сигнали (вхідний код) і затриманий щодо моменту зміни цих сигналів на час t3, більше затримки комбінаційної схеми. При подачі цього синхроімпульса на вхід С трігера, а вихідного сигналу комбінаційної мікросхеми (Вых.1) на вхід D трігера на виході трігера одержуємо сигнал (Вых.2), повністю вільний від паразитних імпульсів.

Малюнок 23.8. Синхронізація за допомогою трігера.

Більш того, у разі, коли вхідний код комбінаційної схеми змінюється регулярно, періодично, фронт синхросигналу може навіть співпадати з моментом зміни вхідного коду (малюнок 23.9).

Малюнок 23.9. Синхронізація за допомогою трігера при періодичній зміні вхідного коду.

При цьому за рахунок кінцевої величини затримки комбінаційної схеми сигнал на вхід С трігера поступатиме раніше, ніж почне змінюватися сигнал на його вході D. Тому паразитні імпульси в трігер не запишуться. Правда, в даному випадку сигнал на виході трігера (Вых.2) буде затриманий на період проходження вхідних кодів Т (або, що те ж саме, на період синхросигналу) щодо вихідного сигналу комбінаційної схеми (Вых.1).
При проектуванні цифрових схем, що працюють по тактах єдиного тактового генератора, часто виникає необхідність синхронізувати з роботою схеми якийсь зовнішній сигнал. Тобто вимагається забезпечити, щоб цей сигнал (асинхронний по відношенню до всієї решти схеми) змінювався по тактах тактового генератора, як і вся решта сигналів схеми (став би синхронним всій решті схеми). В цьому теж може допомогти трігер.
Розглянемо найпростіший приклад. Хай необхідно за допомогою зовнішнього сигналу дозволяти і забороняти проходження сигналу безперервно працюючого тактового генератора. У разі звичайного RC-генератора ця задача іноді може бути вирішена досить просто шляхом запуску і зупинки генератора. Проте далеко не завжди допускається зупиняти роботу тактового генератора, від якого працює вся схема. У разі ж кварцового генератора його зупинка і запуск взагалі ніколи не використовуються, оскільки такий генератор починає працювати після дозволу із затримкою, рівної декільком періодам тактової частоти, причому кількість цих періодів не постійна. Тому вважатимемо, що тактовий генератор працює постійно, а по зовнішньому управляючому сигналу ми дозволятимемо або заборонятимемо проходження його вихідних імпульсів (малюнок 23.10).
В найпростішому випадку (а) для пропускання і заборони імпульсів тактового генератора Г використовується логічний елемент 2І. При цьому цілком можлива ситуація проходження на вихід схеми імпульсів неповної тривалості або навіть гранично коротких, які можуть вносити невизначеність в роботу решти схеми.
Вживання синхронізуючого трігера (б) забезпечує проходження на вихід проникного елемента 2І тільки імпульсів повної тривалості. Дозволяючий сигнал, проходячи через трігер, який тактується сигналом, що дозволяється, стає синхронним з тактовим сигналом і гарантує проходження на вихід обов'язково цілої кількості тактових імпульсів, цілої кількості періодів тактового генератора.

Малюнок 23.10. Синхронізація сигналу дозволу.

Трігери дозволяють також будувати лінії затримки цифрових сигналів, для чого декілька трігерів з'єднується в послідовний ланцюжок, причому всі вони тактуються єдиним тактовим сигналом С. Такое включення дозволяє, наприклад, одночасно обробляти комбінаційними схемами декілька послідовних в часі станів якогось одного сигналу.
Як приклад на малюнку 23.11 приведена схема, яка виділяє у вхідному сигналі трьохтактову послідовність 010. Ланцюжок з трьох трігерів Tl, T2 і ТЗ, тактованих єдиним синхросигналом, запам'ятовує три послідовних стани вхідного сигналу. Наприклад, якщо на виході трігера Т2 буде зафіксований стан вхідного сигналу в N-м такті, то на виході трігера Т1 буде стан вхідного сигналу в такті (N+1), а на виході трігера ТЗ - в такті (N-1). Через кінцеву величину затримки перемикання трігерів в кожний наступний трігер вхідний сигнал переписуватиметься ще до того, як він змінить своє значення унаслідок перемикання попереднього трігера.

Малюнок 23.11. Виділення 3-тактової послідовності тактів у вхідному сигналі.

Подаючи вихідні сигнали трігерів (прямі або інверсні залежно від потрібних рівнів) на елемент І з потрібним числом входів, можна зафіксувати будь-яку трьохтактову послідовність у вхідному сигналі. Для запобігання появи паразитних імпульсів у вихідному сигналі (вони можливі, оскільки вхідні сигнали елемента І змінюються майже одночасно) застосовується вихідний трігер Т, тактований тим же самим загальним синхросигналом. На виході трігера Т одержуємо одиничний сигнал, відповідний послідовності 010 у вхідному сигналі. Правда, цей вихідний сигнал буде затриманий щодо кінця послідовності, що виділяється, 010 на два такти.
Звичайно, вживання трігерів не обмежується розглянутими прикладами, всі області їх вживання важко навіть перерахувати. Ми ж розглянемо тут ще декілька прикладів використовування трігерів.

Малюнок 23.12. Формувач короткого імпульсу по фронту вхідного сигналу.

D-триггер дозволяє досить просто формувати вихідний короткий імпульс по фронту вхідного сигналу. Для цього навіть не потрібно ніяких часозадаючих RC-ланцюжків. Тривалість вихідного імпульсу визначається затримкою спрацьовування трігера. Формувач короткого імпульсу по позитивному фронту вхідного сигналу (малюнок 23.12) утворюється шляхом подачі вихідного сигналу трігера на вхід скидання.
По позитивному фронту на вході З трігер перекидається в одиницю, але вихідний сигнал трігера по ланцюгу зворотного зв'язку тут же скидає його назад в нуль. Перевагою даної схеми є те, що трігер має як прямий, так і інверсний виходи, тому ми одержуємо як позитивний короткий імпульс, так і негативний. В деяких випадках в ланцюг цього зворотного зв'язку треба включати додаткове інвертування для стійкої роботи схеми. Наприклад, трігери серії К155 не вимагають інвертування, а трігери серії КР1533 - вимагають.
Вживання трігерів спільно з іншими мікросхемами часто дозволяє уникнути появи паразитних коротких імпульсів, забезпечити надійну і упевнену роботу схеми. Наприклад, на малюнку 23.13 представлена схема, що розрізняє короткі і довгі імпульси, що приходять на її вхід. Така схема дозволяє застосовувати одну лінію зв'язку для передачі двох сигналів різного призначення, що дуже зручно при зв'язку пристроїв, що знаходяться на великій відстані.
На вхід схеми поступають короткі імпульси (тривалістю tK) і довгі імпульси (тривалістю tД). Звичайно, на передаючому кінці треба забезпечити, щоб ці імпульси формувалися по черзі і з не дуже малою затримкою один щодо одного. На виході схеми формуються два сигнали, один з яких відповідає приходу короткого вхідного імпульсу, а інший - приходу довгого вхідного імпульсу.

Малюнок 23.13. Схема розділення коротких і довгих вхідних імпульсів.

Для розрізнення вхідних імпульсів використовується одновібратор АГ1 з часом витримки tB, великим tK, але меншим ta. Вживання одновібратора в даному випадку виправдано, оскільки необхідна точність часу витримки невисока (вважаємо, що тривалості імпульсів розрізняються істотно). Вихідні сигнали схеми формуються за допомогою двох трігерів, а не простих двовходових логічних елементів, що повністю виключає появу паразитних імпульсів на фронтах.
Принцип роботи схеми зрозумілий з приведеної тимчасової діаграми. Одновібратор запускається по передньому фронту вхідного сигналу. Вихідний сигнал Вых.1, відповідний приходу довгого імпульсу, починається по задньому фронту імпульсу одновібратора, а закінчується по закінченню довгого вхідного імпульсу. Вихідний сигнал Вых.2, відповідний приходу вхідного короткого імпульсу, починається по задньому фронту вхідного імпульсу, а закінчується із закінченням імпульсу одновібратора.
Трігери можна також використовувати для обробки періодичних послідовностей вхідних сигналів. При цьому трігер, тактований кварцовим генератором, може дуже точно розрізняти частоти проходження вхідних імпульсів, тобто виконувати функцію найпростішого цифрового фільтру. Такі схеми вигідно відрізняються від схем з одновібраторами і часозадаючими RC-ланцюжками можливістю повністю інтегрального виконання і відсутністю якої б то не було настройки.
Найпростіший приклад подібної обробки полягає у формуванні огинаючої вхідного сигналу. Тобто при приході вхідного сигналу заданої частоти вихідний сигнал повинен бути рівний одиниці, а за відсутності вхідного сигналу - нулю. Ця задача може бути вирішена за допомогою одновібратора з перезапуском (типу АГЗ). Проте вживання трігерів значно збільшує точність спрацьовування і дозволяє працювати з частотами, близькими до граничних для даного типу трігерів. Схема формування огинаючої складається всього лише з двох трігерів, тактованих зовнішнім синхросигналом. В даному випадку передбачається, що частоти вхідного сигналу і тактового сигналу рівні між собою.
Трігери включені як двотактна лінія затримки із загальним тактовим сигналом С і з скиданням вхідними сигналами. Найперший вхідний імпульс послідовності ініціює початок дії вихідного сигналу, тобто перемикання виходу в стан логічної 1, а закінчується дія вихідного сигналу, тобто повернення виходу в стан логічного 0, через 1-2 періоди тактового сигналу після закінчення вхідної послідовності (залежно від тимчасового зсуву вхідного сигналу щодо тактового сигналу). Схема працює з вхідним сигналом будь-якої частоти, більшої половини частоти тактового сигналу (наприклад, при тактовій частоті 10 Мгц вхідний сигнал повинен мати частоту, більшу 5 Мгц). Тобто за половину періоду вхідної частоти не повинно приходити більше одного позитивного фронту тактового сигналу.

Малюнок 23.14. Формувач сигналу огинаючої вхідного сигналу на трігерах.

Нарешті, остання схема на трігерах, яку ми розглянемо, призначена для кодування вхідного сигналу в манчестерський код (або код Манчестер-П). Цей код широко використовується при передачі сигналів на великі відстані, зокрема в локальних мережах.

Малюнок 23.15. Кодувальник манчестерського коду на трігерах.

Суть манчестерського кодування ілюструється малюнком 23.15. Вхідний сигнал є послідовністю бітів рівної тривалості. В кожному такті передається один біт інформації. Манчестерський код замінює одиничний інформаційний біт на негативний перехід в центрі бітового інтервалу, а нульовий інформаційний біт - на позитивний перехід в центрі бітового інтервалу. Таким чином, в центрі кожного бітового інтервалу сигналу в манчестерському коді обов'язково є фронт (позитивний або негативний), який може бути використаний приймачем цього сигналу для синхронізації прийому кожного інформаційного біта. Тому манчестерський код називається кодом, що самосинхронізується.
Кодувальник (він же шифратор) манчестерського коду включає елемент що виключне АБО, який, власне, і проводить кодування, а також три трігери для синхронізації. Один трігер (лівий на схемі) працює в рахунковому режимі, ділячи частоту тактового сигналу в два рази. Один трігер (центральний) синхронізує вхідний інформаційний сигнал з тактовим сигналом половинної частоти. Нарешті, останній, третій трігер (правий) синхронізує вихідний сигнал для усунення в ньому паразитних коротких імпульсів в моменти зміни вхідного сигналу. Він фіксує вихідний сигнал елемента що виключне АБО (вже готовий манчестерський код) через четверть періоду після зміни вхідного сигналу Вхід 1 (по негативному фронту початкового тактового сигналу).

презинтація

попередня тема наступна тема