ЛЕКЦИЯ 30. КОМБИНАЦИОННЫЕ УСТРОЙСТВА

 

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

Разрабатывать комбинационные устройства целесообразно в следующей последовательности:

– составляется таблица истинности;

– с помощью карты Карно находится минимизированное выражение логической функции;

– составляется логическая схема.

Рассмотрим принцип построения некоторых комбинационных устройств.

 

1. ШИФРАТОРЫ

 

Шифраторы предназначены для преобразования цифровой информации из десятичной системы счисления в двоичную. Для примера рассмотрим принцип построения схемы преобразования цифр от "0" до "9" в код 8-4-2-1. У такой схемы десять входов и четыре выхода. Наличие на одном из входов сигнала "1" приводит к появлению на выходах соответствующей кодовой комбинации.

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

Из таблицы видно, что функция (колонка под ) равна 1 в тех случаях, когда на вход поступает информация о цифрах 1; 3; 5; 7 или 9. Поэтому можно записать

.

Таблица 30.1

№   Код 1 из10 Код 8-4-2-1
х0 х1 х2 х3 х4 х5 х6 х7 х8 х9 Q4 Q3 Q2 Q1

 

Теперь очевидно, что

Этап минимизации в данном случае отпадает, т. к. все функции представляют собой элементарные логические суммы. Схема шифратора, выполненная на элементах "ИЛИ", приведена на рис. 30.1, а.

Выходным кодом шифратора может быть любой другой код. Принцип построения остается прежним. Управляющим сигналом может быть "0". Тогда схема может быть построена на элементах "И".

Шифраторы выпускаются в микросхемном исполнении, например, КМ555 ИВ1, ИВ2, ИВ3. Пример схемного обозначения КМ555 ИВ1 приведен на рис. 30.1, б.

Управляющий сигнал микросхемы – "0", поэтому все входы и выходы инверсные. Вход – управляющий. Если на этом входе присутствует логическая "1", то все входы закрыты. Выходы и – контрольные. Они выдают информацию о состоянии схемы в данный момент.

 

2. ДЕШИФРАТОРЫ, ПРЕОБРАЗОВАТЕЛИ КОДОВ,

КОММУТАТОРЫ

 

Дешифраторы предназначены для преобразования цифровой информации из двоичной системы счисления в десятичную. Для примера рассмотрим принцип построения схемы преобразования кода 8-4-2-1 в цифры. У такой схемы четыре входа (по числу разрядов кода) и десять выходов. Сигнал «1» появляется только на том выходе дешифратора, номер которого соответствует виду входной кодовой комбинации.

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

Для четырехразрядного кода карта Карно должна иметь 16 квадратов. Таблицей 30.1 заданы (определены) значения только десяти комбинаций. Значит, для шести квадратов карты Карно функция не определена, и их заполняют индексом «Х». В процессе минимизации вместо «Х» можно принимать «1», что значительно упрощает работу.

Дешифратор имеет 10 выходов. Значит, нужно сформировать десять

функций F. В общем, для каждой функции нужна своя карта Карно. Но в данном случае можно воспользоваться одной картой для всех десяти функций. На рис. 30.2, а и 30.2, б приведены карты Карно для функций F0 и F8, а на рис. 30.2, в – обобщенная карта Карно. На ней контур каждой функции обозначен соответствующей цифрой.

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

; ; ;

; ; ;

; ; ;

.

Используя полученные выражения, можно построить схему дешифратора на элементах "НЕ" и "И". Но на практике такую схему чаще выполняют на элементах "НЕ" и "И-НЕ". При этом только на дешифрованном выходе будет уровень логического нуля (транзистор открыт), а на остальных выходах – уровень логической "1" (транзистор закрыт). Такая схема потребляет меньшую мощность.

В микросхемном исполнении дешифраторы выпускаются в составе всех серий цифровых интегральных микросхем, например, К155 ИД1, КМ555 ИД18, 530 ИД14 и др. Условное графическое обозначение микросхемы К155 ИД3 приведено на рис. 30.3, а. Этот дешифратор имеет 4 входа и 16 выходов. Входы и - управляющие. Преобразование осуществляется только при низком уровне на обоих управляющих входах.

Преобразователи кодов (ПК) предназначены для преобразования одного двоичного кода в другой, например, кода Грея в код 8-4-2-1. Принцип построения ПК аналогичен принципу построения шифраторов и дешифраторов. В микросхемном исполнении ПК обозначают индексами ПР.

