Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Для керування роботою ЦAП





До лабораторного практикуму з курсу

²ЕОМ-експеримент та машинна обробка інформації²

для студентів радіофізичного факультету.

Частина 1

 

 

Київ 2001


 

 

Київський національний університет імені Тараса Шевченка

 

С.М. Савенков, Р.В. Горулько

 

 

ПОСІБНИК

До лабораторного практикуму з курсу

²ЕОМ-експеримент та машинна обробка інформації²

для студентів радіофізичного факультету.

Частина 1

 

Київ 2001


УДК 681.3

 

Посібник до лабораторного практикуму з курсу ²ЕОМ-експеримент та машинна обробка інформації² для студентів радіофізичного факультету, Частина 1/ Савенков С.М., Горулько Р.В. – Київ: ²², 2001. - с.

 

Рецензент

 

 

Затверджено Вченою радою

радіофізичного факультету

Київського національного університету

імені Тараса Шевченка

 


ВИКОРИСТАННЯ ЦИФРО-АНАЛОГОВОГО ПЕРЕТВОРЮВАЧА КЕРОВАНОГО ЗА ДОПОМОГОЮ ІНТЕРФЕЙСУ CENTRONICS (LPT).

 

Мета роботи: Вивчення принципів роботи паралельного порту ЕОМ Centronics (вітчизняний аналог – ИРПМ-М) та принципів керування за його допомогою зовнішнім пристроєм – цифро-аналоговим перетворювачем (ЦАП).

Завдання:

1. Ознайомитися з організацією та принципами роботи паралельного інтерфейсу Centronics

2. Ознайомитися з принциповою, програмною схемами та принципами роботи схемами цифро-аналогового перетворювача

3. Ознайомитися з описами приладів, що входять до блок-схеми експериментальної установки.

4. Сформувати напруги керування синусоїдальної форми, пилкоподібної та трикутної, або такої форми, яку буде завдано викладачем.

5. Скласти звіт про виконану роботу з грунтовним поясненням отриманих результатів, зробити змістовні висновки.

Література:

 

Прилади. Персональна ЕОМ, осцилограф, плата цифро-аналогового перетворювача.


Вступ

 

Не буде перебільшенням сказати, що ЕОМ вже давно став звичайним і абсолютно необхідним робочим ²інструментом² сучасної фізичної лабораторії. При цьому, серед розмаїття застосувань ЕОМ наша увага буде зосереджена на застосуванні ЕОМ для автоматизації експериментальних досліджень і пов’язаних з цим технічних розрахунків.

Під автоматизацією експерименту розуміється коло проблем, що пов’язані з використанням ЕОМ для реєстрування експериментальної інформації і керування вузлами експериментальної установки при підготовці та проведенні експерименту. Отже, маючи ЕОМ і створивши експериментальну установку, постає проблема їхнього з’єднання, щоб сигнали з фізичних датчиків установки потрапляли до ЕОМ і сигнали, які виробляються ЕОМ, керували експериментом. При цьому треба мати на увазі той факт, що сигнали датчиків мають різну фізичну природу і є аналоговими, а ЕОМ працює виключно з дискретними сигналами причому такими, що передані жорстко визначеним чином. Ця проблема вирішується застосуванням апаратури спряження або інтерфейсів зв’язку ЕОМ з експериментом. Інтерфейси переводять сигнали різного типу на “мову” стандартних сигналів, що можуть бути сприйняті ЕОМ.

До ЕОМ зовнішні пристрої, датчики і виконавчі пристрої, можуть бути з’єднані різними шляхами. В даній роботі розглядається варіант з’єднання за допомогою паралельного інтерфейсу типу Centronics або LPT. Безсумнівним достоїнством цього варіанту є те, що паралельний інтерфейс Centronics є одним із стандартних зовнішніх інтерфейсів, який входить до базової конфігурації будь-якої сучасної ЕОМ.

Варіант з’єднання зовнішніх пристроїв з ЕОМ за допомогою інтерфейсу Centronics має технічні переваги і недоліки. Відмітимо, що в даному випадку не йдеться про підключення до ЕОМ зовнішніх пристроїв, що також мають інтерфейси Centronics. В цьому випадку для підключення необхідний лише звичайний розпаяний відповідним чином кабель.

