Проектування керуючих автоматів на мікроконтролерах

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    113,53 Кб
  • Опубликовано:
    2013-12-03
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектування керуючих автоматів на мікроконтролерах

Міністерство освіти і науки України

Новокаховський приладобудівний технікум





Курсова робота

Дисципліна - "Мікропроцесорні системи"

На тему "Проектування керуючих автоматів на мікроконтролерах"

Нова Каховка 2009

ЗМІСТ

ВСТУП

. АПАРАТНЕ ЗАБЕЗПЕЧЕННЯ КЕРУЮЧОГО АВТОМАТУ

.1 Використання мікроконтролера

.2 Система команд мікроконтролера PIC16F84A

.3 Характеристика мікроконтролера PIC16С84

.4 Інші характеристики мікроконтролера PIC16С84

.5 Організація пам’яті

.6 Опис електричної схеми приладу

.7 Огляд програмного забезпечення для розробки проектів на мікроконтролерах

. ОПИС АЛГОРИТМУ І ПРОГРАМИ КЕРУЮЧОГО АВТОМАТУ

.1 Опис алгоритму керуючого автомату PIC16С84

ВИСНОВКИ

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

ДОДАТОК

ВСТУП

Темою мого курсового проекту є проектування керуючих автоматів на мікроконтролерах.

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

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

Керуючий автомат повинен забезпечувати такі функції:

-   керувати 8-а лініями освітлювальних пристроїв;

-   забезпечувати 4-фазне керування лініями освітлювальних пристроїв

-   забезпечувати зміну фаз з заданим періодом;

-   для вмикання лінії освітлювальних пристроїв формувати логічну одиницю на відповідному виході автомату.

Формування періоду зміни фаз відбувається при виникненні переривань при переповненні лічильника RTCC.

Згідно з моїм завданням:

- період зміни фаз становить 1 с;

освітлювальні пристрої підключені до 8-ми розрядного порту мікроконтролера;

Включення пристроїв відбувається у такому порядку:

-        фаза 1 - лінії 1,2,3;

-        фаза 2 - лінії 6,7,8;

         фаза 3 - лінії 4;

         фаза 4 - лінії 5;

1. АПАРАТНЕ ЗАБЕЗПЕЧЕННЯ КЕРУЮЧОГО АВТОМАТУ

.1 Використання мікроконтролера

Мікроконтролер - це програмно скерований універсальній логічній елемент, вся підсистема якої реалізована на одному кристалі.

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

А на сьогодні мікроконтролери все більше і більше проникають в наше життя. Ось одні з їх застосувань:

-       В радіотехніці

-       В приладах сигналізації

Області застосування AVR багатогранні. Для "tiny" AVR це автомобільні датчики різного призначення, іграшки, ігрові приставки. Для "classic" AVR, це модеми різних типів, сучасні зарядні пристрої, вироби класу Smart Cards і пристрої читання для них, супутникові навігаційні системи для визначення місцеположення автомобілів на трасі. Для "mega" AVR це аналогові (NMT, ETACS, AMPS) і цифрові (GSM, CDMA) мобільні телефони, принтери і ключові контролери для них, контролери апаратів зв'язку, факсиміле, і ксероксів, контролери сучасних дискових накопичувачів і CD-ROM і т.д.

Компанія Microchip Technology Inc. спеціалізується на випуску електронних компонентів для побудови систем контролю і управління. Основні види продукції, що випускається:

-       8 - розрядні універсальні мікроконтролери (PICmicro™ MCU);

-       Спеціалізовані мікросхеми незалежної пам'яті;

-       Пристрої обмеження доступу (KeeLoq);

-       Програмне забезпечення і інструментальні засоби проектування.