Мультиплексоры и демультиплексоры образуют группу коммутаторов. Они служат для избирательного переключения сигналов (каналов). Мультиплексоры передают один из "n" входных сигналов на выход устройства. Номер выбранного входа задается адресными сигналами (рис. 30.3, б). Например, трехзарядный адресный сигнал может управлять переключением восьми входов.

Демультиплексор (рис. 30.3, в) передает входной (цифровой) сигнал на один из "n" выходов. Номер выхода задается адресными сигналами.

3. СУММАТОРЫ

 

Сумматоры предназначены для выполнения арифметических действий с двоичными числами (сложения, вычитания, умножения и деления) и относятся к арифметическим устройствам. Арифметические устройства воспринимают переменные "0" и "1" как цифры и выполняет действия над ними по законам двоичной арифметики:

(30.1)

В (30.1) последнее действие предполагает, что "1" переносится в старший разряд. Такие действия реализует логическая ячейка "исключающее ИЛИ". Ее схемное обозначение приведено на рис. 30.4, а. На рисунке и i-е разряды складываемых чисел, – сумма.

Суммирование двоичных чисел выполняется поразрядно, от младшего разряда к старшему. Сумма может быть записана одним числом - (т.е. "0" или "1") или двумя – Pi; Si. Функция Рiназывается переносом в старший разряд.

Рассмотрим пример. Выполним сложение двух цифр: 7 + 5

Важнейшая из арифметических операций – сложение. Вычитание – это сложение, в котором вычитаемое вводится в дополнительном коде. Дополнительный код образуется как разность . Например, цифра 7 в прямом коде имеет вид 0111. Ее дополнительный код образуется как разность 16 – 7 = 9, т. е . 1001. Тогда вычитание можно продемонстрировать следующими примерами:

. Или ; .

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

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

Простейшим суммирующим элементом является одноразрядный полусумматор. Он имеет два входа – А и В для двух слагаемых и два выхода – S и P (рис. 30.4, б). Полусумматор обозначается буквами HS (half-sum). Таблица истинности полусумматора приведена на рис. 30.4, в. Таблица показывает, что функция S полностью совпадает с действиями (30.1). Поэтому можно записать:

.

Отсюда следует, что в состав полусумматора должны входить два элемента: "исключающее ИЛИ" и "И" (рис. 30.4, г).

 

Полный одноразрядный сумматор имеет три входа и два выхода (рис. 30.5, а). На третий вход подается результат переноса предыдущего разряда. На рис. 30.5, б приведена таблица истинности сумматора. Схема одноразрядного сумматора содержит два полусумматора и элемент ИЛИ (рис. 30.5, в).

На рис. 30.6, а приведена схема четырехразрядного параллельного сумматора с последовательным переносом. Число сумматоров равно числу разрядов. Выход переноса каждого предыдущего сумматора соединен со входом переноса последующего сумматора. Вход переноса сумматора первого разряда заземлен (установлен логический "0"). Слагаемые и складываются во всех разрядах одновременно, а перенос поступает с окончанием сложения в предыдущем разряде Pi-1.

Сумматоры выпускаются в виде готовых изделий в составе многих серий цифровых микросхем. Например, К155 ИМ3 – четырехразрядный параллельный сумматор (рис. 30.6, б). Вход переноса имеется только у младшего разряда, а выход только у старшего Р4. Это позволяет наращивать микросхемы и использовать их для выполнения различных арифметических операций.

4. ЦИФРОВЫЕ КОМПАРАТОРЫ

 

Цифровые компараторы предназначены для сравнения двух чисел, заданных в двоичном коде одинаковой разрядности. Компараторы определяют равенство чисел, т. е. А = В и неравенство, т. е. A > B или A < B и имеют три выхода и 2·n входа. Выпускаются цифровые компараторы в виде готовых микросхем, например, К555 СП1 – четырехразрядный компаратор.

 

5. АРИФМЕТИКО – ЛОГИЧЕСКИЕ УСТРОЙСТВА

 

Арифметико – логические устройства (АЛУ) позволяют выполнять арифметические и логические операции над двумя n – разрядными кодовыми комбинациями в соответствии с заданной программой. Обычно n равно четырем, восьми или шестнадцати. Выпускаются АЛУ в виде самостоятельных БИС, но могут входить в состав других более сложных ИМС.

Условное обозначение АЛУ приведено на рис.30.7. Символами А и В обозначены входные сигналы (кодовые комбинации). Разряды соответствующих кодовых комбинаций обозначены цифрами, например, А1, А2, А3, А4

или В1, В2, В3, В4. Символами М, S0, S1, S2, S3 обозначены сигналы управляющих входов. Сочетание их значений определяет, какая именно операция может быть выполнена над входными сигналами. Символом Р0 обозначен сигнал переноса из внешней цепи. При выполнении арифметической операции он добавляется в младший разряд АЛУ. На выходе АЛУ формируется сигнал переноса из старшего разряда – Р4. Выходы F1, F2, F3, F4 представляют результаты операций в каждом разряде.

При управляющем сигнале М = 0 АЛУ выполняет арифметические действия над входными числами А и В:

сложение А и В,

вычитание В из А,

сложение или вычитание этих чисел с учетом единицы младшего разряда,

увеличение или уменьшение числа А на единицу,

пересылка чисел А и В со входа на выход,

сдвиг чисел на один разряд влево (это эквивалентно умножению на два) или вправо (это эквивалентно делению на два).

Какая именно операция выполняется, определяет комбинация управляющих сигналов S0, S1, S2, S3.

При М = 1 АЛУ выполняет логические операции над кодовыми комбинациями А и В. Всего может быть выполнено 16 логических операций. Полный перечень операций приводится в справочных данных на АЛУ. Каждая операция поставлена в соответствие с кодовой комбинацией управляющих сигналов S0 ÷ S3.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАЧИ

 

30.1. Приведите определение комбинационных устройств и алгоритм их построения.

30.2. Составьте выражения для выходных булевых функций Q1 ÷ Q4 шифратора цифр в код 8-4-2-1, если управляющим сигналом является “0”.

30.3. Составьте таблицу истинности и выражения для выходных булевых функций F6 и F9 преобразователя кода 8-4-2-1 в код семисегментного индикатора цифр. Сегменты индикатора обозначить в соответствии с предлагаемой схемой.

30.4. По таблице истинности одноразрядного сумматора (рис. 30.5, б) составьте функции Si и Рi+1. Составьте схему, реализующую эти функции на логических элементах НЕ, И, ИЛИ.

30.5. Составьте СДНФ выходной булевой функции F для мультиплексора на восемь информационных х0÷х7 и три адресных А1, А2, А3 входов.

30.6. Демультиплексор имеет информационный вход х, три адресных входа А1, А2, А3 и восемь выходов F0÷F7. Составьте булевы функции для выходов F3, F5 и F7. Предложите вариант реализации функций демультиплексора дешифратором.

30.7. Приведите назначение и условное обозначение АЛУ. Поясните назначение управляющих входов, а также входа Р0.

 

 

ЛЕКЦИЯ 31. ТРИГГЕРЫ

 

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

 

1. ОБЩИЕ СВЕДЕНИЯ И КЛАССИФИКАЦИЯ ТРИГГЕРОВ

 

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

по числу информационных входов: с одним входом, с двумя входами и более;

по моменту срабатывания: асинхронные и синхронные триггеры;

по функциональному назначению: триггеры с раздельным запуском (RS-типа), счетные (Т-типа), комбинированные (RST-типа), универсальные (JK-типа), задержки (D-триггер) и др.;

по типу входного устройства: триггеры со статическими входами, триггеры с динамическими входами.

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

Все триггеры имеют два выхода – прямой "Q" и инверсный " ". Информация на одном выходе является инверсией информации на другом. В основу построения триггеров положено применение логических элементов "ИЛИ - НЕ" или "И - НЕ" и обратных связей.

 

2. RS ТРИГГЕР НА ЭЛЕМЕНТАХ “ИЛИ – НЕ

 

Схема RS триггера на элементах "ИЛИ - НЕ" приведена на рис.31.1, а. На рис. 31.1, б показано его условное обозначение. Управление схемой осуществляется по уровню логической "1". Это значит, что когда на входах присутствует "0", т. е. R = 0, S = 0, состояние триггера не меняется. Уровень "0" является нейтральным.

Перед анализом работы схемы приведем логические действия элемента "ИЛИ - НЕ":

(31.1)

Пусть после включения питания на входах и выходах схемы установились состояния: R = 0; S = 0; Q = 1; . Уровень "1" с выхода Q поступает на вход С элемента Э2. На входе В по условию присутствует "0". Согласно (31.1), входные сигналы Э2 сформируют на его выходе уровень логического "0".

Этот уровень поступает на вход D элемента Э1. На входе А этого элемента также присутствует "0". Такие состояния, согласно (31.1), формируют на выходе Э1 уровень логической "1". Таким образом, состояние первого элемента поддерживает состояние второго и наоборот, т. е. это устойчивое состояние триггера.

