Проектування термометра на базі мікроконтролера Atmega 8535

Тип работы:
Курсовая
Предмет:
Коммуникации, связь, цифровые приборы и радиоэлектроника


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Зміст

  • Вступ
  • 1. Аналіз змісту задачі на проектування і розробка принципової схеми пристрою
  • Висновок
  • Список використаної літератури
  • Додатки

Вступ

Метою курсової роботи є розробка термометра на базі мікроконтролера ATMEGA 8535, який би через аналогово-цифрове перетворення визначав значення температури. Курсова робота має на меті закріплення теоретичних та практичних навичок у програмуванні мікроконтролерів і роботі у візуальних середовищах програмування МК Algorithm Builder.

Інтенсивний розвиток цифрових, зокрема мікропроцесорних пристроїв, не міг не торкнутися такої важливої сфери, як оброблення сигналів у системах зв’язку, радіолокації і т.д. При цьому ставляться задачі виявлення і розрізнення сигналів очікуваної структури при дії перешкод, вимірювання певних їх параметрів та інші. Подібні задачі частіше розв’язуються на основі лінійної фільтрації вхідного сигналу при заданих характеристиках відповідної вибіркової системи. Істотно, що характеристики фільтрації повинні вибиратися виходячи з опису очікуваного сигналу, статистичних параметрів завад та певних критеріїв якості оброблення. Тому ці характеристики бажано оперативно змінювати. Аналогові системи оброблення сигналів є досить громіздкими у практичній реалізації та утруднюють адаптацію до змінних умов. Тому у сучасних системах використовують цифрове оброблення сигналів. Таке оброблення виконується цифровим пристроєм, що, як відомо, може будуватися за логікою операцій, або як універсальний? на основі МПП. Останній варіант простіший в реалізації, але не завжди можливий. Алгоритми і параметри цифрового оброблення сигналів накладають додаткові вимоги стосовно структури відповідного МПП.

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

Мікроконтролери стали інтенсивно впроваджуватися в електронну апаратуру як універсальна інтелектуальна компонентна база починаючи з кінця 80-х років. Широкий спектр застосування ОМК обумовив, з одного боку, їх масове виробництво (тому і здешевлення), а з другого — розвиток структури і технології з метою прискорення дії та подальшої інтеграції відповідно до вирішуваних задач.

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

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

розрядність даних, що обробляються;

інтерфейси для взаємодії з периферійними об'єктами;

наявні додаткові модулі для обробки певних сигналів;

обсяг і тип пам’яті команд та даних;

система команд;

швидкість виконання команд.

Провідними фірмами світу створені ряди ОМК, кожен з яких містить декілька типів ІМС на єдиних принципах побудови і системі команд. Виходячи з особливостей внутрішньої побудови, сучасні ОМК можна поділити на декілька груп:

Перша група — це 8-розрядні ОМК традиційної СІSК-архітектури. До цієї групи відносяться, зокрема, ОМК поширеного ряду МСS-51. Система команд у них достатньо розвинута, що спрощує складання програм. Однак виконання команд тут не оптимізоване за швидкістю, оскільки послідовне, базується на стандартному утримувачі одного операнда — акумуляторі і, залежно від складності команди, триває різний термін. Також ці ОМК не адаптовані до керування аналоговими вузлами, не мають самосинхронізованих послідовних інтерфейсів. Об'єм оперативної пам’яті таких ОМК частіше 128 байтів, хоча може нарощуватися ззовні подібно тому, як в ПЕОМ. Крім того, РПЗП у них часто з стиранням ультрафіолетом, що ускладнює зміну програми.

Друга група — це 8-розрядні ОМК RISК-архітектури першого покоління. Такі ОМК мають спрощену систему команд, однак оптимізовані за швидкістю їх виконання завдяки конвеєрній організації паралельного виконання команд, які зчитуються і виконуються за однаковий термін (з темпом в один чи два такти). Ця група започаткована РІС17С4х фірми МісroChіp. Сюди ж відносяться ОМК російського виробництва з ядром «Тесей». Проте подібні мікроконтролери мають істотно обмежені можливості стосовно об'єму інформації, що обробляється, і невелику кількість ліній портів.

Третя група — 8-розрядні RISК-ОМК другого покоління. Вони поєднують у собі властивості найбільш вдалих моделей першої групи, проте в архітектурі з конвеєрним виконанням команд та нарощеними спеціалізованими портами для взаємодії із зовнішніми цифровими і аналоговими пристроями. Їх характерні ознаки: різноманітні засоби сполучення з зовнішніми об'єктами не тільки паралельними і послідовними кодами, але й аналоговими сигналами; значний об'єм внутрішнього ОЗП даних і РПЗП програми з електричним стиранням, що виключають необхідність їх нарощування ззовні; достатньо розвинута система команд, які в потоці потребують одного — двох тактів генератора; у більшості безакумуляторна структура операційного ядра.