В таблиці 1 наведені деякі технічні та інші параметри, які треба враховувати при використанні інтерфейсу Centronics для підключення до ЕОМ зовнішніх пристроїв.

Таблиця 1.

Параметри Centronics
Швидкість обміну Середня (до 100 Кбайт/с)
Довжина і тип лінії зв’язку з ЕОМ Не більш ніж 2м, багатодротовий кабель
Припустима складність пристрою, що підключається Довільна
Додатковий конструктив Потрібен
Зовнішнє джерело живлення Потрібно
Формат і розрядність даних Паралельний, 8 розрядів
Кількість зовнішніх пристроїв, які безпосередньо підключаються до ЕОМ один

Можна, отже, бачити, що Centronics дозволяє розташовувати зовнішні пристрої на помітної відстані від ЕОМ, характеризується не велика швидкість обміну, потрібні додатковий конструктів (корпус) і джерело живлення. Важливо також і те, що без додаткових пограмно-апаратних засобів за допомогою Centronics можна підключити лише один зовнішній пристрій. З іншого боку, обмін в паралельному форматі більш простий ніж в послідовному.

 

1. Порядок обміну з використанням інтерфейсу Centronics.

 

Головним за стандартом призначенням інтерфейсу Centronics є підключення до ЕОМ принтерів різного типу. Тому розподіл контактів розєму, призначення сигналів, програмні засобі керування інтерфейсом орієнтовані саме на це призначення.

Головне достоїнство використання Centronics для підключення зовнішніх пристроїв є помітно невисокий ризик вивести ЕОМ з ладу (для його використання непотрібно навіть відкривати корпус ЕОМ). Головний недолік – невелика швидкість обміну. Однак, коло проблем де ці швидкості є уповні прийнятними вельми широке.

Паралельний інтерфейс в ЕОМ має регістрову організацію. Кожний регістр є окремою коміркою в адресному просторі ЕОМ. Інтерфейс Centronics містить усі типи регістрів, а саме, регістр даних, регістр керування та регістр контролю. В ЕОМ, що виробляються останні 5 років, інтерфейс може працювати як в режимі виводу, так і в режимі вводу, тобто як виводити данні до зовнішнього пристрою, так і приймати інформацію від зовнішнього пристрою. Попередні покоління ЕОМ мали інтерфейс, лінії даних якого працювали лише в режимі виводу.

Порт має 25-контактний роз'їм:

 

а

б

Мал. 1.

 

 

На малюнку 1 наведено зовнішній вигляд роз’єму інтерфейсу Centronics: приладова частина (а) і штепсельна частина (б). Призначення контактів, режим роботи (Input/Output) та їх нумерація наведені в таблиці 2

 

 

Таблиця 2

 

Роз’єм DB-25S, № контакту Призначення
I/O Сигнал
  O Data Strobe
  O DataO
  O Data 1
  O Data 2
  O Data3
  O Data 4
  O Data 5
  O Data 6
  O Data 7
  I Ack#
  I Busy
  I PaperEnd (PE)
  O Select
  O Auto Feed
  I Error
  O Init
  I Select in
18-25   Ground

 

Зупинимося більш детально на організації роботи ліній даних паралельного інтерфейсу в режимі вводу інформації. В платах вводу-виводу (МІО), які випускалися для машин класу 486, вже була реалізована можливість виводу інформації на лінії даних. Такий інтерфейс вже, отже, має 13 ліній, які придатні для вводу інформації до ЕОМ, а саме, власне 8 ліній даних та 5 ліній керуючих сигналів (ACK, Busy, PE, Select, Error). Якщо до ліній керуючих сигналів нічого не під’єднано, вони знаходяться у стані логічної одиниці, тобто напруга на цих контактах інтерфейсу відповідає рівню напруги логічної одиниці ТТЛ, тобто 4,5¸5В. Такий вхід має електричну схему, що складається з резистора, який під’єднаний до джерела живлення +5В, та повторювача, після якого сигнал подається до логіки порту (див. малюнок 2).

А б

Звичайна лінія контролю Двонапрямлена лінія

