
- •Загальні положення
- •Календарно-тематичний план
- •Методичні вказівки по вивченню курсу
- •Модульна семестрова контрольна робота
- •Перелік завдань першої модульної контрольної роботи
- •Перелік завдань другої модульної контрольної роботи
- •Індивідуальні завдання з самостійної роботи
- •Комплект індивідуальних завдань з самостійної роботи
- •Список запитань, що виносяться на диференційований залік
- •Рейтингова система оцінювання з кредитного модуля
- •Лабораторні роботи.
- •Модульна контрольна робота.
- •Розрахункова графічна робота.
- •Розрахунок суми основних рейтингових балів
- •Заохочувальні бали
- •Штрафні бали
- •Навчально-методичні матеріали Основна література
- •Додаткова література
Перелік завдань першої модульної контрольної роботи
Частина 1- «Ініціалізація ресурсів»
Визначити початок стеку мікроконтролера ATmega16, починаючи з адреси RAMEND.
Визначити початок стеку мікроконтролера ATmega16, починаючи з адреси 0xFFFF.
Провести ініціалізацію константи в області пам’яті програм. Прочитати її в регістр R5.
Провести ініціалізацію змінної в області енергонезалежної пам’яті даних. Прочитати її в регістр R9.
Записати дані з регістра R18 в регістр EEPROM с адресою 0x45.
Провести ініціалізацію змінної в регістрі SRAM с адресою $45.
Провести ініціалізацію змінної в регістрі SRAM с адресою $ABCD.
Визначити набір фюзесів для роботи ATmega16 з кварцовим резонатором 10МГц, затримкою скидання 64мс.
Визначити набір фюзесів для роботи ATmega16 з кварцовим резонатором 2МГц, затримкою скидання 64мс.
Визначити набір фюзесів для роботи ATmega16 з вбудованим генератором, затримкою скидання 4мс.
Визначити набір фюзесів для роботи ATmega16 з керамічним резонатором 5МГц, затримкою скидання 64мс.
Визначити набір фюзесів для роботи ATmega16 з вбудованим супервізором напруги, рівень 2,7В.
Провести ініціалізацію та ввімкнути сторожовий таймер із періодом ~2с (частота 10МГц).
Провести ініціалізацію та ввімкнути сторожовий таймер із періодом ~33мс (частота 10МГц).
Назначити розташування вектору скидання та таблиці векторів переривань на початку пам’яті програм.
Назначити розташування вектору скидання та таблиці векторів переривань на початку області завантажувача.
Розробити фрагмент програми, з дозволом зовнішніх переривань по входу INT0 (умова генерації переривань – по спадаючому фронту).
Розробити фрагмент програми, з дозволом зовнішніх переривань по входу INT1 (умова генерації переривань – по будь-якому фронту).
Розробити фрагмент програми, з дозволом зовнішніх переривань по входу INT2 (умова генерації переривань – по будь-якому фронту).
Провести ініціалізацію порту В:
Біти 0123 – передавачі, початковий стан, відповідно, 0101;
Біти 4567 – приймачі, вбудовані підтяжки, відповідно, є, є, немає, є.
Провести ініціалізацію порту С:
Біти 4567 – передавачі, початковий стан, відповідно, 1010;
Біти 0123 – – приймачі, вбудовані підтяжки, відповідно, немає, є, є, є.
Провести ініціалізацію порту В та зчитати дані з порту в регістр R18.
Провести ініціалізацію таймеру Т0 для формування затримки 100мкс (із використанням переривань). В області векторів переривань визначити відповідні переходи на підпрограми переривань. Частоту генератора вибрати самостійно. Режим Normal.
Провести ініціалізацію таймеру Т1 для формування затримки 10мс (із використанням переривань). В області векторів переривань визначити відповідні переходи на підпрограми переривань. Частота генератора 1МГц. Режим Normal.
Провести ініціалізацію таймеру Т2 для формування затримки 1мс (із використанням переривань). В області векторів переривань визначити відповідні переходи на підпрограми переривань. Частота генератора 10МГц. Режим Normal.
Провести ініціалізацію таймеру Т0 для генерації меандру з періодом 100мкс (із використанням переривань). В області векторів переривань визначити відповідні переходи на підпрограми переривань. Частота генератора 10МГц. Режим СТС.
Провести ініціалізацію таймеру Т2 для генерації меандру з періодом 1000мкс (із використанням переривань). В області векторів переривань визначити відповідні переходи на підпрограми переривань. Частота генератора 1МГц. Режим СТС.
Провести ініціалізацію таймеру Т0 для формування Fast PWM. Частота та заповнення імпульсів – будь-які.
Провести ініціалізацію таймеру Т1 для формування Fast PWM. Частота та заповнення імпульсів – будь-які.
Провести ініціалізацію таймеру Т2 для формування Fast PWM. Частота та заповнення імпульсів – будь-які.
Провести ініціалізацію таймеру Т0 для формування Phase Correct PWM. Частота та заповнення імпульсів – будь-які.
Провести ініціалізацію таймеру Т1(A) для формування Phase Correct PWM. Частота та заповнення імпульсів – будь-які.
Провести ініціалізацію таймеру Т1(B) для формування Phase Correct PWM. Частота та заповнення імпульсів – будь-які.
Провести ініціалізацію таймеру Т2 для формування Phase Correct PWM. Частота та заповнення імпульсів – будь-які.
Провести ініціалізацію таймеру Т1(А для формування Phase and Frequency Correct PWM. Частота та заповнення імпульсів – будь-які. Точність 8 біт.
Провести ініціалізацію таймеру Т1(В) для формування Phase and Frequency Correct PWM. Частота та заповнення імпульсів – будь-які. Точність 9 біт.
Провести ініціалізацію таймеру Т1(А) для формування Phase and Frequency Correct PWM. Частота та заповнення імпульсів – будь-які Точність 12 біт.
Провести ініціалізацію таймеру Т1(В) для формування Phase and Frequency Correct PWM. Частота та заповнення імпульсів – будь-які. Точність 14 біт.
Провести ініціалізацію таймеру Т1 для роботи в режимі захоплення. Використати переривання.
Провести ініціалізацію компаратору для роботи з внутрішнім джерелом опорної напруги та входом AIN1. Підключити переривання по компаратору. В області векторів переривань прописати відповідний перехід на підпрограму переривань.
Провести ініціалізацію компаратору для роботи з входом AIN0 та входом AIN1. Підключити переривання по компаратору. В області векторів переривань прописати відповідний перехід на підпрограму переривань.
Провести ініціалізацію компаратору для роботи з внутрішнім джерелом опорної напруги та входом ADC1. Підключити переривання по компаратору. В області векторів переривань прописати відповідний перехід на підпрограму переривань.
Провести ініціалізацію компаратору для роботи з внутрішнім джерелом опорної напруги та входом ADC5. Підключити переривання по компаратору. В області векторів переривань прописати відповідний перехід на підпрограму переривань.
Провести ініціалізацію ADC на режим разових перетворень без використання переривань. Встановити нормальний порядок упаковки результату перетворення. Підключити вхід ADC3.
Провести ініціалізацію ADC на режим безперервних перетворень. Встановити нормальний порядок упаковки результату перетворення. Підключити будь-яку пару з диференційних входів. Використати переривання.
Провести ініціалізацію ADC на режим безперервних перетворень. Запуск перетворення – від аналогового компаратора. Встановити нормальний порядок упаковки результату перетворення. Підключити будь яку пару диференційних входів. Використати переривання.
Провести ініціалізацію ADC на режим безперервних перетворень. Запуск перетворення – від от входу INT0. Встановити нормальний порядок упаковки результату перетворення. Підключити будь яку пару диференційних входів. Використати переривання.
Провести ініціалізацію ADC на режим безперервних перетворень. Запуск перетворення – по переповненню таймера Т0. Встановити нормальний порядок упаковки результату перетворення. Підключити будь яку пару диференційних входів. Використати переривання.
Провести ініціалізацію ADC на режим безперервних перетворень. Запуск перетворення – по захвату таймера Т1. Встановити нормальний порядок упаковки результату перетворення. Підключити вхід ADC5.
Провести ініціалізацію SPI на режим MASTER із частотою сигналів синхронізації f/8, формуванням синхроімпульсів позитивної полярності та обробкою даних по наростаючому фронту. Дозволити переривання.
Провести ініціалізацію SPI на режим MASTER із частотою сигналів синхронізації f/64, формуванням синхроімпульсів негативної полярності та обробкою даних по спадаючому фронту. Дозволити переривання.
Провести ініціалізацію SPI на режим SLAVE із частотою сигналів синхронізації f/16, формуванням синхроімпульсів негативної полярності та обробкою даних по спадаючому фронту. Дозволити переривання.
Провести ініціалізацію SPI на режим SLAVE із частотою сигналів синхронізації f/2, формуванням синхроімпульсів позитивної полярності та обробкою даних по спадаючому фронту. Дозволити переривання.
Частина 2- «Керування та обробка даних»
Встановити в «1» - 5 біт файлового регістру R2.
Встановити в «1» - 5 біт файлового регістру R16.
Встановити в «1» - 5 біт регістру уводу / виводу TIMSK.
Встановити в «1» - 5 біт регістру уводу / виводу PORTB.
Передати дані із регістру SRAM з адресою 1H в регістр з адресою 128H с використанням безпосередньої адресації. Записати фрагмент програми.
Поділити вміст регістру R0 на вміст регістру R1. Записати фрагмент програми.
Відняти вміст регістру R0 від R1. Записати фрагмент програми.
Визначити результат логічної операції OR с числами, записаними в регістрах R0 и R8. Записати фрагмент програми.
Завантажити в регістр SRAM з адресою 34H число 17FDH.
Перетворити число 2310 > в число X2.
Перетворити число 1F16 > в число X10.
Перетворити число 11510 > в число X16.
Перетворити число 11012 > в число X10.
Перетворити число 110110 > в число X16.
Перетворити число 10121101B > в число X10.
Перетворити число 121D > в число X10.
Перетворити число 11B > в число X16.
Перетворити число FF16 > в число X8.
Перетворити число FF10 > в число X2.
Перетворити число 25710 > в число X16.
Перетворити число 25711 > в число X16.
Написати фрагмент програми, що реалізує програмну затримку на 100 мкс.
Написати фрагмент програми, що реалізує програмну затримку на 1 мс.
Сформувати апаратну затримку (за допомогою таймерів - рахівників) на 100 мкс.
Сформувати апаратну затримку (за допомогою таймерів - рахівників) на 100 мс.
Прийняти байт з входу порту РA та передати його на вихід порту РB.
Сформувати на виході порту РA1 послідовність 0-1-0-0-0-1.
Прийняти біт із входу порту РB2 та передати його на вихід порту РB3.
Із використанням регістру статусу програми, визначити наявність переповнення при додаванні двох чисел.
Скласти двобайтове число з однобайтним.
Відняти від двобайтового числа однобайтне.
Написати підпрограму додавання двобайтових чисел. Результат додавання – двобайтове число.
Написати підпрограму множення двобайтового числа на однобайтове.