Пусть в некоторый момент времени t1 на вход R поступает сигнал с логическим уровнем "1". Так как на входе D Э1 в это время присутствует уровень "0", то, согласно (31.1), уровень выхода Э1 скачком изменится с "1" до "0", т. е. Q = 0. Теперь на входы С и В элемента Э2 воздействует уровень логического "0". Поэтому выход Э2 скачком изменяет уровень от "0" до "1", т. е. 1.

Новое состояние триггера также устойчивое. Оно не изменится, когда на вход R будет воздействовать уровень логического "0". При поступлении на вход R новых "1" состояние триггера останется прежним. Оно изменится только в том случае, когда уровень "1" поступит на вход S. Таким образом, RS-триггер управляется поочередно по двум входам.

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

 

3. RS ТРИГГЕР НА ЭЛЕМЕНТАХ “И – НЕ

 

Схема RS-триггера на элементах "И - НЕ" приведена на рис. 31.2, а.

Его условное обозначение такое же, как и у триггера на элементах ИЛИ - НЕ. Собственно триггер собран на элементах Э3 и Э4. Элементы Э1 и Э2 выполняют роль инверторов. Логические действия для элементов "И - НЕ" имеют вид:

(31.2)

Управление схемой осуществляется по уровню логического "0". Уровень логической единицы для элементов "И - НЕ" является нейтральным. Допустим, что после включения питания на входах и выходах схемы установились следующие состояния: А = В = 1, Q = 1, 0. Уровень "1" с выхода Q поступает на вход С, а так как вход В = 1 по условию, то, согласно (31.2), на выходе элемента Э4 формируется уровень логического "0". Этот уровень поступает на вход D элемента Э3. Вход А этого элемента равен "1" по условию. По (31.2) эти уровни сформируют на выходе элемента Э3 логическую "1". Таким образом, состояние элемента Э3 поддерживает состояние элемента Э4 и наоборот, т. е. это состояние триггера устойчивое. Совершенно аналогично можно показать, что состояние А = В = 1, Q = 0, 1 также устойчиво.

Включение инверторов Э1 и Э2 позволяет изменить управляющий уровень входных сигналов, т. е. для входов S и R управляющим уровнем является "1", а нейтральным "0". Поэтому возможные состояния схемы рис. 31.2, а соответствуют таблице рис. 31.1, в. Согласно этой таблице, состояние входов S = R = 0 является нейтральным и позволяет триггеру сохранять память о последней из поступивших команд. Чтобы изменить состояние выходов триггера, необходимо на вход S или R подать "1". Состояние S = R = 1 недопустимо.

Триггеры по рис. 31.1, а и 31.2, а переходят в новое состояние сразу после поступления входного сигнала и поэтому называются асинхронными.

 

4. СИНХРОННЫЕ RS-ТРИГГЕРЫ

 

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

Синхроимпульс своим исходным (нулевым) значением блокирует (закрывает) информационные входы S и R. В этом случае триггер не реагирует на входные сигналы, сохраняя предыдущее состояние. Триггер воспринимает информацию на входах, когда значение синхронного импульса равно "1" и переходит в новое состояние на интервале среза синхроимпульса.

Схема синхронного RS-триггера приведена на рис. 31.2, б. На рис. 31.2, в показано его условное обозначение. Во всех случаях, когда С = 0 на выходах элементов Э1 и Э2 уровни 1, т. е. нейтральны для элементов Э3 и Э4 независимо от состояния входных сигналов S и R. В этом и заключается эффект блокирования входов.

При С = 1 сигналы на выходах элементов Э1 и Э2 становятся инверсными по отношению к сигналам на входах S и R. Их комбинация вызовет реакцию триггера в соответствии с таблицей

рис. 31.1, в. Например,

– если S = R = 0, то 1 и триггер сохраняет «память» о предыдущем состоянии;

– при S = 1, а R = 0, выходы 0; 1 и триггер переходит в состояние "1", т. е. Q = 1, 0;

– если S= 0, а R= 1, то 1, 0триггер переходит в состояние "0", т. е. Q = 0, 1.

Пример наглядно показывает, что для входов S, R и С управляющим уровнем является "1".

Кроме синхронных входов R и S синхронный триггер снабжается асинхронными входами SA и RA. Асинхронные входы позволяют задать триггеру определенное исходное состояние перед началом работы в синхронном режиме. При синхронном управлении триггером на входах SA и RA должен поддерживаться нейтральный уровень, т. е. "1".