Мал. 2.

Як видно з малюнку, до двонапрямленої та звичайної лінії керуючих сигналів під’єднаний резистор з опором 5¸10 КОм, який утримує лінію у стані логічної одиниці, якщо вона не навантажена. Ввід даних відбувається подачею на такий контакт напруги з рівнем логічного нуля або одиниці, а точніше під’єднанням цього контакту до загальної шини або від’єднанням від неї. Після цього можна здійснювати читання з відповідного регістру інтерфейсу. Лінія даних з можливістю як вводу так і виводу має, на відміну від звичайної вхідної лінії, ще й керуючий транзистор, який відкривається сигналом інтерфейсу при реалізації виводу логічного нуля та закривається, коли потрібно здійснити вивід логічної одиниці.

При вводі даних за допомогою такого інтерфейсу потрібно встановити всі лінії у стан логічної одиниці. В цьому випадку зовнішній прилад, який під’єднаний до інтерфейсу, буде грати роль транзистора в схемі порту. Але тут є одна неприємність – якщо залишити лінії у стані логічного нуля та спробувати подати напругу +5В, то порт може вийти з ладу, а точніше з ладу виходить транзистор, який керує виводом. Щоб запобігти цьому, треба підключати зовнішній пристрій через опори величиною 1¸10 КОм, або керувати лініями за допомогою транзистора подібного до транзистору інтерфейсу.

Принципи програмування роботи інтерфейсу Centronics.

Для керування цифро-аналоговим перетворювачем використовується паралельний порт. На його виводах формуються данні та керуючі сигнали для запису інформації в регістри ЦАП. Формування і приймання сигналів інтерфейсу Centronics здійснюється шляхом запису і читання портів вводу/виводу, що для нього виділені. В ЕОМ можуть використовуватися три порти Centronics, які позначаються LPT1 (базова адреса 378h), LPT2 (базова адреса 278h) і LPT3 (базова адреса 3ВСh). При цьому порт LPT3 використовується в тому випадку, коли контролер принтеру знаходиться на платі графічного адаптеру Hercules або EGA. Переривання портів (IRQ5 для LPT2 і IRQ7 для LPT1) використовується рідко.

В адресному просторі ЕОМ регістри порту розташовані наступним чином:

Базова адреса (на приклад 378h): регістр даних – D0-D7;

Базова адреса + 1: регістр стану;

Базова адреса + 2: регістр керування.

Отже, базова адреса в паралельному порті використовується для передавання даних (ще кажуть - регістр даних). Встановлені на цих лініях дані можна також зчитати з цього регістру. За адресами 379h (тобто, базова адреса + 1) та 37Аh (тобто, базова адреса + 2) розташовані, відповідно, регістри стану і управління. Регістр стану (379h) слугує для читання бітів стану зовнішнього приладу (за стандартом – принтеру). При цьому, біт 3 відповідає сигналу –ERROR; біт 4 - сигналу SLCT; біт 5 - сигналу PE; біт 6 - сигналу –ACK і біт 7 - сигналу BUSY.

Регістр управління (37Аh) призначений для запису бітів керування зовнішнім приладом. Біт 0 відповідає сигналу –STROBE; біт 1 - сигналу –AUTO FD; біт 2 – сигналу –INIT; біт 3 - сигналу –SLCT IN і, нарешті, біт 4, що дорівнює одиниці, дозволяє переривання від принтеру.

 

 

В даній роботі використовуються лінії D0-D7, STROBE, INIT, AUTO FEED. Ці сигнали для даної конструкції ЦАП мають наступне призначення: STROBE - призначений для тактування запису до регістрів ЦАП. Сигнали INIT та AUTO FEED слугують для вибору номера регістра ЦАП, у який ведеться запис.

До логіки керування ЦАП подаються сигнали стробування та вибору регістра. Логіка дешифрує ці сигнали та формує керуючі напруги для здійснення запису у регістри. Інформація з виводів порту D0-D7 подається на входи регістрів. Регістр побудований таким чином, що має вхід дозволу запису та вхід тактування.

З графічним зображенням, часовими діаграмами роботи та таблицею істинності для мікросхеми КР1533ИР27 можна ознайомитися у Додатку 1.

