Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНО17-new.doc
Скачиваний:
8
Добавлен:
18.03.2015
Размер:
1.22 Mб
Скачать

Лабораторно-практическое занятие №17.

Тема:Программирование алгоритмов с ветвлениями и циклами.

Цель работы:Исследование выполнения отдельных олгаритмов для написания простых программ; изучение программных способов с ветвлениями и циклами.

Теоретическая часть

ОСНОВЫ МАТОБЕСПЕЧЕНИЯ

Как описано в предыдущем разделе, система микро-ЭВМ состоит из аппаратной части и матобеспечения. Программа пишется сначала в таком виде, который удобен для программиста , а затем она должна быть переписана и храниться в кодах, "понятных" МП. МП затем считывает эти коды из памяти и выполняет указанные операции. Важно понять, что может делать микро-ЭВМ и чего она делать не может.

ЧЕГО НЕ "ПОНИМАЕТ" МИКРО-ЭВМ

При составлении программы программист должен дать микро-ЭВМ детальное описание ее действий. Микро-ЭВМ может действовать с большой точностью и скоростью в течение длительного периода времени, но ей необходимо дать четкое задание. Она может реагировать на изменение условий, но только в том случае, если введена программа, сообщая ей: "В данных условиях нужно сделать следующее". Компьютеры действуют логически, но не обладают творческими способностями. Кажущаяся разумность микрокомпьютеров является всего лишь результатом большого числа программ, заложенных в них.

МИКРО-ЭВМ КАК ЛОГИЧЕСКОЕ УСТРОЙСТВО

Микропроцессорные системы часто используются для замены схем, состоящий из стандартных логических устройств. Чтобы проиллюстрировать разницу между "запрограммированными" и традиционными логическими устройствами, рассмотрим использование МП в качестве простой схемы "И". Схема "И", основанная нар МП, требует входного порта для входов схемы и'выходного порта для выходов схемы /рис.1/. МП, используя команды, хранящиеся в памяти, выполняет функцию "И". Поскольку схема "И" имеет только один выход, требуется только один разряд в выходном порте. Для схемы "И", основанной на МП, требуется соответствующая программа. Далее приводится список команд, выполняющих функцию "И";

Рис.1. Схема микропроцессора, выполняющего функции схемы И

1. Считать данные с входного порта.

2. Перейти на шаг 5, если все входы имеют высокий уровень, в противном случае - продолжать.

3. Установить низкий уровень на выходе.

4. Перейти на шаг 1.

5. Установить высокий уровень на выходе.

6. Перейти на шаг 1.

Сначала считываются данные с порта входа. Затем данные проверяются на высокий уровень. Если на всех входах уровень высокий, на выходе устанавливается тоже высокий уровень, в противном случае устанавливается низкий уровень. Когда программа завершена, происходит переход на шаг 1 и повторение. При этом изменения на входах постоянно отражаются на выходе.

Рис.2. Основные типы блоков

Графически программа представлена структурной схемой, состоящей из блоков различных типов, соединенных линиями /рис.2/: прямоугольный .блок обозначает любые действия программы, ромбический - .принятие решения. Овальный блок ставится в начале схемы, в нем записывается название программы, а также в конце схемы.

На рис.3, показана структурная схема программы для схемы "И". Стрелки показывают направление выполнения программы. Хотя структурная схема содержит ту же информацию, что и листинг /распечатка/ программы, она более наглядна. Если составление программы затруднительно, структурная схема поможет продумать, как она должна быть написана. Используя структурную схему, можно проверить логику рассуждений, вернуться к ранее написанной программе и быстро восстановить ее функции.

Проведем эксперимент, в котором "Микролаб" выступает в роли схемы "И", а ПЗУ микро-ЭВМ содержит программу для выполнения функции "И". Эксперимент позволит пронаблюдать за выполнением данной программы. Для этого необходимо:

1. Нажать кнопку СБРОС,

2. Нажать кнопки 0, 3, Е, О и УСТ.АД., тем самым установить начальный адрес программы,

3. Нажать кнопку ПУСК - программа "И" начнет выполняться.

4. Найти три тумблера, помещенные внизу панели. Эти тумблеры связаны с портом ввода и являются входами схемы "И" /расположенные рядом восемь светодиодов связаны с портом вывода. Самый правый используется как выход схемы "И"/.

5. Установить все три входных переключателя в верхнее положение, тем самым подать высокий уровень на разряды входного порта. Крайний справа светодиод будет светиться, так как на всех входах высокий уровень . Этот индикатор связан с нулевым битом порта вывода, который используется как выход схемы "И",

6. Изменить положение любого из входных переключателей. Индикатор перестанет светиться, поскольку не на всех входах будет высокий уровень.

7 Нажать кнопку СБРОС- Установить входные переключатели в верхнее положение. На выходе /светодио-де/ не будет никакого отклика. Это значит, что выполнение программы прекратилось.

Микропроцессорная система может выполнять функцию обычной схемы "И" с одним недостатком - она менее быстродействующая. Программа схемы "И" состоит из четырех команд, а "Микролаб" требует около 3 мкс для выполнения одной команды. Поэтому схема "И" имеет время задержки /время между изменениями на входе и на выходе/, равное примерно 3 мкс х 4 = 12 мкс. Обычная ТТЛ схема имеет время задержки приблизительно 10 не — - более чем в 1000 раз меньшее. Этот пример иллюстрирует быстродействие МП в сравнении с обычной логикой. Разница тем больше, чем сложнее система. Однако часто это не столь существенно, так как скорость обычной логики в действительности гораздо больше, чем требуется. Для чего использовать такую сложную систему, если достаточно обыкновенной микросхемы "И"? Действительно, если это единственная функция, которую система должна выполнять, нужно использовать схему "И". Однако МП обеспечивает большую гибкость. На его основе можно построить различные схемы с помощью изменения программы, можно добавить значительно больше входов, и функции схемы намного усложнятся. Рассмотрим, например, 8-входовое логическое устройство, которое действует как электронный замок. Выход активизируется, если входы расположены в специальном порядке. Это можно осуществить, используя традиционную логику, а также микропроцессорную систему, как для простой схемы "И". Конечно, требуется новая программа, более сложная, чем программа схемы "И", но аппаратная часть, кроме устройств ввода/вывода, не изменится. Кроме того, "код" электронного замка может быть изменен за счет изменения программы.

ПРОЦЕСС РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

При разработке сложных программ необходимо придерживаться следующей последовательности:

определить задачу;

принять решение - разделить на функциональные блоки;

составить алгоритм программы;

написать программу;

испытать и отладить каждую'команду;

испытать и отладить полную программу.

Первый шаг очевиден. До того, как принять решение, необходимо понять задачу. Нужно составить набор характеристик программы: определить, что является входными параметрами, как их нужно обработать, что является выходом.

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

Одним из методов определения структуры разрабатываемой программы является структурное программирование, общий принцип которого приводится в данном разделе.

После определения задачи, выбора метода и разделения программы на модули можно приступить к составлению алгоритмов. Обычно составляется обгдий алгоритм, в котором каждый модуль программы изображается в виде квадрата. Составляются алгоритмы и для каждого модуля.

После этого можно писать программу. Тщательность выполнения предшествующих шагов облегчает написание программы.

После составления программы ее необходимо проверить. Модульность программы облегчает проверку. Каждый модуль может быть проверен отдельно. Когда все модули проверены, можно соединить их вместе и проверять всю программу.

Пример разработки программного обеспечения

Рассмотрим описание программы контроллера "бегущие огни".

Индикаторы выходного порта /светодиоды/ используются как имитаторы "бегущих огней". Контроллер должен регулировать следующую последовательность чередования горения светодиодов:

1. Горят светодиоды 1, 4, 7; остальные погашены.

2. Время горения установленных светодиодов.

3. Горят светодиоды 2, 5, 8; остальные погашены.

4. Время горения установленных светодиодов.

5. Горят светодиоды 3, 6; остальные погашены.

6. Время горения установленных светодиодов.

7. Повторение процесса /переход к шагу 1/.

На рис.1, приведен алгоритм работы контроллера.

Выходные индикаторы /светодиоды YDI...YD8/ подключаются к шине данных с помощью программируемого интерфейса.

В табл.1 показаны используемые комбинации сигналов имитирования "бегущих огней" на светодиодах. Единица в двоичном коде сигнала означает включенный индикатор.

VD1 VD2 VD3 VD4 VD5 VD6 VD7 VD8

КОД

1 0 0 1 0 0 1 0

0 1 0 0 1 0 0 1

0 0 1 0 0 1 0 0

92 16

49 16

24 16

Рис.1. Алгоритм программы последовательности горения светодиодов