Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Буклет Лабораторні роботи МСТЗІ

.pdf
Скачиваний:
69
Добавлен:
12.02.2016
Размер:
6.09 Mб
Скачать

AVR Studio дає змогу встановлювати точки зупину. З пин може відбуватися при досягненні певної адреси(програмний зупин) або настанні певної події. Точка зупину за адресою встановлюється напроти певної команди, при досягненні якої автоматичне виконання програми зупиниться і програма перейде в режим покрокової відладки. Щоб встановити точку зупину на певній команді потрібно розташувати в рядку з командою курсор і вибрати пункт меню Debug/Toggle Breakpoint (Рис. 10, а). В рядку напроти вибраної команди появиться червоний кружок. Тепер якщо при відладці включити автоматичний режим(командою Run) відладчик при досягненні точки зупину зупиниться і буде очікувати наступних дій.

Також програмний зупин можна встановити вибравши пункт Debug/Newменю

Breakpoint/Program Breakpoint (Рис. 10, а). У вікні Add Program Breakpoint можна задати назву файлу, адресу чи назву функції при досягненні яких відбудеться зупин (Рис. 10, б).

а)

б)

Рис. 10. Встановлення точки зупину (а) та вікно параметрів програмної точки зупину (б)

Для встановлення зупину при досягненні регістром

МК певного значення потрібно

вибрати пункт меню Debug/New Breakpoint/Data Breakpoint (Рис. 10, а). У вікні Add Data Breakpoint можна задати подію, при якій відбудеться зупин (поле Break when:), а також регістр який буде причиною зупину (поле Location:, вікно Symbol Browser) (Рис. 11).

а)

б)

 

Рис. 11. Вибір умови (а) та джерела зупину (б)

Під час відладки можна переглядати та змінювати вміст регістрів загального

призначення, оперативної

пам’яті, регістрів периферійних пристроїв, пам’яті програм та

10

енергонезалежної пам’яті даних використовуючи команди меню View/Memory, View/Memory 2 або View/Memory 3. При цьому з’являється вікно Memory (Рис. 12), де зі списку можна вибрати потрібну для перегляду ділянку пам’яті(в стовпцях виділених синім кольором відображається початкова адреса, далі йдуть дані, що знаходяться за цими адресами в шістнадцятковому та символьному представлені).

Рис. 12. Вибір області пам’яті для перегляду у вікні Memory

За значеннями змінних також можна спостерігати вибравши команду менюView/Watch. При цьому появиться вікноWatch. У ньому потрібно клацнути правою клавішею мишки і у меню, що з’явиться, вибрати пункт Add Item (Рис. 13).

Рис. 13. Додавання змінних для спостереження в процесі відладки

Курсор автоматично переміститься в клітинку стовпцяName вікна Watch в якому потрібно набрати ім’я змінної, за якою буде вестися спостереження. Наприклад

Рис. 14. Вид вікна Watch в процесі відладки

Тепер поточне значення змінної Delay1 буде відображатися в стовпці Value вікна Watch (Рис. 14). Дані можна відображати як в шістнадцятковій так і десятковій системах числення встановлюючи або скидаючи прапорець Display all Values as Hex (Рис. 13).

Вийти з режиму відладки можна командою меню Debug/Stop Debugging (Ctrl+Alt+F5). Відладка дає змогу переконатися в синтаксичній правильності створеної програми для

МК, конфігурації периферійних блоків та взаємодії їх з підпрограмами і головною програмою. Проте відладка стосується лише роботи самого МК і не дозволяє повністю проконтролювати роботу МК при взаємодії з зовнішніми пристроями. Частково вирішити цю задачу дає змогу програма-симулятор Proteus. Розглянемо як здійснюється відладка та симуляція в програмі

Proteus v7.1.

11

1.2. Відладка та симуляція роботи схеми в програмі Proteus

Спочатку потрібно скопіювати ваш *.hex файл програми з каталогу проекту в AVR Studio до каталогу проекту в програмі Proteus.

