Подключение программируемого таймер к 
";


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Подключение программируемого таймер к



Микропроцессорной системе


СПРАВОЧНЫЕ МАТЕРИАЛЫ ПО ПОДСИСТЕМЕ

ПРОГРАММИРУЕМОГО ТАЙМЕРА IBM PC/AT

 

Общие характеристики:

 

Архитектура PC/AT использует трехканальный таймер i8254 в качестве системного таймера. В PC/AT входные синхросигналы для всех трех каналов поступают от единого источника с частотой f=1,19 МГц. Каждый канал может программироваться для работы в одном из 6 режимов.

В PC/AT выход канала 0 связан с IRQ 0 контроллера прерываний 8259А и обеспечивает поддержку системного времени, при этом используется режим 3 таймера - генератор меандра.

Выход канала 1 генерирует сигнал запроса регенерации динамической памяти, при этом используется режим 2 таймера - импульсный генератор частоты.

Выход канала 2 генерирует тоновый сигнал для динамика, при этом используется режим 3 таймера - генератор меандра.

 

 


Порты, используемые для программирования таймера:

 

Адрес порта Функция

040 h Чтение/Запись содержимого счетчика канала 0

041 h Чтение/Запись содержимого счетчика канала 1

042 h Чтение/Запись содержимого счетчика канала 2

043 h Запись управляющего слова и команд CLC и RBC

 

 

2.8.2. Примеры программ:

Примечание: В прграммах специально допущены ошибки (логические), которые студентам необходимо исправить в процессе выполнения работы.

Программа 1.

(Периодическое изменение тональности звукового сигнала в режиме

работы 3)

 

mov DX,100 - Внешний цикл

mov AL,B6

out [43],AL - Программируем таймер

mov AL,4B

out [61],AL - Разрешаем звук

 

next: mov AL,10 - Содержимое AL=10

out [42],AL - Занесение по адресу 42h константы 1010h (мл. байта)

out [42],AL - Занесение по адресу 42h константы 1010h (ст. байта)

mov CX,20 - Длительность звучания (f=1,19МГц/ 1010h)

a: loop a - Задержка

mov AL,25 - Содержимое AL=25

out [42],AL - Занесение по адресу 42h константы 2525h (мл. байта)

out [42],AL - Занесение по адресу 42h константы 2525h (ст. байта)

mov CX,20 - Длительность звучания (f=1,19МГц/2525h)

 

 

b: loop b - Задержка

dec DX - Уменьшение DX

jnz next - Если не равно 0, то переход на next:

mov AL,49 - Содержимое AL=49

out [61],AL - Выключение звука

 

int 3

 

 

Программа 2.

(Периодическое выдачи сигналов оразличной длительности в режиме работы 0)

 

mov DX,100 - Внешний цикл

mov AL,С0

out [43],AL - Программируем таймер

mov AL,4B

 


out [61],AL - Программируем таймер

 

next: mov AL,01 - Занесение константы =0101h по адресу 42h

out [42],AL

out [42],AL

mov CX,100

a: loop a - Задержка

mov AL,25 - Занесение константы =2525h по адресу 42h

out [42],AL

out [42],AL

mov CX,100

 

b: loop b - Задержка

dec DX - Уменьшение DX

jnz next - Если не равно 0, то переход на next:

 

mov AL,49 - Выключение звука

out [61],AL

 

int 3

 

Программа 3.

(РЕЖИМ 0 - прерывание терминального счета)

 

MOV DX,FFFF -внешний цикл

MOV AL,B1 -

OUT [43],AL -запись управляющего слова

NEXT: MOV AL,10 - константа счета

OUT [42],AL - младший байт константы

OUT [42],AL - старший байт константы

MOV AL,4B -

OUT [61],AL -разрешение звука

MOV CX, F

A: LOOP A - задержка

MOV AL,25 - константа счета

OUT [42],AL - младший байт константы

OUT [42],AL - старший байт константы

MOV CX,FF -

B: LOOP B - задержка

DEC DX - внешний цикл

JNZ NEXT - проверка на нуль

MOV AL,49 -

OUT [61],AL - запрет звука

INT 3 - завершение

Осциллограммы:

 


 

Программа 4.

(РЕЖИМ 1 - программируемый ждущий мультивибратор)

 

