- •1 Загальні відомості
- •6 Відладка програми
- •7 Налаштування параметрів імітатора
- •ATmega128, aTmega128l 8-розрядний avr-мікроконтролер з внутрішньосистемною програмованою флеш-пам'яттю ємністю 128 кбайт Особливості:
- •Короткий огляд
- •Завдання:
- •Лабораторна робота №2 «Вивчення математичних і логічних операцій і їх вплив на біти-стану мікроконтролера» Ціль роботи
- •Програма виконання роботи
- •Додатковий теоретичний матеріал необхідний для виконання лабораторної роботи
- •Завдання:
- •Лабораторна робота №3 «Вивчення методів додавання і віднімання чотирьохбайтних чисел» Ціль роботи
- •Програма виконання роботи
- •Додатковий теоретичний матеріал необхідний для виконання лабораторної роботи
- •Завдання:
- •Завдання:
- •Лабораторна робота №5 «Вивчення роботи з пам’яттю даних» Ціль роботи
- •Програма виконання роботи
- •Додатковий теоретичний матеріал необхідний для виконання лабораторної роботи
- •Завдання:
- •Лабораторна робота №6 «Вивчення операцій порівняння і реалізація циклічних операцій» Ціль роботи
- •Програма виконання роботи
- •Додатковий теоретичний матеріал необхідний для виконання лабораторної роботи
- •Завдання:
- •Завдання:
- •Завдання:
- •Часові діаграми таймера-лічильника 0
- •Опис регістрів 8-розрядного таймера-лічильника 0
- •Асинхронна робота таймера-лічильника 0
- •Дільник частоти таймера-лічильника 0 Дільник частоти таймер-лічильника 0
- •Завдання:
- •Завдання:
- •Набір інструкцій
Завдання:
1. Об’явити однобайтні константи:
1.1 A0 – початковий елемент арифметичної прогресії
1.2 D – різниця арифметичної прогресії
1.3 N – кількість елементів арифметичної прогресії
2. У сегменті пам’яті даних об’явити:
2.1 Масив на N однобайтних елементів
2.2 Змінну розміром у три байти для запису суму арифметичної прогресії
2.3 змінну розміром у один байт для запису кількості елементів арифметичної прогресії, які проініцізовані програмою.
2. Проініціалізувати вказівник на стек у останню комірку внутрішньої SRAM
3. Реалізувавши цикл, обнулити всі N елементів масиву21
3.1 Один регістр проініціалізувати нулем
3.2 X, Y або Z - регістр проініціалізувати адресою першого елемента масиву
3.3 Вибрати певний регістр, як лічильник циклів і обнулити його
3.4 Визначити дві мітки:
3.4.1 Мітка повтору циклічних операцій (подумати самостійно де вона має бути)
3.4.2 Мітка виходу з циклу (подумати самостійно де вона має бути)
3.5 Зрівняти лічильник циклу з кількістю елементів масиву (N)
3.6 У разі, якщо лічильник рівний кількості елементів масиву (N), то перейти на мітку виходу з циклу
3.7 Якщо лічильник не рівний кількості елементів масиву (N)
3.7.1 Записали в адресовану комірку масиву X, Y або Z – регістром число нуль. І регістр-вказівник перемістити на наступну комірку масиву.
3.7.2 Інкрементувати лічильник циклів
3.7.3 Перейти на мітку повтору циклічних операцій, де першою операцією має бути операція п. 3.4
4. Визначити три регістри для суми арифметичної прогресії і проініціалізувати їх нулями.
6. Реалізувавши цикл заповнення масиву елементами арифметичної прогресії і підрахунку суми арифметичної прогресії
6.1 У вибраний регістр записати перший елемент арифметичної прогресії
6.2 У вибраний регістр записати різницю арифметичної прогресії
6.3 X, Y або Z - регістр проініціалізувати адресою першого елемента масиву
6.4 Вибрати певний регістр, як лічильник циклів і обнулити його
6.5 Визначити дві мітки:
6.5.1 Мітка повтору циклічних операцій (подумати самостійно де вона має бути)
6.5.2 Мітка виходу з циклу (подумати самостійно де вона має бути)
6.6 Зрівняти лічильник циклу з кількістю елементів масиву (N)
6.7 У разі, якщо лічильник рівний кількості елементів масиву (N), то перейти на мітку виходу з циклу
6.8 Якщо лічильник не рівний кількості елементів масиву (N)
6.8.1 Інкрементувати лічильник циклів
6.8.2 Записали в адресовану комірку масиву X, Y або Z – регістром текуче значення арифметичної прогресії. І регістр-вказівник перемістити на наступну комірку масиву.
6.8.3 Додати до текучої суми арифметичної прогресії текуче значення текучого елемента арифметичної прогресії. При цьому врахувати, що відбувається сумування трьохбайтного22 числа з однобайтним числом23. рекомендовано це зробити з використанням підпрограми.
6.8.4 Перевірити, чи третій байт суми не став відмінним від нуля. Якщо відмінний від нуля, то піти на мітку виходу з циклу. Інакше продовжувати дії тіла циклу
6.8.5 До текучого значення арифметичної прогресії додати різницю арифметичної прогресії (D).
6.8.6 Перевірити чи при додаванні не відбувся перенос. Якщо наступний елемент став вже двохбайтним числом, то перейти на мітку виходу з циклу. Інакше продовжувати дії тіла циклу
6.8.7 Перейти на мітку повтору циклічних операцій, де першою операцією має бути операція п. 6.6
6. Записати у попередньо визначену змінну у SRAM кількість ітерацій (лічильник циклу)24
7. Записати у попередньо визначену змінну у SRAM суму порініціалізованих елементів арифметичної прогресії
8. Реалізувати безперервний цикл кінця програми25
9. Дослідити програму (з відповідними початковими значеннями: N D і A0), коли вона ініціалізує всі N елементів арифметичної прогресії і коли ініціалізація припиняється через перевищення значень допустимих границь.
10.Показати викладачеві, використовуючи вікна Memory і Watch результати роботи програми (проініціалізований масив елементами арифметичної прогресії, суму арифметичної прогресії, кількість проініціалізованих елементів арифметичної прогресії елементів)
