КАТЕГОРИИ: Архитектура-(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) |
Теоретичні відомості
Лабораторна робота № 21 Дії з портами мікроконтролера, логічні операції та обробка окремих бітів Мета роботи: засвоїти систему команд мікроконтролерів PIC16xxx
Однокристальний мікроконтролер PIC16F628 та йому подібні мають систему з 35 команд, кожна з яких має 14 бітів. Вони дозволяють складати ефективні програми. Коди команд при програмуванні заносяться у пам'ять програм. Вона відділена від вісьмибітових комірок оперативної пам'яті, які ще називаються регістрами або файлами. Розрізняють регістри спеціального і загального призначення. Усі регістри включно з портами введення-виведення розташовані у загальному адресному полі. Тобто ті команди, що звертаються до регістрів загального призначення, можуть так само звертатись до регістрів спеціального призначення або до зовнішніх портів. Регістри спеціального призначення та зовнішні порти мають сталі імена, які задані у стандартному файлі включення P16F628.INC. Наприклад, зовнішні порти А та В іменуються PORTA та PORTB, вказівник для непрямої адресації – FSR, регістр стану – STATUS тощо. Регістрам загального призначення розробник програми надає свої імена за допомогою директиви EQU (див. програму). Вона дозволяє іменувати константи, що будуть використані у програмі. Костанти можуть вказуватись у двійковій, вісімковій, десятковій або шістнадцятковій системах числення. Наприклад: b'01110101' – двійкове число; o'174' – вісімкове число; d'186' або. 186 – десяткове число; h'E8' або 0xE8 – шістнадцяткове число. Лабораторна установка складається з таких частин: 1. Плата мікроконтролера з елементарними пристроями виведення – світлодіодами. Вони підключені до порту А (біти RA0 …RA4) та В (біти RB0 …RB7). До цих же бітів портів приєднані елементарні пристрої введення (вимикачі). 2. Плата програматора. 3. Перемикач режимів Робота / Програмування. 4. Блок живлення. Для програмування мікроконтролера лабораторна установка підключається шлейфом до LPT-порту комп'ютера. ПОРЯДОК ВИКОНАННЯ ЛАБОРАТОРНОЇ РОБОТИ 1. У середовищі MPLAB, створити у папці 1Work новий проект з іменем 21ГБ (Г – номер групи, Б – номер бригади), обравши у меню Project-New Project. 2. У вікні Edit Project додати новий файл на асемблері 21ГБ.asm (Add Node – додати вузол). Після повернення до вікна Edit Project нижче hex-файла з'явиться файл з розширенням.asm. Після повернення до вікна середовища MPLAB IDE створити цей текстовий файл з розширенням.asm (File – New), записавши його у папку 1Work (File - Save As …). 3. Ввести текст програми на асемблері.
Текст програми:
;ЛАБОРАТОРНА РОБОТА 21 ; Дії з портами мікроконтролера, логічні операції ;та обробка окремих бітів.
LIST P=16F628;тип мікропроцесора #INCLUDE "P16F628.INC";підключення файла ;стандартних імен ;директиву __CONFIG набрати в одному рядку, ;закінчуючи словом _LVP_OFF __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _MCLRE_ON & _LVP_OFF COD EQU КОД;тут замість "КОД" введіть дві ; останні цифри з імені проекту org h'000';Задання адреси початку програми movlw h'07';Відключити компаратори і movwf CMCON; встановити порт А в ;дискретний режим movlw COD;вивести COD у зачепку movwf PORTB;порту В bsf STATUS, RP0;Обрати банк регістрів 1 clrf TRISB;порт В - на виведення movlw h'FF';/порт A - movwf TRISA;/ на введення bcf STATUS, RP0;Обрати банк регістрів 0 T0: btfss PORTA,0;якщо вимикач RА0 ввімкнутий, ;пропустити наступну команду goto T0;а якщо ні, – виконати перехід movlw b'10011000'; iorwf PORTB,f;логічне "АБО" з W та портом В T1: btfss PORTA,1;/повторювати ці дві команди, goto T1;/ поки вимкнений вимикач RA1 movlw b'11100111' andwf PORTB,f; логічне "ТА" з W та портом В T2: btfss PORTA,2;\ повторювати ці дві команди, goto T2;\ поки вимкнений вимикач RA2 movlw b'11100010' xorwf PORTB,f;логічне "ВИКЛЮЧНЕ АБО" з W та ;портом В T3: btfss PORTA,3; далі написати коментар самостійно goto T3; bsf PORTB,6; bcf PORTB,1; T4: btfss PORTA,4; goto T4; movlw b'00101010'; movwf PORTB; T5: btfsc PORTA,0; goto T5; decf PORTB,f; goto T0; end
У програмі застосовуються такі види команд:
4. Записати програму на диск (File – Save). 5. Виконати компіляцію програми (Project – Make Project або піктограма у вигляді зеленої лійки). Після цього на екрані з'являється вікно результатів компіляції (Build Results). 6. Якщо з'явилось повідомлення про помилки (error), слід, ознайомившись з поясненням змісту помилки, натиснути мишею на цей рядок вікна Build Results. MPLAB зробить активним той рядок у тексті програми, де, ймовірно, зроблено помилку. Слід виправити її і далі так само й інші помилки. Потім повернутись до п. 5, поки не буде видано повідомлення "Build completed successfully" (Компіляцію завершено успішно). При цьому створюється файл з тим же ім'ям і розширенням.hex. 7. Подумки аналізуючи програму, слід послідовно записати в табл. 21.1 стан світлодіодів після кожної зміни стану вимикачів. 8. Підключити лабораторну установку до LPT-порту комп'ютера і до живлення. Встановити перемикач "Робота / Програмування" у положення "Програмування" (при цьому світиться світлодіод Prog). Вимкнути всі вимикачі, що підключені до портів. 9. Згорнути вікно MPLAB і на робочому столі зробити подвійний клік на синій піктограмі програматора " ProPic2 ". Перевірити у вікні ProPic2, чи вірно задано тип мікроконтролера (у верхній правій частині вікна виділено синім кольором) і, якщо треба, обрати потрібний тип. Стандартним шляхом відкрити створений вами файл з розширенням.hex.
21.1. Аналіз роботи програми
10. Здійснити програмування мікроконтролера, натиснувши на піктограму з червоною блискавкою. 11. Після програмування, яке може тривати декілька секунд, відтиснути перемикач на лабораторній установці, щоб включити режим роботи. При цьому виключиться світлодіод "Prog" і зразу почне виконуватися програма, занесена у мікроконтролер. 12. З аналізу програми можна зрозуміти, що після ініціалізації контролер зациклюється на опитування стану вимикача RA0. Запишіть у таблицю стан світлодіодів на цьому етапі у двійковій системі. Далі ввімкніть вимикач RA0, запишіть стан світлодіодів. Увімкніть вимикач RA1 і знову запишіть стан світлодіодів і т.д. згідно з табл. 2.1. 13. Звірте записи стану світлодіодів з передбаченими у п. 7 і у випадку неспівпадіння з'ясуйте, в чому причина невідповідності таблиці та стану світлодіодів.
ЗМІСТ ЗВІТУ Звіт має містити: назву та мету лабораторної роботи, скорочений порядок виконання лабораторної роботи, текст програми з коментарем і станом світлодіодів після їх кожної зміни, перелік імен регістрів спеціального призначення, що використовуються у дослідженій програмі, формат та опис дії кожного виду команд, що вперше зустрічаються у дослідженій програмі мікроконтролера.
КОНТРОЛЬНІ ЗАПИТАННЯ 1. З яких основних блоків складається лабораторна установка? 2. Як здійснити програмування мікроконтролера? 3. Як виконуються логічні команди iorwf f,d, andwf f,d, xorwf f,d? 4. Які команди дозволяють здійснити керування окремим бітом регістра чи зовнішнього порту? 5. Для чого призначений файл P16F628.INC?
Дата добавления: 2015-06-25; Просмотров: 584; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |