Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПТ_L_к.doc
Скачиваний:
13
Добавлен:
27.08.2019
Размер:
20.33 Mб
Скачать

8. Приклади програмування на асемблері кр1816ве51

8.1 Форомалізований підхід до розробки прикладної програми

Якщо цільова функція використання мікроконтролера КР1816ВЕ5 визначена, тобто, поставлена задача на розробку праграми, то для отримання вихідної програми необхідно виконати настпні послідовні дії:

■ виконати детальний опис задачі, яку повинен виконувати КР1816ВЕ51;

■ провести аналіз задачі;

■ виконати інженерну інтерпретацію задачі з використовуванням апарату формалізації (наприклад, скласти граф автомата Мілі (рис.8,а), використати матрицю стану або мережі Петрі тощо);

■ розробити загальну блок-схему алгоритму (БСА) мікроконтролера (рис.8,б);

■ розробити деталізовані БСА окремих процедур, які повинні бути виділені

на базі модульного принципу складання програми;

■ виконати детальну розробку інтерфейсу мікроконтролера;

■ розподілити робочі регістри та пам’ять мікроконтролера;

■ виконати форматування тексту вихідної програми.

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

На мові схем алгоритмів розробник описує метод, який вибраний для вирішення поставленої задачі. Часто буває, що одна і таж задача може бути

вирішена різними методами. Спосіб вирішення задачі , що вибраний на стадії її інженерної інтерпретації, на базі якого складається БСА, буде визначати як якість майбутньої прикладної програми, так і якість функціонування мікроконтролера на об’єкті.

П орівнюючи фрагменти гафа Мілі та фрагмент БСА, які приведені на рис.8, можна стверджувати , що вони еквівалентні. На фрагментах X та Z- двійкові вектори, що належать множині комбінацій вхідних {x} та вихідних {z} сигналів, а Q – це стан автомату із множини можливих станів {q}. Стан автомату Qi і вихідний вектор Zi є функціями попереднього стану Qi-1 автомату і плинного вхідного вектору Xi.

Операторні прямокутники в БСА інтерпретуються як

а) б) вершини (стійкі стани) графу автомата, а умовні

Рис. 8.1 оператори – як дуги графу Xi/Zi, тобто, переходи з одного стійкого стану в інший. При цьому операторний прямокутник являє собою фрагмент програми. В час всього стійкого стану Qi вихідний вектор Zi залишається незмінним, поки не змінить свій стан вхідний вектор Xi. Для цього в період стійкого стану Qi умовні оператори алгоритму програмної реалізації автомату селектують (із заданим періодом дискретизації) зміну вхідного вектору Xi, якщо вона відбулась під дією зовнішніх (по відношенню до МП) подій. В результаті встановлення факту зміни вектора Xi. контролер переходить в новий стійкий Qi+1 стан автомату і генерує новий вихідний вектор Zi+1, значення якого повністю визначені графом автомата.

В свою чергу при розробці БСА бажано притримуватись наступних етапів:

■ визначити, що повинен робити кожний модуль, кожний фрагмент пркладної програми;

■ визначити способи отримання модулем вихідних даних (від первинних вимірювальних перетворювачів (сенсорів) через порти, чи таблиць пам’яті, чи робочі регістри); для реалізації введення вихідних даних в модуль в його БСА ввести відповідні оператори;

■ визначити неохідність попередньої обробки введених даних (маскування, зсув, масштабування , перекодування тощо) іпри неохідності останньої ввести

відповідні оператори;

■ визначити способи перетворення вхідних даних у необхідні вихідні;

використовуючи оператори процедур та умовні оператори , відображувати

на БСА вибраний метод змістовної обробки вхідних даних;

■ визначити способи видачі із модуля опрацьованих даних (передати у пам’ять,чи у програму виклику, чи у порти тощо);

визначити необхідність постобробки виведених даних (зміна формату,перекодування, масштабування, маскування тощо) і ввести по необхідності в БСА відповідні оператори для виводу інформації із модуля;

■ повернутись на початок та проаналізувати отриманий результат. По можливості виконати ітеративне коригування БСА з метою його спрощення;

■ перевірити алгоритм на папері шляхом введення в нього дійсних даних та розглянути граничні значення інформаційних об’єктів в ньому (аналіз можливих переповнень розрядної сітки МП, зміна знаку результату операції, ділення на змінну, яка може приймати нуль, реакцію алгоритму на переривання тощо).

Наступний етап - компіляція вихідного модулю отриманої прикладної програми на мову машинних команд та занесення об’єктного модулю у ППЗП з подальшим налаштуванням МП КР1816ВЕ31(51) в складі МПС.