Розробка принципової схеми та програмного забезпечення на мікроконтролері 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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.