Введение
Одной из характерных особенностей нынешнего этапа научно-технического прогресса является все более широкое применение микроэлектроники в различных отраслях народного хозяйства. Роль микроэлектроники в развитии общественного производства определяется ее практически неограниченными возможностями в решении различных задач во всех областях народного хозяйства, глубоким влиянием на культуру и быт современного человека.
Особое внимание в настоящее время уделяется внедрению микропроцессоров, обеспечивающих решение задач автоматизации управления механизмами, приборами ' и аппаратурой. Адаптация микропроцессора к особенностям конкретной задачи осуществляется в основном путем разработки соответствующего программного обеспечения, заносимого затем в память программ. Аппаратная адаптация в большинстве случаев осуществляется путем подключения необходимых интегральных схем обрамления и организации ввода-вывода, соответствующих решаемой задаче.
В микропроцессорной технике выделился самостоятельный класс больших интегральных схем (БИС) - однокристальные микроЭВМ (ОМЭВМ), которые предназначены для “интеллектуализации” оборудования различного назначения. Архитектура однокристальных микроЭВМ - результат эволюции архитектуры микропроцессоров и микропроцессорных систем, обусловленной стремлением существенно снизить их аппаратные затраты и стоимость. Как правило, эти цели достигаются как путем повышения уровня интеграции БИС, так и за счет поиска компромисса между стоимостью, аппаратными затратами и техническими характеристиками ОМЭВМ.
ОМЭВМ представляют собой приборы, конструктивно выполненные в виде одной БИС и включающие в себя все устройства, необходимые для реализации цифровой системы управления минимальной конфигурации: процессор, запоминающее устройство данных, запоминающее устройство команд, внутренний генератор тактовых сигналов, а также программируемые интегральные схемы для связи с внешней средой. Использование ОМЭВМ в системах управления обеспечивает достижение исключительно высоких показателей эффективности при столь низкой стоимости (во многих применениях система может состоять только из одной БИС ОМЭВМ), что им, видимо, нет в ближайшем времени альтернативной элементной базы для построения управляющих и/или регулирующих систем, В настоящее время более двух третей мирового рынка микропроцессорных средств составляют именно БИС ОМЭВМ. В некоторых публикациях однокристальную микроЭВМ (ОМЭВМ) называют “микроконтроллер”. Обосновывается это тем обстоятельством, что такие микросхемы имеют незначительные емкости памяти, физическое и логическое разделение памяти программ (ПЗУ) и памяти данных (ОЗУ), упрощенную и ориентированную на задачи управления систему команд, примитивные методы адресации команд и данных. Специфическая организация ввода-вывода информации предопределяет область их применения в качестве специализированных вычислителей, включенных в контур управления объектом или процессом. Структурная организация, набор команд и аппаратно-программные средства ввода-вывода информации этих микросхем лучше всего приспособлены для решения задач управления и регулирования в приборах, устройствах и системах автоматики, а не для решения задач обработки данных. Указанные выше соображения отражают технический уровень ОМЭВМ в настоящий момент.
Анализ и классификация аппаратных и программных средств контроллеров
Классификация контроллеров
Ускорение научно-технического прогресса и совершенствование хозяйственного механизма тесно связаны с развитием новейшей информационной технологии. Тенденция к большей децентрализации функций управления объективно требует совершенствования непосредственно рабочих мест пользователей, вовлеченных в процесс управления, прежде всего за счет их автоматизации. Очевидно, что без конкретных потребностей (например, в повышении производительности интеллектуального уровня личного труда, выполнение работы быстрее и экономичнее) едва ли возникла бы необходимость в контроллерах. Внедрение контроллеров позволяет реализовать качественно новую информационную технологию, при которой потребитель информации получает и анализирует интересующие его данные непосредственно в процессе общения с ПЭВМ, что обеспечивает комплексную автоматизацию конкретных задач управления. Работа контроллера помогает лучшему осознанию проблемной ситуации, позволяет частично или полностью решить проблему, подталкивает к оперативному построению модели объекта управления и, тем самым, к грамотному и быстрому принятию решений.
Попытаемся классифицировать контроллеры вообще.
Будем определять контроллеры как совокупность методических,
схемотехнических и программных средств, обеспечивающих работу пользователей в некоторой предметной области. Все три компонента совершенно необходимы для функционирования контроллера. Методика проектирования контроллера не может не быть связанной с методикой его функционирования, так как функционирование развитого контроллера не предусматривает возможность его развития самими пользователями. Языковые средства микроконтроллеров являются реализацией методических средств с точки зрения конечного пользователя, и дают возможность конечному пользователю производить все необходимые действия.
В состав методических средств должны входить и средства
обучения, диапазон которых может быть очень широк: от бумажных инструкций до самообучающихся систем. Их назначение заключается в том, чтобы пользователь научился эффективно работать в условиях автоматизации полного и частного процесса. Если процесс достаточно сложный, а пользователь не имеет специализированные навыков, возможно применение контроллеров, которые позволяют постепенно ввести пользователя в предметную область его автоматизированного процесса. Чем более сложнее проектируется контроллер, тем менее функции могут быть реализованы пользователем.
Следующий аспект методического обеспечения - это реализация заданных функций контроллера, т.е. собственно его функционирования. Здесь необходимы методики определения цели текущей деятельности, информационной потребности, всевозможных сценариев для описания процессов ее реализации. Эти методические средства могут явным или неявным образом учитываться пользователем. В первом случае пользователь в значительной степени сам планирует свою деятельность.
Языковые средства контроллера необходимы, прежде всего, для однозначного смыслового соответствия действий пользователя и реакции ПЭВМ. Без них невозможен процесс обучения, организация диалога, обнаружение и исправление ошибок. Сложность разработки таких языков заключается в том, что они должны быть преимущественно непроцедурными. Если процедурный язык указывает, как выполняется задаваемое, то непроцедурный - что необходимо выполнить без детализации того, какие действия для этого требуются. Так как конечные пользователи не знают в деталях процесс реализации информационной потребности, чем выше интеллектуальность контроллера, тем больше непроцедурных возможностей должно быть предусмотрено в его языках.
Языки программирования контроллера должны быть пользователь ориентированными, в том числе и профессионально-ориентированными. Это связано с различиями в классификации пользователей. Следует учесть, что использование естественного языка, не может дать сколько-нибудь ощутимых преимуществ из-за необходимости введения через клавиатуру громоздких конструкций ради получения иногда несложных результатов. Кроме того, затраты на построение лексического анализатора для такого контроллера могут сравняться с общими затратами на все остальные составляющие.
Как и во всяком языке, основу языков контроллеров должны составлять заранее определяемые термины, а также описания способов, с помощью которых могут устанавливаться новые термины, заменяя или дополняя существующие. Указанное обстоятельство приводит к необходимости при проектировании контроллера определенным образом классифицировать терминологическую основу контроллеров, т.е. определить все основные синтаксические конструкции языка и семантические отношения между терминами и их совокупностями. В связи с этим может возникнуть необходимость в простейшей классификации контроллеров, например, по возможностям представления данных в некоторых пользовательских режимах обработки: числовые, текстовые и смешанные. Возможности языка во многом определяют и список правил, по которым пользователь может строить формальные конструкции, соответствующие реализации информационной потребности.
Резко возросшая потребность в малоразмерной авиационной техники послужила толчком для развития авиационного оборудования в направлении уменьшения его габаритно-массовых характеристик .
Современные нормы летной годности, как отечественные НЛГС-3, так и зарубежные FAR-23, предъявляют высокие требования к безопасности полетов, что напрямую связано с надежностью применяемого оборудования, резервированием основных каналов информации и предоставлением пилоту ограничительных сигналов при возможно минимальном весе оборудования. Поэтому тема дипломной работы, направленной на создание указателя скорости с цифровым выходом УСВИЦ-250, является весьма актуальной.
На основании обзора методов измерения воздушных скоростей и обзора последних разработок указателей скорости разработана конструкция указателя, в которой использованы оригинальные технические решения, примененные в указателях УСВИ-200 –Э (подвижный индекс Vм.д.), УСБС-200-Э (выдача разовой команды Vпр=Vм.д.) и УСЦ-2 (наличие цифрового выхода Vпр.ц.).
Анализ инструментальных средств
Возвращаясь к языково-программным классификационным характеристикам, нельзя не упомянуть о средствах разработки контроллера, т.е. о языках программирования.
Все языки программирования условно можно разделить на три уровня:
- машинный код;
- автокод (язык ассемблера);
- языки высокого уровня (процедурные языки - 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.
Выводы
В настоящем разделе выпускной работы были проведены следующие работы:
- анализ автоматизированных контроллеров, и микропроцессоров, на основе чего произведена их классификация;
- рассмотрена и проанализирована проблема выбора инструментальных средств для разработки контроллера, на основании чего выбраны языки С-51 и Assembler;
- на основании анализа требуемого к контроллера было сформулирована задача и требования к комплексу программ деятельности контроллера.
Обобщенная структура и алгоритм функционирования контроллера
Данные в системе представляют собой информацию в виде переменных, которым жестко заданы адреса переменных для обмена между программами обслуживания контроллера.
Выбор инструментальных средств и элементной базы.
При выборе элементной базы прибора контроля учитывались следующие обстоятельства:
- построить разрабатываемую технику на современном уровне (по функциям, стоимости, энергопотреблению и габаритам) исключительно на отечественных элементах не представляется возможным;
- так как мощность, потребляемая МК, в значительной мере определяет возможности разработки экономичной аппаратуры, применения кабелей питания небольшого сечения и должна быть выбрана микро мощная элементная база. Часть схемы контроллера может быть выполнена на элементной базе с небольшим быстродействием, однако для другой части схемы должны быть применены микро мощные элементы с высоким быстродействием. Одним из, таким элементом является микроконтроллер Intel 87C51FB.
Применяемый в разработке микроконтроллер Intel 87C51FB обладает следующими основными характеристиками, которые необходимо знать для выполнения поставленной в дипломном проекте задаче.
Intel87C51FB относится к семейству n-МОП технологии и выпускается в корпусе БИС, имеющем 40 внешних выводов. Цоколевка корпуса и наименования выводов показаны на рис 3.1. Для работы Intel87C51FB требуется один источник электропитания +5 В. Через четыре программируемых порта ввода/вывода Intel87C51FB взаимодействует со средой в стандарте ТТЛ-схем с тремя состояниями выхода. Корпус Intel87C51FB имеет два вывода для подключения кварцевого резонатора, четыре вывода для сигналов, управляющих режимом работы МК, и восемь линий порта 3, которые могут быть запрограммированы пользователем на выполнение специализированных (альтернативных) функций обмена информацией со средой.
Рис 3.1.
Разработки на базе контроллеров Intel87C51FB поддерживается ассемблером, программным симулятором, внутрисхемным эмулятором фирмы Phyton и программатором.
Серия Intel87C51FB подходит для широкого спектра приложений от схем высокоскоростного управления автомобильными и электрическими двигателями до экономичных удаленных приемопередатчиков, показывающих приборов и связных процессоров. Наличие ПЗУ позволяет подстраивать параметры в прикладных программах (коды передатчика, скорости двигателя, частоты приемника и т.д.).
Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает эту серию микроконтроллеров пригодной для портативных приложений. Низкая цена, экономичность, быстродействие, простота использования и гибкость ввода/вывода делает Intel87C51FB привлекательным даже в тех областях, где ранее не применялись микроконтроллеры. Например, таймеры, замена жесткой логики в больших системах, сопроцессоры.
Приведем краткий обзор характеристик МК:
- 111 базовых команд;
- Большинство команд (94) имеют формат один или два байта и выполняются за один или два машинных цикла;
- рабочая частота 12 МГц
- -байтное АЛУ и схемы аппаратурной реализации команд умножения и деления;
- 14 - битовые команды;
- двунаправленная 8-битная шина;
- стираемое программируемое ПЗУ программ емкостью 64 Кбайт;
- ОЗУ данных емкостью 128 байта;
- два 16-битных таймера/счетчика;
- программируемые схемы ввода/вывода (32 линий);
- блок двухуровневого векторного прерывания от пяти источников;
- асинхронный канал дуплексного последовательного ввода/вывода информации со скоростью до 375 Кбит/с;
- генератор, схему синхронизации и управления;
- 8 х 4 регистров общего использования;
- 128 программно-управляемых флагов;
- прямая, косвенная и относительная адресация данных и команд;
- четыре источника прерывания:
Структурная схема микропроцессора
Рассмотрим структурную схему микроконтроллера Intel87C51FB рисунок 3.2.
Рис 3.2.
Основу структурной схемы образует внутренняя двунаправленная 8-битная шина, которая связывает между собой все основные узлы и устройства: резидентную память, АЛУ, блок регистров специальных функций, устройство управления и порты ввода/вывода. Рассмотрим основные элементы структуры и особенности организации вычислительного процесса.
Арифметическо-логическое устройство
8-битное АЛУ может выполнять арифметические операции сложения, вычитания, умножения и деления; логические операции И, ИЛИ, исключающее ИЛИ, а также операции циклического сдвига, сброса, инвертирования и т.п. В АЛУ имеются программно недоступные регистры T1 и T2, предназначенные для временного хранения операндов, схема десятичной коррекции и схема формирования признаков.
Простейшая операция сложения используется в АЛУ для инкрементирования содержимого регистров, продвижения регистра-указателя данных и автоматического вычисления следующего адреса РПП. Простейшая операция вычитания используется в АЛУ для декрементирования регистров и сравнения переменных.
Простейшие операции автоматически образуют "тандемы" для выполнения в АЛУ таких операций, как, например, инкрементирование 16-битных регистровых пар. В АЛУ реализуется механизм каскадного выполнения простейших операций для реализации сложных команд. Так, например, при выполнении одной из команд условной передачи правления по результату сравнения в АЛУ трижды инкрементируется СК, дважды производится чтение из РПД, выполняется арифметическое сравнение двух переменных, формируется 16-битный адрес перехода и принимается решение о том, делать или не делать переход по программе. Все перечисленные операции выполняются в АЛУ всего лишь за 2 мкс.
Важной особенностью АЛУ является его способность оперировать не только байтами, но и битами. Отдельные программно-доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях. Эта способность АЛУ, оперировать битами, столь важна, что во многих описаниях Intel87C51FB говорится о наличии в нем "булевского процессора". Для управления объектами часто применяются алгоритмы, содержащие операции над входными и выходными булевскими переменными (истина/ложь), реализация которых средствами обычных микропроцессоров сопряжена с определенными трудностями.
Таким образом, АЛУ может оперировать четырьмя типами информационных объектов: булевскими (1 бит), цифровыми (4 бита), байтными (8 бит) и адресными (16 бит). В АЛУ выполняется 51 различная операция пересылки или преобразования этих данных. Так как используется 11 режимов адресации (7 для данных и 4 для адресов), то путем комбинирования "операция/ режим адресации" базовое число команд 111 расширяется до 255 из 256 возможных при однобайтном коде операции.
Резидентная память
Память программ и память данных, размещенные на кристалле физически и логически разделены, имеют различные механизмы адресации, работают под управлением различных сигналов и выполняют разные функции.
Память программ (ПЗУ или СППЗУ) имеет емкость 64 Кбайта и предназначена для хранения команд, констант, управляющих слов инициализации, таблиц перекодировки входных и выходных сменных и т.п. РПП имеет 16-битную шину адреса, через которую обеспечивается доступ из счетчика команд или из регистра-указателя данных. Последний выполняет функции базового регистра при косвенных переходах по программе или используется в командах, оперирующих с таблицами.
Память данных (ОЗУ) предназначена для хранения переменных в процессе выполнения прикладной программы, адресуется одним байтом и имеет емкость 128 байт. Кроме того, к адресному пространству РПД примыкают адреса регистров специальных функций (РСФ), которые перечислены в табл. 3.1.
Память программ, так же как и память данных, может быть расширена путем подключения внешних БИС.
Аккумулятор и ССП. Аккумулятор является источником операнда и местом фиксации результата при выполнении арифметических, логических операций и ряда операций передачи данных. Кроме того, только с использованием аккумулятора могут быть выполнены операции сдвигов, проверка на нуль, формирование флага паритета и т.п.
Таблица 3.1.
Символ
Наименование
Адрес
* ACC
Аккумулятор
0E0H
* B
Регистр-расширитель аккумулятора
0F0H
* PSW
Слово состояния программы
0D0H
SP
Регистр-указатель стека
81H
DPTR
Регистр-указатель данных (DPH)
(DPL)
83H
82H
* P0
Порт 0
80H
* P1
Порт 1
90H
* P2
Порт 2
0A0H
* P3
Порт 3
0B0H
* IP
Регистр приоритетов
0B8H
* IE
Регистр маски прерываний
0A8H
TMOD
Регистр режима таймера/счетчика
89H
* TCON
Регистр управления/статус таймера
88H
TH0
Таймер 0 (старший байт)
8CH
TL0
Таймер 0 (младший байт)
8AH
TH1
Таймер 1 (старший байт)
8DH
TL1
Таймер 1 (младший байт)
8BH
* SCON
Регистр управления приемопередатчиком
98H
SBUF
Буфер приемопередатчика
99H
PCON
Регистр управления мощностью
87H
Примечание. Регистры, имена которых отмечены знаком (*), допускают адресацию отдельных бит.
При выполнении многих команд в АЛУ формируется ряд признаков операции (флагов), которые фиксируются в регистре ССП. В табл. 3.2. приводится перечень флагов ССП, даются их символические имена и описываются условия их формирования.
Таблица 3.2.
Символ
Позиция
Имя и назначение
C
PSW.7
Флаг переноса. Устанавливается и сбрасывается аппаратурными средствами или программой при
выполнении арифметических и логических операций
AC
PSW.6
Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратурными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заем в бите 3
F0
PSW.5
Флаг 0. Может быть установлен, сброшен или проверен программой как флаг, специфицируемый пользователем
RS1
RS0
PSW.4
PSW.3
Выбор банка регистров. Устанавливается и сбрасывается программой для выбора рабочего банка регистров (см. примечание)
OV
PSW.2
Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций
_
PSW.1
Не используется
P
PSW.0
Флаг паритета. Устанавливается и сбрасывается аппаратуры в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе, т.е. выполняет контроль по четности
Примечание.
RS1
RS0
Банк
Границы адресов
0
0
0
00H-07H
0
1
1
08H-0FH
1
0
2
10H-17H
1
1
3
18H-1FH
Наиболее "активным" флагом ССП является флаг переноса, которые принимает участие и модифицируется в процессе выполнения множеств операций, включая сложение, вычитание и сдвиги. Кроме того, флаг переноса (C) выполняет функции "булевого аккумулятора" в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует арифметическое переполнение при операциях над целыми числами со знаком и делает возможным использование арифметики в дополнительных кодах. АЛУ не управляет флагами селекции банка регистров (RS0, RS1), и их значение полностью определяется прикладной программой и используется для выбора одного из четырех регистровых банков.
Широкое распространение получило представление о том, что в микропроцессорах, архитектура которых опирается на аккумулятор, большинство команд работают с ним, используя адресацию "по умолчанию" (неявную). В Intel87C51FB дело обстоит иначе. Хотя процессор имеет в своей основе аккумулятор, однако, он может выполнять множество команд и без участия аккумулятора. Например, данные могут быть переданы из любой ячейки РПД в любой регистр, любой регистр может быть загружен непосредственным операндом и т.д. Многие логические операции могут быть выполнены без участия аккумулятора. Кроме того, переменные могут быть инкрементированы, декрементированы и проверены (test) без использования аккумулятора. Флаги и управляющие биты могут быть проверены и изменены аналогично.
Регистры-указатели.
8-битный указатель стека (РУС) может адресовать любую область РПД. Его содержимое инкрементируется прежде, чем данные будут запомнены в стеке в ходе выполнения команд PUSH и CALL. Содержимое РУС декрементируется после выполнения команд POP и RET. Подобный способ адресации элементов стека называют прединкрементным/постдекрементным. В процессе инициализации Intel87C51FB после сигнала СБР в РУС автоматически загружается код 07H. Это значит, что если прикладная программа не переопределяет стек, то первый элемент данных в стеке будет располагаться в ячейке РПД с адресом 08Н.
Двухбайтный регистр-указатель данных (РУД) обычно используется для фиксации 16-битного адреса в операциях с обращением к внешней памяти. Командами МК51 регистр-указатель данных может быть использован или как 16-битный регистр, или как два независимых 8-битных регистра (DPH и DPL).
Таймер/счетчик.
В составе средств Intel87C51FB имеются регистровые пары с символическими именами ТНО, TLO и THI, TLI, на основе которых функционируют два независимых программно-управляемых 16-битных таймера/счетчика событий.
Буфер последовательного порта. Регистр с символическим именем SBUF представляет собой два независимых регистра - буфер приемника и буфер передатчика. Загрузка байта в SBUF немедленно вызывает начало процесса передачи через последовательный порт. Когда байт считывается из SBUF, это значит, что его источником является приемник последовательного порта.
Регистры специальных функций. Регистры с символическими именами IP, IE, TMOD, TCON, SCON и PCON используются для фиксации и программного изменения управляющих бит и бит состояния схемы прерывания, таймера/счетчика, приемопередатчика последовательного порта и для управления мощностью электропитания Intel87C51FB.
Все четыре порта предназначены для ввода или вывода информации побайтно. Каждый порт содержит управляемые регистр-защелку, входной буфер и выходной драйвер. Все выводы порта 3 могут быть использованы для реализации альтернативных функций, перечисленных в табл. 3.3.. Альтернативные функции могут быть задействованы путем записи 1 в соответствующие биты регистра-защелки (Р3.0-Р3.7) порта 3.
Таблица 3.3.
Символ
Позиция
Имя и назначение
¬RD
P3.7
Чтение. Активный сигнал низкого уровня формируется аппаратурно при обращении к ВПД
¬WR
P3.6
Запись. Активный сигнал низкого уровня формируется аппаратурно при обращении к ВПД
T1
P3.5
Вход таймера/счетчика 1 или тест-вход
T0
P3.4
Вход таймера/счетчика 0 или тест-вход
¬INT1
P3.3
Вход запроса прерывания 1. Воспринимается сигнал низкого уровня или срез
¬INT0
P3.2
Вход запроса прерывания 0. Воспринимается сигнал низкого уровня или срез
TXD
P3.1
Выход передатчика последовательного порта в режиме УАПП. Выход синхронизации в режиме сдвигающего регистра
RXD
P3.0
Вход приемника последовательного порта в режиме УАПП. Ввод/вывод данных в режиме сдвигающего регистра
Порт 0 является двунаправленным, а порты 1, 2 и З - квазидвунаправленными. Каждая линия портов может быть использована независимо для ввода или вывода информации. Для того чтобы некоторая линия порта использовалась для ввода, в D-триггер регистра-защелки порта должна быть записана 1, которая закрывает МОП-транзистор выходной цепи.
По сигналу СБР в регистры-защелки всех портов автоматически записываются единицы, настраивающие их тем самым на режим ввода.
Все порты могут быть использованы для организации ввода/вывода информации по двунаправленным линиям передачи. Однако порты 0 и 2 не могут быть использованы для этой цели в случае, если МК-система имеет внешнюю память, связь с которой организуется через общую разделяемую шину адреса/данных, работающую в режиме временного мультиплексирования.
Запись в порт.
При выполнении команды, которая изменяет содержимое регистра-защелки порта, новое значение фиксируется в регистре в момент S6P2 последнего цикла команды. Однако опрос содержимого регистра-защелки выходной схемой осуществляется во время фазы Р1 и, следовательно, новое содержимое регистра-защелки появляется на выходных контактах порта тол