Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорные системы (книга Комаров) / Проектирование МП систем (ч 2).doc
Скачиваний:
96
Добавлен:
08.03.2015
Размер:
2.59 Mб
Скачать

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

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

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

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

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

Рис. 6.50. Алгоритм

модуля "Функцио- нальная подготовка"

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

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

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

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

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

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

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

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