Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_rab_2_OTM.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
343.04 Кб
Скачать

Лабораторна робота №2 програмування біжучого рядка з використанням мікроконтролера avr

Мета роботи: набути навичок програмування мікроконтролерів AVR. Закріпити вміння програмування мікроконтролерів на прикладі програмування біжучого рядка.

Теоретичні відомості

АVR – це нове сімейство 8-розрядних RISC-мікроконтролерів фірми Atmel. Ці мікроконтролери дозволяють вирішувати безліч задач вбудованих систем. Вони відрізняються від інших розповсюджених у даний час мікроконтролерів більшою швидкістю роботи, більшою універсальністю. Швидкодія даних мікроконтролерів дозволяє в ряді випадків застосовувати їх у пристроях, для реалізації яких раніше можна було застосовувати тільки 16-розрядні мікроконтролери, що дозволяє відчутно знизити ціну готової системи. Крім того, мікроконтролери АVR дуже легко програмуються – найпростіший програматор можна виготовити власноруч протягом 30 хвилин.

За заявою фірми-виробника мікроконтролерів (www.atmel.com) мікроконтролери сімейства АVR можна перепрограмувати до 1000 разів, причому безпосередньо в зібраній схемі. Все це робить мікроконтролери АVR дуже привабливими для створення нових розробок.

Фірма Atmel випускає великий спектр 8-розрядних мікроконтролерів, серед яких сімейство АТ89 з вбудованою програмованою флеш-пам’яттю та мікроконтролери сімейства АТ90 на базі поліпшеної RISC архітектури.

Заслуговують на увагу нові мікроконтролери сімейств ATtiny і АТMЕGА на базі AVR архітектури.

Крім того, що мікроконтролери сімейства ATtiny мають зменшений обсяг вбудованої флеш-пам’яті (від 1 до 2 кбайт), у кожній модифікації випускаються три версії, що відрізняються напругою живлення і тактовою частотою. Наприклад, версії ATtiny12 мають діапазон тактової частоти від 0 до 1 Мгц, від 0 до 4 Мгц і 0 до 8 Мгц відповідно при напрузі живлення від 1,8 до 5,5 В, від 2,7 до 5,5 В і від 4,0 до 5,5 В. Тільки ATtiny22 має RAM-пам'ять даних обсягом 128 байт. У ATtiny15 реалізований 10-розрядний АЦП (4 канали). Деякі модифікації ATtiny мають вбудовану систему перезапуску при зниженні напруги живлення.

Основна відмінність мікроконтролерів АТMЕGА (АТMЕGА83/103/161/ 163) – збільшений обсяг вбудованої пам'яті (АТMЕGА 103 має 128 кбайт флеш-пам’яті і 4 кбайта RAM-пам'яті) і розширений набір периферійних пристроїв. Як і в ATtiny, у модифікаціях АТMЕGА передбачені версії з різною тактовою частотою і напругою живлення. При діапазоні напруги живлення від 2,7 до 3,6 В і від 4,0 до 5,5 В діапазон тактових частот складає відповідно від 0 до 4 Мгц і від 0 до 6 Мгц.

Розглянемо більш детально один з мікроконтролерів сімейства ATMEGA, а саме ATMEGA 16, який і пропонується використовувати в лабораторній роботі.