MOV DX,F - внешний цикл

MOV AL,B3 -

OUT [43],AL - запись управляющего слова

NEXT: MOV AL,01 - константа счета

OUT [42],AL - младший байт константы

OUT [42],AL - старший байт константы

MOV AL,4B -

OUT [61],AL - разрешение звука

MOV CX,F -

A: LOOP A - задержка

MOV AL,4A -

OUT [61],AL - запрет звука

MOV AL,25 - константа счета

OUT [42],AL - младший байт константы

OUT [42],AL - старший байт константы

MOV AL,4B -

OUT [61],AL - разрешение звука

MOV CX,FF -

B: LOOP B - задержка

MOV AL,4A -

OUT [61],AL - запрет звука

DEC DX - внешний цикл

JNZ NEXT - проверка на нуль

INT 3 - завершение

 

Осциллограммы:

 

Программа 5.

(РЕЖИМ 2 - импульсный генератор частоты)

 

Команды AFD:

O 43,B5 - запись управляющего слова

O 42,10 - младший байт константы

O 42,10 - старший байт константы

O 61,4B - разрешение выхода OUT2 и выхода на динамик

 


 

 

MOV AL,B5 -

OUT [43],AL - запись управляющего слова

MOV AL,10 - константа счета

OUT [42],AL - младший байт константы

OUT [42],AL - старший байт константы

MOV AL,4B -

OUT 61,4B - разрешение OUT2 и выхода на динамик

INT 3 - завершение

 

 

Осциллограмма:

 

Из-за влияния паразитных сопротивлений и длинной линии (соединительные провода) на экране осциллографа отрицательный прямоугольный импульс длительностью 0.84 мкс не виден:

В идеале:

 

 

Программа 6.

(РЕЖИМ 3 - генератор меандра)

Команды AFD:

 

O 43,B7 - запись управляющего слова

O 42,10 - младший байт константы

O 42,10 - старший байт константы

O 61,4B - разрешение выхода OUT2 и выхода на динамик

 

MOV AL,B7 -

OUT [43],AL - запись управляющего слова

MOV AL,10 - константа счета

OUT [42],AL - младший байт константы

OUT [42],AL - старший байт константы

MOV AL,4B -

OUT [61],4B - разрешение OUT2 и выхода на динамик

INT 3 - завершение

 


Осциллограмма:

 

 

T=3.6 мс

f=280 Гц

fclk=1.19 МГц

1010h=4112

f=fclk/N=289.5 Гц

 

Программа 7.

(РЕЖИМ 4 - программно-формируемый строб)

MOV DX,1000 - внешний цикл

MOV AL,B9 -

OUT [43],AL - управляющее слово

MOV AL,10 - константа счета

NEXT: OUT [42],AL - младший байт константы

OUT [42],AL - старший байт константы

MOV AL,4B -

OUT [61],AL - разрешение OUT

MOV CX,F -

A: LOOP A - задержка

DEC DX - внешний цикл

JNZ NEXT - проверка на нуль

INT 3 - завершение

Осциллограмма:

Из-за влияния паразитных сопротивлений и длинной линии (соединительные провода) на экране осциллографа отрицательный прямоугольный импульс длительностью

0.84 мкс не виден:

в идеале:

Программа 8.

 

(РЕЖИМ 5 - аппаратно-формируемый строб)

MOV DX,FFFF - внешний цикл

MOV AL,BB -

OUT [43],AL - управляющее слово

 


NEXT: MOV AL,[10] - константа счета

OUT [42],AL - младший байт константы

OUT [42],AL - старший байт константы

MOV AL,3B -

OUT [61],AL - разрешение OUT

MOV CX,F

A: LOOP A - задержка

MOV AL,4A -

OUT [61],AL - запрет OUT

MOV AL,4B -

OUT [61],AL - разрешение OUT

DEC DX - внешний цикл

JNZ NEXT - проверка на нуль.

INT 3 - завершение

 

 

Осциллограмма:

 

Из-за влияния паразитных сопротивлений и длинной линии (соединительные провода) на экране осциллографа отрицательный прямоугольный импульс длительностью 0.84 мкс не виден:

В идеале:

 