Microchip (PIC) - вони мають найкоротшу систему команд (35 команд). Всі команди мають однакову довжину 14 біт. Мікроконтролери (PIC) побудовані по гарвардській структурі. Мікроконтролери PIC мають три сімейства - це мікроконтролер молодшого сімейства (у це сімейство входять мікроконтролери PIC12С5ХХ, PIC16С5Х і PIC16С50Х) у цього сімейства 12-ти бітова система команд і відсутня система переривання; мікроконтролер середньої сімейства (PIC12С6ХХ, PIC16С55Х, PIC16С6Х(Х), PIC16С7Х(Х), PIC16С8Х, PIC16F8X(X), PIC16C9XX, PIC14000); старше сімейство (PIC17СХХ(Х) особливість: можливість роботи із зовнішнім ЗУ, використовувати до 7 портів, вбудованого блоку множення чисел, вбудованого програматора пам'яті програм, наявності декількох векторів переривання, кожного запиту має свій вектор переривання).

1.2 Система команд мікроконтролера PIC16F84A

Всі команди діляться на чотири групи:

-       Байт орієнтовані;

-       Біт орієнтовані;

-       Операції з константою;

-       Команди передачі управління.

Система команд складається з 35 команд. Ці команди а також функції які вони виконують подано у таблицях 1.1, 1.2 та 1.3.

Всі команди виконуються за один такт окрім команд переходів.

Таблиця 1.1 - Байторієнтовані команди

Мнемокод


Назва команди

Прапори

Примітка

ADDWF

f,d

Складання W з f

C,DC,Z

ANDWF

f,d

Логічне И W і f

Z

2,3

CLRF

f

Скидання регістра f

Z

3

CLRW


Скидання регістра W

Z


COMF

f,d

Інверсія регістра f

Z

2,3

DECF

f,d

Декремент регістра f

Z

2,3

DECFSZ

f,d

Декремент f, пропустити команду, якщо 0


2,3

INCF

f,d

Інкремент регістра f

Z

2,3

INCFZ

f,d

Інкремент регістра f, пропустити команду, якщо 0


2,3

IORWF

f,d

Логічне ІЛІ W і f

Z

2,3

MOVF

f,d

Пересилка регістра f

Z

2,3

MOVWF

f

Пересилка W в f


3

NOP


Неодружена команда



RLF

f,d

Зрушення f вліво через перенесення

C

2,3

RRf

f,d

Зрушення f управо через перенесення

C

2,3

SUBWF

f,d

Віднімання W з f

C,DC,Z

2,3

SWAPF

f,d

Обмін місцями тетрад в f

XORWF

f,d

Що виключає АБО W і f

Z

2,3

ADDLW

до

Складання константи з W.

C,DC,Z


ANDLW

до

Логічне І константи і W

Z


IORLW

до

Логічне АБО константи і W

Z


SUBLW

до

Віднімання W з константи.

C,DC,Z


MOVLW

до

Пересилка константи в W



XORLW

до

Що виключає АБО константи і W

Z


OPTION


Завантаження W в OPTION_REG регістр


1

TRIS

F

Завантаження TRIS регістра


1

 

Таблиця 1.2 - Біторієнтовані команди

Мнемокод


Назва команди

Прапори

Прим.

BCF

f,d

Скидання бита в регістрі f


2,3

BSF

f,d

Установка бита в регістрі f


2,3

BTFSC

f,b

Пропустити команду, якщо біт дорівнює 0



BTFSS

f,b

Пропустити команду, якщо біт дорівнює 1



 

Таблиця 1.3 Команди переходи

МнемокодНазва командиПрапориПрим.





CALL

до

Виклик підпрограми



CLRWDT


Скидання Watchdog таймера

TO,PD


RETLW

до

Повернення з підпрограми із завантаженням константи в W



RETFIE


Повернення з переривання.



RETURN


Повернення з підпрограми.



SLEEP


Перехід в режим SLEEP

TO,PD

Примітка 1: Команди TRIS і OPTION поміщені в перелік команд для сумісності з сімейством PIC16F8X. Їх використовування не рекомендується. В PIC16F84 регістри TRIS і OPTION доступні для читання і запису як звичайні регістри з номером. Попереджаємо, що ці команди можуть не підтримуватися в подальших розробках PIC16FXX.

Примітка 2: Коли модифікується регістр введення/виведення, наприклад MOVF 6,1, значення, що використовується для модифікації прочитується безпосередньо з ніжок кристала. Якщо значення клямки висновку для ніжки, запрограмованої на висновок дорівнює “1”, але зовнішній сигнал на цьому висновку “0” через “навалювання” зовні, то прочитуватиметься “0”.

Примітка 3: Якщо операндом цієї команди є регістр f1 (і, якщо припустимо, d=1), то дільник, якщо він підключений до RTCC, буде обнулений.

1.3 Характеристика мікроконтролера PIC16С84

Мікроконтролер PIC16F84A має 40-ка вивідний DIP корпус, вмонтований АЦП, RISC процесор та. ін.

Основні характеристики.

Система команд складає 35 простих команд, всі команди виконуються за один такт крім команд переходів, тактова частота до 20МГц при мінімальному періоду такту 200нс, до 12 внутрішніх і зовнішніх переривань

Рисунок 1.1 - Мікроконтролер PIC16F84A, DIP корпус

Мікроконтролер PIC16F84A має :

-       Законченный 10 Mhz CMOS микроконтроллер;

-       1 К энергонезависимой памяти для программ (по 14 бит);

-       64 байт энергонезависимой памяти данных;

-       36 регистров общего назначения;

-       возможность программирования последовательным способом (по любому проводу данных) ;

-       сверхнизкое энергопотребление - 2V - 5V;

-       возможность подключения дополнительной EEPROM;

-       стоимость меньше 2.5 USD.

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

1.4 Інші характеристики мікроконтролера PIC16С84

Флеш ПЗП програми - 4Кб;

ПЗП даних - 192 байт;

портів вводу/виводу.

Для правильної роботи мікроконтролера необхідно його правильно настроїти для виконання поставлених задач. Для цього зробимо короткий опис регістрів та їх бітів.

Основними можна назвати регістри: STATUS, INTCON, OPTION_REG, регістри настройки АЦП, та портів вводу/виводу, а також послідовних портів з інтерфейсами SSP та іншими.

Отже перший регістр - регістр стану мікроконтролера STATUS:

біт IRP - Біт вибору банка при косвенній адресації

-5біти RP0,RP1- біти вибору банка при прямій адресації

біт TO - прапорець переповнення лічильника RTCC

біт PD - прапорець ввімкнення живлення

біт Z - прапорець нульового результату

-0біти DC- С - прапорці десяткового переносу та просто переносу.

1.5 Організація пам’яті

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

Організація пам’яті програм

Мікроконтролери середнього сімейства мають 13-розрядний лічильник команд, здатний адресувати 8К х 14 слів пам'яті програм, і 14-розрядну шину даних пам'яті програм. Всі команди мікроконтролера складаються з 14-розрядного слова, тому мікроконтролер з об'ємом пам'яті програм 8К х 14 може містити 8К команд. Це дозволяє легко визначити достатність об'єму пам'яті програм для бажаного додатку.

Вся пам'ять програм розділена на 4 сторінки по 2К слова кожна (0000h-07FFh. 0800h-0FFFh, 10OOh-17FFh, 1800h-1FFFh). На рисунку 2 показана карта пам'яті програм і 8-рівневий апаратний стек. Залежно від типу мікроконтролера, тільки деяка частина доступної пам'яті програм реалізована апаратний.

Для переходу між сторінками пам'яті програм необхідно змінити старші біти регістра лічильника команд PC, записом в регістр спеціального призначення PCLATH (старший байт лічильника команд). Змінивши значення регістра PCLATH і виконавши команду галуження, лічильник команд PC перетне межу сторінки пам'яті програм без додаткового втручання користувача.

Для мікроконтролерів, що мають пам'ять програм менше 8К слів, звернення до пам'яті програм вище фактично реалізованого значення приведе до циклічної адресації. Наприклад, в мікроконтролерів з пам'яттю програм 4К слів і спробі переходу за адресою 17FFh перехід буде виконаний за адресою 07FFh. В мікроконтролерах з пам'яттю програм 2К слів управління сторінками пам'яті не потрібне.

Організація пам’яті даних

Пам'ять даних розділяється на регістри двох типів:

-       Регістри спеціального призначення (SFR), управляють роботою мікроконтролера;

-       Регістри загального призначення (GPR), для зберігання даних програми.

Пам'ять даних розділена на банки, що містять регістри загального і спеціального призначення. Регістри загального призначення розміщуються в різних банках пам'яті даних для того, щоб була можливість організувати більше 96 байт ОЗУ. Регістри спеціального призначення призначені для управління периферійними модулями і функціями мікроконтролера. Управління банками пам'яті виконується бітами в регістрі STATUS<7:5>. Організація пам'яті даних залежить від типу мікроконтролера.

Щоб передати дані з одного регістра в іншій, необхідно використовувати додатковий регістр W. Ця операція виконується двома командами за два машинні цикли мікроконтролера.

Звернення до всіх регістрів пам'яті даних може бути виконано прямою або непрямою адресацією:

-       Пряма адресація - для вибору банку пам'яті даних необхідно використовувати біти PR1:PR0 регістра STATUS;

-       Непряма адресація - адреса регістра зберігається в FSR. а в біті IRP регістра STATUS указується до якої пари банків пам'яті даних виконується обіг (Банк0/Банк1 або Банк2/Банк3).

Рисунок 1.2 - Організація пам’яті МК PIC16С84

Рисунок 1.3 - Структурна схема МК РIC16F84A

Регістр керування перериваннями INTCON.

Біти регістру INTCON :-7 біт - біт заборони перериваньбіт - дозвіл на переривання від периферійних пристроївбіт - дозвіл на переривання при переповненні RTCCбіт - дозвіл на переривання по входу RB0біт - дозвіл на переривання по входам RB4-RB7біт - прапорець переривання по переповненню RTCCбіт - прапорець переривання по входу RB0біт - прапорець переривання по входам RB4-RB7

Джерела переривань мікроконтролера PIC16С84:

-       зовнішнє джерело переривань INT;

-       переповнення таймеру TMR0;

-       зміна рівнів сигналу на порту В лінії RB4-RB7;

-       переривання від USART;

-       переривання від приймача;

-       переривання від передавача;

-       переповнення таймерів TMR1,2;

-       переривання від модулів CCP,SSP.

Регістр настройки таймера OPTION_REG.

У цьому регістрі відбувається настройка коефіцієнту поділу дільника та інші настройки, які пов’язані з тактовим генератором:

-       вибір фронтів,

-       підключення генератора до RTCC чи WDT та ін.

Біти регістра OPTION_REG:

біт RBPU - ввімкнення резисторів на порту В

біт INTEDG - біт вибору фронту зовнішнього переривання зі входу RB0

біт TOSE - вибір активного фронту для зовнішнього сигналу RTCC

біт PSA - управління підключенням дільника

біт PS2 \

біт PS1 - вибір коефіцієнту дільника

біт PS0 /

Модулі мікроконтролера.

Модуль 8-ми розрядного АЦП

Для керування роботою АЦП використовуються 3 регістри:

-       ADRES - регістр результату;

-       ADCON0 - регістр керування;

-       ADCON1 - регістр керування.

Регістр ADCON0 використовується для настройки роботи модуля АЦП, а за допомогою регістра ADCON1 вибирають, які виводи мікроконтролера будуть використовуватися і в якому режимі: аналоговий вхід чи цифровий вхід/вихід.

Основні модулі, які входять до складу мікроконтролера PIC16F84A.

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

Напруга живлення 2,5 - 5,5 вольт;

Струм входів/виходів 25 мА;

Комерційний, розширений і промисловий температурний діапазони;

Низьке споживання енергії 1,2мкА - 2мА.

1.6 Опис електричної схеми приладу

керуючий автомат мікроконтролер світловий

Для тактування мікроконтролера використав кварцовий резонатор увімкнений за стандартною схемою. Освітлювальні прилад підключаються до лінії порту В. На схемі освітлювальні прилади - лінійка світодіодів підключена через резистори, для того, щоб струм на лініях порту В не перевищив максимально допустимий рівень, якщо цього не зробити, то можливий вихід мікроконтролера з ладу. Джерело живлення схеми батарея на напругу 4,5 вольта, або стабілізоване джерело живлення на 5 вольт.

Конденсатори, які підключені до кварцового резонатору, полегшують запуск мікроконтролера.

1.7 Огляд програмного забезпечення для розробки проектів на мікроконтролерах

Універсальне середовище розробки для PIC-Micro MPLAB IDE.IDE - це безкоштовне середовище розробки до якого входить:

-       редактор коду програм;

-       менеджер проектів

-       середовище розробки

За допомогою цієї програми можна швидко і зручно писати і налагоджувати програми для всього сімейства MicrochipIDE дозволяє:

. Створення і редагування коду програм використовуючи вмонтований редактор;

. Створювати компілювати код програми;

. Налагоджувати програму в кроковому режимі чи в режимі реального часу

4.      Проводити вимір часових інтервалів програми за допомогою емулятора чи стимулятора.

5. Дивитися значення змінних у вікні “Watch window”

Що входить до комплекту MPLAB IDE.

. Редактор програм, програма налагодження коду програм, менеджер проекту.

.Макроасемблер MPASM, лінкер MPLINK, менеджер бібліотек MPLIB.

. MPLAB SIM - програмний симулятор для мікроконтролерів PIC12/16/17/18xxx.

. MPLAB SIM30 - програмний симулятор для сімейства dsPIC.

. MPLAB ASM30 и MPLAB LINK30 - макроасемблер и лінкер для сімейства dsPIC.

. Набір утиліт для роботи с dsPIC.

. PROCMD - утиліта для роботи с програматором PROMATE II.

Додаткове обладнання і програмне забезпечення.C17 - язик високого рівня С для процесорів 17 серії;C18 - язик високого рівня С для процесорів 18 серії;C30 - язик високого рівня С для сімейства dsPIC (знаходиться на етапі розробки);ICE 2000 - внутрішньосхемний емулятор;ICE 4000 - внутрішньосхемний емулятор;Plus - програматор початкового рівня для всіх мікроконтролерів фірми Microchip;MATE II - промисловий програматор фірми Microchip. Призначені для програмування мікропроцесорів, мікроконтролерів, приладів KeeLoq, а також пам’яті.1 FLASH - набір початкового рівня, дозволяючи працювати з Flash мікроконтролерами 12-й серії.

2. ОПИС АЛГОРИТМУ І ПРОГРАМИ КЕРУЮЧОГО АВТОМАТУ

2.1 Опис алгоритму керуючого автомату PIC16С84

Принцип дії керуючого автомату заснований на використанні програмних таблиць і виведені коду синхронно з перериванням по переповненню таймера TMR0.

Коефіцієнт ділення визначається за формулою

= Fkb / 1024 x Fпер.

пер = 1 сек ;

Fkb = 32768;

Тоді К = 32768 / 1024 х 1 = 32 ;

Коефіцієнт ділення К = 1/32

Початок роботи програми починається з ініціалізації мікроконтролера та опису регістрів, які будуть використані у програмі. Також встановлюється коефіцієнт дільника та вибирається переривання. Наступний крок це при кожному наступному перериванню ми збільшуємо значення регістру NOMER на одиницю і вибираємо код з програмної таблиці. Це можна зробити за допомогою підпрограми. Програмно це реалізовано так:

NOMER,0STATUS,2FAZA1

Після цієї операції наступний крок - перевірка, чи пройшли усі чотири фази, згідно з завданням. Це відбувається у декілька кроків остаточним з яких - перевірка біта STATUS,2 для визначення числа фаз, які вже пройшли:

MOVF NOMER,0D’5’STATUS,2

Після того, як пройшли усі чотири фази лічильник переривань встановлюють на нуль і починають усе спочатку.

Дана програма і алгоритм - є універсальними. Для того, щоб провести будь-які зміни в програмі не треба істотно змінювати програму: наприклад можна зробити не чотири, а більше фаз з різноманітними світловими ефектами. У програмі зміниться лише кількість кодів та при перевірці кількості фаз треба буде встановити інший коефіцієнт.

ВИСНОВКИ

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

При розробці була використана сучасна елементна база. Основним елементом керуючого автомату - є мікроконтролер PIC16С84 фірми microchip. В курсовій роботі показано наскільки зручно використовувати мікроконтролери при розробці будь-яких керуючих автоматів чи інших пристроїв. Були вказані переваги пристроїв на основі мікроконтролерів. Мною була створена програма для мікроконтролера, яка забезпечує роботу пристрою згідно і завданням.

Отримані результати при перевірці пристрою на емуляторі MPLAB IDE:

-       період зміни фаз близько 1с;

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

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

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1) www.microchip.ru

) www.kodges.ru

) www.microchip.com