Далі запустіть програмуProteus при цьому появиться вікно представлене наРис. 15. Відкрийте файл LR_1.dsn через пункт меню File/Open Design.

Рис. 15. Основне вікно програми Proteus

Завантажиться схема для моделювання роботи пристрою (Рис. 16).

Рис. 16. Схема для симуляції охоронної системи в Proteus

12

На схемі зображені наступні елементи: U1 – МК AT90S2313; SW11 SW12, SW13 – охоронні давачі з нормально розімкненими контактами підключені до шлейфуSHL0 (вивід РВ0 МК); SW21 SW22, SW23 – охоронні давачі з нормально замкненими контактами підключені до шлейфу SHL1 (вивід РВ1 МК); D1 – світлодіод; ON/OFF – перемикач постановки/зняття з охорони.

У правій частині знаходиться вікноDEVICES в якому відображені елементи, використані в схемі. Щоб додати елемент до схеми потрібно натиснути кнопку Р (вказівник 1 на Рис. 15), при цьому появиться вікно вибору елементівPick Devices, які згруповані за функціональним призначенням (Рис. 17):

Рис. 17. Бібліотека компонентів Proteus

У підвікні Category вибирається тип елементу(напр. мікросхеми мікропроцесорів – Microprocessors ICs), підвікно Sub-category дає змогу уточнити категорію елементу(напр. сімейство МК AVR – AVR Family), а підвікно Manufacturer – вибрати фірму-виробника потрібної мікросхем. Результат пошуку виводиться у підвікніResults. Якщо в цьому вікні вибрати конкретну мікросхему(напр. МК AT90S2313) то появиться спливаюче віконце з короткою інформацією про мікросхему, у підвікні Preview – її умовне графічне зображення, а у підвікні PCB Preview – тип і зовнішній вигляд корпусу мікросхеми.

Слід відзначити, що програма Proteus володіє великою бібліотекою самих різних сучасних електронних компонентів, зокрема: пасивних і активних аналогових елементів, цифрових мікросхем, мікросхем пам’яті, АЦП та ЦАП, мікропроцесорів та мікроконтролерів, програмованих логічних матриць, реле, ключів, дисплеїв, роз’ємів, кнопок і т. д.

З’єднувати елементи на схемі можна або з допомогою провідників(ліній) або з допомогою спеціальних з’єднувачів. Якщо натиснути на піктограмуTerminals Mode на панелі інструментів (вказівник 2 на Рис. 15) то у вікніTerminals (Рис. 18, а) можна вибрати тип з’єднувача: живлення, земля або загальний. Якщо двічі клацнути по з’єднувачу, то у вікні Edit Terminal Label (Рис. 18, б) вказується його назва: наприклад SHL0 і далі всі виводи під’єднанні до терміналу з аналогічною назвою вважаються електрично з’єднаними.

13

а) б)

Рис. 18. Набір з’єднувачів (а) та вікно для вказання назви провідника (б)

Після того, як на схемі розставлені, налаштовані та підключені всі потрібні елементи потрібно задати тактову частоту МК і програму, яку він повинен виконувати. Тактову частоту можна задати або підключивши кварцовий резонатор на відповідну частоту з бібліотекиProteus до виводів XTAL1-XTAL2 МК, або через налаштування МК. Для цього потрібно натиснути правою кнопкою мишки по МК і у спливаючому меню вибрати пунктEdit Properties (Рис. 19,

а) після чого появиться вікноEdit Component (Рис. 19, б). В рядку Clock Frequency і

вказується потрібна тактова частота. В цьому ж вікні в поліProgram File вказується файл з програмою для МК в форматі*.hex, який отримується при компіляції програми на асемблері в

AVR Studio.

а) б)

Рис. 19. Контекстне меню (а) та вікно налаштувань параметрів МК (б)

