Розробка програмного забезпечення на мікроконтролер PIC16F707

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    565,45 Кб
  • Опубликовано:
    2015-06-13
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Розробка програмного забезпечення на мікроконтролер 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

Похожие работы на - Розробка програмного забезпечення на мікроконтролер PIC16F707

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!