Четверта група — високопродуктивні багаторозрядні (16 чи 32 біти) мікроконтролери третього покоління. Для них характерні великий об'єм пам’яті та широкий набір виконуваних операцій, значний обсяг вбудованих спеціалізованих модулів для взаємодії із зовнішніми пристроями, у тому числі для цифрового оброблення сигналів.

У теперішній час найбільший обсяг застосування і випуску притаманний ОМК перших трьох груп. Серед них завдяки вдалій побудові певним стандартом стали ОМК традиційної СІSК-архітектури ряду МСS-51. Закладені в них принципи і система команд корелюються з процесорами ПЕОМ фірми Intel та знайшли продовження в багатьох сучасних мікроконтролерах.

Проблема без акумуляторного операційного блока і короткого адресування операндів компромісно розв’язана в 8-розрядних мікроконтролера рядів AVR (фірма ATMEL).

Особливості архітектури АVR

Щоб досягти максимальної продуктивності конвеєрного виконання команд, в AVR їх більшість складається з одного 16-бітного слова, що зчитується за один такт. Але, враховуючи довжину коду операцій (в середньому 6 бітів), для позначення місця знаходження двох операндів, наприклад арифметичної команди, можна використати лише по 5 бітів. Тому більшість команд AVR-мікроконтролера використовують лише перші 32 комірки адресного простору. Ці комірки називаються робочими регістрами r0… r31, бо тільки вони можуть бути джерелами і приймачами операндів в арифметичних і логічних операціях — тобто є акумуляторним файлом. Безпосередні дані можуть лише засилатися у робочі регістри і то не у всі, а тільки у старшу половину r16. r31 (не вистачає біта для адресування приймача).

У той же час AVR-мікроконтролери мають значний обсяг оперативної пам’яті, але комірки ОЗП беруть участь лише в операціях пересилання з робочими регістрами. Аналогічно доступні і регістри портів та інших пристроїв мікроконтролера, що відносяться до зони І/О — пристроїв введення/виведення. Cередньому кількість команд програми для АVR приблизно в 1,5−2 рази більша, ніж аналогічної для «Тесей». Проте ці ОМК мають вищу тактову частоту, а більшість команд надходять на конвеєр з темпом в один такт, що разом з розвинутою структурою має істотні переваги.

Мікроконтролер ATmega8535

ATMega8535 — 8-розрядний AVR — мікроконтролер покращеної RISC — архітектури, має потужний набір із 130 команд, більшість яких виконується за один такт, і 32×8-розрядних робочих регістрів загального призначення. Містить 8 КБайт програмованої флеш-пам'яті, 512 Байт пам’яті типу EEPROM і 512 Байт внутрішньої SRAM пам’яті. До його складу входять два 8-розрядних таймера/лічильника і один 16-розрядний таймер/лічильник, 8-канальний 10-розрядний АЦП послідовного наближення. 32 I/O лінії загального призначення.

1. Аналіз змісту задачі на проектування і розробка принципової схеми пристрою

Мікроконтролер типу ATMEGA8535 використовується для вимірювання температури процесу Т° у певному об'єкті та порівняння її з номінальною Т°ном. Сигнал про температуру надходить до пристрою контролю у вигляді певної напруги U. Характеристика датчика описується виразами:

U (В) = Т° / (60+3m1+m2) (1), Т°ном= 80+2m2+m3 (2)

Для вибору параметрів визначається номер варіанту:

W=31*2+3*10 = 92

Відповідно до варіанту вибираються параметри з таблиці 1:

Таблиця 1

Десятки

Одиниці номерів W

0

1

2

3

4

5

6

7

8

9

00

E

9

F

3

D

B

5

A

7

C

10

C

4

E

9

8

2

3

D

F

6

20

A

6

4

F

7

C

D

E

3

B

30

5

2

D

C

E

6

3

A

F

9

40

F

1

B

3

D

E

8

C

2

5

50

3

C

4

7

6

A

2

E

F

D

60

B

6

E

C

5

2

F

9

1

D

70

D

4

C

1

7

F

5

E

9

A

80

1

B

D

E

4

A

C

5

8

3

90

E

2

A

4

7

5

D

C

9

F

100

5

C

3

1

A

8

7

2

B

9

Відповідно до таблиці 1 значення параметрів будуть:

m1=A, m2=4, m3=7, m4=5. Тоді

Т°ном = 80+2*4+7 = 95°С

Порогові значення температури (10% від Т°ном):

Т1 = 85,5°С, Т2 = 104,5°С