5. УНИВЕРСАЛЬНЫЕ ТРИГГЕРЫ

Универсальные триггеры получены усложнением схемы RS триггера. Схемное усложнение позволило ликвидировать состояние неопределенности и увеличить число входов. Обозначаются универсальные триггеры символами JK, причем, вход J аналогичен входу S RS триггера, а вход K – входу R. Обычно схема имеет несколько (до трех) входов J и столько же входов K. Кроме того, JK-триггеры снабжаются установочными входами R и S. Эти входы асинхронные. При S = 1 триггер устанавливается в состояние . При R = 1 – .

Работа JK-триггера описывается таблицей рис. 31.3, а. Как и RS-триггер, JK-триггер сохраняет свое состояние при J = K = 0. Когда J = 1, триггер переходит в состояние . Если K = 1, – в состояние . При J = K = 1 начальное состояние триггера меняется на противоположное, т. е. . Это основное отличие JK от RS-триггера.

Условное обозначение JK-триггера показано на рис. 31.3,б, а временные диаграммы, поясняющие его работу, на рис. 31.3, в. Во время действия тактового импульса С = 1 на интервале вход J = 1. Поэтому в момент среза импульса С триггер переходит в состояние Q = 1. На интервале С = 0. Триггер не воспринимает входную информацию. На интервале второго тактового импульса вход К = 1. Поэтому в момент t4 триггер переключается в состояние Q = 0. Во время действия третьего синхроимпульса J = 0; K = 0. Триггер не меняет своего состояния.

Счетный Т-триггер реализует только четвертую строку таблицы рис.31.3, а. Таким свойством обладает JK-триггер, когда его входы J = K = 1. При таком включении входов триггер переключается в момент среза каждого тактового импульса. Отсюда следует, что счетный триггер имеет один тактовый вход, который обозначают символом «Т». Обозначение Т-триггера приведено на рис. 31.4, а. На рис.31.4, б приведены временные диаграммы, поясняющие его работу. Из диаграмм видно, что частота повторения импульсов на выходе Q триггера в два раза меньше частоты повторения импульсов на входе Т, т. е. Т-триггер делит частоту входных импульсов на 2. Счетные триггеры широко применяются в счетчиках, распределителях и делителях частоты.

D-триггер запоминает входную информацию в момент фронта синхроимпульса и хранит ее до следующего тактового импульса. D-триггер может быть выполнен на основе JK-триггера при включении на входе элемента "НЕ", обеспечивающего условие . Отсюда следует, что D-триггер имеет тактовый вход С и вход D. Его работа описывается второй и третьей строкой таблицы рис. 31.3, а, т. е. . Поэтому D-триггер является элементом памяти и находит широкое применение, в том числе в регистрах. Условное обозначение D-триггера и временные диаграммы, поясняющие его работу, приведены на рис. 31.5.

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

присвоены следующие индексы:

RS-триггеры – ТР;

JK-триггеры – ТВ;

D-триггеры – ТМ.

Например, микросхема К555 ТР2 содержит 4 RS-триггера. Микросхемы К555 ТВ6 и К555 ТВ9 включают в свой состав по два JK триггера каждая. Микросхемы позволяют путем внешних коммутационных изменений получить схемы, выполняющие функции RS, D и Т-триггеров.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАЧИ

 

31.1. Перечислите основные признаки классификации триггеров. Как разделяются триггеры по функциональному назначению?

31.2. Чем отличаются статические входы триггеров от динамических?

31.3. Можно ли управлять RS триггером, воздействуя управляющим сигналом только на один вход?

31.4. Чем отличаются RS триггеры на элементах ИЛИ – НЕ от RS триггеров на элементах И – НЕ?

31.5. Приведите таблицу истинности RS триггера. Какая из строк таблицы определяет свойства триггера как память?

31.6. В чем состоит суть синхронизации триггера и для чего она применяется?

31.7. Чем отличается JK триггер от RS триггера?

31.8. Нарисуйте схемы Т и D триггеров, реализованных на базе JK триггеров. Проведите анализ их работы по графикам напряжений на входе и выходе.

31.9. На рис 31.6, а приведена схема синхронного двухступенчатого RS триггера. Проведите анализ работы этой схемы. В чем заключается достоинство такого триггера?

31.10. На рис. 31.6, б приведена схема синхронного двухступенчатого RS триггера с перекрестными обратными связями. Какие функции выполняет такая схема?








Дата добавления: 2015-08-08; просмотров: 2561;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.086 сек.