- •Література
- •Інформаційні ресурси
- •Використання mplab для складання та налагодження програм мікроконтролера
- •Теоретичні відомості
- •Порядок виконання лабораторної роботи
- •Лабораторна робота № 21 Дії з портами мікроконтролера, логічні операції та обробка окремих бітів
- •Теоретичні відомості
- •21.1. Аналіз роботи програми
- •Лабораторна робота № 22 Створення програмної затримки часу за допомогою циклів
- •Теоретичні відомості
- •22.1. Результати аналізу програми
- •Лабораторна робота № 23 Створення затримки часу за допомогою переривань від таймера
- •23.2. Варіанти задання коефіцієнтів ділення переддільника
- •23.2. Алгоритм управління світлодіодами з затримкою від таймера tmr0
- •23.3. Результати аналізу програми
- •Використання енергонезалежної пам'яті даних
- •У регістрі eecon1 розміщені такі біти керування:
- •24.1. Блок-схема алгоритму обміну з eeprom
- •Використання клавіатури з мікроконтролером
- •Теоретичні відомості
- •25.1. Таблиця результатів тестування
- •Виведення цифрової інформації на семисегментні індикатори
- •Основи використання mplab-icd пояснено далі в ході роботи.
- •Закрити вікно icd Options ().
- •Дослідження мікроконтролерного модуля аналого-цифрового перетворювача
- •Закрити вікно icd Options().
- •27.1. Результати вимірів і обчислень
- •Мікроконтролерне дослідження дренькоту контактів
- •Результати вимірів кількості замикань контактів
22.1. Результати аналізу програми
Команда, на якій здійснено зупинку |
Вміст регістрів у 16-й системі |
Час за віртуальним секундоміром, мкс | |||
PORTB |
HI |
MID |
LO | ||
call SEC |
|
|
|
|
|
goto SEC3 |
|
|
|
|
|
goto SEC3 |
|
|
|
|
|
goto SEC3 |
|
|
|
|
|
goto SEC3 |
|
|
|
|
|
Зняти точку зупинки з команди goto SEC3 (зняття здійснюється так само, як і її встановлення) та продовжити виконання програми (F9) | |||||
goto SEC2 |
|
|
|
|
|
goto SEC2 |
|
|
|
|
|
goto SEC2 |
|
|
|
|
|
goto SEC2 |
|
|
|
|
|
Зняти точку зупинки з команди goto SEC2 і продовжити виконання програми (F9) | |||||
goto SEC1 |
|
|
|
|
|
goto SEC1 |
|
|
|
|
|
goto SEC1 |
|
|
|
|
|
goto SEC1 |
|
|
|
|
|
Зняти точку зупинки з команди goto SEC1 і продовжити виконання програми (F9) | |||||
goto LOOP |
|
|
|
|
|
call SEC |
|
|
|
|
|
goto LOOP |
|
|
|
|
|
call SEC |
|
|
|
|
|
goto LOOP |
|
|
|
|
|
call SEC |
|
|
|
|
|
Згорнути вікно MPLAB і на робочому столі зробити подвійний клік на синій піктограмі програматора "ProPic2". Перевірити у вікні ProPic2, чи вірно задано тип мікроконтролера (у верхній правій частині вікна виділено синім кольором) і, якщо треба, обрати потрібний тип. Стандартним шляхом відкрити створений вами файл з розширенням .hex.
Здійснити програмування мікроконтролера, натиснувши на піктограму з червоною блискавкою.
Після програмування переключити перемикач режиму на лабораторній установці в положення "Робота". Почнеться виконання програми, яка послідовно з певними паузами переключає світлодіоди порту В.
Візуально визначити затримку між моментами переключення сусідніх світлодіодів Твіз.
Вважаючи точним час виконання підпрограми затримки за віртуальним секундоміром комп'ютера Трс, обчислити відносні похибки для розрахункового часу затримки Тз та за візуальною оцінкою Твіз:
, .
У програмі застосовуються такі види команд:
Команда |
Коментар |
movlw k |
;переслати число (літерал) у робочий регістр W |
movwf f |
; переслати вміст робочого регістра W у регістр f |
bcf f, b |
;занести 0 у біт номер b регістра f (b 0, 1… 7) |
bsf f, b |
; занести 1 у біт номер b регістра f (b 0, 1… 7) |
clrf f |
;обнулити регістр f |
rlf f, d |
;зсув вліво вмісту регістра f |
call k |
;виклик підпрограми з адреси k |
return |
;вертання з підпрограми |
decfsz f, d |
;зменшити на одиницю вміст регістра f та, якщо отримано нуль, пропустити наступну команду |
goto k |
;безумовний перехід на адресу k |
ЗМІСТ ЗВІТУ
Звіт має містити: назву та мету лабораторної роботи, скорочений порядок виконання лабораторної роботи, алгоритм і програму з коментарем, перелік імен регістрів спеціального призначення, що використовуються у досліджуваній програмі, формат та опис дії кожного виду команд, що вперше зустрічаються у дослідженій програмі мікроконтролера, таблицю та результати розрахунків.
КОНТРОЛЬНІ ЗАПИТАННЯ
Як створюються затримки часу?
Як виконуються команди call k і return?
Як створити звичайний цикл?
Як скласти вкладені цикли?
Як встановити точку зупинки на заданій команді?
Як у середовищі MРLAB можна визначати точний час виконання програми або її фрагментів?