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
Похожие работы на - Проектування керуючих автоматів на мікроконтролерах
|