Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Структурное программирование. Программирование для универсальных компьютеров начиналось с программирования в машинных кодах, затем появились и начали своё развитие языки высокого уровня

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

Программирование для микроконтроллеров во многом повторяет тот же путь. Переход от этапа к этапу зависит от доступных внутренних ресурсов микроконтроллеров. Ещё несколько лет назад использование языков высокого уровня было невозможно из-за малого объёма внутренней памяти программ. (В дешёвых моделях микроконтроллеров эта ситуация сохраняется до сих пор.) В настоящее время с появлением микроконтроллеров и сигнальных процессоров с объёмом внутренней памяти в несколько десятков килобайт появляется возможность объектного проектирования.

Применение структурного программирования позволяет увеличить скорость написания программ и облегчить отладку написанной программы. Структурное программирование возможно и на языках программирования assembler, где не предусмотрено структурных операторов, подобных структурным операторам языков программирования C, PASCAL, PL/M.

В настоящее время существует два способа написания программ: снизу вверх и сверху вниз. При написании программы снизу вверх приступить к отладке программы невозможно, не написав полностью всю программу. При написании программы сверху вниз на любом этапе написания программы она может быть оттранслирована и выполнена, при этом можно отследить все алгоритмические действия программы, написанные к этому времени. Процесс написания программы не отличается от процесса создания алгоритма. Более того, эти этапы создания программы можно объединить. Выполняемое алгоритмическое действие отображается в названии подпрограммы. Например:

ProchitatPort;Прочитать порт

VklychitIndikator;Включить индикатор

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

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

Алгоритмическое изображение оператора Язык программирования С Язык программирования asm-51

Второй структурный оператор называется условный оператор. Достаточно часто одна или другая задачи должны исполняться в зависимости от определённого условия, которое зависит от результатов выполнения предыдущей программы или от внешних устройств. Каждая из таких задач называется плечом условного оператора.

Алгоритмическое изображение оператора Язык программирования С Язык программирования asm-51

Условный оператор может использоваться в неполном варианте, когда одно из плеч алгоритма отсутствует:

Алгоритмическое изображение оператора Язык программирования С Язык программирования asm-51

Третий структурный оператор - это оператор цикла с проверкой условия после тела цикла. Такой оператор легко реализуется на языке программирования ассемблер при помощи команды условного или безусловного перехода. Отличие от условного оператора заключается в том, что передача управления осуществляется не вперёд, а назад. На языках программирования высокого уровня такой оператор входит в состав языка (оператор do..while в языке программирования C или оператор repeat..until в языке программирования PASCAL).

Алгоритмическое изображение оператора Язык программирования С Язык программирования asm-51

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

Алгоритмическое изображение оператора Язык программирования С Язык программирования asm-51

Многофайловые программы

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

Это трудоёмкая работа, которая приводит к ошибкам и, в конечном счёте, замедляет написание и отладку программ. Намного удобнее использовать хранить исходную программу в нескольких файлах, предоставляя работу по соединению этих файлов в единую программу транслятору.

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

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

#include

<stdio.h> /*Файл стандартного ввода-вывода*/

 

#include

<reg51.h> /*Файл описания регистров специальных функций микроконтроллера*/

 

 

... /*Остальная часть программы*/

 

Приведём содержимое включаемых файлов:

В результате программа-транслятор формирует временный файл следующего содержания:



а затем транслирует его в загружаемый модуль.

Точно таким же образом можно использовать включение файлов и на языке программирования ASM-51:

$include (stdio.asm);Файл стандартного ввода-вывода
$include (reg51.inc);Файл описания регистров специальных функций микроконтроллера

...;Остальная часть программы

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

<== предыдущая лекция | следующая лекция ==>
Применение комментариев | Многомодульные программы
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 331; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.