Після регістрів цифровий код подається на резисторну матрицю, на якої відбувається формування напруги, що є результатом перетворення код-напруга. Реально резисторна матриця складається з повторювачів, роль яких виконують інвертори мікросхеми К561ЛН2, які можуть формувати напругу на виході рівну 0 або 4.992 В. Цієї точності достатньо для того, щоб сформувати напругу на виході, яка б змінювалася від впливу температури на величину, що не перевищує величину напруги молодшого значущого розряду.

Така схемотехнічна реалізація була обрана тому, що паралельний порт, дозволяє виводити 8-ми розрядні данні, а потрібно реалізувати роботу пристрою з 12-розрядними даними. Тут реалізовано поетапний запис 12-розрядного слова даних до каналу, а саме, регістри 1 та 3 зберігають інформацію про молодші 8 розрядів каналів 1 та 2, відповідно. Регістр 2 має дещо інше призначення. Він утримує старші 4 розряди каналу 1 та 4 старші розряди каналу 2. Запис інформації до ЦАПу проводиться в 3 етапи. Спочатку записуються молодші розряди (0-7) каналів 1 та 2, а потім старші частини інформації до каналів 1 і 2 одночасно. Програмне забезпечення формує цю інформацію та розбиває на 3 частини. Значення кодів, що сформовані в ЕОМ, перетворюються матрицею резисторів у напруги по каналам 1 та 2 відповідно. Потім ці напруги подаються на повторювачі для того, щоб запобігти впливу опору навантаження на вихідні каскади пристрою. Опором навантаження в нашому випадку є підсилювач для керування кроковим двигуном.

 

Програмування ЦАП за допомогою інтерфейсу Centronics.

 

Все необхідне програмне забезпечення написано мовою PASCAL з частковим використанням мови ASSEMBLER. Останньою написані ділянки програми, які відповідають за вивід інформації на паралельний порт. З текстом програми та її описом можна ознайомитися в додатку 1.

Для того, щоб реалізувати запис до регістрів ЦАП ми використовуємо 2 оператори мови PASCAL: SENDDATA та SENDUPR. Перший з них виконує запис до регістру даних паралельного порту, а отже і встановлення необхідних логічних рівнів (напруг) на виводах роз’єму D0-D7, а другим оператором формуються керуючі сигнали для регістрів ЦАП. Керуючі сигнали формуються за допомогою скидання чи встановлення бітів в регістрі керування порту. Здійснюється це наступним чином.

Запис до регістру 1. Встановити усі сигнали у стан логічного 0. Не змінюючи рівні сигналів AUTO FEED та SELECT IN, встановити в 1 сигнал STROBE на час не менший за 0.01 мкс, а потім переключити його до 0.

 

Мал. 3.

Форми напруги на виводах паралельного порту

для запису до регістру 1 ЦАП.

 

Запис до регістру 2. Встановити усі сигнали у стан логічного 0. Не змінюючи рівні сигналів STROBE та SELECT IN, встановити в 1 сигнал AUTO FEED на час не менший за 0.01 мкС, а потім переключити його до 0.

Мал. 4.

Форми напруги на виводах паралельного порту

для запису до регістру 2 ЦАП

 

Запис до регістру 3. Встановити усі сигнали у стан логічний 0. Не змінюючи рівні сигналів STROBE та AUTO FEED, встановити в 1 сигнал SELECT IN на час не менший за 0.01 мкС, а потім переключити його до 0.

 

Мал. 5.

Форми напруги на виводах паралельного порту

для запису до регістру 2 ЦАП

 

Треба звернути увагу, що при запису до регістрів потрібно утримувати кодові біти 2 та 3 до стробування та після стробування на час, не менший за тривалість стробуючого імпульсу, оскільки при зміні кодових бітів за час стробування може відбутися запис до інших регістрів завдяки тому, що в декодуючий логіці мають місце перехідні процеси. Тривалість стробу повинна бути не меншою за 0.01 мікросекунди. Якщо час буде менший, то запис до регістру не встигне відбутися, або, що ще гірше, відбутися некоректно.

