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

Реферат Програмування мікропроцесорних систем





ли таймер для формування затримки) але не використали його головної переваги: ​​здатності викликати переривання. На практиці подібним чином майже ніколи не надходять. Частіше всією в подібних випадках застосовують переривання за таймером. Це дозволяє більш точно формувати інтервали часу, але головне - дозволяє розвантажити центральний процесор. p align="justify"> Поки таймер формує затримку, програма може виконувати будь-які інші дії. У результаті програму біжать вогнів можна легко поєднати, наприклад, з програмою генерації звуків. Але не будемо ускладнювати нашу задачу і сформулюємо її наступним чином:

Створити нову програму В«біжать вогнівВ» з використанням переривань за таймером.

5.5 Схема


Схему залишимо без змін.

Алгоритм

Поставлена ​​вище завдання зажадає повної переробки всієї нашої програми.

Адже зміниться режим роботи таймера. У даному конкретному випадку найзручніше використовувати режим збіги. Точніше, його потримаємо В«скидання при збігуВ». У цьому режимі таймер сам періодично виробляє запити на переривання з наперед заданим періодом. p align="justify"> Всі функції управління В«рухом вогнівВ» виконує процедура обробки переривання. При кожному виклику переривання процедура виробляє зрушення В«вогнівВ» на один крок у потрібному напрямку. p align="justify"> Для того, щоб забезпечити таку ж швидкість руху В«вогнівВ», як у попередньому прикладі, ми повинні використовувати ті ж самі коефіцієнти розподілу. Для початку необхідно включити попередній дільник і вибрати для нього коефіцієнт ділення 1/1024. p align="justify"> Другий коефіцієнт ділення (780) ми поміщаємо в спеціальний системний регістр - регістр збіги. Порівняння вмісту рахункового регістра з вмістом регістра збігу відбуватиметься на апаратному рівні. У режимі В«скидання при збігуВ» таймер працює таким чином. Відразу після запуску значення рахункового регістра почне збільшуватися. Коли це значення виявиться рівним значенню регістра збігу, таймер автоматично скинеться і продовжить роботу з нуля. У момент скидання таймера формується запит на переривання. p align="justify"> Для імітації біжать вогнів, як і в попередніх прикладах, ми будемо використовувати операції зсуву. При цьому нам також знадобиться спеціальний робочий регістр. Тобто один з регістрів загального призначення, в якому буде зберігатися поточний стан наших В«вогнівВ». На початку програми в робочий регістр необхідно записати початкове значення. Тобто число, один з розрядів якого дорівнює одиниці, а решта - нулю. У результаті операцій зсуву ця одиниця буде переміщатися вправо або вліво, створюючи ефект біжить вогню. Перевірка стану кнопки і зрушення на один крок буде проводитися при кожному виклику процедури обробки переривання. Виходячи з вищесказаного, алгоритм роботи програми складається з двох незалежних алгоритмів. По-перше, це алгоритм основної програми, а по-друге, алгоритм процедури обробки переривання. Розглянемо їх по порядку. p align="justify"> Алгоритм основної програми:

Налаштувати стек і порти введення-виведення мікроконтролера. Налаштувати таймер і систему переривань. Записати в робочий регістр початкове значення. Дозволити роботу таймера. Дозволити переривання. Перейти до виконання основного циклу.

Так як всі операції, пов'язані з рухом вогнів, виконує процедура обробки переривань, в основному циклі програми нам нічого робити не потрібно. Для простоти залишимо основний цикл порожнім. p align="justify"> Алгоритм процедури обробки переривання:

Перевірити стан перемикача режимів. Якщо контакти перемикача розімкнуті, справити зсув всіх розрядів робочого регістра на один розряд вправо. Якщо в результаті цього зсуву одиничний біт вийде за межі байта, створити новий одиничний біт в крайній лівій позиції. Якщо контакти перемикача замкнуті, справити зсув всіх розрядів робочого регістра на один розряд вліво. Якщо в результаті цього зсуву одиничний біт вийде за межі байта, створити новий одиничний біт в крайній правій позиції. Вивести вміст робочого регістра в порт РВ, попередньо проінвертірованний його. Закінчити процедуру обробки переривання. Перейти до виконання основного алгоритму.

6. Лабораторна № 6


.1 Формування звуку


Постановка завдання

...


Назад | сторінка 20 з 32 | Наступна сторінка





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

  • Реферат на тему: Переривання і виключення
  • Реферат на тему: Переривання вагітності
  • Реферат на тему: Цикли, переривання, компоненти для відображення тексту
  • Реферат на тему: Внутрішньоутробне вдосконалення людини і переривання вагітності
  • Реферат на тему: Розробка алгоритму програми &Таймер& на мові програмування C ++