2.8.3. Примеры временных диаграмм работы программируемого таймера в разных режимах:

 


 



 


 


 


 

 

Лабораторная работа 2

(описание)

 

3.«Универсальный синхронно-асинхронный приемопередатчик (УСАПП) КР580ВВ51 в составе адаптера АПД ПЭВМ

«Искра-1031»».

 

 


3.1. ЦЕЛЬ РАБОТЫ.

 

Целью настоящей работы является ознакомление с принципами работы универсального синхронно-асинхронного приемо-передатчика (УСАПП) КР580ВВ51А, входящего в состав адаптера ААПД ПЭВМ «Искра 1031», а также с приемами его программной настройки на различные режимы работы (совместно с программируемым таймером КР580ВИ53 (КР1810ВИ54).

 

3.2. ТЕХНИЧЕСКИЕ СРЕДСТВА, ИСПОЛЬЗУЕМЫЕ В РАБОТЕ.

 

В лабораторной работе используется ПЭВМ «Искра 1031», ААПД 3.093.142, предназначенный для использования в составе ПЭВМ «ИСКРА 1031», осциллограф С1-81, устройство коммутирующее 5.284.011.

 

3.3. ОСНОВНЫЕ ЭЛЕКТРИЧЕСКИЕ ПАРАМЕТРЫ БИС КР580ВВ51.

 

1)Выходное напряжение логического нуля UOL < 0.4

2)Выходное напряжение логической единицы UOH,В > 2.4

3)Ток потребления от источника питания ICC,mA < 60

4)Ток утечки на управляющих входах IIL,mkA - 10... 10

 

3.4. НАЗНАЧЕНИЕ УСАПП КР580ВВ51 и его использование в составе ААПД.

 

Универсальный синхронно-асинхронный приемопередатчик (УСАПП) предназначен для организации обмена между микропроцессором и внешним устройством в последовательном формате.

УСАПП может принимать данные с 8-ми разрядной шины данных микропроцессора и передавать их в последовательном формате внешнему устройству, а также получать последовательные данные от внешнего устройства и передавать их в параллельном формате в микропроцессор.

Обмен данными в асинхронном режиме идет с максимальной скоростью 9600 бит/сек, а в синхронном - 56000 бит/сек.

Длина передаваемых символов от 5 до 8 бит. При передаче данных в микропроцессор символов меньше 8 бит не использующиеся биты заполняются нулями.

В асинхронном режиме формат включает служебные биты: стартовый, бит контроля четности и стоповые биты.

В составе ААПД используется семь микросхем (БИС) УСАПП (см. Структурную схему ААПД и Схему электрическую принципиальную АПД 3.093.142 Э3 ТО ААПД).

На электрической принципиальной схеме АПД 3.093.142 Э3 УСАПП обозначены как IOS 0...IOS 6. На их базе организованы стандартные последовательные интерфейсы С2 (RS-232C) и ИРПС (Current Loop):

 узел приема - передачи С2 на микросхеме D20 (IOS 0);

 узел приема - передачи

ИРПС 1 - D21 (IOS 1);

ИРПС 2 - D22 (IOS 2);

ИРПС 3 - D23 (IOS 3);

ИРПС 4 - D24 (IOS 4);

 


ИРПС 5 - D25 (IOS 5);

ИРПС 6 - D26 (IOS 6);

БИС D20... D26 работают совместно с БИС программируемого таймера КР580ВИ53, который формирует для УСАПП тактовые импульсы приема-передачи данных, задавая тем самым стандартные скорости обмена согласно табл. 7 ТО ААПД.

На электрической принципиальной схеме он обозначен как SYN1 (D17). Формируемые им совместно с мультиплексором D31 (К555КП2) последовательности импульсов f1, f2, f3, f4, f5 подаются, соответственно, на входы синхронизации приема и передачи УСАПП (IOS 0... IOS 6):

f1 - на D31, которая формирует сигналы f4 и f5,

f2 - на входы TEC и RCC микросхем D21 (IOS 1), D22 (IOS 2),

D23 (IOS 3),

f3 - на входы TEC и RСС микросхем D24 (IOS 4) и D25 (IOS 5),

f4 - на входы TEC микросхем D20 (IOS 0) и D26 (IOS 6),