Для запису молодших 8 бітів слова даних до регістрів каналів перетворення ЦАП ми будемо записувати молодші 8 розрядів слова даних. Для цього пророблятимемо логічну операцію “data0 AND $FF” над кодом напруги, результат якої буде виводитися оператором посилки даних до регістру. Тут data1 – це змінна мови програмування, в якій записано код, що потрібно записати до регістрів каналу 1 ЦАП.

Наприклад, нам необхідно записати до каналу 1 код, що складається з 12-ти розрядів 1320, а до каналу 2 код 2354. Нехай код для каналу 1 записано у змінній data1, а код для каналу 2 у змінній data2. Розбивши коди на частини, зручно помістити результати в деякі допоміжні змінні, щоб потім можливо було при необхідності проконтролювати результат запису. Для того, щоб встановити певний біт (0-7) в 1 треба додати до змінної число, яке відповідає ваговому коефіцієнту певного біту. Значення вагових коефіцієнтів наведені в табл. 2.

 

Таблиця 2: Вагові коефіцієнти розрядів.

Для каналу 2 ця змінна називатиметься data2. З записом старших частин коду каналів 1 та 2 дещо складніше. Молодші частини коду каналів 1 та 2 записуються до регістрів 1 та 3 перетворювача відповідно. Щоб записати старші 4 біти коду каналу 2 необхідно записати їх у молодший півбайт регістру 2 ЦАП, причому, очевидно, не можна порушувати вміст інших 4-х бітів, що знаходяться в старшому півбайті цього регістру. Нижче наведено фрагмент програми, написаної мовою PASCAL, яка забезпечує вивід даних до порту та посилку керуючих сигналів.

Отже, як можна бачити, для того, щоб отримати дві незалежні одна від одної напруги на виході двох каналів, що, зокрема, забезпечує можливість незалежного керування параметрами сигналів, достатньо скористатися записом кодів до регістрів цифро-аналогового перетворювача. Звісно, що б отримати якийсь змінний сигнал, потрібно робити запис до регістрів стільки разів, скільки необхідно для формування напруги з певною частотою, формою та дискретністю.

Конструкція ЦАП.

Для керування різного роду зовнішніми пристроями на сьогоднішній день необхідні автоматизовані системи. Наприклад, для керування кроковим двигунами за допомогою ЕОМ потрібний пристрій, який би перетворював цифровий потік даних від машини у вигляд, «зрозумілий» кроковому двигуну. Звичайно, сигнал, який подається на кроковий двигун після ЕОМ треба підсилити. Але самого перетворення сигналу ще недостатньо. Треба сформувати напруги певної форми та амплітуди. Використовуючи цифро-аналоговий перетворювач (ЦАП) та ЕОМ можуть бути сформовані напруги практично будь-якої форми. Автоматизація подібного роду процесів досить важлива, оскільки не потрібно керувати експериментальною системою вручну. Бажано, щоб система мала по можливості найбільш універсальні частини, наприклад, інтерфейс вводу-виводу. В цій роботі в якості такого інтерфейсу виступає паралельний порт комп’ютера і, в цій частині роботи, він використовується лише в режимі виводу.

Структурна схема ЦАП показана на Мал. 6.

 

 

 

Мал. 6.

 

Структурна схема цифро-аналогового перетворювача.

 

Принципова схема ЦАП наведена на малюнку 7.

 

 

Мал. 7.

Принципова схема ЦАП.

 

Призначення виводів мікросхеми КР1533ИР27 та її таблиця істинності.


 

Використання інтерфейсу Centroinics

для керування роботою ЦAП.

 

В загальному випадку інтерфейс Centronics та, відповідно, паралельний порт персонального комп’ютера орієнтовані на підключення принтера. Підтвердженням цього є назва деяких сигналів інтерфейсу, однак при розробці нестандартних пристроїв, що призначені для підключення до паралельного порту ці сигнали можуть бути використані в будь якому призначенні. Сигнали інтерфейсу можливо розділити на чотири групи:

 

1- восьмирозрядна шина даних для запису з комп’ютера (в останніх версіях порту використовується також в режимі вводу) – D0-D7;

 

2- чотирьохрозрядна шина керування для запису з комп’ютера – Strobe, Auto Fd, Init, Slct In;

 

