Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

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

КурсоваДопомога в написанніДізнатися вартістьмоєї роботи

Області застосування AVR багатогранні. Для «tiny» AVR це автомобільні датчики різного призначення, іграшки, ігрові приставки. Для «classic» AVR, це модеми різних типів, сучасні зарядні пристрої, вироби класу Smart Cards і пристрої читання для них, супутникові навігаційні системи для визначення місцеположення автомобілів на трасі. Для «mega» AVR це аналогові (NMT, ETACS, AMPS) і цифрові (GSM… Читати ще >

Проектування керуючих автоматів на мікроконтролерах (реферат, курсова, диплом, контрольна)

Міністерство освіти і науки України Новокаховський приладобудівний технікум Курсова робота Дисципліна — «Мікропроцесорні системи»

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

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

ЗМІСТ

ВСТУП

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

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

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

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

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

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

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

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

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

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

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

ВСТУП

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2,3

ANDWF

f, d

Логічне И W і f

Z

2,3

CLRF

f

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

Z

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

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

2,3

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 регістр

TRIS

F

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

Таблиця 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 байт;

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

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

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

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

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

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

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

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

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

1−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 :

GIE -7 біт — біт заборони переривань

EEIE-6 біт — дозвіл на переривання від периферійних пристроїв

TOIE-5 біт — дозвіл на переривання при переповненні RTCC

INTE-4 біт — дозвіл на переривання по входу RB0

RBIE-3 біт — дозвіл на переривання по входам RB4-RB7

TOIF-2 біт — прапорець переривання по переповненню RTCC

INTF-1 біт — прапорець переривання по входу RB0

RBIF-0 біт — прапорець переривання по входам RB4-RB7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5біт TOCS — вибір джерела тактового сигналу для RTCC

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

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

2біт PS2

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

0біт 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.

MPLAB IDE — це безкоштовне середовище розробки до якого входить:

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

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

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

MPLAB IDE дозволяє:

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

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

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

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

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

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

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

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

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

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

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

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

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

Додаткове обладнання і програмне забезпечення.

MPLAB C17 — язик високого рівня С для процесорів 17 серії;

MPLAB C18 — язик високого рівня С для процесорів 18 серії;

MPLAB C30 — язик високого рівня С для сімейства dsPIC (знаходиться на етапі розробки);

MPLAB ICE 2000 — внутрішньосхемний емулятор;

MPLAB ICE 4000 — внутрішньосхемний емулятор;

PICSTART Plus — програматор початкового рівня для всіх мікроконтролерів фірми Microchip;

PRO MATE II — промисловий програматор фірми Microchip. Призначені для програмування мікропроцесорів, мікроконтролерів, приладів KeeLoq, а також пам’яті.

PICkit 1 FLASH — набір початкового рівня, дозволяючи працювати з Flash мікроконтролерами 12-й серії.

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

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

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

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

K= Fkb / 1024 x Fпер.

Fпер = 1 сек ;

Fkb = 32 768;

Тоді К = 32 768 / 1024×1 = 32 ;

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

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

MOVF NOMER, 0

BTFSC STATUS, 2

CALL FAZA1

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

MOVF NOMER, 0

XORLW D'5'

BTFSC STATUS, 2

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

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

ВИСНОВКИ

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

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

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

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

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

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

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

1) www.microchip.ru

2) www.kodges.ru

3) www.microchip.com

ДОДАТОК

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

; період переривань 1 с

#include p16F84A. inc

__ CONFIG 3FF0H

;опис регістрів

INTCON EQU 0BH

TMR0 EQU 01H

PCL EQU 02H

STATUS EQU 03H

PORTA EQU 05H

PORTB EQU 06H

TRISA EQU 85H

TRISB EQU 86H

OPTION_REG EQU 81H

FSR EQU 04H

;опис робочих регістрів

FLAG EQU 010H; 0-ий біт прапорець переривання

COUT EQU 011H; лічильник кількості переривань

W_TEMP EQU 012H; тимчасовий для W

STATUS_TEMP EQU 013H; тимчасовий для STATUS

FSR_TEMP EQU 014H; тимчасовий для FSR

ORG 0

GOTO INIT

ORG 4

GOTO CONST

; ініціалізація

INIT

BSF STATUS, 5; переходимо в банк1

MOVLW B'100'; коефіцієнт поділу дільника 1:32

MOVWF OPTION_REG; дільник увімкнено перед RTCC

MOVLV B'10 100 000'; переривання по переповненню

MOVWF INTCON; лічильника RTCC

MOVWF TRISB

BCF STATUS, 5; переходимо в банк0

CLRF FLAG; все обнуляємо

CLRF COUT

CLRF PORTB

; початок основної програми

START

BTFSS FLAG, 0; якщо не було переривань

GOTO START; чекаємо

BCF FLAG, 0; якщо є скидаємо прапорець

CALL TABL; вибираємо код

MOVWF PORTB; заносимо в порт В

MOVF COUT; перевіряємо лічильник

SUBLW.4

BTFSS STATUS, 2; якщо не всі коди відправлено

GOTO START; чекаємо ще

CLRF COUT; інакше чистимо лічильник і

GOTO START; і починаємо спочатку

TABL

MOVF COUT; заносимо значення; лічильника

ADDWF PCL, 1; для вибору коду

RETLW B'11 000 000'

RETLW B'110 000'

RETLW B'1 100'

RETLW B'11'

; обробка переривання

CONST

MOVWF W_TEMP ;

MOVF STATUS

MOVWF STATUS_TEMP; - записуємо значення

;регістрів

MOVF FSR

MOVWF FSR_TEMP; /

INCF COUT; прибавляємо лічильник

BSF FLAG, 0; встановлюємо прапорець

RETCONST

BCF INTCON, 2; скидаємо прапорець

MOVF FSR_TEMP; повертаємося до основної програми

MOVWF FSR

MOVF STATUS_TEMP

MOVWF STATUS

MOVF W_TEMP

RETFIE

END

Показати весь текст
Заповнити форму поточною роботою