f5 - на входы RCC микросхем D20 (IOS 0) и D26 (IOS 6).

Описание принципов работы и программирования БИС КР580ВИ53 приведено в описании лабораторной работы: «БИС программируемого таймера КР580ВИ54 (I8254)».

Для реализации интерфейса С2 (RS-232C) совместно с УСАПП (D20) используется БИС параллельного программируемого порта КР580ВВ55, которая обеспечивает выдачу и прием управляющих и вспомогательных сигналов интерфейса С2 (RS-232C). На электрической принципиальной схеме она обозначена как IOP (D19).

Описание принципов работы и программирования БИС КР580ВВ55 приведено в описании лабораторной работы «БИС параллельного программируемого интерфейса КР580ВВ55 в составе ААПД».

 

Режимы работы последовательных интерфейсов по запросам на прерывание обеспечиваются подключением выводов ERD УСАПП (D20...D26) ко входам запросов на прерывание БИС контроллера прерывания КР1810ВН59А, обозначенной на электрической принципиальной схеме как INR (D27). Для обеспечения приема и передачи двуполярных импульсов, предусмотренных стандартом, в схеме интерфейса С2 (RS-232C) используются микросхемы преобразователей уровней К170УП2 (D38...D40) и К170АП2 (D32...D36).

Для обеспечения требований стандарта ИРПС на прием и передачу токовых импульсов с гальванической развязкой цепей приема и передачи используются транзисторы типа КТ3102Б, КТ3107Б и оптроны типа АОД129А (см. электрическую принципиальную схему ААПД).

Общая синхронизация работы БИС IOS 0... IOS6 (D20...D26) и SYN (D17,D18) осуществляется сигналом F1 с частотой 1228,8 кГц, формируемым генератором тактовых импульсов (D15)(2457,8 кГц) и делителем (D16.1).

Входные и выходные сигналы интерфейсов С2(RS-232C) и ИРПС1...ИРПС6 выведены на внешний разъем Х3 УСАПП.

Распределение сигналов по контактам разъема Х3 для сигналов стандарта С2 (RS-232C) приведены в таблице 1 и 2, а для стандарта ИРПС (Current Loop)-в таблице 3 ТО ААПД.

Для практической работы к разъему Х3 подключается коммутирующее устройство 5.284.011. (коннектор).

Разводка сигналов по контактам разъемов коннектора (2 разъема С2) показана в табл. 1.

Рекомендуемое соединение адаптера АПД и коннектора приведено на

рис. 1.

 


Таблица 1

 

 

Рис. 1. Схема подключения коннектора.

 

Программирование УСАПП (IOS 0...IOS6),таймера (SYN1) и ППИ (IOP).

 

Программирование УСАПП, таймера и ППИ осуществляется записью в управляющие регистры этих устройств управляющей информации.

Обмен информацией между процессором и внешним устройством осуществляется через соответствующие информационные регистры (регистры данных) УСАПП и ППИ.

Информация о состоянии БИС получается путем считывания содержимого соответствующих регистров состояния.

Адреса регистров IOS 0...IOS 6, SIN 1, SIN 2, IOP и INR приведены в таблице 6 ТО ААПД.


3.5. УКАЗАНИЕ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ.

Лабораторная работа проводится на ПЭВМ «Искра 1031», в которой установлена MS DOS версии 3 и выше. Дополнительно устанавливается программа - отладчик AFD. К установленной в системный блок плате адаптера АПД должен быть подключен коннектор. Контроль выходных сигналов интерфейса ИРПС осуществляется с токосъем­ного сопротивления, подключенного к разъему канала 5.

Этот контроль осуществляется с помощью электронного осциллографа С1 - 81.

3.6. ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ.

3.6.1 Изучить техническое описание и схему электрически принципиальную адаптера АПД.

3.6.2 По техническому описанию и схеме электрически принципиальной определить адреса канала таймера SYN1, синхронизирующего работу УСАПП канала 5 адаптера АПД по входам TEC(9) и RCC(25), микросхема IOS5 (УСАПП канала 5) и соответствующие адреса регистров таймера и УСАПП.

3.6.3 Определить константы, обеспечивающие работу таймера SYN1 при двоично-десятичном счете и коэффициенте деления в УСАПП 1:1 по синхронизации УСАПП на скорости передачи и приема данных 9600 бит/сек.