Основні характеристики мікроконтролера atmega 16:

  • AVR RISC-архітектура – архітектура високої продуктивності та малого споживання;

  • система команд містить 130 інструкцій, більшість яких виконується за один машинний цикл;

  • єдиний 16-розрядний формат команд;

  • продуктивність 16 MIPS на частоті 16 Мгц;

  • наявність апаратного помножувача;

  • 16 Кбайт Flash ПЗУ програм, з можливістю до 1000 циклів стирання/запису;

  • 512 байт EEPROM даних, з можливістю до 100000 циклів стирання/запису;

  • 1 Кбайт оперативної пам'яті (SRAM);

  • можливість програмування безпосередньо в цільовій системі через послідовні інтерфейси SPI і JTAG;

  • можливість самопрограмування;

  • можливість внутрішньосхемного налагодження у відповідності зі стандартом IEEE 1149.1 (JTAG);

  • різні способи синхронізації;

  • режим зниженого енергоспоживання;

  • детектор зниження напруги живлення;

  • програмне зниження частоти тактового генератора;

  • 21 джерело переривань (внутрішніх і зовнішніх);

  • багаторівнева система переривань, підтримка черги переривань;

  • можливість захисту від несанкціонованого читання та модифікації пам'яті програм і даних;

  • можливість читання пам'яті програм під час її запису;

  • два 8-розрядних таймера/лічильника;

  • сторожовий таймер WDT;

  • чотири канали генерації вихідних шим-сигналів;

  • аналоговий компаратор;

  • 8-канальний 10-розрядний АЦП як з несиметричними, так і з диференціальними входами;

  • повнодуплексний універсальний синхронний/асинхронний приймач-передавач USART;

  • послідовний синхронний інтерфейс SPI, що використовується також для програмування Flash-пам'яті програм;

  • послідовний двохпровідний інтерфейс TWI (аналог I2C);

  • 32 програмовані лінії введення/виведення з рівнями ТТЛ, на ці лінії виведена також підтримка периферійних функцій;

  • напруги живлення 2,7 ... 5,5 В.

Ядро мікроконтролерів AVR виконане за вдосконаленою RISC-архітектурою (Enhanced RISC). Арифметико-логічний пристрій (АЛУ), що виконує всі обчислення, підключений безпосередньо до 32 робочих регістрів, об'єднаних в регістровий файл. Завдяки цьому АЛУ виконує одну операцію за один машинний цикл. Практично кожна з команд (за винятком команд, у яких одним з операндів є 16-розрядна адреса) займає одну комірку пам'яті програм.

В мікроконтролерах AVR реалізована Гарвардська архітектура, яка характеризується роздільною пам'яттю програм і даних, кожна з яких має власні шини доступу до них. Така організація дозволяє одночасно працювати як з пам'яттю програм, так і з пам'яттю даних. Розділення шин доступу дозволяє використовувати для кожного типу пам'яті шини різної розрядності, причому способи адресації і доступу до кожного типу пам'яті також різні.

Ще одним рішенням, спрямованим на підвищення швидкодії, є використання технології конвеєризації. Конвеєризація полягає в тому, що під час виконання поточної команди проводиться вибірка з пам'яті і дешифрування коду наступної команди. Причому тривалість машинного циклу мікроконтролерів AVR складає всього один період тактового генератора.

Файл регістрів швидкого доступу містить 32 8-розрядних робочих регістра загального призначення пов'язаних безпосередньо з ALU. За один тактовий цикл з файлу регістрів вибираються два операнди, виконується операція і результат знову повертається у файл регістрів.

Шість із 32 регістрів можуть бути використані як три 16-розрядних регістра покажчика непрямої адресації адресного простору даних, що забезпечують ефективне обчислення адрес. Один з цих покажчиків адреси використовується, також, як покажчик адреси для функції безперервного перегляду таблиць. Ці 16-розрядні додаткові регістри позначаються як X-регістр, Y-регістр і Z-регістр.

На додаток до операцій з регістрами, регістровий файл може використовуватися і для звичайної адресації пам'яті. Це пояснюється тим, що файл регістрів розташовується за 32-ма молодшими адресами простору даних, і до них можна звертатися, як до звичайних комірок пам'яті.

Простір пам'яті I/O містить 64 адреси периферійних функцій CPU таких як: регістри управління, таймери/лічильники, аналого-цифрові перетворювачі та інші I/O функції. До пам'яті I/O можна звертатися безпосередньо або як до осередків простору пам'яті з відповідним адресами файлу регістрів.

В процесі обробки переривань та викликів підпрограм адреса повернення лічильника команд (PC) зберігається в стек. Стек розміщується в SRAM даних. Всі програми користувача в підпрограмах повернення повинні ініціалізувати покажчик стека (SP).

AVR архітектура підтримує п'ять різних режимів адресації байт SRAM даних.

Гнучкий модуль обробки переривань має в просторі I/O свій керуючий регістр з додатковим бітом дозволу глобального переривання в регістрі статусу. Всі переривання мають свої вектори переривання в таблиці векторів переривання, які розташовуються на початку пам'яті програм. Пріоритети переривань відповідають положенню векторів переривань – переривання з найменшою адресою вектора має найвищий пріоритет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]