Розробка програмного забезпечення на мікроконтролер PIC16F707
ЗМІСТ
АНОТАЦІЯ
ВСТУП
1.ТЕХНІЧНЕ ЗАВДАННЯ
1.1 Призначення та область застосування програмного забезпечення
1.2 Функціональні вимоги до програмного забезпечення
1.3 Вимоги до умов експлуатації програмного забезпечення
2. ТЕОРЕТИЧНА ЧАСТИНА
2.1 Короткі відомості про Мікроконтролер PIC16F707
2.2 Характеристика Мікроконтролера PIC16F707
2.3
Організація пам’яті мікроконтролера PIC16F707
2.4
Інтегроване середовище MPLAB
3. ПРАКТИЧНА ЧАСТИНА
3.1 Створення нового проекту в MPLAB
3.2 Відладка програми в середовищі MPLAB
3.3 Програмний код
3.4
Опис роботи команд
3.5
Тестування програмного забезпечення та його результати
ВИСНОВКИ
ПЕРЕЛІК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ ТА ІНФОРМАЦІЙНИХ РЕСУРСІВ
ДОДАТОК
АНОТАЦІЯ
Мікроконтролери знаходять широкі застосування в
найрізноманітніших сферах: від вимірювальних приладів, фотоапаратів і
відеокамер, принтерів, сканерів і копіювальних апаратів до виробів електронних
розваг і всілякої домашньої техніки.
Пояснювальна
записка до курсової роботи на тему «Розробка програмного забезпечення на
мікроконтролер PIC16F707» складається з вступу, двох основних розділів,
висновку, списку літератури, та архітектури мікроконтролера
Створене
програмне забезпечення показує використання команд для виконання різних
операцій із значеннями регістрів даного мікроконтролера, також використання
прямої адресації та створення циклів за допомогою інтегрованого середовища
розробки програм для мікроконтролерів MPLABIDE.
У
вступі наведена загальна інформація про мікроконтролери сімейства PIC фірми
Microchip, їх використання на практиці та їх актуальність на даний момент. мікроконтролер
програмне забезпечення
В
теоретичній частині наведено короткі відомості про мікроконтролер PCI16F707,
його характеристику , організація пам’яті та короткі відомості про інтегроване
середовище MPLABIDE.
В
практичній частині показано створення нового проекту в середовищі MPLABIDE,
відладка програми в середовищі MPLABIDE, програмний код та опис роботи команд.
ВСТУП
Мікроконтролер
- це спеціальна мікросхема, призначена для управління різними електронними
пристроями. Мікроконтролери вперше з'явилися в тому ж році, що і мікропроцесори
загального призначення.
Розробники
мікроконтролерів об'єднали процесор, пам'ять, ПЗУ і периферійні пристрої
всередині одного корпусу, зовні схожого на звичайну мікросхему. Мікроконтролер
це однокристальна мікро ЕОМ виконана у вигляді мікросхеми спеціалізована
мікропроцесорна система, що включає мікропроцесор, блоки пам'яті для збереження
коду програм і даних, порти вводу-виводу і блоки зі спеціальними функціями
На
даний час є два основні "виробники" мікроконтролерів: Microchip PIC
сімейства та Atmel AVR сімейства. В даній курсовій роботі використовується
мікроконтролер фірми Microchip PIC16F707 Peripheral Interface Controller -
сукупність сімейств 8-ми, 16-ти розрядних та 32-х розрядних мікро контролерів,
що мають гарвардську архітектуру. Випускаються фірмою Microchip.
Мікроконтролери
PIC популярні як серед професійних розробників, так і серед радіоаматорів
завдяки низькій вартості, доступності, великій кількості застосування та
вільним засобам розробки.
Розвиток
мікроелектроніки та її широке застосувань виробів в промисловому виробництві, в
пристроях і системах управління найрізноманітнішими об'єктами і процесами є в
наш час одним із основних напрямів науково-технічного прогресу.
1.ТЕХНІЧНЕ ЗАВДАННЯ
1.1 Призначення
та область застосуванняпрограмногозабезпечення
Програмне забезпечення призначене для
демонстраціі роботи з регістрами та використання прямої адресації за допомогою
доступних команд в мікроконтролері PIC16F707.
1.2 Функціональні
вимоги до програмного забезпечення
Програмне забезпечення повинне виконувати такі
функції:
Пересилання даних між регістрами , за допомогою
робочого регістру WREG.
Побітові логічні операції такі як: «АБО», «І».
Арифметичні операції: додавання та віднімання.
Пряму адресацію за допомого 5 та 6 бітів
регістру STATUS.
Створення ярликлів за допомогою операцій
умовного переходу.
1.3 Вимоги до умов експлуатації програмного
забезпечення
Реалізація програмного забезпечення повинна здійснюватись
в інтегрованому середовищі програмування MPLAB.
Для спостерігання за змінами значень в регістрах
необхідно відкрити вікно для відображення вмісту всіх регістрів, та вікно для
відображення регістрів спеціального призначення.
Програмне забезпечення повинно бути виконане у
вигляді проекту для інтегрованого середовища програмування MPLAB.
. ТЕОРЕТИЧНА ЧАСТИНА
2.1Короткі
відомості про Мікроконтролер PIC16F707
Мікроконтролер PIC16F707 відноситься до
архітектури середнього сімейства. Їхня повна назва звучить так: PIC16F707 и
PIC16LF707. Скорочення PIC розшифровується як Peripheral Interface Controller
-периферійний контролер інтерфейсу. Буква "F" говорить про те, що
пам’ять програм є типу Flash. Перша група цифр 16 відносить мікроконтролер до
архітектури середнього сімейства лінійки вироблених компанією Microchip
пристроїв. Дві останні цифри уточнюють групу мікроконтролера в своєму
сімействі. В цьому сімействі присутні два пристрої: PIC16F707 та PIC16LF707;
Мікроконтролер PIC16F707 розміщений в корпусі
PDIP із 40 ніжками, та в корпусі QFNіз 44 ніжками.Скорочення розшифровуються
так: PDIP - Plastic DualIn Line, QFN - QuadFlat, NoLeadPakage. TQFN -
ThinQuadFlatPakage. Зовнішній вгляд корпуса QFN представлений на рис. 1.
Рис. 1. Зовнішній вигляд корпусу QFN
мікроконтролера PIC16F707
Мікроконтролер виготовлений за КМОП
Flashтехнологією. Діапазон напруг живлення від 1.8 (В) до 5.5 (В) для
PIC16F707.
2.2 Характеристика Мікроконтролера PIC16F707
Основна характеристика МікроконтролераPIC16F707
:
Високопродуктивна RISC архітектура
команд
Всі команди виконуються за одни цикл
-ми рівневий апаратний регістр STECK
Можливість читання пам’яті програм
Пряма, непряма і відносна адресація ОЗУ і ПЗУ
Обробка переривань
Пам’ять:
Розмір Flash пам’яті програм для
мікроконтролераPIC16F707
8kx 14
Розмір пам’яті даних
363x 8
Відсутня пам’ять EEPROM
Можливість використання зовнішнього кварцового і
керамічного резонаторів до 20 МГц.
Програмований код захисту пам'яті програм
Для перепрограмування використовується
послідовний інтерфейс ICSP ™ (In-CircuitSerialProgramming ™)
Кількість циклів перепрограмування ПЗУ - 1000
На (Рис. 2.) зібрані разом дані характерні для
мікроконтролера PIC16F707
Рис. 2. Характерні для мікроконтролера PIC16F707
На рис. 3. показано позначення та розташування
виводів мікроконтролера PIC16F707 в корпусі PDIPp 40 ніжками. На рис. 4.
показано позначення та розташування виводів мікроконтролера PIC16F707 в корпусі
QFNз 44 ніжками
Рис. 3.Позначення і розташування виводів МК
PIC16F707в корпусіPDIP
Рис. 4. Позначення і розташування виводів МК
PIC16F707 в корпусі QFN
.3 Організація пам’яті
мікроконтролера PIC16F707
Мікроконтролер PIC16F707
має 13 розрядний лічильник команд, здатний адресувати 8k14
розрядних слів пам’яті програм. Фізично реалізовано
в PIC16F707 обсяг пам'яті програм 8k х 14, з 0000h по 1FFFh. Адресний простір
рівний (0000h-1FFFh). Адреса вектора скидання - 0000h, адреса вектора
переривання 0004h (рис.5)
Рис. 5. Організація пам’яті программ і стека в
мікроконтролері PIC16F707
Пам’ять даних мікроконтролера PIC16F707
розділена на чотири банка. (рис. 6.) Кожний банк розділений на два розділа. До
першого розділу входять регістри спеціального призначення (РСП)Ю до другого
розділу відносять регістри загального призначення (РЗП).
Рис. 6. Організація пам’яті даних
мікроконтролераPIC16F707
Регістри спеціального призначення займають
молодші 32 комірки пам'яті даних. Решта комірок пам'яті даних, з адреса 20h по
7Fh відносяться до регістрів загального призначення (РЗП). Частина адресного
простору РЗП, в Bank 1, Bank 2, Bank 3 відображені на адресному просторі Bank
0. ВBank 0 цей простір має адресу 70h-7Fh, в Bank 1 це F0h-FFh, в Bank 2 це
170h-17Fh і в Bank 3 це 1F0h-1FFh. Розмір ОЗУ дорівнює 96 байт. Банки ОЗУ
вибираються за допомогою 5го і 6го бітів регістра Status. Ці біти називаються PR0
і PR1. Вибір банку описаний в 1 таблиці.
Таблиця 1
Вибір банкапам’ятіPIC16F707
PR0
|
PR1
|
Вибір
банка пам’яті
|
0
|
0
|
Bank
0
|
0
|
1
|
Bank
1
|
1
|
0
|
Bank
2
|
1
|
1
|
Bank
3
|
ОЗУ або регістри загального призначення
організовані у вигляді восьмирозрядних 96 комірок пам’яті, тобто 96 х 8. Кожен
регістр може бути обраний, використовуючи як пряму адресацію, так і непрям
уадресацію з використанням регістрів спеціального призначення. Ці регістри
вибирає програміст для роботи в програмі.
В регістрі STATUS (рис. 7.) містяться прапорці
стану АЛП і прапорці причини скидання мікроконтролера. Регістр STATUS може бути
адресований будь-якою командою, як і будь-який інший регістр пам'яті даних.Якщо
звернення до регістру STATUS виконується командою, яка впливає на прапори Z, DC
і C, то зміна цих трьох бітів командою заблокована. Ці біти скидаються або
встановлюються згідно з логікою ядра мікроконтролера.
Рис. 7. Рагістр
STATUS (03h,83h,103h,183h)
Біт 7IRP: Вибір банку пам'яті даних
(використовується при непрямій адресації)
= Банк 2,3 (100h - 1FFh)
= Банк 0,1 (00h -FFh)
Біт 6-5 PR<1: 0>: Вибір банку пам'ятіданих
(використовується при прямій адресації)
= Банк0 (00h - 7Fh)
= Банк 1 (80h -FFh)
= Банк 2 (100h -17Fh)
= Банк 3 (180h -1FFh)
Біт 4 -TO: Прапор переповнення таймера WDT
= після скидання POR, виконання команди CLRWDT
або SLEEP
= сталося переповнення WDT
Біт 3 -PD: Прапор детектора виключення живлення
= після скидання POR або виконання команди
CLRWDT
= після виконання команди SLEEP
Біт 2 Z: Прапор нульового результату
= нульовий результат арифметичної або логічної
операції
= результат арифметичної або логічної операції
не нульовий
Біт 1 DC: Прапор десяткового переносу
= був перенесений з молодшого пів байта
= не був перенесений з молодшого пів байта
Біт 0 C: Прапор переносу
= був перенесений із старшого біта
= не був перенесений зі старшого біта
2.4 Інтегроване середовище MPLAB
МPLAB
IDE
- Сучасна інтегрована (візуальна) середовище розробки програмного забезпечення
для мікроконтролерів фірми MICROCHIP.
MPLAB
IDE
інтегроване середовище розробки, включає в себе текстовий редактор, компілятор
і інтерпретатор, засоби автоматизації складання і відладчик.
3. ПРАКТИЧНА ЧАСТИНА
3.1 Створення нового проекту в MPLAB
Для того щоб написати програму для
мікроконтролера PIC16F707 потрібно створити проект в інтегрованому середовищі
MPLAB. Для цього необхідно запустити програму за допомогою ярлика на робочому
столі. В панелі меню інтегрованого середовища MPLAB виконати
Projec->ProjectWizard. Появиться вікно яке інформує про початок створення
нового проекту. (рис.8.). Натиснути кнопку “Далее”.
В наступному вікні вибрати необхідний
мікроконтролер (PIC16F707), і натиснути кнопку “Далее” (рис. 9.)
Рис.9. Вибір мікроконтролера
В наступному вікні вибрати мову програмування та
компілятор. Мова програмування - Ассемблер. Компілятор - Mscrochip
MPASMToolsuite (рис. 10.). Натиснути кнопку “Далее”
Рис. 10. Вибір мови програмування та компілятора
В наступному кроці задано назву проекту та
вибирано директорію для носого проекту. (рис. 11.)
Рис.11 Вікно видору директорії для проекту
В наступному кроці додються необхідні файли до
нового проекту. Додано файл з розширенням .asmв якому буде написана
програмуадля мікроконтролера PIC16F707. Натиснути кнопку “Далее”. Якщо при
створенні нового проекту не було виявлено жодної помилки , то появиться вікно з
інформацією про створений проект (рис.12.)
Рис. 12. Вікно з інформацією про створений
проект
3.2 Відладка програми в середовищі MPLAB
Для виявлення помилок та спостерігання за
змінами значень в написаній програмі необхідно скористатися відладчиком
інтегрованого середовища MPLABIDE. Для цього в панелі меню виконано
Debuge->SelectTool->MPLABSIM.У вікні Files відкривається програмау
вмонтованому в текстовому редакторі
Для того щоб спостерігати за вмістом всіх
регістрів мікроконтролера необхідно відкрити вікно FileRegisters. Для цього в
панелі меню виконати View ->FileRegisters. (рис. 13)
Рис. 13. Вікно із заченнями всіх регістрів
мікроконтролера
Щоб спостерігати за значеннями спеціальних
функціональних регітрів відкрито вікно Special Function Registers. Для цього
виконано меню View->SpecialFunctionRegisters (рис. 14.)
Рис. 14. Вікно із заченнями регістрів
спеціального признаяення
Для запуску програми необхідно натиснути на
піктограму BuildAll . Якщо в програмі не має помилок , то у вікні Output
з’явиться повідомлення BUILD SUCCEEDED .(рис.15.)
Рис. 15. Запуск програмиувідгадчику
В результаті виконання даної програми в регітрі
з адресом 094 повинно бути значення 0xFFРис. 16.
.3 Програмний код
org 0:xCD;Занести константу FBh в WC;Переслано
вміст W в регістер CCPR2Hx5C;Занесено константу 5Ch в W,5;В регістрі STATUS
встановлено 5 розряд в 0.
;вибирано для роботи 0 банк памятіC;Переслано
вміст W в регістер PIE1C,3;В регістрі PIE1 обнулено 3 розряд.C,0;Переслано
значення регіста PIE1 в W,5;В регістрі STATUS встановлено 5 розряд 0.
;вибирано для роботи 0 банк памяті;Переслано
вміст W в регістер T1CON;Виконано команду зсуву вправо,0F;Переслано вміст W в
регістер TMR1H,0;Виконано команду додавання чисел в W і
;в регістрі 013результат збережено в
W028;Пересилано вміст W в регістер 028F;Зменьшено вміст регістра SSPBUF на
1x0F;Виконано команду побітового 'АБО' з константою
;результат знаходиться в W;Команда не виконує
ніяких дій крім.
;Виконується за один цикл.;Пересилано вміст W в
регістер 028x65;Виконано команду віднімання f-W;а збережено в
028:decfsz028,1;Організується цикл за допомогою команди decfsz
;і GOTO. Поки в регістрі 028 не 0 перехід буде
;на мітку j1. У шшому випадку пропустити команду
;GOTO і виконати наступну команду.D;Пересилано
вміст W в регістер 025D;Виконано команду зсуву влівоD,0;Інвертовано значення в
регістрі 02D
;а збережено в WC;Переслано вміст W в регістер
02Cx25;Виконано команду побітового 'І'
;результат знаходиться а регістрі WE;Значення W
занести в регістр 02EE,1;Виконано команду побітового 'І' регістра 02E і
;W результат знаходиться а регістрі
02EE,1;Виконано команду XORWF, 'Виключне АБО'
;а зберігаємо в W
;Використовуючи значення використаних регістрів
одержано в регістрі
;з адресом SSPSTAT значення FFh.C,0;Переслано
значення регіста 02C в WCD,0;Виконано команду додавання чисел в W і
;в регістрі 026результат зберажено в WD,5;В
регістрі STATUS встановлено 5 розряд в 1.
;вибирано для роботи 1 банк памяті;Переслано
вміст W в регістер SSPSTAT,5;В регістрі STATUS втсановдлено 5 розряд в 0.
;вибирано для роботи 0 банк памяті
Рис. 16. Результат виконання програми
.4
Опис роботи команд
) MOVFПереслати
регістр f
Синтаксис:[label]
MOVFf,d
Операнди:0
£f£127приймає
значення0,1
Операція:(f)→
(dest)
Зміна
флаж:Z
Код
команди:001000dfffffff
Опис:
Вміст регістру fпереслати в регістр адресата.Якщо d =0, то результат
зберігається в регістрі WREG, якщо d =0, то результат зберігається в регістрі
f. = 1 використовується для перевірки вмісту регістра 'f' на нуль.
Таблиця 2
Q1
|
Q2
|
Q3
|
Q4
|
Декодування команди
|
Читання Регістра
‘f’
|
Виконання
|
Запис разультату
|
Циклів:1
Виконання команди по тактам:
Приклад 1: MOVF
039,0
До виконання команди
W = 0x00
= 0xD5
Після виконання команди
W = 0xD5
Z = 0
) IORLW
побітне «АБО» константиі W
Синтаксис:[label]
IORLWk
Операнди:0 £k£255
Операція:(W)
.XOR.k→
(W)
Зміна флаж:Z
Код команди:11 1000 kkkkkkkk
Опис: Виконується побітне ' АБО' вмісту регістра
W і 8-розрядної константи 'k'. Результат зберігається в регістрі W.
Таблиця 3
Q1
|
Q2
|
Q3
|
Q4
|
Декодування
команди
|
Читання
Регістра ‘f’
|
Виконання
|
Запис
разультату
|
Циклів:1
Виконання команди по тактам:
Приклад 1: IORLW 0x67
До виконання команди= 0x58
Після виконання команди= 0x7F= 0
)DECFSZ Відняти 1 з а й пропустити якщо 0
Синтаксис:[label] DECFSZf,d
Операнди:
0 £f£127приймає
значення0,1
Операція:(f)
- 1 → (dest) - пропустити якщо результат рівний 0
Зміна
флаж:Немає
Код
команди:00 1011 dfffffff
Опис:Зменьшити
вмість регістру‘f’ на одни. Якщо d = 0, результат зберігається в регістрі W.
Якщо d = 1, результат зберігається в регістрі ‘f’. Якщо результат не дорівнює
нулю, то виконується наступна команда. Якщо результат дорівнює нулю, наступна
команда не виконується.
Таблиця
4
Q1Q2Q3Q4
|
|
|
|
Декодування
команди
|
Читання
Регістра ‘f’
|
Виконання
|
Запис
разультату
|
Циклів:1
Виконання команди по тактам:
Приклад 1: Mitka:
DECFSZ
034,1
GOTO Mitka
CONTINUE
•
•
Випадок 1 До виконання команди
PC = адрес Mitka
= 0x01
Після виконання команди
= 0x00
PC = адрес CONTINUE
Випадок2До виконання команди
PC = адрес Mitka
= 0x02
Після виконання команди
= 0x01
PC = адрес Mitka
+ 1
4)RRF Циклічний зсув f вправо через перенос.
Синтаксис:[label] RRFf,d
Операнди:0
£f£127приймає
значення0,1
Операція:рис.
17
Зміна
флаж:Z
Код
команди:00 1101 dfffffff
Опис:
Виконується циклічний зсув вправо вмісту регістра 'f' через біт C регістра
STATUS.Якщо d =0, то результат зберігається в регістрі WREG, якщо d =0, то
результат зберігається в регістрі f.
Рис.
17. Грайфічна ілюстрація виконання команди RLF
Таблиця
5
Q1
|
Q2
|
Q3
|
Q4
|
Декодування
команди
|
Читання
регістра ‘f’
|
Запис
разультату
|
Циклів:1
Виконання команди по тактам:
Приклад 1: RRF REG3,0
До виконання команди= 01011010= xxxxxxxx= 0
Після виконання команди= 0010 1101= 0010 1101= 0
)ADDLW Додати константу до вмісту регістру W
Синтаксис:[label] ADDLW k
Операнди: 0 £k£255
Операція:(W) + k→ (W)
Зміна флаж:C, DC, Z
Код команди:11 111x kkkkkkkk
Опис: Додати контанту до вмісту регістру W.
Результат зберігається в регістрі W.
Таблиця 6
Q1
|
Q2
|
Q3
|
Q4
|
Декодування
команди
|
Читання
Регістра ‘f’
|
Виконання
|
Запис
разультату
|
Циклів:1
Виконання команди по тактам:
Приклад 1: ADDLW 0xF2
До вконання команди= 0x3E
Після виконання команди= 0xF2
.5
Тестування програмного забезпечення та його результати
Використовував технічні засоби
При роботі програми до технічних засобів що
використовуються відноситься комп’ютер, на якому встановлено необхідне
програмне забезпечення. Технічні характеристики комп’ютера наступні:
процесор з частотою від 500 Мг;
мінімальнийрозміроперативноїпам’яті 64 Мб;
мінімальнийрозміржорсткого диску 1 Гб.
Основною вимого є наявністьпрограмного
інтегрованого середовища MPLAB
Виклик і завантаження
Виклик програми відбувається стандартними
засобами середовища MPLAB де при відкритті з’являється вікно про коректний
запуск програми.(рис. 13). Якщо при запуску програми була вявленя помилка , то
появиться вікно про те, що в програмі є помилка (рис. 14.)
Рис. 13. Вікно підтвердження коректності роботи
програми
Рис. 14. Вікно з інформацією про помилку в
програмі
Вимоги до програми
Основними вимогами доданого програмного
забезпечення є створення файлу з розширенням .hex для завантаження програми в
пам’ять мікроконтролера.
ВИСНОВКИ
Однокристальні мікроконтролери
знаходять широкі застосування в найрізноманітніших сферах: від вимірювальних
приладів, фотоапаратів і відеокамер, принтерів, сканерів і копіювальних
апаратів до виробів електронних розваг і всілякої домашньої техніки.
Програмне забезпечення розроблено на основі
індивідуального завдання до курсової роботи. Він демонструє роботу з регістрами
та
використовує
пряму адресацію за допомогою доступних команд в мікроконтролері PIC16F707
Програмне забезпечення розроблено з
використанням в якості інструментальних засобів інтегрованого середовища
MPLABта мови низького рівня програмування Ассемблер
Випробування програмного забезпечення
продемонстрували його працездатність та відповідність заданим функціональним,
кваліфікаційним та експлуатаційним вимогам.
Розвиток мікроелектроніки та її широке
застосувань виробів в промисловому виробництві, в пристроях і системах
управління найрізноманітнішими об'єктами і процесами є в наш час одним із
основних напрямів науково-технічного прогресу.
ПЕРЕЛІК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ ТА ІНФОРМАЦІЙНИХ
РЕСУРСІВ
Абель
П. Язык ассемблера для IBM PC и программирование. - М.: Высш. шк.,2008.- 447 с.
Дерев’янко,
С.Г. Межерицький, С.Ю. Гавриленко, А.М. Клименко. - Харків: НТУ «ХПІ», 2009.
-160 с.Калашников О. Ассемблер ето просто Учимся програмировать 2-е издание -
Санкт-Петербург «БХВ-Петербург», 2011 - 329 с.
Ковалюк
Т.В. Основипрограмування. К.: Видавничагрупа «BHV», 2005. - 384 с.
Системнепрограмування.
Системнісервіснікомпоненти: навч. посібник / О.С.
Фрунзе
А.В Микроконтроллеры? Это же просто! Том 1 Москва «ИД СКИМЕН», 2002 - 331с.
Юров В., Хорошенко С. Assembler. Учебний курс. -
2005.- 636 с.
ДОДАТОК
Архітектура мікроконтролераPIC16F707