3.6.4 Определить управляющие слова и команды, которые необходимо подать на УСАПП канала 5, чтобы настроить его на работу по передаче данных в асинхронном режиме со скоростью 9600 бит/с при наличии одного, полутора, двух стоп-битов; длине слова 5, 6, 7 или 8 бит; наличии и отсутствии контроля по четности.

3.6.5 Составить на ассемблере программу инициализации таймера SYN1.

3.6.6 Составить программу инициализации УСАПП канала 5 на выбранный режим работы.

Примечание: программа должна иметь блок программного сброса УСАПП в исходное состояние, блок задания инструкции режима (управляющего слова), блок подачи командного слова и блок вывода информации через УСАПП в асинхронном режиме в последовательном коде. При этом использовать константы: AA, 55, FF, 00.

3.6.7 Отладить программу в среде AFD.

3.6.8 Провести исследование сигнала на выходе УСАПП по осциллографу в различных режимах работы УСАПП и различных выводимых символах (AA, 55, FF, 00). Осциллограммы на выходе УСАПП зарисовать. Оценить их реальные параметры и сравнить с расчетными (ожидаемыми).

Примечание: Для исследования сигналов по осциллографу, часть программы, отвечающую за вывод символа через УСАПП, должна быть зациклена (Выход из цикла по Ctrl-Esc в среде AFD).

3.6.9 Отлаженный вариант программы сохранить на диске под именем <filename.lbr> в двоичном виде, а также вывести на печать ее дизассемблированный вариант (пользоваться только средствами отладчика AFD).

3.6.10 Аналогичное задание выполнить для других каналов. Скорость передачи данных и номер канала задает преподаватель.

3.6.11 Оформить отчет по работе.

3.7. РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА.

1) Справочник «Микропроцессоры и микроЭВМ в системах автоматического управления» под ред. С.Т. Хвоща. Машиностроение, 1987г.

2) Лекции по курсу «Адаптеры и контроллеры ЭВМ»

3) Адаптер АПД. Техническое описание 3.093.138 ТО


 

3.8.ПРИЛОЖЕНИЕ

3.8.1 Структурная схема УСААП.

 

 

В состав УСАПП входят:

1. Буфер передатчика TBF со схемой управления передатчиком TCU для приема данных от микропроцессора в параллельном формате и выдача их в последовательном формате на выход TXD.

2. Буфер приемника RBF со схемой управления RCU, выполняющий прием последовательных данных со входа RXD и передачу в микропроцессор в параллельном формате.

3. Буфер данных BD, представляющий собой параллельный 8-ми разрядный регистр с тремя состояниями, служащий для обмена данными и управляющей информацией между

 


микропроцессором и УСАПП.

4. Блок управления записью/чтением RWCU, принимающий управляющие сигналы от микропроцессора и генерирующий внутренние сигналы управления.

5. Блок управления модемом MCU, обрабатывающий управляющие сигналы, предназначенные для внешнего устройства.

Сигналы, используемые в данной схеме:

D(7..0) - канал данных

RESET (SR) - установка в исходное состояние или сброс.

CLOCK (SYN) - синхронизация со стороны системной магистрали.

С/D (A) - управление /данные.

«низкий уровень» - запись/чтение данных

«высокий уровень» - запись/чтение слов управления и состояния

RD - чтение из УСАПП в микропроцессор

WR - запись из микропроцессора в УСАПП

CS (CR) - выбор микросхемы (низким уровнем УСАПП подключается к системной магистрали).

DSR - готовность передатчика терминала

DTR - запрос передатчика терминала

CTS - готовность приемника терминала

RTS - запрос приемника терминала

SINDET - вид синхронизации (для синхронного режима выходное напряжение высокого уровня -признак внутренней синхронизации, для синхронного режима с внешней синхронизацией сигнал является входным, в асинхронном - сигнал только выходной).

RXC (RCC) - синхронизация приемника (поступает с таймера)

RXRDY (ERD) - готовность приемника

RXD (RCD) - вход приемника

 

 


TXC (TEC) - синхронизация передатчика (поступает с таймера)

TXE - конец передачи (высокий уровень на выходе признак окончания посылки данных)

