Все языки программирования условно можно разделить на три уровня:
- машинный код;
- автокод (язык ассемблера);
- языки высокого уровня (процедурные языки - BASIC, FORTRAN, PASCAL, C, MODULA-2, ADA; и языки исскуственного интеллекта - LISP, PROLOG, SMALLTALK, OCCAM).
Более понятные для ЭВМ - это так называемые машинно-ориентированные языки (машинный код и язык ассемблера). Более понятные для человека именуют языками высокого уровня.
Программное обеспечение на машинно-ориентированном языке экономично в эксплуатации, однако сравнительно высокая трудоемкость и длительность разработки программного обеспечения обуславливают преимущественное применение их для создания и развития программного обеспечения драйверов и операционных систем с целью наилучшего использования аппаратных особенностей каждой конкретной ЭВМ.
Алгоритмические языки (языки программирования высокого
уровня общего назначения) являются машинно-независимыми,
позволяют создавать компактные обозримые программы при относительно небольших затратах времени и труда программистов. Разработка программ значительно упрощается при использовании языков высокого уровня в качестве языков программирования. Однако при этом снижается эффективность программ по быстродействию и затратам памяти в сравнении с применением языка ассемблера. Но этот недостаток с лихвой перекрывается четкостью и легкостью написания программы.
Языки высокого уровня в свою очередь подразделяются на
языки процедурного (или императивного) и эвристического
(декларативного) стиля программирования (языки исскуственного интеллекта). Наиболее популярные языки программирования
ПЭВМ высокого уровня приведены в таблице 1.2.
Таблица 1.2.
Язык | Год разработки | Разработчик | Основное применение |
FORTRAN | 1954 | Дж. Бэкус (США) | Математические расчеты, научные исследования |
BASIC | 1965 | Дж. Кенеми (США) | Обучение, тестовые программы |
PASCAL | 1971 | Н.Вирт (Швейцария) | Обучение, широкое применение |
C | 1972 | Д.М.Ричи (США) | Системное программирование |
MODULA-2 | 1981 | Н.Вирт (Швейцария) | Разработка больших программных комплексов |
LISP | 1960 | Дж. Маккарти (США) | Системы искусственного интеллекта |
PROLOG | 1971 | А.Колмедауэр (Франция) | Принятие решений, логический вывод |
SMALLTALK | Середина 1970-х | А.КейАнглия) | Системы диалога со средствами машинной графики |
OCCAM | Начало 1980-х | Фирма INMOS(Англия) | Системы с параллельными процессами |
Кроме того, в настоящее время появились языки так называемого 4-го поколения - это языки СУБД, электронных таблиц, интегрированных систем и т.д., которые предназначены для решения узкого круга задач прикладного характера (например, обработка баз данных), но зато еще больше, по сравнению с языками общего назначения, снижают затраты времени и труда на создание выходного продукта.
Опыт применения ПЭВМ для построения прикладных систем обработки данных показывает, что самым эффективным инструментом создания контроллера являются не универсальные языки высокого уровня, а узкоспециализированные языки - как правило языки высокого манипулирования с особенностями микропроцессора. Характеристики контроллера при этом определяются, прежде всего, принятой в
организацией данных и типом используемого транслятора.
Системы управления контроллера - это программный продукт, обеспечивающий хранение, обновление и выборку информации, представленной в формализованном виде на различных носителях.
Существует множество контроллеров, представляемых различными
производителями. Наибольшее распространение получили контроллеры на основе микрокомплекта 8051. Наибольшую популярность среди них имеет микроконтроллер фирмы INTEL 8051.
С-51
ICC8051 поддерживает не только 8051 (КР1816ВЕ51), но и все другие микро-ЭВМ, использующие ту же основную архитектуру и систему команд (8032, 8044, 80515, 80525 и т.д.). Может потребоваться только изменение объявлений регистров специального назначения и портов ввода/вывода.
Особенности ICC8051 V.4.00:
- два режима компиляции: стандарт ANSI и стандарт ANSI + расширение языка для 8051
- Шесть моделей памяти, обеспечивающих поддержку любых задач, от совсем простых до сложных систем, использующих переключение банков памяти
- Дополнительный атрибут для переменных, определяющий тип памяти размещения: DATA, IDATA, XDATA или CODE
- Статическое размещение локальных переменных позволяет сгенерировать компактный и быстрый код
- Переменные типа SFR (регистр специального назначения) и BIT
(прямоадресуемые биты) могут объявляться и использоваться как стандартные типы данных в языке Си
- Возможность написания на Си функций-обработчиков прерываний (включая определение векторов прерываний) без использования ассемблера
- Поставляемые вместе с компилятором обьявления SFR и BIT, специфичных для каждого члена семейства кристаллов 8051.
Компилятор Си ICC8051 поддерживает все основные элементы языка Си в стандарте ANSI. Переменные располагаются в памяти, начиная со старшего байта и заканчиваются младшим ("старший байт - по младшему адресу").
Переменные всегда плотно упакованы в памяти, т.к. архитектура 8051 не требует выравнивания данных.
[1] Специфические для 8051 типы данных sfr и bit отличаются от стандартных типов данных языка Си, т.к. размещаются в особых областях памяти.
[2] Описание "char" эквивалентно "unsigned char", но может быть изменено на "signed char" с помощью опции компилятора -с.
[3] Перечисляемые переменные ("enum") размещаются с использованием наиболее короткого возможного типа данных, определяемого диапазоном перечисляемых констант - от "char" до "int".
Assembler (INTEL 8051)
Система микропрограммирования является набором компактных программных продуктов для разработки программ для микропроцессоров. СМ реализована для работы на ряде компьютеров, от небольших 16-разрядных персональных машин до 32-разрядных суперминикомпьютеров.
В нем имеется ряд примеров использования как стандартных", так и имеющих особенности средств СМ. Отметим, что независимые средства ассемблера СМ очень просты и эффективны.
СМ ассемблеры - это мощные МАКРО-ассемблеры со средствами перемещения
программ, с универсальными характеристиками и применением. Хотя ассемблеры созданы на базе одного и того же основного пакета, они обладают высокой степенью совместимости с ассемблерами разработчиков микропроцессоров. Основные предметы - это способы использования ассемблера, поддержка модульного программирования и связь с языками высокого уровня.
Все ассемблеры двухпроходные, выполняются как одна программа. Во время выполнения не создается временных файлов.
Все ассемблеры, так же как и ХLINK, используют для внутренних вычислений 32-разрядные структуры, что позволяет виртуально генерировать код любого размера (т.е. не существует предела в 64 кБайт, что могло бы затруднить использование процессоров типа 68000).
Для обеспечения совместимости внутри пакета было применено несколько компромиссных решений, с учетом совместимости с ассемблерами разработчиков микропроцессоров. Особенно это касается макро-конструкций, которые сильно различаются у различных разработчиков. Во многих отношениях, однако, СМ превосходит оригинальные ассемблеры. Следующая таблица дает грубое
представление о степени совместимости этого пакета:
Совместимы по:
- машинным командам (именам и синтаксису)
- директивам определения констант (именам и синтаксису)
- директивам распределения памяти (именам и синтаксису)
- разделителям
- меткам
- основным операторам (+,-,*,/)
- ORG и EQU
Не совместимы по:
- директивам перемещения
- расширениям операторов
- средствам условной трансляции
- опциям и командам управления ассемблером
- макросредствам.
Заметим, что средства, перечисленные в разделе "не совместимы", часто отличаются от оригинальных ассемблеров разработчиков только синтаксисом.
Наиболее популярными на сегодняшний день у программистов являются С-51 и Assembler 8051, так как оба они позволяют получать исходный код.
Постановка задачи
Результатом данного проектирования должен явиться программный продукт контроллера, обеспечивающий данными вычислитель о скорости летательного аппарата. Система должна обеспечивать считывание с датчиков и обработку данных, используя следующий набор операций: считывание, обработка, формирование слов, выдача на ЦАП приборной скорости.
Входными данными служат:
- счтанные данные с маски приборной скорости;
- счтанные данные с маски максимальной скорости;
Выходными формами служат :
- слово 206 в соответствии с РТМ;
- слово 207 в соответствии с РТМ;
- слово 271 в соответствии с РТМ;
- данные с ЦАП приборной скорости.
Кроме того, система должна включать в себя следующие подсистемы:
- контроль программного обеспечения;
- контроль о выходе из строя маски приборной скорости;
- контроль о выходе из строя маски максимальной скорости;
- контроль о превышении скорости более чем на 2 км/ч, сигнализируя о перегрузки;
- частота обновления минимальная 31 мсек по каждому значению и максимальная 60 мсек по каждому значению.
Цена младшего разряда по 206 и 207 слову 0,11575
В качестве базового языка программирования использовать
язык С-51 совместно с Assembler 8051.
В настоящем разделе выпускной работы были проведены следующие работы: