Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Програмне забезпечення для 8-розрядного мікроконтролера фірми Microchip PIC16F877

Реферат Програмне забезпечення для 8-розрядного мікроконтролера фірми Microchip PIC16F877





програма-відладчика використовуємо також вбудований додаток MPLAB SIM (дозволяє покроково перевіряти виконання команд ПЗ, і знаходжу виробляти виправлення)


2.2 Опис задіяних регістрів


У ході виконання програми нами були використані регістри спеціального призначення, наведені в таблиці 1.


Таблиця 1 Використовувані регістри спеціального призначення

РегістрОпісаніеSTATUSВ регістрі STATUS містяться прапори стану АЛП, прапори причини скидання мікроконтролера і біти управління банками пам'яті данних.FSRРегістр адреси при непрямої адресацііINDFОбращеніе до регістру, адреса якого записаний в FSR (не фізичний регістр) WREGРегістр, в якому зберігається один з операндів при виконанні операції АЛУ.TEMPПеременная для кількості циклів повтору RANDOMПеременная для зберігання псевдовипадкового чіслаMAXПеременная для зберігання максимального елемента масиву

3. Розробка алгоритму


Алгоритми виконання основної програми і макросів представлені на малюнках 1, 2.

Основна блок схема складається з ряду підпрограм, блок схеми яких так само представлені на малюнках нижче.

1. Макроси BANK0 - BANK3 змінюють значення бітів RP0 і RP1 регістра STATUS, тим самим дозволяють короткими командами переміщатися по всіх чотирьом банкам.

2. Макрос RND, алгоритм якого представлений на малюнку 2, виконує генерацію псевдовипадкового числа і записує його в змінну RANDOM. Початкове число, з яким здійснює операції генерування макрос RND знаходиться за адресою 0Х21, тобто перший елемент масиву. Так як після закінчення заповнення масиву, використовувані чарунки не піддаються очищенню, тому перший його елемент кожен новий цикл заповнення виходить різним. Слід врахувати, що осередки після заповнення не очищати лише в реально працюючому мікроконтролері, а при симуляції програми в MPLab-е, при кожному новому запуску комірки можуть містити значення 0X00.Ето говорить про те, що ефект псевдовипадкового масиву буде видно на зібраному пристрої.

. В основній програмі, алгоритм якої представлений на малюнку 1, виконується автоматичне заповнення масиву, псевдовипадковими числами, шляхом перетворення кожного наступного елемента макросом RND. Для автоматичного заповнення застосовується непряма адресація. Кількість заповнюваних осередків відповідає числу, яке знаходиться у змінній ТЕМР. Дана змінна містить значення, завантажуване в лічильник, і при досягненні нуля заповнення масиву припиняється.

. Далі виконується пошук елемента в масиві з максимальним значенням. Спочатку за максимальний елемент приймаємо перший і записуємо його в змінну MAX. Далі порівнюємо значення MAX з подальшим елементом шляхом арифметичної команди віднімання. Якщо він виявляється більше значення MAX, то його переписуємо в цю ж змінну MAX, якщо ж значення наступного числа менше поточного максимального, то змінну МАХ залишаємо без зміни. Порівняння триває стільки ж разів, скільки елементів знаходиться в масиві. Кількість операцій порівняння також відраховується лічильником, в який завантажено число із змінної ТЕМР.

. Під кінець виконання програми в комірці 0х20 (адреса дан за завданням) знаходиться максимальний елемент масиву.


Рисунок 1 - Блок схема основної програми

Малюнок 2 - Блок схема макросу RND

4. Розробка програмного аналога


У цьому розділі, маючи необхідний алгоритм і середовище програмування, напишемо код програми.


4.1 Лістинг програми


Лістинг програми представлений в кодах мови Assambler.


# include lt; p16f877.inc gt; EQU 0x60; визначимо EQU 0x61; місцеположення

MAX EQU 0X20; всіх змінних

ORG h 0000 ;

ORG h 0004 ;

MOVLW 0X21; покладемо в акумулятор 0Х21

MOVWF FSR; виберемо осередок з цією адресою

MOVLW 0XA4; покладемо в акумулятор 0ХA4 INDF; покладемо в осередок 0Х21 значення 0ХА4

MOVF 0X21, W; копіюємо значення 0Х21 осередки в акумулятор

MOVWF RANDOM; покладемо це значення в змінну RANDOM

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

; Макрос ВИБОРУ БАНКІВ ПАМ'ЯТІ

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

BANK0 MACRO; вибір нульового банку

BCF STATUS, RP0

BCF STATUS, RP1MACRO; вибір першого банкаST...


Назад | сторінка 2 з 4 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Проектування програми з аналізу масиву
  • Реферат на тему: Клемент Готвальд і його значення у зміні програми Компартії Чехословаччини ...
  • Реферат на тему: Розробка програми обробки масиву даних з побудовою діаграми (предметна обла ...
  • Реферат на тему: Розробка алгоритму програми на мові С + +, яка обчислює значення ємності і ...
  • Реферат на тему: Створення програми для обчислення значення функції