Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Інші
Предмет:
Захист інформації
Група:
МК

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра “Захист інформації”  Вивчення внутрішніх модулів та режимів роботи AVR-мікроконтролерів Мета роботи – ознайомитись з роботою внутрішніх модулів (таймерів, компаратора, EEPROM), системою переривань та внутрішніми режимами роботи AVR-мікроконтролерів. Розширити навики створення та відладки програмно-апаратних засобів на основі мікроконтролерів сімейства AVR в програмах AVR Studio та Proteus 7. 1. ТЕОРЕТИЧНІ ВІДОМОСТІ 1.1. Обробка сигналів охоронних давачів аналоговим компаратором В охоронних системах, вимірювальній та спеціальній апаратурі для захисту інформації від витоку по технічних каналах використовуються давачі як з цифровими так і аналоговими виходами. Давачі з аналоговими виходами (п’єзоелектричні давачі руху, піроелектричні давачі диму і вогню, давачі розбиття скла, різні температурні давачі) формують на своєму виході неперервний сигнал, який в подальшому, як правило, оцифровується аналого-цифровим перетворювачем (АЦП) та фільтрується мікроконтролером (МК) для визначення умови спрацювання. Мікроконтролер AT90S2313 вбудованого АЦП немає, але в ньому присутній модуль аналогового компаратора, який може бути ефективно використаний для визначення умови спрацювання охоронного давача (мікроконтролери AVR сімейства Mega та деякі МК сімейства Classic мають вбудований 10-розрядний АЦП). Аналоговий компаратор МК дозволяє порівнювати значення напруг, присутніх на двох виводах: неінвертуючому - AIN0/PB0 та інтвертуючому - AIN1/PB1 МК. Результатом порівняння є логічне значення, яке може бути прочитане з програми. За результатами порівняння може бути згенероване переривання. Щоб вказані лінії могли використовуватись аналоговим компаратором, вони повинні бути сконфігуровані як входи. Крім того необхідно відключити внутрішні підтягуючі резистори, записавши логічний 0 у відповідні розряди регістра PORTB. Структурна схема аналогового компаратора наведена на рис. 1.  Рис. 1. Модуль аналогового компаратора МК AT90S2313 Управління компаратором і контроль його стану здійснюються з допомогою регістра вводу-виводу ACSR (Analog Comparator Status Register). Формат цього регістру:  ACD – включення компаратора (0 – включений, 1 – виключений). ACO – результат порівняння (вихід компаратора). ACI – прапорець переривання від компаратора; ACIE – дозвіл переривання від компаратора; ACIC – підключення компаратора до схеми захвату таймера/лічильника Т1 (1 – підключений, 0 – відключений); ACIS1:ACIS0 – умова виникнення переривання від компаратора. Якщо напруга на неінвертуючому виводі AIN0 більша за напругу на виводі AIN1, то результат порівняння буде рівний 1, інакше 0. Цей результат (стан виходу компаратора) зберігається в розряді ACO регістра ACSR. Розряд ACD відповідає за включення і виключення компаратора. Компаратор автоматично включається при подачі напруги живлення на МК. Щоб його виключити, розряд ACD слід встановити в 1. У відповідності з результатом порівняння схема компаратора може генерувати запит на переривання. Якщо стан виходу компаратора (розряд ACО) змінився заданим чином, встановлюється прапорець переривання АСІ регістра ACSR і генерується запит на переривання. Цей прапорець скидається апаратно при запуску підпрограми обробки переривання або програмно – записом в нього логічної 1. Для дозволу переривання необхідно встановити в 1 розряд АСІЕ регістра ACSR. Умова генерації запиту на переривання від компаратора визначається станом розрядів ACIS1:ACIS0. ACIS1 ACIS0 Умова  0 0 Будь-яка зміна виходу компаратора.  0 1 Зарезервовано.  1 0 Зміна стану виходу компаратора з 1 на 0.  1 1 Зміна стану виходу компаратора з 0 на 1.  Нехай наприклад, аналоговий давач формує на своєму виході сигнал в межах від 0 до 5 В. При досягненні напругою значення 3.2 В вважається, що відбулося спрацювання давача і потрібно включити тривогу. Відстежувати досягнення значення 3.2 В можна з допомогою наступної схеми (рис. 2).  Рис. 2. Задання порогу спрацювання аналогового компаратора Напруга на інвертуючому вході компаратора PB1/AIN1 рівна . Якщо прийняти, що  кОм,  кОм, то  В. Відповідно, якщо напруга на неінвертуючому вході PB0/AIN0 перевищить 3.2 В, стан компаратора зміниться з 0 на 1 і може бути згенероване відповідне переривання. В підпрограмі обробки цього переривання потрібно передбачити включення сигналу тривоги. 1.2. Обробка сигналів цифрових охоронних давачів Стан давачів з цифровим виходом може бути безпосередньо зчитаний з ліній вводу-виводу МК. Для цього потрібно періодично опитувати ці лінії, щоб визначити присутність на них логічного 0 або 1 (див. Лаб. роб. №1). Проте такий підхід має певні недоліки: 1) ядро МК постійно зайнято опитуванням ліній вводу/виводу і не може виконувати інші операції; 2) збільшується енергоспоживання, оскільки ядро МК постійно включене. Іншим способом контролю стану охоронних давачів з цифровими виходами є використання зовнішніх переривань, які можуть генеруватися в залежності від сигналів на виводах PD2/INT0, PD3/INT1. Умова генерування переривання визначається розрядами ISC01, ISC00 та ISC10, ISC11 регістра управління MCUCR.  Регістр управління МК MCUCR ISC01, ISC00 – визначають умову генерації зовнішнього переривання по виводу PD2/INT0: ISC01 ISC00 Опис  0 0 Запит на переривання генерується по низькому рівню на вході INT0  0 1 Зарезервовано  1 0 Запит на переривання генерується по спадаючому фронті на вході INT0  1 1 Запит на переривання генерується по зростаючому фронті на вході INT0  ISC11, ISC10 – визначають умову генерації зовнішнього переривання по виводу PD3/INT1: ISC11 ISC10 Опис  0 0 Запит на переривання генерується по низькому рівню на вході INT1  0 1 Зарезервовано  1 0 Запит на переривання генерується по спадаючому фронті на вході INT1  1 1 Запит на переривання генерується по зростаючому фронті на вході INT1  Для управління зовнішніми перериваннями призначений регістр маски глобальних переривань GIMSK (Global Interrupt MaSK)  INT1 – прапорець дозволу зовнішнього переривання INT1. Якщо в цьому розряді записана логічна 1 і прапорець І регістра стану SREG також встановлений в 1, то дозволяються зовнішні переривання з виводу INT1. Умова генерування переривання визначається розрядами ISC11, ISC10 регістра управління MCUCR. INT0 – прапорець дозволу зовнішнього переривання INT0. Якщо в цьому розряді записана логічна 1 і прапорець І регістра стану SREG також встановлений в 1, то дозволяються зовнішні переривання з виводу INT0. Регістр прапорців зовнішніх переривань GIFR (Global Interrupt Flags Register) призначений для індикації настання зовнішніх переривань.  INTF1 – прапорець зовнішнього переривання INT1. При виникненні на виводі INT1 події, яка викликає переривання, INTF1 встановлюється в 1. Якщо встановлений біт І регістра SREG і біт INT1 в регістрі GIMSK, відбувається перехід на вектор переривань за адресою 0x002. Прапорець скидається після виконання підпрограми обробки переривання, або програмно – записом в нього 1. INTF0 – прапорець зовнішнього переривання INT0. При виникненні на виводі INT0 події, яка викликає переривання, INTF0 встановлюється в 1. Якщо встановлений біт І регістра SREG і біт INT0 в регістрі GIMSK, відбувається перехід на вектор переривань за адресою 0x001. Прапорець скидається після виконання підпрограми обробки переривання, або програмно – записом в нього 1. Таким чином, якщо до виводу PD2/INT0 підключений давач з нормально розімкненими контактами, то умовою спрацювання давача є зміна сигналу на вході PD2/INT0 з логічної 1 на логічний 0 (спадаючий фронт - ). Щоб налаштувати МК на обробку цієї події потрібно встановити ISC01 в 1, ISC00 – в 0, а в регістрі GIMSK розряд INT0 має бути рівний 1. Налаштувавши таким чином ці виводи можна перевести МК в режим пониженого енергоспоживання. 1.3. Управління і обробка перериваннями в AVR-МК Переривання – це виклики спеціальних підпрограм, при настанні певних подій. В результаті переривання виконання програми зупиняється і відбувається перехід до відповідної підпрограми обробки переривання. Переривання припиняють нормальний хід програми для виконання пріоритетної задачі, що визначається внутрішніми або зовнішніми подіями МК. Відповідно переривання бувають внутрішніми і зовнішніми. Джерелами внутрішніх переривань є вбудовані модулі МК (напр. сторожовий таймер). Зовнішні переривання викликаються скидом (сигналом на виводі ) або сигналами на виводах INT0, INT1. В AVR-МК всім перериванням поставлений у відповідність власний вектор переривання – адреса в початковій області пам’яті програм, за якою розташовується команда переходу до підпрограми обробки переривання. МК AT90S2313 має багаторівневу систему пріоритетних переривань, а всього переривань – 11. Молодші адреси пам’яті програм визначені як вектори переривань. Менші адреси відповідають більш високому рівню пріоритету. Самий високий рівень у скиду, наступний у INT0 – зовнішнього запиту переривання і т.д. При виникненні переривання після збереження в стеці біжучого значення програмного лічильника РС відбувається виконання команди, розташованої за адресою відповідного вектора. Тому за цими адресами розташовуються команди відносного переходу до підпрограм обробки переривань. Останньою командою підпрограми обробки переривання повинна бути команда RETI, яка забезпечує повернення в основну програму і відновлення збереженого вмісту РС. № вектора Адреса Джерело Назва переривання  1 0х000 RESET Скид при включенні живлення, апаратний скид по виводу  і переривання від сторожового таймера.  2 0х001 INT0 Зовнішнє переривання 0.  3 0х002 INT1 Зовнішнє переривання 1.  4 0х003 Timer 1 CAPT1 Захват таймера/лічильника 1.  5 0х004 Timer 1 COMP1 Співпадіння таймера/лічильника 1.  6 0х005 Timer 1 OVF1 Переповнення таймера/лічильника 1.  7 0х006 Timer 0 OVF0 Переповнення таймера/лічильника 0.  8 0х007 UART, RX Прийом з послідовного порта завершений.  9 0х008 UART, UDRE Регістр даних послідовного порта пустий.  10 0х009 UART, TX Передача з послідовного порта завершена.  11 0х00A ANA COMP Аналоговий компаратор.   1.4. Обробка переривань Для дозволу переривань прапорець І регістру SREG повинен бути встановлений в 1, а дозвіл або заборона (маскування) окремих переривань проводиться встановленням або скидом відповідних розрядів регістрів масок переривань. Обробка переривань здійснюється наступним чином: 1) При виконанні умов, необхідних для генерації переривання, відповідний цьому перериванню прапорець встановлюється в 1, а прапорець І регістра стану SREG апаратно скидається, забороняючи тим самим обробку наступних переривань. Проте в підпрограмі обробки переривання цей прапорець можна встановити в 1 для дозволу вкладених переривань. 2) Якщо переривання дозволене, поточний вміст РС зберігається в стеці, а в РС завантажується адреса вектора відповідного переривання. При цьому прапорець переривання апаратно скидається. Якщо переривання заборонене (прапорець дозволу переривання скинутий), прапорець переривання залишається в стані логічної 1 до дозволу переривання або до програмного скиду цього прапорця. 3) Виконується підпрограма обробки переривання. 4) Виконується команда повернення з переривання RETI, при цьому прапорець І апаратно встановлюється в 1. 5) ЦП автоматично відновлює вміст РС зі стеку. Потім основна програма продовжує своє виконання з того місця, де вона була перервана. AVR-МК підтримують чергу переривань. Вона працює таким: якщо умови генерації одного або більше переривань виникають в той час, коли прапорець загального дозволу скинутий, відповідні прапорці встановлюються в 1 і залишаються в цьому стані до встановлення прапорця загального дозволу переривань. Після дозволу переривань виконується їх обробка у відповідності з пріоритетом. Час відгуку для будь-якого переривання становить 4 такти. На протязі перших двох тактів відбувається зберігання лічильника команд в стеці, а на протязі наступних двох виконується команда переходу до підпрограми обробки переривання. Якщо переривання відбудеться під час виконання команди, тривалістю декілька тактів то генерація переривання відбудеться тільки після виконання цієї команди. Повернення в основну програму також займає 4 такти. 1.5. Режими пониженого енергоспоживання Для охоронних давачів та портативної апаратури важливим є максимальний час роботи від вбудованих джерел живлення (батареї, акумулятори). Всі моделі МК сімейства Classic підтримують два “сплячих” режими: Idle і Power Down. Перехід в один з режимів пониженого енергоспоживання здійснюється командою SLEEP. При цьому прапорець SE (Sleep Enable) регістра управління MCUCR повинен бути рівний 1. Вибір конкретного режиму визначається станом прапорця SM (Sleep Mode) регістра управління MCUCR (див. регістр MCUCR): SM = 1 – Power Down, SM = 0 – Idle. Вихід з “сплячого” режиму може бути здійснений: В результаті переривання. В результаті скиду. 1.5.1. Режим Idle В цьому режимі припиняє роботу ЦП МК, а всі периферійні пристрої (таймери, компаратор, АЦП і т.д.), а також підсистема переривань продовжують функціонувати. Вихід з режиму Idle можливий як по зовнішньому так і по внутрішньому перериванню. Основною перевагою режиму Idle є швидка реакція на події, які пробуджують МК. 1.5.2. Режим Power Down В режимі Power Down робота всіх систем МК, включно з тактовим генератором припиняється. Єдиними вузлами, які продовжують працювати є сторожовий таймер і підсистема обробки зовнішніх переривань. Вихід з режиму Power Down можливий лише при зовнішньому (апаратному) скиді, скиді від сторожового таймеру (по тайм-ауту), виникненні зовнішнього переривання по рівню. Для виходу МК з режиму Power Down по зовнішньому перериванню тривалість активного сигналу (імпульс низького рівня) повинна перевищувати величину затримки скиду tOUT. Між настанням події, яка приводить до виходу МК з режиму Power Down, і початком роботи МК проходить певний час, на протязі якого тактовий генератор МК входить в робочий режим. По тривалості ця затримка рівна затримці скиду tOUT. Якщо сигнал, який викликав пробудження МК зникне раніше ніж МК перейде в робочий режим, обробник відповідного переривання викликаний не буде. 1.6. ЕEPROM Часто в процесі функціонування охоронної системи чи пристрою виникає потреба зберігати певні дані, які можуть змінюватись в процесі функціонування, в енергонезалежній пам’яті. Дані можуть представляти собою кількість настання певних подій, час настання події, ключі користувачів, результати вимірювання. Для цього можна використати зовнішню пам’ять, але якщо обсяг даних невеликий можна скористатися вбудованою пам’ятю МК. AVR-МК мають у своєму складі енергонезалежну пам’ять даних ЕEPROM, зокрема МК AT90S2313 містить ЕEPROM об’ємом 128 байт. Час запису байту в ЕEPROM лежить в діапазоні 2.5…4 мс і залежить від напруги живлення. Енергонезалежна пам’ять розташована в окремому адресному просторі, а доступ до неї здійснюється з допомогою певних регістрів вводу-виводу: регістра управління ЕEPROM EECR, регістра адреси ЕEAR і регістра даних ЕEDR. Регістр адреси ЕEPROM – ЕEAR (EEPROM Address Register) – задає адресу комірки в 128-байтовому просторі ЕEPROM до якої буде звертання.  Регістр даних ЕEPROM – EEDR (EEPROM Data Register) – містить дані, які потрібно записати в ЕEPROM або зчитати.  Регістр управління ЕEPROM – EEСR (EEPROM Control Register) – керує доступом до ЕEPROM.  Розглянемо призначення прапорців цього регістру. EERE (EEPROM Read Enable) – дозвіл читання з ЕEPROM. При встановленні цього розряду в 1 відбувається читання даних з ЕEPROM. Після закінчення читання цей розряд скидається апаратно. Після встановлення цього біту в 1 процесор пропускає 4 машинних такти перед початком виконання наступної інструкції. EEWE (EEPROM Write Enable) – дозвіл запису в ЕEPROM. При встановленні цього розряду в 1 відбувається запис даних в ЕEPROM. EEMWE (EEPROM Master Write Enable) – біт управління дозволом запису в ЕEPROM. Визначає функціонування біту дозволу запису EEWE. Якщо даний біт встановлений в 1, то при запису в розряд EEWE одиниці відбувається запис даних в ЕEPROM. Інакше встановлення EEWE в 1 не має ніякого ефекту. Після програмного встановлення цей розряд скидається апаратно через 4 машинні такти. Таким чином процедура запису одного байту в ЕEPROM-пам’ять складається з наступних етапів: 1. Дочекатися готовності ЕEPROM до запису – тобто чекати поки не обнулиться прапорець EEWE. 2. Завантажити байт даних в регістр EEDR, а потрібну адресу – в регістр EEАR. 3. Встановити однією командою в 1 прапорець EEMWE регістра EEСR. 4. Не пізніше ніж через 4 такти після встановлення EEMWE встановити прапорець EEWE. Процедура читання одного байту з ЕEPROM-пам’яті виконується за один машинний такт. Крім того, після встановлення розряду EERE в 1 процесор пропускає 4 машинних такти перед початком виконання наступної команди, тому слідкувати за станом прапорця EERE немає необхідності. Таким чином процедура читання одного байту з ЕEPROM-пам’яті складається з наступних етапів: 1. Завантажити потрібну адресу в регістр EEАR. 2. Встановити в 1 прапорець EERE регістра EEСR. 3. Прочитати дані з регістру EEDR. 2. Хід виконання роботи Розглянемо наступну задачу. Нехай потрібно розробити систему яка складається з аналогового давача з рівнем спрацювання UX В та одного цифрового сенсора з нормально розімкненими контактами, підключеного через шлейф до виводу INTx. При спрацюванні будь-якого давача повинен бути включений світлодіод, яким керує вивід Рx. Кількість спрацювань аналогового давача NA зберігається в пам’яті EEPROM МК в комірці з адресою Addr_1, цифрового ND - з адресою Addr_2. Реакція на події має бути організована через переривання. В проміжках між спрацюваннями давачів МК повинен знаходитися в режимі пониженого енергоспоживання Idle. Блок-схема роботи системи представлена на рис. 3.  Рис. 3. Основні функції охоронної системи 2.1. Відладка та симуляція роботи схеми Створення та відладка програми в середовищі AVR Studio 4 здійснюється аналогічно як в лабораторній роботі № 1. Після того як написана програма скомпільована та відлагоджена запустіть Proteus та відкрийте файл LR_2.dsn (рис. 4).  Рис. 4. Схема для симуляції охоронної системи На схемі розташовані: подільник напруги R1-R2, який задає поріг спрацювання аналогового давача. Потенціометр ANALOG SENSOR дає змогу, з допомогою кнопок , змінювати напругу на неінвертуючому вході компаратора, імітуючи поведінку аналогового давача. З допомогою індикаторів  і можна спостерігати напруги на інвертуючому та неінвертуючому входах компаратора відповідно. Кнопка DIGITAL SENSOR імітує давач з нормально розімкненими контактами, якими також можна управляти. Внесіть зміни у схему відповідно до свого варіанту. Крім того, бажано розташувати всі файли проекту AVR Studio 4 та Proteus в одній папці. В цю папку також скопіюйте файл 2313def.inc, який знаходиться у папці …\\AVR Studio\AvrAssembler\Appnotes\. Підключіть .hex файл до мікроконтролера на схемі, як описано в лабораторній роботі 1. Тепер можна приступити до відладки системи як описано в попередній лабораторній роботі. Крім відладки на рівні команд з використанням вікна Debug\AVR CPU Register можна також відладжувати програму на рівні асемблерного файлу. Для цього перед початком відладки виберіть пункт меню Source/Add/Remove Source Code Files. Появиться вікно представлене на рис. Натисніть кнопку New і у вікні New Source File (рис. 5) вкажіть Ваш асемблерний файл (*.asm). Після чого натисніть кнопку ОК. Далі виберіть пункт меню Source/Build All. Якщо файл не містить помилок появиться вікно BUILD LOG з рис. 6.  Рис. 5. Підключення асемблерного файлу до проекту  Рис. 6. Повідомлення про успішну компіляцію асемблерного файла Тепер виберіть пункт меню Debug/Start/Restart Debugging, після чого виберіть пункт меню Debug/AVR Source Code. Появиться вікно (рис. 7) з текстом програми в якому можна здійснювати відладку.  Рис. 7. Вид вікна відладки з підключеним асемблер ним файлом Тепер ви можете одночасно спостерігати за ходом виконання програми, міняти стан схеми та перевіряти реакцію програми. Червоний курсор вказує на поточну команду, яка виконується. Покроково рухатися по програмі можна з допомогою клавіш F10/F11 або клавіш панелі інструментів, як це описано в лабораторній роботі № 1. Також для відладки можна використовувати клавіші панелі інструментів вікна AVR Source Code (рис. 8).  Рис. 8. Кнопки управління відладкою Клавіша 1 (Run Simulation) – запускає виконання програми в неперервному режимі. Клавіша 2 (Step Over Source Line) – здійснює виконання поточної команди. Якщо це команда виклику підпрограми, то перехід в підпрограму не здійснюється – вона просто виконується і відбувається перехід на наступну команду. Клавіша 3 (Step Into Source Line) – здійснює виконання поточної команди. Якщо це команда виклику підпрограми, то здійснюється перехід в підпрограму. Клавіша 4 (Step Out from Source Line) – здійснює вихід з поточної підпрограми. Клавіша 5 (Run to Source Line) – здійснює перехід до вказаного рядку. Клавіша 6 (Toggle Breakpoint) – встановлює точку зупину на вказаному рядку. Написати на відладити програму охоронної сигналізації з такими параметрами Табл. 1 № Напруга спрацювання аналогового давача Ux, В Виводи для підкл. охоронних шлейфів цифровими давачами Тип цифрового давача Вивід для підкл. світлодіода Адреса в EEPROM Addr_1 Адреса в EEPROM Addr_2   1.1 INT0 НРЗ PB3 111 103   0.8 INT1 НЗМ PB2 64 8   2.3 INT0 НЗМ PD3 37 122   4.7 INT1 НРЗ PD5 65 61   3.6 INT0 НРЗ PB4 42 46   2.4 INT1 НЗМ PD2 29 91   1.5 INT0 НЗМ PB2 78 86   0.3 INT1 НРЗ PB5 52 69   3.1 INT0 НРЗ PD4 16 96   2.7 INT1 НЗМ PD1 92 11   0.5 INT0 НЗМ PD3 46 71   0.9 INT1 НРЗ PB7 100 123   4.2 INT0 НРЗ PD3 99 74   4.8 INT1 НЗМ PD0 84 44   3.3 INT0 НЗМ PD6 70 36   1.0 INT1 НРЗ PB5 69 1   1.8 INT0 НРЗ PD1 35 20   3.5 INT1 НЗМ PB6 67 109   4.4 INT0 НЗМ PB5 101 13   1.3 INT1 НРЗ PB7 119 16   0.7 INT0 НРЗ PD1 17 92   3.0 INT1 НЗМ PB2 13 126   3.8 INT0 НЗМ PD3 2 17   4.3 INT1 НРЗ PB3 62 65   2.0 INT0 НРЗ PB3 59 108   2.5 INT1 НЗМ PB2 86 21   4.0 INT0 НЗМ PB5 63 54   2.8 INT1 НРЗ PD2 57 76   1.7 INT0 НЗМ PB4 83 118   4.5 INT1 НЗМ PD4 9 113   2.1 INT0 НРЗ PD1 56 127  Тактова частота МК 7.3728 МГц. Перемикач вважати ідеальним.
Антиботан аватар за замовчуванням

12.11.2011 02:11-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!