В Proteus можна здійснювати симуляцію роботи схеми як в покроковому режимі (команда меню Debug/Start/Restart Debugging) так і автоматичному(команда меню Debug/Execute або кнопка під вказівником 3 на Рис. 15).

При відладці в покроковому режиму для перегляду поточної команди, також вмісту внутрішніх регістрів і пам’яті, потрібно в меню Debug/AVR/ вибрати відповідні пункти (Рис.

14

20).

Рис. 20. Перегляд стану МК при відладці

При цьому якщо вибрати пункт 1, то у вікні AVR CPU Registers – U1 буде відображатися поточна команда (поле INSTRUCTION), вміст лічильника команд (поле РС), кількість тактів, стан прапорців регістру стану SREG та вміст 32 РЗП.

Для покрокового виконання команд можна скористатися пунктами меню Debug/Step Over (виконання команди без входження в тіло підпрограми), Debug/Step Into (виконання команд з входженням в тіло підпрограми) та Debug/Step Out (вихід з підпрограми) або клавішами F10, F11 та Ctrl+F11 відповідно.

Щоб почати відладку з певного моменту часу можна вибрати пункт менюDebug/Execute for Specified Time і у вікні що з’явиться задати потрібний (часРис. 21). При досягненні заданого часу автоматична симуляція зупиниться і перейде в покроковий режим.

Рис. 21. Вікно задання часу симуляції

Щоб зупинити автоматичну симуляцію та перейти в покроковий режим можна натиснути кнопки Step або Pause на панелі інструментів(вказівники 4 та 5 на Рис. 15) або використати команду меню Debug/Pause Animation. Завершити симуляцію можна через пункт меню Debug/Stop Animation (або через кнопку Stop на панелі інструментів – вказівник 6).

Рекомендується спочатку запустити симуляцію в автоматичному режимі, щоб перевірити

працездатність схеми, при цьому з допомогою стрілок

напроти перемикачів

можна

задавати їх стан (вкл./викл.) та спостерігати реакцію системи.

 

 

Якщо схема не працює або працює з помилками необхідно запустити

відладку в

покроковому режимі для з’ясування і усунення причини несправності.

 

15

2. Основи побудови охоронних систем на базі МК

При побудові охоронних сигналізацій використовуються охоронні давачі(ОД) як з нормально розімкненими (НРЗ) (з’єднані паралельно в колі шлейфа сигналізації), так і нормально замкненими контактами (НЗМ) (з’єднані послідовно в колі шлейфа сигналізації), які розташовуються на об’єкті і підключаються до МК з допомогою охоронних шлейфів. В якості ОД можуть виступати, наприклад, сенсори руху, розбиття скла, полум’я і диму, інфрачервоні бар’єри, тощо.

Типовий варіант підключення охоронних шлейфів SHL0 та SHL1 показаний на Рис. 22. Для ОД з НРЗ контактами(Рис. 22, а) при відсутності спрацювання на виводі хР МК

наявний високий рівень напруги, обумовлений підтягуючим резистором R1. При спрацюванні охоронного давача, його контакти замикають вивід МК на землю, і на виводі Рх буде присутній низький рівень напруги. Для давачів з НЗМ контактами(Рис. 22, б) при відсутності спрацювання на виводі Рх МК наявний відповідно низький рівень напруги. При спрацюванні ОД, його контакти від’єднують вивід МК від землі, і на виводі Рх буде присутній високий рівень напруги.

а) б)

Рис. 22. Підключення охоронних давачів з НРЗ (а) та НЗМ (б) контактами до МК

Розглянемо алгоритм функціонування простої охоронної системи (Рис. 16).

