Розробка принципової схеми та програмного забезпечення на мікроконтролері ATtiny13
Дослідження можливостей та властивостей мікроконтролера ATtiny13, його архітектури. Розробка програми, що керує роботою мікропроцесора. Моделювання роботи системи кодового захисту з однією кнопкою. Організація пам’яті та розподіл адресного простору.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 01.06.2013 |
Размер файла | 1,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ВСТУП
Архітектура ЕОМ -- це набір відомостей, необхідний та достатній для написання для даної обчислювальної машини коректних програм на машинній мові, таких, що не залежать від конкретного втілення цієї архітектури. Електронні обчислювальні машини одної архітектури (тобто з однаковою програмною організацією), але реалізовані з використанням різних конструктивних рішень, називають сумісними, або сумісним сімейством ЕОМ.
Найбільшого поширення в ЕОМ отримали 2 типи архітектури: прінстонська (фон Неймана) і гарвардська. Обидві вони виділяють 2 основних вузли ЕОМ: центральний процесор і пам'ять комп'ютера. Різниця полягає в структурі пам'яті: в прінстонській архітектурі програми і дані зберігаються в одному масиві пам'яті і передаються в процесор одним каналом, тоді як гарвардська архітектура передбачає окремі сховища і потоки передачі для команд і даних.
У докладніший опис, що визначає конкретну архітектуру, також входять: структурна схема ЕОМ, засоби і способи доступу до елементів цієї структурної схеми, організація і розрядність інтерфейсів ЕОМ, набір і доступність регістрів, організація пам'яті та способи її адресації, набір і формат машинних команд процесора, способи представлення і формати даних, правила обробки переривань.
За перерахованими ознаками та їх поєднаннями серед архітектур виділяють:
· за розрядністю інтерфейсів і машинних слів: 8 -, 16 -, 32 -, 64-розрядні (ряд ЕОМ має й інші розрядності);
· за особливостями набору регістрів, формату команд і даних: CISC, RISC, VLIW;
· за кількістю центральних процесорів: однопроцесорні, багатопроцесорні, суперскалярні;
· багатопроцесорні за принципом взаємодії з пам'яттю: симетричні багатопроцесорні (SMP), масивно-паралельні (MPP), розподілені.
Архітектура ЕОМ включає інформацію про:
· набір машинних команд (набір інструкцій), тобто операцій, які може виконувати ця обчислювальна машина;
· доступні регістри процесора -- внутрішні комірки пам'яті процесора (пристрою, який виконує набір інструкцій), а саме: функціональне призначення, розрядність, кількість, особливості програмування таких регістрів;
· розрядність та формати даних операндів -- об'єктів, над якими виконуються операції;
· способи адресації пам'яті -- методи доступу до операндів в пам'яті ЕОМ;
· механізми управління та захисту пам'яті;
· особливості обробки виключних ситуацій та помилок в системі;
· організацію системи вводу-виводу;
· доступні програмісту апаратні засоби організації багатозадачної та багатопроцесорної обробки інформації.
Мікропроцесор (МП) ? програмно-керований пристрій, що здійснює процес обробки цифрової інформації і управління ним; побудований на одній або декількох великих інтегральних схемах (ВІС).
Все різноманіття МП зручно розділити на два типи:
· однокристальні МП з фіксованою розрядністю слова та фіксованою системою команд і, як правило, пристроєм управління зі "схемною"логікою;
· багатокристальні (секційні) мікропрограмовані МП із змінною розрядністю слова і з фіксованим набором мікрооперацій.
Мікроконтролер (англ. microcontroller), або одно кристальна мікроЕОМ -- виконана у вигляді мікросхеми спеціалізована мікропроцесорна система, що включає мікропроцесор, блоки пам'яті для збереження коду програм і даних, порти вводу-виводу і блоки зі спеціальними функціями (лічильники, компаратори, АЦП та інші).
З появою одно кристальних мікро-ЕОМ пов'язують початок ери масового застосування комп'ютерної автоматизації в галузі управління. Мабуть, ця обставина і визначило термін "контролер" ( англ. controller - Регулятор, керуючий пристрій).
При проектуванні мікроконтролерів доводиться дотримувати баланс між розмірами і вартістю з одного боку і гнучкістю і продуктивністю з іншою. Для різних застосувань оптимальне співвідношення цих і інших параметрів може розрізнятися дуже сильно. Тому існує величезна кількість типів мікроконтролерів, що відрізняються архітектурою процесорного модуля, розміром і типом вбудованої пам'яті, набором периферійних пристроїв, типом корпусу.
Курсовий проект передбачає розробку принципової схеми та програмного забезпечення на мікроконтролері ATtiny13[1].
1. АНАЛІЗ ТЕХНІЧНОГО ЗАВДАННЯ
В курсовому проекті необхідно розробити принципову схему та текст програми системи кодового захисту з однією кнопкою на мікроконтролері ATtiny13.
Функціональні можливості системи:
- діапазон коду 0..255;
- індикація введення 1,2,3 розрядів коду світлодіодами HL1-HL3 відповідно;
- індикація збереження коду світлодіодом HL4;
- режим введення і задання коду;
- індикація помилкового введення коду;
- напруга живлення пристрою -5...12В.
Дана схема може бути реалізована для обмеження доступу в приміщення, в різного роду сейфах, а також при включенні приладів, які можуть бути активовані тільки після введення коду доступу.
Для блоку індикації використовуються 4 світлодіоди: 3 - для індикації введення кожного розряду числа відповідно і четвертий для індикації введення правильності комбінації.
Блок керування має 2 кнопки: SETiRESET - для введення коду і його задання. При одночасному натисненні кнопок відкривається режим задання кнопок, а при натисненні лише кнопки SET-режим введення.
Використаний в проекті ATtiny13 - низькоспоживаючий 8 бітний КМОП мікроконтролер з AVR RISC архітектурою.
У схемі застосовані широко поширені, недефіцитні деталі. В якості тактування мікроконтролера, обраний внутрішній RC-генератор з тактовою частотою 128кГц / 8 (16 кГц)[2].
2. РОЗРОБКА АПАРАТНОЇ ЧАСТИНИ
2.1 Вибір мікроконтролера та огляд його архітектури
Для реалізації схеми обрано ATTiny13 ? невеликий мікроконтролер (8 ніг), напевно, найдешевший в серії AVR. Випускається у двох варіантах - звичайному (ATTiny13) і зі зниженою напругою (ATTiny13V). За знижену напругу доводиться платити зниженням тактової частоти мікроконтролера (більш повільна робота).
З метою забезпечення максимальної продуктивності і паралелізму, AVR використовує Гарвардську архітектуру - з окремою пам'яттю та шинами для програм і даних. Команди в програмній пам'яті виконуються з одного рівня конвеєризації. У той час як одна команда виконується, наступна команда наперед обирається з вибірки пам'яті програм. Ця концепція дозволяє виконувати команди у кожному такті. Програмна пам'ять знаходиться в внутрішньо системній програмованій флеш-пам'яті.
AVR ядро об'єднує багату систему команд і 32 робочих регістра загального призначення. Усі 32 регістра безпосередньо пов'язані з арифметико-логічним пристроєм (АЛП), що дозволяє отримати доступ до двох незалежних регістрів при виконанні однієї команди. У результаті ця архітектура дозволяє забезпечити в десятки разів більшу продуктивність, ніж стандартна CISC архітектура [3].
ATtiny13 має такі характеристики: 1 КБ внутрішньо системної програмованої Flash-пам'яті програми, 64-байтну EEPROM пам'ять даних, 64-байтну SRAM (статична ОЗУ), 6 ліній введення - виведення загального застосування, 32 робочих регістра загального призначення, 8 бітний таймер / лічильник зі схемою порівняння, внутрішні і зовнішні джерела переривання, 4-канальний 10-бітний АЦП, програмований сторожовий таймер з вбудованим генератором і три програмно ініціалізованих режими зниженого споживання. У режимі Idle зупиняється ядро, але ОЗУ, таймер / лічильник, АЦП, аналоговий компаратор і система переривань продовжують функціонувати. У режимі Power-down регістри зберігають своє значення, але генератор зупиняється, блокуючи всі функції приладу до наступного переривання або апаратного скидання. У режимі ADC NoiseReduction зупиняється обчислювальне ядро і всі модулі введення-виведення за винятком АЦП, що дозволяє мінімізувати шуми при виконанні перетворення. Блок-схема мікроконтролера ATtiny13 зображена на рисунку 2.1.
Рисунок 2.1 ? Блок- схема ATtiny13
Прилад виготовлений за високощільною енергонезалежною технологією виготовлення пам'яті компанії Atmel. Вбудована ISP Flash дозволяє перепрограмувати пам'ять програми в системі через послідовний SPI інтерфейс програмою-завантажувачем, виконуваної в AVR ядрі, або звичайним програматором енергонезалежній пам'яті. ATtiny13 підтримується різними програмними засобами та інтегрованими засобами розробки, такими як компілятори C, макроассемблери, програмні відладчики / симулятори, внутрішньо схемні емулятори та ознайомчі набори.
Відмінні особливості:
· Високоякісний низькоспоживаючий 8 - бітний AVR мікроконтролер.
· Передова RISC архітектура:
- 120 команд, більшість яких виконується за один тактовий цикл;
- 32 8-бітних робочих регістра загального застосування;
- повністю статична архітектура.
· Незалежна пам'ять програм і даних:
- 1 КБ внутрішньо системної програмованої Flash-пам'яті програми, здатної витримати 10 000 циклів запису / стирання;
- 64 байта внутрішньо системної програмованої EEPROM пам'яті даних, здатної витримати 100 000 циклів запису / стирання ;
- 64 байта вбудованої SRAM пам'яті (статичне ОЗУ);
- програмований захист від зчитування самостійно програмуючої Flash-пам'яті програми і EEPROM пам'яті даних.
· Характеристики периферії:
- один 8-розрядний таймер / лічильник і два ШІМ каналів;
- 4-канальний 10 бітний АЦП з вбудованим ІОН;
- програмований сторожовий таймер з вбудованим генератором;
- вбудований аналоговий компаратор.
· Спеціальні характеристики мікроконтролера:
- вбудований відладчикdebugWIRE;
- внутрішньо системне програмування через SPI порт;
- зовнішні і внутрішні джерела переривання;
- режими зниженого споживання Idle, ADC NoiseReduction і Power-down;
- удосконалена схема формування скидання при включенні;
- програмована схема виявлення короткочасних зникнень харчування;
- вбудований відкалібрований генератор.
· Порти введення - виведення і корпусне виконання:
- 8 вивідні PDIP і SOIC корпусу: 6 програмованих ліній введення-виведення.
· Діапазон напруги живлення: від 2.7 до 5.5 В.
· Споживання:
- активний режим: 290 мкА при частоті 1 МГц і напрузі живлення 1.8 В;
- режим зниженого споживання: 0.5 мкА при напрузі живлення 1.8 В.
Розміщення виводів мікроконтролера зображено на рисунку 2.2.
Рисунок 2.2 - Розміщення виводів ATtiny13
· VCC- напруга живлення.
· GND - заземлення.
· Порт B (PB5: PB0) - порт B являє собою 6-розрядний двонаправлений порт вводу/виводу з внутрішніми навантажувальними резисторами (вибраними для кожного біта).
· RESET-вхід скидання [4-5].
2.2 Розробка структурної схеми
Проаналізувавши архітектуру мікроконтролера ATtiny13 та технічне завдання, була розроблена функціональна схему пристрою (рис. 2.3), яка складається з наступних блоків:
· мікроконтролер;
· блок керування;
· схема скиду;
· стабілізатор напруги;
· керуючий елемент;
· блок індикації;
· реле;
· блок живлення.
Рисунок 2.3 - Функціональна схема пристрою
2.3 Вибір електронних компонентів
мікроконтролер архітектура кодовий адресний
Для роботи мікроконтролера потрібна напруга 5 В, для її забезпечення ми використаємо стабілізатор напруги 78L05. Якщо на вхід даного стабілізатора подати 12 В і 0,2 А то на виході буде 5 В. Його характеристики такі:
- вихідна напруга 5 В;
- максимальний вихідний струм 0,1 А;
- вхідна напруга до 30 В;
- робоча температура -20°С ? +150°С;
Схема включення стабілізатора зображена на рисунку 2.4.
78L05 - найпростіший стабілізатор додатної фіксованої напруги 5 вольт в корпусі з трьома виходами для широкого застосування. Цей стабілізатор розрахований на навантаження в 100mA. Звісно, є захист від перевищення струму навантаження, захист від перегріву. Стабілізатори в цьому виконанні розраховані на застосування в слабкострумових електричних ланцюгах. Напруга на вході також близько 10 вольт.
Рисунок 2.4 - Схема включення стабілізатора 78L05
У якості блоку індикації використовуються 3 світлодіоди. Якщо струм споживання світлодіода в робочому режимі не перевищує 30 мА, а номінальна напруга не перевищує напруги живлення мікроконтролера, то ми можемо підключати його безпосередньо до лінії порту введення / виводу.
Світлодіод треба підключати через резистор (рис.2.5). Справа в тому, що прямий опір світлодіода дуже малий. І якщо не обмежувати струм через резистор, то він згорить. Або, що вірогідніше, спалить вивід мікроконтролера.
Рисунок 2.5 - Схема підключення світлодіода
Для скиду мікроконтролера в схемі є кнопка RESET. Реалізація скиду (рис. 2.6) відбувається наступним чином: при включенні схеми конденсатор розряджений і напруга на RST близька до нуля - мікроконтролер не стартує. Але з часом, через резистор, конденсатор зарядиться і напруга на RST досягне логічної одиниці - МК запуститься. Кнопка дозволяє примусово зробити скидання, якщо треба.
Рисунок 2.6 - Схема скиду мікроконтролера
При конструюванні пристроїв на мікроконтролерах часто виникає необхідність управління різними зовнішніми пристроями за допомогою включення і вимкнення напруги живлення. При цьому напруга живлення і струм споживання таких пристроїв можуть змінюватися в найширших межах. Універсальним способом управління подібними пристроями є електромагнітне реле. В даний час у продажу з'явилися малогабаритні реле з досить непоганими параметрами. Сьогодні реле можуть комутувати навантаження в ланцюзі до 220 вольт при струмі до 10 ампер і вище. Обмотка реле зазвичай розрахована на напругу 12В і споживає струм всього 40 мА. Схема підключення вказана на малюнку 2.7.
Для того, що б включити навантаження мікроконтролер виставляє на своєму виході (в даному випадку на виході PB0) сигнал логічної одиниці. Напруга через резистор R1 поступає на базу транзистора. Транзистор відкривається і реле спрацьовує. Його контакти замикають ланцюг навантаження. Для відключення навантаження мікроконтролер виставляє на своєму виході сигнал логічного нуля. На базі VT1 напруга знижується до нуля. Транзистор закривається і реле відключається. Діод VD1 служить для захисту схеми від напруги самоіндукції, яке виникає в обмотці реле при знятті з неї напруги [6].
Рисунок 2.7 - Схема підключення реле до мікроконтролера
У розділі розглянуто всі функціональні можливості і властивості мікроконтролера ATtiny13, його архітектура. Визначено електронні компоненти схеми та типи їх підключення.
За допомогою визначення усіх функціональних вузлів схеми, була створена функціональна і електрична принципова схема згідно технічного завдання курсового проекту.
3. РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
3.1 Розробка алгоритму функціонування
Алгоритм функціонування -- це сукупність правил, що ведуть до правильного виконання технічного процесу в якому-небудь пристрої або в сукупності пристроїв (системі).
На початку роботи схеми відбувається ініціалізація мікроконтролера, налаштування портів і увімкнення пристроїв.
Вводяться три числа в такій послідовності: спочатку перше, потім друге і третє, наприклад: 3, 2, 1. Числа можуть бути в межах від 1 до 255, на відміну від декадних набраних пристроїв, які використовуються для набору чисел в подібних пристроях, у яких діапазон обмежений від 0 до 9-ти.
Якщо вміст введених 3-х чисел співпало з тими числами, які занесені попередньо в незалежну пам'ять мікроконтролера (EEPROM), на виході з'являється сигнал логічної «1», загоряється світлодіод HL4, який горить близько 15 сек. У цей період індикація 3-хсвітлодіодів HL1, HL2, HL3 набуває вигляду «бігаючих вогників»; після закінчення цього часу на виході з'являється логічний «0» і схема переходить знову в початковий стан очікування.
Всі операції можна здійснювати за допомогою 2-х кнопок, орієнтуючись при цьому на стан світлодіодних індикаторів. Введення чисел здійснюється за допомогою однієї кнопки «SET», яка може бути винесена назовні пристрою і доступна всім користувачам. Кнопка «RESET» повинна розташовуватися безпосередньо на платі, за допомогою цієї кнопки здійснюється режим програмування занесених попередньо в незалежну пам'ять чисел. Дана схема має два режими роботи:
· режим програмування, (запису) для введення 3-х бажаних чисел із занесенням їх значень в енергонезалежну пам'ять мікроконтролера, ці значення зберігаються при знеструмленні пристрою;
· режим введення кодів (чисел) для відкривання кодового замка.
Наприклад, потрібно занести в незалежну пам'ять числа 3, 2, 1. Для цього нам треба увійти в режим програмування ? після подання живлення одночасно утримувати натиснутими обидві кнопки «SET» і «RESET». Після чого спершу відпустити кнопку «RESET», і після початку мигання першого світлодіода HL1, відразу ж відпустити установчу кнопку «SET». Після чого світлодіод HL1 перестає блимати і спалахує постійно, (інші світлодіоди HL2, HL3 погашені) це означає, що пристрій готовий для введення першого числа.
Далі треба натиснути кнопку «SET» і утримувати її в натиснутому стані, відраховуючи одночасне блимання всіх 3-х світлодіодів HL1, HL2, HL3 (щоб блимнуло 3 рази), потім кнопку відпустити. На підтвердження, через секунду, індикація блимне набране нами число ? 3 (три рази). Далі загориться постійно другий світлодіод HL2 (це означає, що треба ввести друге число) у нас це число дорівнює двом. Треба натиснути знову кнопку «SET» і утримувати її, доки світлодіоди HL1-HL3 після натискання не блимнуть два рази, після цього відпустити кнопку, через секунду відбудеться підтвердження набраного нами другого числа -блок індикації блимне одночасно 3-ма світлодіодами два рази. Після цього загориться постійно 3-й світлодіод HL3, третє число ми вибрали рівним - 1. Це означає, що нам потрібно натиснути кнопку, щоб світлодіоди спалахнули після натискання тільки 1 раз і відпустити кнопку. Через секунду на підтвердження, світлодіодний індикатор блимне 1 раз. На цьому процедура програмування (внесення чисел 3,2,1) закінчена.
Далі треба натиснути кнопку «RESET» або вимкнути живлення, щоб після програмування чисел схема увійшла до вихідного режиму очікування ? режиму введення кодів (чисел) для відкривання кодового замка. У цьому режимі вся індикація погашена.
Тепер спробуємо відкрити замок ? нам потрібно занести числа 3, 2, 1. Для цього необхідно натиснути кнопку «SET», схема активізується, це буде видно по блиманню 1-го світлодіода. Після цього відразу відпустити кнопку, тепер перший світлодіод горить постійно, це означає, що треба ввести перше число - 3.
Процедура аналогічна до вище описаної, натискаємо кнопку «SET», і утримуючи її натиснутою чекаємо, щоб всі 3 світлодіоди запалилися 3 рази, після цього відпускаємо кнопку. Через секунду відбувається підтвердження набраних нами чисел ? у відповідь миготіння 3 рази. Далі така ж процедура з другим і третім числом.
Якщо після введення третього числа і підтвердження індикацією, код всіх 3-х чисел введений вірно, то через секунду запалюється світлодіод HL4 і горить близько 15 секунд. У цей час HL1, HL2, HL3 починають мерехтіти, як «бігаючі вогні» один за іншим. Після закінчення 15 секунд всі світлодіоди гаснуть і схема переходить в початковий стан очікування.
Якщо код введений невірно, ніякої реакції не буде до введення 3-ї невдалої спроби, після чого індикація набуває вигляду «бігаючих вогнів» 3-х світлодіодів і переходить в режим блокування схеми на 2,5 хвилини. Після закінчення даного часу, схема знову перейде в початковий стан очікування і можна буде знову спробувати ввести правильний код.
Замінити старі коди на нові можна в режимі програмування, ввівши 3 нові числа.
Для більш наочного розуміння алгоритму, використовуються блок-схеми алгоритму функціонування. У автоматиці функціональна схема, або блок-схема САР, складається з функціональних блоків, які являють собою конструктивно відособлені частини (елементи або пристрої) автоматичних систем, які виконують певні функції.
Блок-схема алгоритму функціонування системи кодового захисту з однією кнопкою наведена на рисунку 3.1.
Рисунок 3.1 - Блок-схема алгоритму функціонування
3.2 Організація пам'яті та розподіл адресного простору
Архітектура AVR має дві основні області пам'яті: пам'ять даних (рис. 3.3) і пам'ять програм (рис. 3.2). Крім того, ATtiny13 має пам'ять EEPROM для зберігання даних. Всі три області пам'яті є лінійними. ATtiny13 містить 1K байт на кристалі внутрішньо системної програмованої флеш-пам'яті для програмного зберігання. Оскільки всі AVR команди по 16 або 32 байти, флеш-пам'ять організована як 512 х 16. Флеш-пам'ять має витривалість не менше 10000 циклів запису / стирання. ATtiny13 програмний лічильник (РС) дев'ятибітний, що дозволяє виконувати 512 локацій пам'яті програм.
Рисунок 3.2 - Організація програмної пам'яті
Найнижчі 160 локацій пам'яті даних відведені для звертання до реєстровогофайлу, пам'яті введення / виведення і внутрішньої SRAM пам'яті. Перші 32 локації звертаються дореєстрового файлу, наступні 64 локації- до стандартної пам'яті введення / виведення, а останні 64 -до внутрішньої SRAM пам'яті даних.
При адресації пам'яті даних використовуються п'ять режимів адресації: безпосередня адресація, непряма зі зсувом, непряма, непряма з преддекрементом і непряма з постдекрементом. Регістри з R26 по R31 реєстрового файлу працюють як X, Y і Z регістри показники непрямої адресації.
При використанні непрямої адресації з автоматичним преддекрементом і постдекрементом автоматично декрементуются і інкрементуются адреси записані в регістри X, Y і Z. Усіма цими режимами перекривається весь адресний простір даних, включаючи 32 регістра загального призначення і 64 регістра І/O.
Рисунок 3.3 - Організація пам'яті даних
ATtiny13 містить 64 байти пам'яті даних EEPROM. Вона організована як окремий простір даних, в якому окремі байти можуть бути прочитані і записані. EEPROM має на витривалість щонайменше 100 000 циклів запису / стирання.
Всі I / O локації доступні для LD / LDS / LDD і ST / STS / STD інструкцій, даними, що передаються між 32 робочими регістрами загального призначення і середовищем введення / виводу. Регістри введення / виводу в діапазоні адрес 0x00-0x1F безпосередньо доступні за допомогою SBIі CBI інструкції. У цих регістр f, значення одного біта може бути перевірена за допомогою НВІС і SBIC інструкції. При використанні спеціальних команд введення / виведення IN і OUT,повинні бути використані адреси введення / виведення 0x00 - 0x3F. Для сумісності з майбутніми пристроями, зарезервовані біти повинні бути записані в нуль, якщо є вони доступні [7].
3.3 Розробка програми, що керує роботою мікропроцесора
Всі мови програмування діляться на дві групи:
? мови низького рівня (машинного орієнтування);
? мови високого рівня.
Так як програмування мікроконтролера невіддільно від його апаратної частини, то пишучи код на мові низького рівня, ви звертаєтесь до всієї периферії напряму і бачите що і як відбувається.
Яскравим представником мов низького рівня є Асемблер. Тому для програмної реалізації схеми використана саме дана мова.
Специфіка мови Асемблер полягає ще й у тому, що набір операторів для цієї мови безпосередньо залежить від системи команд конкретного МК. Тому, якщо два МК мають різну систему команд, то і мова Асемблер для кожного такого МК буде своя.
Мови програмування високого рівня відрізняються тим, що вони більш орієнтовані на людину. Більшість команд мов високого рівня не пов'язані з конкретними командами МК.
Програмне забезпечення було розроблене за допомогою AVRStudio ? інтегрованого середовища розробки (IDE) для розробки 8-ми і 32-х бітних AVR додатків від компанії Atmel.
Лістинг програми виглядає наступним чином:
MOVFF 0, 0x755
ADDWF 0x55, F, BANKED
ADDWF 0x66, F, BANKED
ADDWF 0x77, W, ACCESS
ADDWF 0, F, BANKED
ADDWF 0xf88, W, ACCESS
ADDWF 0xaa, F, BANKED
BTFSC 0x1d, 0x7, BANKED
GOTO 0x160e0e
BTFSC 0x7, 0x5, BANKED
BZ 0x28
BTFSC 0x8, 0x5, BANKED
BTFSC 0x8, 0x4, BANKED
BCF 0xb3, 0x5, BANKED
MOVFF 0xa, 0x80
BZ 0xffffff24
BRA 0x18c
DECFSZ 0x19, F, ACCESS
BZ 0xffffff2c
BRA 0x18c
DECFSZ 0x29, F, ACCESS
BZ 0xffffff34
BRA 0x18c
DECFSZ 0x39, F, ACCESS
MOVFF 0x2, 0x468
BCF 0x68, 0x2, ACCESS
ADDWF 0xbb, F, BANKED
ADDWF 0, F, BANKED
ADDWF 0x55, F, BANKED
ADDWF 0x77, F, BANKED
BRA 0x176
BCF 0xb3, 0x4, BANKED
MOVFF PCLATH, 0x5
BZ 0x52
BCF ADCON0, 0x5, ACCESS
BRA 0x152
BCF ADCON0, 0x4, ACCESS
BRA 0x158
BCF 0xa, 0x2, BANKED
BRA 0x158
BCF 0xb3, 0x4, BANKED
MOVFF 0x17, 0x21
MOVFF 0x21, 0x5
BZ 0x68
BCF ADCON1, 0x5, ACCESS
BRA 0x152
BCF ADCON1, 0x4, ACCESS
BRA 0x158
BCF 0xa, 0x2, BANKED
BRA 0x158
BCF 0xb3, 0x4, BANKED
MOVFF 0x17, 0x21
MOVFF 0x21, 0x5
BZ 0x7e
BCF 0xfc0, 0x5, ACCESS
BRA 0x152
BCF 0xfc0, 0x4, ACCESS
BRA 0x158
BCF 0xa, 0x2, BANKED
BRA 0x158
BCF 0xb3, 0x4, BANKED
MOVFF 0x17, FSR2L
MOVFF FSR2L, 0x700
ADDWF 0, F, BANKED
ADDWF 0x55, F, BANKED
ADDWF 0x77, F, BANKED
CPFSLT 0x72, ACCESS
BCF ADCON0, 0x5, ACCESS
MOVFF 0x23, 0x596
DECFSZ 0x15, F, ACCESS
BZ 0xffffff9a
DECFSZ 0x91, W, BANKED
BRA 0x194
ADDWF 0, F, BANKED
ADDWF 0x55, F, BANKED
ADDWF 0x77, F, BANKED
CPFSLT 0x74, ACCESS
BCF ADCON1, 0x5, ACCESS
MOVFF 0x18, 0x566
DECFSZ 0x25, F, ACCESS
BZ 0xffffffb2
DECFSZ 0x92, W, BANKED
BRA 0x194
ADDWF 0, F, BANKED
ADDWF 0x55, F, BANKED
ADDWF 0x77, F, BANKED
CPFSLT 0x78, ACCESS
BCF 0xfc0, 0x5, ACCESS
MOVFF 0xd, 0x536
DECFSZ 0x35, F, ACCESS
BZ 0xffffffca
DECFSZ 0x93, W, BANKED
BRA 0x194
MOVFF 0xfb7, 0xd71
MOVFF FSR1H, 0xd72
MOVFF PLUSW0, 0xd73
MOVFF PRODH, 0xfb0
MOVFF 0xfb0, 0x9b3
BCF 0xb3, 0x4, BANKED
MOVFF TOSH, 0x3c
BRA 0x158
BRA 0x162
BRA 0x176
BCF 0x53, 0x2, BANKED
BCF 0xb3, 0x5, BANKED
MOVFF PCLATH, 0x45
BRA 0x176
ADDWF 0, F, BANKED
DECFSZ 0x75, F, ACCESS
BRA 0x162
BRA 0x158
BCF 0x7a, 0x2, ACCESS
MOVFF FSR0L, 0xe45
DECFSZ 0x45, F, ACCESS
IORWF 0x41, W, ACCESS
MOVFF TMR1H, 0x1b0
CPFSLT 0xb0, BANKED
MOVFF T1CON, 0xe55
DECFSZ 0x55, F, ACCESS
IORWF 0x52, W, ACCESS
MOVFF T0CON, 0x2b0
CPFSEQ 0xfb0, ACCESS
MOVFF OSCCON, 0xe65
DECFSZ 0x65, F, ACCESS
IORWF 0x63, W, ACCESS
MOVFF TRISA, 0x4b0
CPFSGT 0xfb0, ACCESS
RLCF 0xb0, F, BANKED
BRA 0x176
BCF ADRESH, 0x5, ACCESS
ADDWF 0x22, F, BANKED
MOVFF 0x7, 0x523
BCF 0x23, 0x2, BANKED
RRCF 0x23, W, ACCESS
MOVFF 0xf87, 0x722
ADDWF 0x22, F, BANKED
BNC 0x92
MOVFF 0x1, 0xb5
BZ 0x9c
BCF ADCON0, 0x5, ACCESS
BRA 0x152
BCF ADCON0, 0x4, ACCESS
BRA 0x176
BCF ADCON1, 0x5, ACCESS
BRA 0x152
BCF ADCON1, 0x4, ACCESS
BRA 0x176
BCF 0xfc0, 0x5, ACCESS
BRA 0x152
BCF 0xfc0, 0x4, ACCESS
BRA 0x176
BCF 0xba, 0x2, BANKED
BCF ADRESH, 0x4, ACCESS
MOVFF 0xf73, 0x5ea
BCF 0xea, 0x2, BANKED
BCF 0x8, 0x2, BANKED
BZ 0xf2
BZ 0x102
BCF 0x21, 0x3, BANKED
BCF 0x8, 0x2, BANKED
BCF ADCON0, 0x5, ACCESS
BCF ADCON1, 0x5, ACCESS
BCF 0xfc0, 0x5, ACCESS
BRA 0x176
BCF ADCON0, 0x4, ACCESS
BCF ADCON1, 0x4, ACCESS
BCF 0xfc0, 0x4, ACCESS
RCALL 0x158
RCALL 0x158
BCF 0x8, 0x2, BANKED
RCALL 0x158
RCALL 0x158
RCALL 0x158
RCALL 0x158
RCALL 0x158
BCF 0x8, 0x2, BANKED
BZ 0x198
RCALL 0x162
BCF 0xa, 0x2, BANKED
BCF 0x8, 0x2, BANKED
BTFSC 0x8e, 0x5, BANKED
BCF BSR, 0x5, ACCESS
BTFSC 0x9d, 0x1, BANKED
BCF 0x8, 0x2, BANKED
BCF 0xe1, 0x4, BANKED
MOVFF TOSH, 0xb8e
BTFSC 0x8e, 0x5, BANKED
BTFSC 0x9d, 0x5, BANKED
BCF FSR1H, 0x5, ACCESS
BCF FSR1L, 0x5, ACCESS
BCF 0x8, 0x2, BANKED
CPFSEQ 0x28, BANKED
ADDWFC 0x29, W, ACCESS
RRCF 0x32, F, ACCESS
RLNCF 0x2e, F, ACCESS
CPFSEQ 0x65, ACCESS
RRCF 0x2e, F, ACCESS
RRCF 0x30, W, BANKED
ADDWFC 0x31, W, ACCESS
BTG 0x62, 0x4, BANKED
DCFSNZ 0x20, F, ACCESS
BTG 0x61, 0x2, BANKED
NEGF 0x69, BANKED
BTG 0x69, 0x1, ACCESS
ADDWFC 0x2e, W, ACCESS
NEGF 0x76, ACCESS
CPFSGT 0x61, ACCESS
NEGF 0x69, BANKED
NEGF 0x69, ACCESS
BTG 0x40, 0x1, ACCESS
CPFSGT 0x61, ACCESS
MOVWF 0x69, BANKED
CPFSGT 0x64, BANKED
DECFSZ 0x64, F, ACCESS
BTG 0x72, 0x2, BANKED
У розділі описано роботу схеми, її алгоритм і наведено блок-схему функціонування. Описано розподіл і організацію пам'яті і адресного простору мікроконтролера.
Також розроблено програмне забезпечення у середовищі AVRstudio, що керує роботою мікропроцесора.
4. МОДЕЛЮВАННЯ РОБОТИ
Моделювання роботи системи кодового захисту з однією кнопкою (рис. 4.1) проводилось у пакеті Proteus 7.7 Professional (Isis 7.7 Professional).
Рисунок 4.1 - Змодельована схема системи кодового захисту з однією кнопкою
Після встановлення режиму роботи схеми, переходимо до програмування чисел. Після встановлення кожного числа, починає блимати блок індикації, що складається з 3-х світлодіодів (рис. 4.2).
Після завершення програмування чисел, програма переходить в звичайний режим введення чисел.
Якщо комбінація була введена правильно - вмикається блок індикації з одного світлодіода (рис. 4.3).
Рисунок 4.2 - Індикація завершення введеного числа
Рисунок 4.3 - Індикація правильно введеної комбінації
Схема та програма взаємодіють правильно, функціональність пристрою відповідає технічному завданню.
ВИСНОВКИ
У курсовому проекті було розроблено систему кодового захисту з однією кнопкою на мікроконтролері ATtiny13. Розробка апаратної частини проекту дозволила детально ознайомитись з архітектурою мікроконтролера, його властивостями, а також електронними компонентами схеми. Відповідна схема була промодельована у пакеті Proteus 7.7 Professional, де і була перевірена функціональність пристрою. Програмне забезпечення було створене в середовищі AVRStudio мовою Асемблер.
Даний проект дозволяє розробити реальний пристрій, котрий міг би використовуватись для обмеження доступу до приміщень або сейфів, у різного роду пристроях, котрі вмикаються після правильного введення кодової комбінації.
Размещено на Allbest.ru
Подобные документы
Склад, особливості, технічні характеристики та архітектура вибраного мікроконтролера. Проектування керуючого автомату на мікроконтролері для пристрою світлових ефектів, побудова його принципової електричної схеми та розробка програмного забезпечення.
курсовая работа [422,1 K], добавлен 27.02.2013Аналіз технічного забезпечення, вибір інструментального програмного забезпечення та середовища розробки програм. Створення класів для реалізації необхідних функцій для роботи програмного засобу. Розробка інтерфейсу для користувача та лістинг програми.
курсовая работа [343,9 K], добавлен 24.08.2012Короткий опис мікроконтролера ATmega6450, його особливості та опис виводів. Розробка принципової схеми стенду. Написання програми на мові СІ при використанні програмного середовища CodeVisionAVR. Перепрограмування мікроконтролера ATmega6450 сімейства AVR.
курсовая работа [491,2 K], добавлен 15.05.2013Створення схеми електричної принципової МР-3 програвача – приставки до ПК, структурної та загальної схеми. Призначення проектуємого пристрою. Принцип роботи окремих ВІС. Розробка програми тестування роботи пристрою, розрахунок надійності його роботи.
курсовая работа [527,4 K], добавлен 24.03.2009Створення схеми електричної принципової годинника-будильника-термометра з ІЧ ПК. Призначення проектуємого пристрою. Розробка структурнї та електричної принципової схеми пристрою та програми тестування роботи пристрою, розрахунок надійності його роботи.
курсовая работа [935,6 K], добавлен 23.03.2009Класифікація роботів: андроїд, бойовий, побутовий, персональний, промисловий, соціальний та шаробот. Розробка принципової електричної схеми робототехнічної моделі. Блок схема мікроконтролера ATtiny26/L та програмне забезпечення керуючого автомату.
курсовая работа [936,6 K], добавлен 25.02.2013Винахід мікропроцесора розв’язав суперечність між високим ступенем інтеграції, що забезпечує напівпровідникова мікротехнологія, та великим числом інтегральних схем. Розробка програми ініціалізації МК для роботи з пристроями, що входять до складу системи.
курсовая работа [265,6 K], добавлен 18.12.2010Розробка структурної та принципипової схеми мікропроцесорної системи, їх структура и головні елементи. Розробка програми мікропроцесора, а також пристрою для блоку воду-виводу, схеми дешифратора. Інтерфейс і закономірності зв’язку в комп’ютером.
курсовая работа [639,9 K], добавлен 09.09.2015Характеристика функціональної структури предметної області програмного комплексу. Розробка архітектури програмної системи. Вибір типу архітектури й зразків проектування. Опис декомпозиції, залежностей та інтерфейсу. Детальне проектування модулів та даних.
курсовая работа [462,2 K], добавлен 19.12.2013Розробка програми для моделювання роботи алгоритму Дейкстри мовою C# з використанням об’єктно-орієнтованих принципів програмування. Алгоритм побудови робочого поля. Програмування графічного інтерфейсу користувача. Тестування програмного забезпечення.
курсовая работа [991,4 K], добавлен 06.08.2013