3- П’ятирозрядна шина стану для читання до комп’ютера – Ack, Busy, Pe, Slct, Error.

 

4- Шина “землі”.

 

Усі сигнали є програмно доступними, що дозволяє реалізовувати будь які протоколи обміну в рамках швидкодії комп’ютера та потрібного набору сигналів.

 

 

Ввід 8-розрядних даних до порту можна реалізувати мультиплексуванням по 4 розряди шини стану. Варіант схеми реалізації стандартного запису даних та читання 8-ми розрядів мультиплексуванням можна побачити на малюнку 8.

 

 

Мал. 8.

Схема виводу даних на світлодіодну матрицю

та вводу мультиплексуванням.

 

 

На схемі показано варіант реалізації контролю даних, що виводяться, за допомогою світлодіодів. Дані, що будуть вводитися до порту формуються за допомогою перемикачів пристрою. Сигнал Select In служить для перемикання старшої та молодшої тетради інформації, що вводииться. При використанні такого способу вводу можна реалізувати ввід до порту в два етапи. Цей варіант реалізації вводу є достатньо повільним та апаратно складним. Нові варіанти порту принтера (в машинах класу 486 та вище) дозволяють вводити інформацію по 8 розрядів через лінії даних та стандартну шину контролю. При такому складі можна реалізувати ввід 13 розрядів одночасно (8 ліній даних та 5 линій контролю). Для того, щоб перемикнути порт в режим читання через шину даних, треба вивести на лінії логічні одиниці, тобто записати до регістру даних порту число 255.

Режим вводу по 12 розрядів використано при реалізації вводу до ЕОМ інформації з двох зовнішніх аналогово-цифрових перетворювачів (далі по текcту - АЦП). Лінії керування використовуються для запису до пристрою спряження та для перемикання вводу інформації з АЦП1 та АЦП2. Кожний з цих АЦП перетворює напругу на вході в двійковий код цієї напруги з врахуванням знаку. На виході перетворювача отримується 12-розрядний код. Для того, щоб реалізувати ввід з двох перетворювачів був розроблений пристрій спряження. Електрична схема цього пристрою наведена на малюнку 9. Цей пристрій спряження виконує запис даних від двох перетворювачів одночасно до своїх регістрів. При записі до регістрів вони повинні бути утримані в закритому стані. Сигнали Auto Fd, Select In повинні бути в стані логічної одиниці. Для запису до регістрів необхідно подати строб на входи С регістрів – перепад логічного рівня з 0 до 1 та відновлення в стан 0. Для читання даних АЦП1 потрібно встановити Auto Fd=0 Select In=1. Після цого прочитати дані до ЕОМ. Щоб прочитати дані записані з АЦП2 встановити сигнали Auto Fd=1 Select In=0. Після цього обов’язково треба встановити ці сигнало у стан логічної одиниці, оскілки при тривалому відкритті обох регістрів може вийти з ладу блок живлення або самі регістри.

 

Мал. 9.

 

Принципова схема двоканального АЦП,

керованого за допомогою інтерфейсу Centronics.

Для спрощення запису до регістрів паралельного порту певних бітів введені константи в модулі принтера з однойменними назвами сигналів порту:

DataStrobe(Lo/Hi) - data strobe = (0/1)

AutoFeed(Lo/Hi) - Auto Feed = (0/1)

SelectIn(Lo/Hi) - Select In = (0/1)

Init(Lo/Hi) - Init = (0/1).

 

Закінчення назви константи Lo або Hi вказує логічний нуль або одиницю, які будуть встановлені на виводі порту, назва якого вказана на початку назви константи. Обов’язково треба додавати усі константи станів виводів порту для використання процедури Sendupr.

 

Опис процедур та функцій модуля LPT

Процедури запису

Senddata (n:byte) - записує значення в дужках до регістру даних

паралельного порту

Sendupr (n:byte) - записує значення в дужках до регістру керування

порту

Функції читання

Readdata:byte - зчитує регістр даних порту в режимі вводу

Readstat:byte - зчитує регістр статусу порту

 


 

Date: 2015-09-19; view: 281; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию