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



ЗНАЕТЕ ЛИ ВЫ?

Pitrc EQU 43h; управляющий регистр ПИТ

Поиск

Pitch0 EQU 40h; адрес канала 0

Pitch2 EQU 42h; адрес канала 2

clktm EQU 1193180; число тактов за 1 сек (частота синхронизации;таймера)

Freqtm EQU 5000; частота канала 0

Freqout EQU 50; выходная частота канала 2

one EQU '-'

nul EQU '_'

S_STACK SEGMENT PARA STACK 'stack';

DB 16 DUP('stack ')

S_STACK ENDS

S_dat SEGMENT PARA PUBLIC 'data'

Oldvect label dword; старый вектор прерывания

Oldtimip dw?

Oldtimcs dw?

Cnt dw 0

Vard label dword; видеопамять

Vdisp dw 320

Vram dw 0b800h

Intpitvec dd intpit; новый вектор прерывания

s_dat ENDS

prg_cod SEGMENT PARA PUBLIC 'code'

ASSUME CS:prg_cod,DS:s_dat,SS:S_STACK

Main PROC FAR; основная процедура

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,s_dat

MOV DS,AX

MOV ES,AX

CALL cls; очистка экрана

MOV AL,10110110b; программирование

OUT pitrc,AL; канала 2 ПИТ

MOV AX,clktm/freqout; на режим 3

OUT pitch2,AL; с частотой

MOV AL,AH; freqout

OUT pitch2,AL

CALL gateoff

; установка обработчика intpit

CALL setint;и частоты канала 0 freqtm

Wloop: CMP cnt,10; выполнение действий

JNE iskip; после 10 отсчетов таймера

CALL gateon

Iskip: CMP cnt,300; 300 отсчетов канала 0

JNE sskip

CALL gateoff

Sskip: CMP cnt,800; 800 отсчетов канала 0

JNE rskip

CALL gateon

Rskip: CMP cnt,1500

JB wloop

CALL restint; восстановление старого обработчика

CALL gateoff

RET

Main ENDP

Gateon PROC; установка GATE 2 в «1»

IN AL,port_b

OR AL,00000011b

OUT port_b,AL

RET

Gateon ENDP

Gateoff PROC; сброс GATE 2 в «0»

IN AL,port_b

AND AL,11111100b

OUT port_b,AL

RET

Gateoff ENDP

Cls PROC NEAR; очистка дисплея

XOR CX,CX

MOV DX,184fh

MOV AX,0600h

MOV BH,7

INT 10h

RET

Cls ENDP

Intpit PROC FAR; обработчик прерывания от таймера (по каналу 0)

PUSH AX

PUSH BX

PUSH ES

INC DS:cnt; увеличение счетчика

IN AL,port_b

TEST AL,00100000b; OUT 2 установлен в «1»?

MOV AL,one

JNZ skip

MOV AL,nul

Skip: LES BX,DS:vard

MOV ES:[BX],AL

INC DS:vdisp

INC DS:vdisp

MOV AL,20h

OUT 20h,AL

POP ES

POP BX

POP AX

IRET

Intpit ENDP

Setint PROC; установка обработчика и частоты канала 0

PUSH DS

MOV AX,3508h

INT 21h

MOV oldtimip,BX

MOV AX,ES

MOV oldtimcs,AX

LDS DX,intpitvec

MOV AX,2508h

INT 21h

MOV AL,00110110b

OUT pitrc,AL

MOV AX,clktm/freqtm

OUT pitch0,AL

MOV AL,AH

OUT pitch0,AL

POP DS

RET

Setint ENDP

Restint PROC; восстановление обработчика и частоты канала 0

PUSH DS

MOV AL,00110110b

OUT pitrc,AL

XOR AL,AL

OUT pitch0,AL

LDS DX,oldvect

MOV AX,2508h

INT 21h

POP DS

RET

Restint ENDP

prg_cod ENDS

END main

 

Лабораторная работа №8

 

ИССЛЕДОВАНИЕ АЦП ПОСЛЕДОВАТЕЛЬНОГО СЧЕТА С ПОМОЩЬЮ ЛАБОРАТОРНОГО СТЕНДА

 

 

1. Цель и задачи работы

 

Целью работы является изучение функционирования АЦП последовательного счета и параллельного порта ПЭВМ, приобретение навыков экспериментального получения статической характеристики АЦП.

 

2. Теоретические положения

Большинство сигналов, с которыми приходиться иметь дело, являются аналоговыми. Это связано с тем, что сигнал является отображением некоторого физического процесса, а почти все физические процессы непрерывны по своей природе. Сигнал, дискретизированный по времени и по уровню, называется цифровым. Для преобразования аналоговых сигналов в цифровые служат аналого-цифровые преобразователи (АЦП) [1].

Структурная схема АЦП последовательного счета приведена на рис.1 [2]. Она содержит компаратор, при помощи которого выполняется сравнение входного напряжения с напряжением обратной связи. На прямой вход компаратора поступает входной сигнал Uвх, а на инвертирующий — напряжение обратной связи U2. От генератора тактовых импульсов G импульсы U1 поступают на счетчик CT, который управляет работой цифро-аналогового преобразователя (ЦАП), имеющего функциональное обозначение “ #/L “. В результате последовательного увеличения выходного кода счетчика происходит ступенчатое увеличение выходного напряжения U2 ЦАП.

Рис. 1. Функциональная схема АЦП последовательного счета

 

Когда выходное напряжение ЦАП сравняется с входным напряжением, произойдет переключение компаратора с высокого уровня на низкий и по фронту его выходного сигнала U3, который может использоваться в качестве выходного сигнала синхронизации RD, счетчик сбрасывается. Одновременно спад этого сигнала служит для записи предыдущего значения счетчика в итоговый регистр RG. Выходной код, соответствующий равенству Uвх =U2 снимается с шины данных D.

Рис.2. Графики процесса преобразования

Графики, иллюстрирующие процесс преобразования напряжения в цифровой код, приведены на рис. 2. Из этих графиков видно, что время преобразования ТПР переменное и зависит от уровня входного сигнала. При числе двоичных разрядов счетчика равном п, и периоде следования счетных импульсов Т максимальное время преобразования можно определить по формуле:

ТпрMAX =(2n-1)T. (1)

Так, например, при n=8 разрядов и Т=1мкс (т.е. при тактовой частоте 1 МГц) максимальное время преобразования равно

ТпрMAX = (28-1) = 255 мкс,

Уравнение преобразования АЦП последовательного счета можно записать в виде:

kDU=Uвх,

где 0<k<n — число ступеней до момента сравнения, DU =h — значение одной ступени, т. е. шаг квантования входного напряжения Uвх.

Для ввода оцифрованной информации с АЦП в персональный компьютер можно использовать параллельный порт [3, 4]. В состав IBM-совместимых компьютеров входит контроллер параллельного интерфейса, основное назначение которого заключается в подключении принтера. BIOS поддерживает до 3 параллельных портов, которые определяются в процессе прохождения теста после включения питания (POST). Адрес регистра данных порта записывается начиная с ячейки 0000:0408h и ему присваивается имя LPT1-LPT3. (Этот адрес высвечивается на экране при загрузке компьютера).

Структурная схема контроллера параллельного порта имеет вид, показанный на рис.3. Цифрами обозначены номера выводов параллельного порта компьютера.

 
 

Регистр данных – 8-ми разрядный регистр, доступный по чтению и записи, предназначен для записи и чтения данных длинной в байт. Порядок передачи зависит от режима обмена (режим совместимости или расширенный режим).

Биты D7-D0 определяют значения передаваемого или считываемого байта информации. Битам регистра соответствуют контакты с 9 по 2 в 25-ти штырьковом разъеме.

В режиме совместимости запись в этот регистр приводит к немедленной выдаче переданных значений в выходную линию. В двунаправленном режиме передача значения в линию происходит только если в регистре управления бит DB=0, т.е. установлен режим записи. Иначе происходит только сохранение записанного байта. Если DB=0, то при чтении из регистра возвращается последнее записанное значение. Если DB=1, то считывается значение из линии.

Регистр состояния. – доступен только для чтения. Он имеет следующий формат:

D7 D6 D5 D4 D3 D2 D1 D0
BUSY ACK PE SEL ERR IRQS Резерв

BUSY – инвертированное состояние линии «занято» (0 – занято, 1 – свободно);

ACK – инвертированное состояние готовности к приему очередного байта (0 – готово, 1 – не готово);

PE – текущий сигнал от принтера о состоянии бумаги. (1 – “paper end”);

SEL – текущее состояние сигнала «выборка» (Select) (1 – устройство выбрано).

ERR – инвертированное состояние ошибки в устройстве. (0 – ошибка).

IRQS=0 – устройство подтвердило прием предыдущего байта информации сигналом ACK.

Регистр управления. – доступен только для записи и имеет следующий формат:

D7 D6 D5 D4 D3 D2 D1 D0
Резерв DIR IRQE SELIN INIT AFD STRB

DIR – задание типа операции при работе в расширенном режиме (0 – запись, 1 – чтение);

IRQE – управление прерыванием. 1 – порт посылает прерывание при выработке сигнала ACK со стороны устройства;

SELIN – управление состоянием сигнала выборки устройства (Select In). 1 – устройство выбрано (соответствует линии 17 разъема);

INIT – управляет инвертированным состоянием сигнала инициализации устройства (Init). 0 – инициализация принтера;

AFD – управляет состоянием сигнала «автоматический прогон строки» (Automatic Feed XT). 1 – после печати каждой строки принтер будет переходить на новую строку;

STRB – управляет синхронной передачей данных в устройство. При 1 передаваемые данные могут считываться с линии данных.

Обычно адресация регистров параллельного порта следующая: регистр данных - 378h; регистр состояния - 379h; регистр управления - 37Ah.

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

3. Оборудование

 

Объектом исследования является лабораторный стенд АЦП последовательного счета, смонтированный в виде контрольной платы на базе стандартного устройства УМ–16ПС. Средствами исследования являются язык программирования и персональная ЭВМ с операционной системой, поддерживающей реальную DOS (не Windows XP!), электронно-лучевой осциллограф.

 

 

4. Задание на работу

Ознакомиться с принципом действия АЦП последовательного счета, с функционированием параллельного порта, снять статическую характеристику АЦП.

 

5. Порядок выполнения работы

 

5.1 Внимательно ознакомиться с теоретическими сведениями.

5.2 Изучить функциональную схему АЦП (рис.1) и принципиальную схему платы АЦП (рис.4).

 

Рис.4 Принципиальная схема АЦП

5.3. Изучить и набрать программу для чтения параллельного порта ПЭВМ (приложение) и подключив стенд к компьютеру, запустить ее на выполнение.

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

5.5 Измерив период сигнала тактового генератора осциллографом, сделать выводы о быстродействии АЦП и системы в целом.

 

6. Оформление отчета

 

Отчет выполняется в тетради или на листах формата А4 и должен содержать постановку задачи, программу для считывания данных из параллельного порта, результат счета и сообщения об ошибках в процессе отладки программы.

 

7. Контрольные вопросы

 

7.1. Как осуществить дискретизацию входного сигнала по времени?

7.2. Как осуществляется дискретизация входного сигнала по уровню?

7.3. Что такое цифровой сигнал?

7.4. Из каких последовательных операций состоит преобразование аналогового сигнала в цифровой?

7.5. Каков принцип действия АЦП последовательного счета? В чем его главный недостаток?

7.6. Какие регистры входят в состав параллельного порта ПЭВМ?

7.7. Чем отличаются режим совместимости и расширенный режим работы параллельного порта?

Библиографический список

1. Федорков Б.Г., Телец В.А. Микросхемы АЦП: функционирование, параметры, применение. - М. Энергоатомиздат, 1990. – 320 с.

2. Прянишников В.А. Электроника: Курс лекций.-2-е изд. исп. и доп.- СПб.: КОРОНА принт, 2000.- 416 с.

3. Аппаратура персональных компьютеров и ее программирование IBM PC XT/AT и PS/2/Вегнер В.А., Спесивцев А.В. и др. – М.: Радио и связь, 1995. – 224с.

 

 

Приложение

#include <stdio.h>

#include <conio.h>

#define lptN 0х378h

void init_lpt_read()

{ asm{mov dx,lptN

Inc dx

Inc dx

In al,dx //0010 0011

Or al,0x20

out dx,al}; };

unsigned char get_byte_from_lpt()

{ unsigned char c;

asm{mov dx,lptN

In al,dx

mov c,al };

return c; };

void stop_lpt_read()

{ asm{mov dx,lptN

Inc dx

Inc dx

In al,dx

Mov ah,0x20

Not ah

and al,ah // 00001011 out dx,al }; };

void main(void)

{ clrscr();

while(kbhit())getch();

init_lpt_read();

while(!kbhit())

{ printf("lpt get byte = %d \r",get_byte_from_lpt()); };

stop_lpt_read();

while(kbhit())getch();

}

 

Лабораторная работа №9

 

ИССЛЕДОВАНИЕ АЦП ПОСЛЕДОВАТЕЛЬНОГО СЧЕТА МЕТОДОМ

ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ

 

1. Цель и задачи работы

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

 

2. Теоретические положения

При аналого-цифровом преобразовании по методу последовательного счета время дискретизации может быть достаточно большим и, как отмечалось в лабораторной работе №7, может меняться при каждом отсчете.

При дискретизации сигнала появляется погрешность, обусловленная конечным временем одного преобразования и неопределенностью момента времени его окончания. В результате вместо равномерной дискретизации получаем дискретизацию с переменным периодом. Такая погрешность называется апертурной. Если считать, что апертурная погрешность определяется скоростью изменения снгнала, то ее можно определить по формуле

Du a (t n) = u‘(t n) Тпр (1)

где Тпр время преобразования (апертурное время, см. лаб. работу №7):

ТпрMAX =(2n-1) T; (2)

u‘(t n) — скорость изменения сигнала в момент времениt n, т. е.

u‘(t n) = (du‘(t n)/dt)| t=tn;

T - период счетных импульсов.

Для гармонического сигнала u(t)= Um sinwt максимальное значение апертурной погрешности получим при условии u’(t)= w Um, т. е. при sinwt=1. Если считать, что АЦП преобразует сигнал в полном диапазоне входных напряжений от минус Um до плюс Um, то максимальная относительная апертурная погрешность в этом случае будет иметь значение, которое получим на основе выражений (1) и (2)

da = Du a/ 2 Um = w TпрMAX /2 (3)

Для того, чтобы АЦП мог выдавать адекватные результаты величина относительной погрешности не должна превышать единицы младшего разряда цифрового кода:

da £ 1/ (2 n -1). (4)

Задавшись максимальным временем преобразования, вычисленным для АЦП последовательного счета TпрMAX, из соотношений (3) и (4) можно получить максимально допустимую круговую частоту входного гармонического сигнала:

w M = 2/ (TпрMAX (2 n -1)).

Для АЦП последовательного счета в соответствии с формулой (2) получим:

w M = 2/ (T (2 n -1)2),

где Т - период счетных импульсов (Т = 1/ fT). Таким образом, в данном преобразователе максимальная круговая частота входного синусоидального сигнала, отрабатываемая преобразователем, прямо пропорциональна удвоенному значению тактовой частоты и обратно пропорциональна квадрату максимального цифрового кода, выдаваемого преобразователем.

Имитационное моделирование на микроуровне позволяет провести детальное исследование работы каждого функционального узла преобразователя. Недостатком метода является лишь то, что из-за малого шага времени требуется большое число повторений вычислений групп операторов, описывающих процесс преобразований.

В данной работе моделируется однополярный аналого-цифровой преобразователь, выполненный по схеме в соответствии с лабораторной работой №7, то входной гармонический сигнал, должен иметь только положительные значения. Поэтому входная синусоида смещена на величину Um, т.е. может изменяться в пределах от 0 до 2 Um, амплитуда её изменения а берется несколько меньшей, чем Um.

Алгоритм имитационного моделирования преобразователя аналоговой информации в цифровой код на основе последовательного счета на микроуровне приведен на рис.1.

 

3. Объект исследования

Объектом исследования является алгоритм имитационного моделирования непосредственного преобразования аналоговой информации в цифровой код. Средством исследования является язык программирования высокого уровня.

 

4. Задание на работу

Ознакомиться с описанием алгоритма имитационного моделирования. Составить программу решения задачи на языке высокого уровня и ввести ее в машину. Сделать выводы о характеристиках АЦП по результатам исследования. В зависимости от номера группы тактовую частоту выбрать из соотношения fr= 250000Nr, где Nr - номер группы 1,2,3,4.

 

Величину амплитуды входного сигнала выбрать из соотношения где Nn - порядковый номер студента в группе; NC - число студентов в группе; Um =10 В; разрядность преобразователя , где Nr - номер группы.

 

5. Порядок выполнения работы

 

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

5.2 Заменить каждый оператор алгоритма оператором на языке высокого уровня. Ввести программу в машину и запустить ее на решение.

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

 

6. Оформление отчета

 

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

 

7. Контрольные вопросы

7.1 Что такое апертурное время и апертурная ошибка работы АЦП?

7.2 Как осуществляется на микроуровне дискретизация входного сигнала по уровню?

7.3 Что является начальными параметрами в работе преобразователя?

7.4 Что ограничивает максимальную круговую частоту входного сигнала преобразователя?

7.5 Какие основные группы вычислений содержит алгоритм имитационного моделирования работы преобразователя?

7.6 Как вычисляется величина относительной апертурной ошибки работы преобразователя?

7.7 Как формулируется теорема отсчетов для аналого-цифрового преобразования?

 

Библиографический список

4. Федорков Б.Г., Телец В.А. Микросхемы АЦП: функционирование, параметры, применение. - М. Энергоатомиздат, 1990. – 320 с.

5. Прянишников В.А. Электроника: Курс лекций.-2-е изд. исп. и доп.- СПб.: КОРОНА принт, 2000.- 416 с.

 

 
 

Рис.4. Принципиальная электрическая схема платы АЦП

 

4. Гук. М. Аппаратные средства IBM PC. - СПб.: Питер, 1999.

 

Приложение

 

#include <stdio.h>

#include <conio.h>

#define lptN 0х378h

void init_lpt_read()

{ asm{mov dx,lptN

Inc dx

Inc dx

In al,dx //0010 0011

Or al,0x20

out dx,al}; };

unsigned char get_byte_from_lpt()

{ unsigned char c;

asm{mov dx,lptN

In al,dx

mov c,al };

return c; };

void stop_lpt_read()

{ asm{mov dx,lptN

Inc dx

Inc dx

In al,dx

Mov ah,0x20

Not ah

and al,ah // 00001011 out dx,al }; };

void main(void)

{ clrscr();

while(kbhit())getch();

init_lpt_read();

while(!kbhit())

{ printf("lpt get byte = %d \r",get_byte_from_lpt()); };

stop_lpt_read();

while(kbhit())getch();

}

 

Лабораторная работа №10

 

 

ИССЛЕДОВАНИЕ АЦП С КОНВЕЙЕРНЫМ ПРЕДПРОЦЕССОРНЫМ УСТРОЙСТВОМ

 

1. Цель и задачи работы

 

Целью работы является проведение исследования алгоритма имитационного моделирования непосредственного преобразования аналоговой информации в цифровой код на микроуровне.

 

2. Теоретические положения

Большинство сигналов, с которыми приходиться иметь дело, являются аналоговыми. Это связано с тем, что сигнал является отображением некоторого физического процесса, а почти все физические процессы непрерывны по своей природе.

Сигнал, дискретизированный по времени и по уровню, называется цифровым. В конвейерном преобразователе аналоговой информации в цифровую аналоговая информация на начальном этапе преобразуется в широтно-импульсно модулированный (ШИМ) сигнал с последующим целочисленным счетом временных интервалов. Структурная схема преобразователя показана на рис. 1. Поступающий на вход аналоговый сигнал U на суммирующем устройстве складывается с симметричной пилой U п, усиливается и ограничивается, преобразуясь тем самым в широтно-импульсный сигнал. С помощью ждущего синхронного генератора осуществляется привязка переднего и заднего фронта ШИМа к синхронному импульсу U 0.

 

Выходы ждущего синхронного генератора одиночных импульсов управляют работой асинхронного RS-триггера TG, который с помощью схем совпадения и импульса U 3 формирует импульсы счета +1 и (-1), поступающие на вход реверсивного счетчика.

 

Сигнал пилы формируется с помощью делителя частоты, на выходе которого включен триггер со счетным входом и симметричным выходом, подключенным к сглаживающему фильтру, который из симметричного прямоугольного сигнала выделяет пилу.

Синхронизация работы преобразователя осуществляется по выходу ждущего синхронного генератора G 1, срабатывающего по переднему фронту ШИМа, и вспомогательных импульсов U 1 и U 2, формирующих с помощью схем совпадения сигнал записи информации в итоговый регистр RG и сброса счетчика в ноль для подготовки его к новому счету. Временная диаграмма основных сигналов преобразователя с примером счетчика на 3 разрядах приведена на рис.2.

Алгоритм имитационного моделирования конвейерного преобразователя аналоговой информации в цифровой код на основе непосредственного преобразования на микроуровне приведен на рис.3. Этот алгоритм описывает процесс преобразования постоянного аналогового сигнала U в цифровой код до получения первого результата счета. Алгоритм подпрограммы генерации исполнительных импульсов приведен на рис. 4.

 

Приведенный алгоритм позволяет рассмотреть работу всех функциональных узлов устройства, приведенных на рис.1. В связи с малым шагом дискретизации процесса Dt в алгоритме рассматривается один цикл преобразования постоянного аналогового сигнала в целочисленный цифровой сигнал.

Период дискретизации сигнала tд (время, в течение которого происходит одно преобразование) – период пилообразного напряжения вычисляется по формуле:

 

tд=4(2n-1) / f Т,

где f Т – тактовая частота устройства (сигнал CLK на рис.2);

n – разрядность преобразователя.

Коэффициент наклона пилы вычисляется исходя из ее амплитуды А и величины периода дискретизации tд.

3. Объект исследования

 

Объектом исследования является алгоритм имитационного моделирования непосредственного преобразования аналоговой информации в цифровой код. Средством исследования является язык программирования высокого уровня.

 

4. Задание на работу

 

Ознакомиться с описанием алгоритма имитационного моделирования. Составить программу решения задачи на языке высокого уровня и ввести ее в машину.

В зависимости от номера группы тактовую частоту выбрать из соотношения fr= 250000Nr,где Nr - номер группы 1,2,3,4. Величину входного сигнала выбрать из соотношения где Nn - порядковый номер студентов в группе: NC - списочный состав группы; А=10; разрядность преобразователя ,где Nr - номер группы.

 

5. Порядок выполнения работы

 

Внимательно ознакомиться с алгоритмами решения задачи: ввести обозначения физических переменных алгоритма (переменные на языке высокого уровня). Заменить каждый оператор алгоритма оператором на языке высокого уровня. Ввести программу в машину и запустить ее на решение.

 

6. Оформление отчета

 

Отчет выполняется на листах формата А4 и должен содержать постановку задачи, программу решения ее, результат счета и сообщения об ошибках в процессе отладки программы.

 

7. Контрольные вопросы

 

1.Как осуществить дискретизацию входного сигнала по времени?

2.Как осуществляется дискретизация входного сигнала по уровню?

3.Что такое цифровой сигнал?

4.Из каких последовательных операций состоит преобразование аналогового сигнала в цифровой на уровне микромодели?

5.Что является входной информацией при работе алгоритма?

6. Что является выходной информацией при работе алгоритма?

 

Лабораторная работа №11

 



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 401; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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