Мікроконтролер працює з внутрішнім каліброваним тактовим генератором частотою 1 МГц. Задача полягає у створенні програми для мікроконтролера, яка забезпечує періодичне вимірювання напруги, перераховує її значення у температуру, підготовлює дані для виводу на індикатор та керує ним. Крім того, він порівнює отримане значення температури з номінальним Т°ном. Якщо температура менше норми на 10%, то світиться жовтий індикатор, вкладається у межі допуску — зелений, а як на 10% більша норми — червоний.

Датчик напруги (U) та світлодіоди: жовтий (Ж), червоний (Ч), зелений (З) підключені до порту А, а розподіл його ліній вказано у таблиці 2.

Таблиця 2

№ ва-ріанту

Лінії порту А

Спільний

8

7

6

5

4

3

2

1

92

Ж

U

Ч

З

катод

Варіанти з'єднання ліній портів з сегментами індикатора вказано у таблиці 3.

Таблиця 3

№ ва-ріанту

Сегменти

Спільний

a

b

c

d

e

f

g

h

92

1

8

3

7

5

4

6

2

катод

Світлодіоди у цифрових індикаторах та окремі (жовтий, зелений і червоний) мають спільні катоди, і світяться коли подається «1».

В залежності від розташування сегментів буде відповідне розташування образів символів в ОЗП, яке подане в таблиці 4.

Таблиця 4

Символ

Сегменти

b

d

g

e

f

c

h

a

0

1

1

0

1

1

1

0

1

1

1

0

0

0

0

1

0

0

2

1

0

1

1

1

0

0

1

3

1

0

1

0

1

1

0

1

4

1

1

0

0

1

1

0

0

5

0

1

1

0

1

1

0

1

6

0

1

1

1

1

1

0

1

7

1

0

0

0

0

1

0

1

8

1

1

1

1

1

1

0

1

9

1

1

1

0

1

1

0

1

Ізiвиразу (1) знаходимо можливі значення температури:

Т= U (В) * (3)

де = (60+3m1+m2) = (60+3*10+4) =94, U (В) = ДUкв*k;

ДUкв = 0,01 (В) — крок квантування;

k — значення коду ADCH від 0 до 255.

Тоді

Т°= ДUкв*k * (4)

Розрахуємо декілька значень температури:

Т°0= 0,01* 0 *94 = 0 (°С)

Т°1= 0,01* 1 *94 = 0,94 (°С)

Т°2= 0,01* 2 *94 = 1,88 (°С)

Т°255= 0,01* 255 *94 = 240 (°С)

Занесемо значення до температурної матриці

Температурна матриця

Завдання на курсову роботу полягає у виконанні кількох додаткових вимог:

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

— інтервал між вимірюванням (мс)

— для забезпечення певного інтервалу вимірювання потрібно встановити таймер — лічильник, в регістр ocr0 потрібно заслати певне число, що розраховується зі співвідношення:

— ocr0 = (вибраний дільник частоти * потрібний інтервал вимірювання) / період переповнення = 256 000*24000 (мкс) / 65 536 (мкс) = 94.

Принципова схема наведена у Додатку 2

2 Обгрунтування алгоритму роботи мікроконтролера у пристрої

Початок

Встановлення портів та знакомісць (табл. 2,3,4)(рис. 1,2)

Налаштування АЦП та переривань (рис. 3,4)

Налагодження таймерів 1 та 2

(рис. 5)

Визначення кількості sot, des, odn виміряної температури. (пункт 4)

Порівняння виміряної температури з пороговими значеннями (пункт 5)

Підпрограма паузи для організації динамічної індикації (пункт 6)

Кінець

За завданням курсової роботи було складено алгоритм роботи МК.

1) Головна програма (рис.) починається зі скиду процесора (Reset), встановлення стеку (SP, рис. 1) та налаштування портів (згідно свого варіанту) (таблиця 2,3,4)

Налаштування регістрів (рис. 2)

Встановлення стеку SP (рис. 1)

Налаштування регістрів (рис. 2)

Налаштовується АЦП. Далі проводиться певна початкова ініціалізація — обнулення змінних, що використовуються для визначення температури, а також встановлюється біт глобального дозволу переривань «І». (рис. 3)

ADCH-> U

mass*2 -> Z

Z+U

ADC_Complete

LPM[Z] -> temp

temp -> rez

segm

Повернення

термомент мікроконтролер пристрій алгоритм

Налаштування АЦП. (рис. 3)

Дозвіл переривання в регістрі ТІМСК (рис. 4)

3) Переривання від Таймера 1

Таймера 2

Запуск підпрогр. vuvid

Повернення

Налаштування таймера є також важливою дією.

Переривання від Таймера 2

запуск АЦП

Повернення

Налаштування таймерів (рис. 5)

Sot=0; Des=0

sot++

Rez-100

rez< 100

Підпрограма segm

des++

Rez-100