У початковому стані(режим очікування) МК опитує стан замаскованого(секретного) перемикача Постановки/Зняття з охорони. Після натискання перемикача, МК вичікує певний час (T_Alarm), потрібний для того, щоб покинути об’єкт, включає світлодіод і переходить в режим охорони. В режимі охорони МК опитує стан виводів, до яких підключені охоронні шлейфи. При виявленні спрацювання охоронного давача МК вичікує певний ,часпотрібний для того щоб вимкнути охорону і якщо протягом цього часу не було натиснуто секретного перемикача, включає світлову сигналізацію - мигання світлодіода з періодомT_Blick. Якщо протягом часу T_Alarm секретний перемикач було натиснуто, МК переходить в режим очікування.

Для реалізації вказаних функцій потрібно налаштувати виводи портів МК. МК AT90S2313 має 8-розрядний порт В і7-розрядний порт D. Звертання до портів відбувається через регістри вводу-виводу, причому під кожний порт в адресному просторі вводу/виводу зарезервовано 3 адреси. За цими адресами розташовуються регістри даних портівPORTB, PORTD, регістри напрямку даних DDRB, DDRD і регістри виводів портів PINB, PIND.

Регістри PINB і PIND насправді регістрами не є, по цим адресам здійснюється доступ до фізичних значень сигналів на виводах порта. При читанні регістра виводів портаPINx відбувається зчитування логічних рівнів сигналів, присутніх на виводах порта в даний момент часу (х = порт В або D).

Порядковий номер виводу порта відповідає порядковому номеру розряду регістрів цього

порта.

Порти мають дві можливості по конфігуруванню:

-задання напрямку передачі даних (вхід або вихід);

-підключення/відключення внутрішнього підтягуючого резистора.

Напрямок передачі даних визначається вмістом регістраDDRx. Якщо n-й розряд DDxn

16

цього регістра встановлений в1, відповідний n-й вивід порта є виходом. Якщо розряд DDxn скинутий в 0, відповідний вивід порта є входом. Можна задавати конфігурацію кожного виводу незалежно від решти, так що в одному порті будуть знаходитись одночасно як входи так і виходи.

Урежимі вихода вміст регістра даних портаPORTx визначає значення сигналів на відповідних виводах. При Pxn = 0 на n-му виводі встановлюється напруга низького рівня, при Pxn = 1 – високого.

Урежимі вводу, крім прийому зовнішніх сигналів можна підключати до входів портів внутрішні підтягуючі резистори, задаючи на входах при відсутності зовнішніх сигналів рівень

логічної одиниці. Управління підтягуючим резистором здійснюється з допомогою регістра даних порта PORTx. Якщо розряд Pxn регістра PORTx встановлений в 1 і відповідний вивід порта є входом, то між цим виводом і проводом живлення підключається внутрішній

підтягуючий резистор.

Щоб

відключити підтягуючий

резистор, необхідно або скинути

відповідний розряд регістра PORTx, або зробити вивід порта виходом.

 

 

 

 

 

 

 

 

 

 

 

DDRxn

 

PORTxn

 

Функція вивода

 

Внутрішній резистор

 

 

0

 

0

 

вхід

 

відключений

 

 

0

 

1

 

вхід

 

підключений

 

 

1

 

0

 

вихід

 

відключений

 

 

 

1

 

1

 

вихід

 

відключений

 

 

x = В або D (порт);

n = 0…7 – номер виводу (розряд порта).

Управляти світлодіодом можна просто підключивши його до вихідної лінії порта послідовно з обмежуючим струм резистором. Другий вивід цього кола слід підключити до додатної лінії живлення(Рис. 16). Світлодіод світиться при протіканні через нього струму певного значення, порядку одиниць-десятків мА. Відповідно для того, щоб світлодіод світився,

потрібно сформувати на виводі МК напругу низького рівня, тобто

записати у відповідний

розряд порта (регістр PORTx) значення 0. Щоб погасити – записати 1.

наведенаРис.на23. Вивід

Типова схема підключення кнопок або перемикачів

«підтягнутий» до високого логічного рівня обмежувальним резистором, величина опору якого може становити від 4.7…100 кОм, завдяки чому забезпечується мале споживання струму(Рис. 23, а). Коли контакти розімкнуті на вході Рх буде високий логічний рівень, при натисканні кнопки на вході Рх з’являється сигнал логічного нуля.