TXD (TED) - выход передатчика.

TXRDY - готовность передачи.

 

3.8.2 Функционирование КР580ВВ51. Основные сигналы и управляющие слова.

 

Основные сигналы управления работой УСАПП подаются на блок RWCU от микропроцессора и определяют вид обрабатываемой информации и направление передач.

 

 

Режимы работы УСАПП задаются программно, путем загрузки управляющих слов из микропроцессора.

Управляющие слова бывают двух видов:

1. Инструкция режима.

2. Команды.

Инструкция режима задает:

а) синхронный или асинхронный режим работы

б) формат данных

в) скорость передачи/приема

г) необходимость контроля

Инструкция заносится сразу после установки УСАПП в исходное состояние программно или по сигналу RESET и заменяется лишь при смене режима. Команда осуществляет управление установленным режимом обмена и может многократно задаваться в процессе обмена, управляя различными его этапами.

При асинхронном обмене команда загружается сразу же после инструкции режима, а при синхронном, перед ней располагается 1 или 2 синхросимвола. Ограничения на последовательность загрузки управляющих слов связано с внутренней организацией УСАПП.

В асинхронном режиме формат данных включает стоповые биты, биты данных от 5 до 8, контрольный бит и стоп биты.

Число битов данных и стоп битов, а также наличие или отсутствие контрольного бита задается инструкцией режима.

 


Формат инструкции режима для асинхронного обмена приведен на рис. 1.

 

Рис. 1.

Разряды D0, D1 определяют три разновидности асинхронного режима по частоте сигналов синхронизации, то есть TXC и RXC делятся на 1, на 16 или на 64 и с такой частотой передается информация.

D2, D3 определяют число битов данных передаваемого слова.

Режим контроля задается D4:

D4=0 - контроля нет,

D4=1 - контроль есть.

D5 залает тип контроля.

D6,D7 определяют число передаваемых стоп-битов.

При синхронном обмене данные передаются в виде массива слов, а для синхронизации запуска при приеме данных используется 1 или 2 символа синхронизации.

Рис. 2

 


Формат инструкции синхронного режима представлен на рис. 2.

 

 

D0=D1=0 - признак синхронного режима;

D6 - устанавливает вид синхронизации:

«1» - внешняя (от внешнего синхроимпульса);

«0» - внутренняя (от внутреннего синхроимпульса);

D7 - определяет число синхросимволов;

D2..D5 - как и у асинхронного обмена.

 

3.8.3. Команды.

 

Команды подаются после инструкции режима и управляют выполнением конкретных операций.

 

 


3.8.4. Формат слова-состояния.

 

Кроме уже рассмотренных при описании структурной схемы сигналов, в слове со-стояния существует три флаговых разряда ошибок:

PE - устанавливается при ошибке по четности;

OE - ошибка переполнения, если микропроцессор не успел прочитать слово, а в регистр уже пришло другое;

FE - ошибка стоп-бита, если не обнаружен стоп-бит.

 

3.8.5. Режимы работы.

 

УСАПП может работать в 5 режимах обмена информацией.

1. синхронная передача.

2. синхронный прием с внутренней синхронизацией.

3. синхронный прием с внешней синхронизацией.

4. асинхронная передача.

5. асинхронный прием.

 

Синхронная передача.

При синхронной передаче на выходе ТXD c частотой сигнала синхронизации формируется последовательность, начинающуюся с синхросимволов, запрограммированных инструкцией режима. Затем передаются поступающие из МП коды символов, каждый из которых может заканчиваться битом контроля. Если МП не загрузил очередной символ к моменту передачи, то УСАПП вставляет в передаваемую последовательность синхросимволы, а на выходе TXE, вырабатывается сигнал высокого уровня, идентифицирующий пустую передачу.

Синхронный прием.

При синхронном приеме с внутренней синхронизацией УСАПП начинает работу с поиска во входной последовательности синхросимволов, сравнивая принимаемые символы с записанными в него синхросимволами.

После обнаружения синросимволов SINDET переходит в высокое состояние, разрешая прием входных данных.

SINDET сбрасывается автоматически при чтении слова-состояния.



Поделиться:


Последнее изменение этой страницы: 2017-02-17; просмотров: 284; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.141.202 (0.015 с.)