ДОДАТОК

Лістинг програми pic16f84a

#include p16F84A.inc

__ CONFIG 3FF0H

;опис регістрівEQU 0BHEQU 01HEQU 02HEQU 03HEQU 05HEQU 06HEQU 85HEQU 86H_REG EQU 81HEQU 04H

;опис робочих регістрівEQU 010H ; 0-ий біт прапорець перериванняEQU 011H ; лічильник кількості переривань_TEMP EQU 012H ; тимчасовий для W_TEMP EQU 013H ; тимчасовий для STATUS_TEMP EQU 014H ; тимчасовий для FSR0INIT4CONST

; ініціалізаціяSTATUS,5 ; переходимо в банк1B’00000100’ ; коефіцієнт поділу дільника 1:32OPTION_REG ; дільник увімкнено перед RTCCB’10100000’ ; переривання по переповненнюINTCON ; лічильника RTCCTRISBSTATUS,5 ; переходимо в банк0FLAG ; все обнуляємоCOUTPORTB

; початок основної програмиFLAG,0 ; якщо не було перериваньSTART ; чекаємоFLAG,0 ; якщо є скидаємо прапорецьTABL ; вибираємо кодPORTB ; заносимо в порт ВCOUT ; перевіряємо лічильник.4STATUS,2 ; якщо не всі коди відправленоSTART ; чекаємо щеCOUT ; інакше чистимо лічильник іSTART ; і починаємо спочаткуCOUT ; заносимо значення ; лічильникаPCL,1 ; для вибору кодуB’11000000’B’00110000’B’00001100’B’00000011’

; обробка перериванняW_TEMP ; \STATUSSTATUS_TEMP ; - записуємо значення

;регістрівFSRFSR_TEMP ; /COUT ; прибавляємо лічильникFLAG,0 ; встановлюємо прапорецьINTCON,2 ; скидаємо прапорецьFSR_TEMP ; повертаємося до основної програмиFSRSTATUS_TEMPSTATUSW_TEMP

Похожие работы на - Проектування керуючих автоматів на мікроконтролерах

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!