Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПС2 Проектирование аппаратного и программного...doc
Скачиваний:
5
Добавлен:
26.09.2019
Размер:
2.77 Mб
Скачать

12. Модуль "Функциональная подготовка" (FuncPrep)

Задачей этого модуля является запись во все критические наборы данных статической модели программы корректных исходных значений.

Критическими являются наборы данных, информация из которых используется раньше, чем будет сформирована программными модулями. Из анализа алгоритма рассматриваемой программы (см. рис. 3.24) следует, что критическими в ней являются сообщение об ошибке ввода с клавиатуры KbdErr (используется в модуле 3, а формируется в модуле 7), а также отображаемые наборы Addr и BufData (в режиме "Ввод" формируются многократным проходом модуля 9, а используются сразу же модулями 10 и 11).

Кроме того, тип ввода с клавиатуры устанавливается кнопками "Тип ввода" ("Адрес/"Данные"), которые в момент включения устройства неактивны. Для определенности в подготовке будем устанавливать тип ввода в положение "Адрес", что требует сброса флага InType.

Рис. 3.36. Алгоритм модуля "Вывод числовой информации"

Для работы программы часто требуются некоторые служебные ячейки памяти, предназначенные для хранения вспомогательной информации (буферные ячейки для сохранения содержимого тестируемых элементов, ячейки для хранения некоторых данных в предшествующие моменты времени и т. д. и т.п.). При необходимости эти ячейки также должны инициализироваться в подготовке на корректные исходные значения.

Г СА модуля FuncPrep приведена на рис. 3.37. При подготовке сбрасываются флаги KbdErr и InType, набор Addr, а в набор BufData помещается число, считанное из выходного массива RAMData по нулевому адресу (из набора Addr).

Для выделения передних фронтов сигналов модификации адреса "+1"/"1" (см. рис. 3.29,а) необходимо знать их состояние на предшествующем проходе программного кольца. Для хранения этой информации необходима служебная ячейка памяти. Однако, на первом проходе эта информация еще не существует. Поэтому данная ячейка в подготовке инициализируется на корректное исходное значение отсутствие сигналов модификации адреса "+1"/"1" в предшествующем проходе.

Таким образом, разработаны алгоритмы программных модулей нижнего уровня и полный алгоритм программы для ввода данных в ОЗУ.

Достоинствами рассмотренного метода проектирования программ являются:

1) существенное повышение информативности программной документации, способствующее улучшению степени сопровождаемости программы за счет использования статической модели, представляющей ее в виде совокупности простых модулей с четко определенными входными и выходными данными;

2

Рис. 3.37. Алгоритм модуля “Функциональная подготовка”

) возможность использования целого коллектива программистов для одновременной и независимой разработки и отладки программных модулей за счет их четко определенного информационного интерфейса (с целью сокращения общих сроков создания программы);

3) из отлаженных модулей, оформленных в виде подпрограмм, могут составляться библиотеки для использования в дальнейших проектах.

3.4.4. Кодирование программы

Кодирование представляет собой процесс записи алгоритма решения некоторой задачи на используемом языке программирования.

Для кодирования могут применяться различные языки программирования в зависимости от требований, предъявляемых к программе. В МПС для достижения высокой эффективности создаваемых программ, как правило, используется язык ассемблера, и лишь для кодирования математически сложных задач применяются языки программирования высокого уровня: Паскаль, Си и т.п.

Основу любого алгоритма составляют логические конструкции структурного программирования. Поэтому кодирование программы сводится к реализации этих конструкций.