а) б)

Рис. 23. Підключення кнопок/перемикачів до МК з зовнішніми (а) та внутрішніми (б) підтягуючими резисторами

МК AVR мають внутрішні підтягуючі резистори, тоді схема включення кнопок або перемикачів не потребує додаткових елементів (Рис. 23, б).

Необхідні часові затримки в програмі доцільно формувати програмним , чиномз допомогою підпрограми.

Блок схема функціонування охоронної системи наведена на Рис. 24.

17

Ініціалізація

 

стеку

 

Ініціалізація

 

виводів МК

 

Ні

 

Перем. == 0

 

Так

 

Затримка на

Виключити світлодіод

Т_Alarm секунд

 

Включити світлодіод

 

Ні

Затримка на

SHL0 == 1

Т_Alarm секунд

 

Так

 

Ні

Так

Перем. == 1

SHL1 == 0

 

Виключити світлодіод

 

Так

Ні

 

 

Змінити стан

Ні

світлодіода

 

Перем. == 1

 

Так

Затримка на

Т_Blick секунд

 

Рис. 24. Блок-схема роботи охоронної системи

3.ЗАВДАННЯ

3.1Домашня підготовка до роботи

1.Вивчити теоретичний матеріал.

2.Вивчити основні властивості МК необхідні для виконання лабораторної роботи.

3.Підготовити програму функціонування охоронної системи згідно індивідуального завдання у Табл. 1.

18

3.2Виконати в лабораторії

1.Створити проект в AVR Studio, ввести свою програму, провести її асемблювання.

2.

В режимі покрокової відладки переконатися в

правильності

роботи ,програми

 

перевірити дотримання заданих в завданні часових параметрів.

 

3.

Відкрити файл LR_1.dsn в програмі Proteus, внести зміни у схему відповідно до свого

 

індивідуального завдання, підключити до МК отриманий в AVR Studio hex-файл.

4.

Запустити режим симуляції схеми та перевірити

правильність

функціонування

охоронної системи у всіх режимах роботи. У випадку виявлення відхилень в роботі внести потрібні виправлення.

4. ЗМІСТ ЗВІТУ

1.Мета роботи.

2.Повний текст завдання.

3.Лістинг програми одержаної в AVR Studio та необхідні розрахунки.

4.Схема симуляції в Proteus.

5.Висновок.

5.КОНТРОЛЬНІ ЗАПИТАННЯ

1.Яке призначення програм AVR Studio та Proteus ?

2.Схема підключення охоронних давачів з НРЗ і НЗМ контактами до МК ?

3.Поясніть як відбувається конфігурування портів вводу-виводу AVR-МК ?

4.Як здійснюється відладка в AVR Studio ?

5.Що таке точка зупину ? Які ви знаєте типи точок зупину ?

6.Як здійснюється контроль стану перемикача в програмі ?

7.Які є прапорці регістра стану та їх призначення ?

6.СПИСОК ЛІТЕРАТУРИ

1.Евстифеев А. В. Микроконтроллеры AVR семейства Classic фирмы «ATMEL». – М. Издательский дом “Додэка-ХХI”, 2002. – 288 с.

2.Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера.

СПб.: БХВ-Петербург, 2008. – 384 с.

3.Баранов В. Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы. – М.: Издательский дом “Додэка-ХХI”, 2004. – 288 с.

4.Голубцов М. С., Кириченкова А. В. Микроконтроллеры AVR: от простого к сложному.

М.: СОЛОН-Пресс, 2006. – 304 с.

5.Трамперт В. Измерение, управление и регулирование с помощью микроконтроллеров.: Пер. с нем. – К.: МК-Пресс, 2006. – 208 с.

6.Белов А. В. Конструирование устройств на микроконтроллерах. – СПб.: Наука и Техника, 2005. – 256 с.

19