rez< 10

rez-> odn

Повернення

rez-100

Rez-100

rez-10

Rez-100

4) Визначення кількості сотень десятків та одиниць виміряної температури.

Жовтий

Червоний

Підпрограма vuvid

Temp< 85

Temp> 104

Зелений

Гасіння індикатора

Виведення образу знаку

Вибірка знакомісця

pause

Повернення

5) Відбувається порівняння виміряної температури з пороговими значеннями, а також засвічення діоду певного кольору, та здійснюється виведення виміряної температури на цифрові індикатори (в port С) та засвічування відповідних знакомісць.

250-> left

left=0

Підпрограма pause

left--

Повернення

6) Підпрограма Пауза також є необхідною складовою для організації динамічної індикації.

3 Складання програми мікроконтролера та її симуляція в Algorithm Builder

Для початку роботи в Algorithm Builder, потрібно налаштувати середовище.

Встановлюємо кристал ATMega8535 Налаштовуємо компілятор

Програма роботи мікроконтролера складається з головної програми та підпрограм.

Головна програма (рис. 6) починається зі скиду процесора (Reset), встановлення стеку (SP) та налаштування портів (згідно свого варіанту).

Далі розміщуються образи символів в ОЗП (також згідно свого варіанту) для організації виводу значення температури на цифрові індикатори. Після чого описуються вектори переривань: налаштовується АЦП, таймер та дозвіл переривання в таймері, що встановлюється в регістрі ТІМСК. Далі проводиться певна початкова ініціалізація — обнулення змінних, що використовуються для визначення температури, а також встановлюється біт глобального дозволу переривань «І». Після цього йде підпрограма Вивід, яку потрібно зациклити, щоб забезпечити динамічну індикацію.

Програма обробки переривання від АЦП (рис. 7) працює наступним чином: завантажуються дані після вимірювання з АЦП в робочий регістр, далі дані завантажуються (перший елемент) з ПЗП в регістр Z, після чого визначається значення температури.

Програма переривання АЦП (рис. 7)

За допомогою алгоритму (рис. 8) визначається кількість сотень, десятків та одиниць виміряної температури.

Визначення сотень, десятків та одиниць (рис. 8)

Далі відбувається порівняння виміряної температури з пороговими значеннями, а також засвічення діоду певного кольору, та здійснюється виведення виміряної температури на цифрові індикатори (в port С) та засвічування відповідних знакомісць. (рис. 9).

Порівняння виміряної температури (рис. 9)

Підпрограма Пауза (рис. 10) також є необхідною складовою для організації динамічної індикації.

Підпрограма Пауза (рис. 10)

Програма виводить температуру на світлодіодний індикатор з об'єднаними сегментами та з виводами вибірки знакомісць. Також є певні додаткові вимоги: значення температури виводиться у динамічному режимі; інтервал між вимірюваннями. Повний текст програми в Algorithm Builder представлений в Додатку 1

Висновок

В ході роботи був розроблений пристрій контролю температури процесу. Метою роботи було розробити мікропроцесорний пристрій з програмою для контролю температури процесу та індикацією значення температури на семисегментні цифрові індикатори та сигналізацією про вихід температури за граничні межі на світло діодах.

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

Знаючи задачі та методи їх рішення був розроблений загальний алгоритм роботи програми для коректного вирішення поставленої мікроконтролеру задачі, на основі цього алгоритму була розроблена програма в середовищі Algorithm Builder, яка відображає елементи функціонального алгоритму.

Для перевірки коректності роботи та виявлення помилок виконання програми було використано вбудований засіб симуляції Algorithm Builder, в якому було перевірено функціонування блоків програми та правильності відображення виведених значень в залежності від встановлення вхідного коду АЦП.

Список використаної літератури

1) Панчук О. О., Смолянець Ю. О., Хливнюк М. Г. та ін. Цифрові пристрої та мікропроцесори: Підручник. — Житомир: ЖВІРЕ, 2006. — 444с.: іл.

2) Панчук О. О., Смолянець Ю. О. Цифрові пристрої та мікропроцесори.4.2 Основи побудови і програмування мікропроцесорних пристроїв: Навчальний посібник. — Житомир: ЖВІРЕ, 2006. — 268с.: іл.

3) Цифрові пристрої та мікропроцесори: Завдання на лабораторні роботи і методичні рекомендації до їх виконання. Частина 3 /Розроб.О. О. Панчук, І А. Іщенко. — Житомир: ЖВІ НАУ, 2008. — 44с.

4) Голубцов М. С., Кириченкова А. В. Микроконтроллерьі AVR: от простого к сложному. — М.: СОЛОН-Пресс, 2003. — 288с.: іл.

Додатки

Додаток 1

ПоказатьСвернуть
Заполнить форму текущей работой