DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

ДОСЛІДЖЕННЯ АРХІТЕКТУРИ МІКРОКОНТРОЛЕРА СІМЕЙСТВА MCS-51 (AT90S8515 та AT89S52) З ВИКОРИСТАННЯМ ЛАБОРАТОРНОГО СТЕНДУ EV8031/AVR

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

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

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

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Мікропроцесори

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  ЛАБОРАТОРНА РОБОТА № 2 з курсу “ Мікропроцесорні пристрої ” ДОСЛІДЖЕННЯ АРХІТЕКТУРИ МІКРОКОНТРОЛЕРА СІМЕЙСТВА MCS-51 (AT90S8515 та AT89S52) З ВИКОРИСТАННЯМ ЛАБОРАТОРНОГО СТЕНДУ EV8031/AVR Львів – 2011 Мета роботи Вивчення внутрішньої структури мікроконтролера сімейства MCS-51 фірми Atmel (AT90S8515 та AT89S52), зокрема, програмно-доступних елементів та системи команд, використовуючи лабораторний стенд EV8031/AVR (V3.2); набути досвіду розроблення простих програм, діагностики помилок, завантаження програм у пам’ять мікроконтролера та запуску їх на виконання. Структурна схема МК та призначення його основних складових. Основні складові мікроконтролера. Процесор з гарвардською структурою реалізує повне логічне та фізичне розділення адресних просторів та інформаційних шин для звертання до пам’яті програм та пам’яті даних. Така побудова дуже близька до структури цифрових сигнальних процесорів і збільшує продуктивність МК. Процесор працює одночасно як з пам’яттю програм, так і з пам’яттю даних. Розрядність шини адреси пам’яті 16 біт. В МК типу AVR використовується конвеєрна технологія. Внаслідок цього цикл “вибирання-виконання” суттєво скорочений, тобто машинний цикл, на протязі якого виконується команда, складає всього один період тактової частоти. Реєстровий файл займає молодші 32 байти в загальному адресному просторі МК (рис.2). Шість з 32-х реєстрів файлу можуть використовуватися як три 16-розрядні вказівники (X, Y, Z Pointers) адреси при непрямій адресації даних. Один з цих вказівників (Z Pointer) використовується також для доступу до даних, записаних в пам’яті програм МК. Використання 16-бітних вказівників (X, Y, Z Pointers) суттєво підвищує швидкість пересилання даних при виконанні прикладних програм. Пам’ять програм. Всі AVR МК мають Flash-пам’ять програм, яка може завантажуватися як звичайним програматором, так і з допомогою SPI(serial peripheral interfase)-інтерфейсу, зокрема, безпосередньо на платі. Кількість циклів перезапису - не менше 1000. Пам’ять даних. Всі AVR МК мають також енергонезалежну пам’ять даних з електричним стиранням EEPROM. Цей тип пам’яті використовується для зберігання проміжних даних, різних констант, таблиць перекодування і т.п. Дані в EEPROM можуть завантажуватися як через SPI-інтерфейс, так і за допомогою звичайного програматора. Кількість циклів перезапису складає не менше 100000. Два програмованих біти захисту інформації дозволяють захистити пам’ять від несанкціонованого доступу. Внутрішня оперативна пам’ять SRAM (статичного типу) є у всіх МК AVR сімейства Classic та Mega і у деяких типах сімейства Tiny. Деякі МК допускають під’єднання зовнішньої памяті даних об’ємом до 64 Кбайт. Структурна схема МК.  Лістинги перевірених програм. Тестові програми Програма 1 ORG 100H ; Початок програми mov R1, #45h ; R1← 45 ; Переслати безпосередньо ;у 8-розрядний реєстр R1 число 45 add R1, # EA ; R1←R1+EA ; Додати до вмісту реєстру R1 число EA mov R2, R1 ; R2←R1 ; Переслати вміст реєстру R1 в реєстр R2 END ; Закінчення програми Програма 2 ORG 0 ; Початок програми Con:mov R1, #04h ; записати в R1 число 04 mov R4, #30h ; записати в R4 число 30 mov DPTR, # 0B000h ; занести в реєстр DPTR адресу Інд.DD17, DD18 mov A, R1 ; записати в А значення R1 add A, R4 ; додати вміст реєстрів А і R4 ; та занести суму у реєстр А movx @DPTR, A ; висвітити на Інд. DD17, DD18 A mov A, #00h ; обнулити A jmp Con ; перейти на початок END ; Закінчення програми Індивідуальні завдання Програма 3 Завдання №1 Занести в реєстр R4 двійково-десяткове число 0Х, в реєстр R6 - двійково-десяткове число Х0, суму чисел відобразити на першому і другому знакомісці статичної індикації; Х - будь-якa цифра від 0 до 9. Виберемо : Х = 5. 0A000h – адреса лівої пари (третє і четверте знакомісця) статичного індикатора. 0В000h – адреса правої пари (перше і друге знакомісце) статичного індикатора. Лістинг ORG 0 ; Початок програми Con:mov R4, #05h ; записати в R4 число 05 mov R6, #050h ; записати в R6 число 50 mov DPTR, # 0B000h ; занести в реєстр DPTR адресу Інд.DD17, DD18 mov A, R4 ; записати в А значення R4 add A, R6 ; додати вміст реєстрів А і R6 ; та занести суму у реєстр А movx @DPTR, A ; висвітити на Інд. DD17, DD18 A mov A, #00h ; обнулити A jmp Con ; перейти на початок END ; Закінчення програми Програма 4 Завдання №7 Занести в реєстр R0 двійково-десяткове число ХХ, поперемінно відображати молодшу і старшу тетраду на першому і четвертому знакомісці статичної індикації з частотою 1 Гц. Виберемо : Х = 5. 0A000h – адреса лівої пари (третє і четверте знакомісця) статичного індикатора. 0В000h – адреса правої пари (перше і друге знакомісце) статичного індикатора. Лістинг ORG 0 ; Початок програми Start: mov R0, #055h ; записати в R0 число 55 mov 0F0H, #010h ; записати в В число 10 mov A, R0 ; записати в А значення реєстру R0 div AB ; ділення А на реєстр В mov 0F0H, #00h ; обнулити в В mov 0F0H, #010h ; записати в В число 10 mul AB ; множення А на В. А – старша тетрада mov R4, А ; записати в R4 значення A. R4 – старша тетрада mov A, #00h ; обнулити A mov 0F0H, #00h ; обнулити в В mov 0F0H, #010h ; записати в В число 10 mov A, R0 ; записати в А значення реєстру R0 div AB ; ділення А на реєстр В. В – молодша тетрода mov A, #00h ; обнулити A mov A, 0F0H ; записати в A значення B mov R5, A ; записати в R5 значення A. R5 – молодша тетрада mov A, #00h ; обнулити A Cycle: mov A, R5 ; записати в А значення R5 mov DPTR, # 0A000h ; занести в реєстр DPTR адресу індикації movx @DPTR, A ; висвітити на лівій парі індикатора значення А call zat ; виклик підпрограми затримки Zat mov A, #00h ; обнулити A movx @DPTR, A ; висвітити 0 на лівій парі індикатора mov A, R4 ; записати в А значення R4 mov DPTR, # 0В000h ; занести в реєстр DPTR адресу індикації movx @DPTR, A ; висвітити на правій парі індикатора значення А call zat ; виклик підпрограми затримки Zat mov A, #00h ; обнулити A movx @DPTR, A ; висвітити 0 на правій парі індикатора jmp Cycle ; Зациклюємо відображення тетрад Zat: ; Підпрограма затримки Zat mov R3,#05h ; записати в R3 число 5 C3: mov R1,#0FFh ; записати в R1 число 255 C1: mov R2,#0FFh ; записати в R2 число 255 C2: djnz R2,C2 ; інкремент R2 і перехід на С2 якщо 0 djnz R1,C1 ; інкремент R1 і перехід на С1 якщо 0 djnz R3,C3 ; інкремент R3 і перехід на С3 якщо 0 ret ; повернення з підпрограми END ; Закінчення програми Висновок: на даній лабораторній роботі ми навчилися писати програми для мікроконтролера EV 8031, а також ознайомилися з його системою команд. Згідно лабораторного завдання були написані та відлагоджені чотири програми для відображення інформації на дисплеї стенду. Стандартна підпрограма затримки була вдосконалена для забезпечення часового інтервалу в 1с.
Антиботан аватар за замовчуванням

24.01.2013 00:23

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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