Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Мета роботи: засвоїти використання переривання при зміні стану біта RB0 РІС-контролера




Мікроконтролерне дослідження дренькоту контактів

 

ТЕОРЕТИЧНІ ВІДОМОСТІ

Усі контролери сімейства РІС16 серед багатьох джерел переривання мають вбудований модуль, що може викликати переривання при зміні стану вхідного сигналу з входу RB0 (нульовий біт порта В).

Щоб дозволити переривання при зміні стану RB0, треба у регістрі управління перериваннями INTCON (рис. 28.1) встановити біти INTE дозволу переривання при зміні стану сигналу з входу RB0 та глобального дозволу переривання GIE. Крім того, у регістрі OPTION_REG (рис. 28.2) слід визначити біт INTEDG. Якщо йому присвоїти "1", ознака INTF встановиться при зміні стану RB0 з "0" в "1". А якщо біту INTEDG присвоїти "0", ця ознака INTF встановиться при зміні стану RB0 з "1" в "0". При умові INTE =1 та GIE = 1 це призведе до переривання основної програми та виконання підпрограми обробки переривання з адреси 4.

 

               
GIE PEIE T0IE INTE RBIE T0IF INTF RBIF

Рис. 28.1 – Регістр INTCON

 

               
RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0

Рис. 28.2 – Регістр OPTION_REG

 

Лабораторне обладнання складається з демоплати, до якої приєднано вимикач RB0 з підтягуючим опором R (рис. 28.3), плати програматора і комп'ютера.

Рис. 28.3. Схема лабораторної установки

 

Практичним завданням лабораторної роботи є визначення дренькоту контактів. Дренькіт контактів – це явище кількаразового замикання й розмикання контактів при одному вмиканні вимикача, кнопки або реле, яке виникає через пружні властивості контактів. Асемблерною програмою передбачено, що при замиканні вимикача RB0 сигнал на одноіменному вході мікроконтролера змінюється з "1" в "0". Це викликає переривання при кожній подібній зміні. За одну операцію управління вимикачем воно може трапитись декілька разів через пружні властивості контактів. У підпрограмі обробки переривання накопичується кількість замикань.

 

ПОРЯДОК ВИКОНАННЯ ЛАБОРАТОРНОЇ РОБОТИ

1. У середовищі MPLAB створити в папці 1Work новий проект з іменем 28ГБ (Г – номер групи, Б – номер бригади), обравши в меню Project-New Project.

2. У вікні Edit Project додати новий файл на асемблері 28ГБ.asm (Add Node – додати вузол). Після повернення до вікна Edit Project нижче hex-файла з'явиться файл з розширенням.asm. Після появи вікна середовища MPLAB IDE створити цей текстовий файл з розширенням.asm (File – New), записавши його у папку 1Work (File - Save As …).

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

4. Записати програму на диск (File – Save).

 

;************************************************

;Лабораторна робота 28

;Дослідження дренькоту контактів з використанням переривання

;при зміні стану зовнішнього виводу RB0

;************************************************

list P=16F628 f=4 MHz

#INCLUDE "P16F628.INC"

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC & _BODEN_OFF & _LVP_OFF;це як продовження попереднього рядка

 

cblock 0x20

COUNT, LOOP0, LOOP1, LOOP2

endc

 

org 0

nop

goto MAIN

 

org 4

goto INTRPT

 

MAIN: clrf COUNT;очищення лічильника кількості

;замикань контактів

bsf STATUS, RP0;активним стає банк 1 ОЗП

;==================================================

movlw b'00000001';налаштувати в порті В біт 0 у

;режим введення,

movwf TRISB;інші - в режим виведення

???????????;налаштувати переривання при зміні стану

???????????;входа RB0 з "1" в "0

???????????;дозволити переривання при зміні стану біта RB0 bsf INTCON,INTE

???????????;скинути в "0" ознаку INTF

???????????;встановити глобальний дозвіл переривання

;==================================================

bcf STATUS,RP0;активним стає банк 0 ОЗП

 

RPT: call indic;виклик п/п індикації

call TIME025s;виклик п/п затримки часу 0,25 с

goto RPT

 

indic:

;===============================================

???????????;скопіювати вміст COUNT

???????????;в PORTB

;===============================================

return

 

;---------------------------------------

TIME025s:;п/п затримки 250 мс

MOVLW.250

MOVWF LOOP0

OUTTER:

MOVLW.102; Затримка 1 мс

MOVWF LOOP1

INNER:

movlw d'2'

movwf LOOP2

ININNER:

DECFSZ LOOP2,F

goto ININNER

DECFSZ LOOP1, F

GOTO INNER

DECFSZ LOOP0, F

GOTO OUTTER

RETURN

 

;------------------------------------

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

INTRPT:

;===============================================

???????????;збільшити на 2 вміст лічильника COUNT

???????????;

???????????;скинути ознаку переривання від зміни

;стану RB0

;===============================================

retfie;повернення з підпрограми з одночасним

;встановленням GIE=1

 

end

 

 

5. Виконати компіляцію програми (Project – Make Project, або кнопка у вигляді зеленої лійки, або клавіша F10). На екрані з'являється вікно результатів компіляції (Build Results).

6. Якщо з'явилось повідомлення про помилки (error), ознайомившись з поясненням змісту помилки, слід натиснути мишею на цей рядок вікна Build Results. MPLAB зробить активним той рядок у тексті програми, де ймовірно зроблено помилку. Треба виправити її й далі так само інші помилки. Потім повторити п. 5, поки не буде видано повідомлення "Build completed successfully" (Трансляцію завершено успішно). При цьому створюється файл з ім'ям проекту і розширенням.hex.

7. Слід закрити вікно Build Results.

8. Підключити лабораторну установку до LPT-порту комп'ютера і до живлення. Встановити перемикач у положення "Програмування" (при цьому світиться світлодіод Prog), а вимикачі, що підключені до портів, усі вимкнути.

9. Згорнути вікно MPLAB і на робочому столі зробити подвійний клік на синій піктограмі програматора " ProPic2 ". Обрати тип мікроконтролера PIC16F628 (у верхній правій частині вікна ProPic2 виділено синім кольором). Стандартним шляхом відкрити створений вами файл з розширенням.hex.

10. Здійснити програмування мікроконтролера, натиснувши на піктограму з червоною блискавкою.

11. Після завершення програмування переключити перемикач на режим роботи. Вмикаючи та вимикаючи вимикач RB0 50 разів, записати у таблицю 28.1 стан світлодіодів RB7…RB1 після кожного циклу замикання-розмикання. Визначити середню кількість замикань контактів при одному вмиканні вимикача.

12. Результати записати в таблицю 28.1.

13. За даними таблиці 28.1 розрахувати середню кількість спрацювань контактів за 50 циклів вмикань вимикача.

 

Таблиця 28.1




Поделиться с друзьями:


Дата добавления: 2015-06-25; Просмотров: 368; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.