Микроконтроллеры фирмы Intel

Программирование

Микроконтроллеров MCS-51

Допущено Министерством образования Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки бакалавров и магистров «Проектирование и технология электронных средств»

Ульяновск 2000

УДК 681.32(075)

ББК 32.973.2я7

А65

Рецензенты: кафедра вычислительной техники и защиты информации Уфимского государственного авиационного технического университета (зав. кафедрой д-р техн. наук, профессор В.И.Васильев); кафедра радиотехники Ульяновского государственного технического университета (зав. кафедрой канд. техн. наук, профессор Н.А.Трефилов); канд. техн. наук, с.н.с. Г.П.Токмаков

Андреев Д.В.

А65 Программирование микроконтроллеров MCS-51: Учебное пособие. - Ульяновск: УлГТУ, 2000. - 88 с.

ISBN 5-89146-133-1

Приведены технические характеристики и функциональные возможности популярных микроконтроллеров семейства MCS-51, выпускаемых ведущими компаниями мира. Рассмотрены особенности программной модели микроконтроллера 8051, являющегося ядром MCS-51, и соответствующего машинно-ориентированного языка АСМ51. Описаны содержание основных этапов разработки прикладного программного обеспечения микроконтроллера 8051, а также технология применения специальных программных кросс-средств (кросс-ассемблера X8051 и кросс-редактора связей Link). Даны варианты типовых микроконтроллерных программ. Изложение сопровождается большим числом практических примеров.

УДК 681.32(075)

ББК 32.973.2я7

Учебное издание

АНДРЕЕВ Дмитрий Васильевич

ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ MCS-51

Учебное пособие

Редактор Н.А.Евдокимова

Изд. лиц. 020640 от 22.10.97. Подписано в печать 22.02.00. Формат 60х84/16.

Бумага писчая. Усл. печ. л. 5,12. Уч.-изд. л. 5,00. Тираж 200 экз. Заказ

Ульяновский государственный технический университет,

432027, Ульяновск, Сев. Венец, 32.

Типография УлГТУ, 432027, Ульяновск, Сев. Венец, 32.

ISBN 5-89146-133-1 © Д.В.Андреев, 2000

© Оформление. УлГТУ, 2000



ПРЕДИСЛОВИЕ

Эффективная автоматизация машин, приборов и технологического оборудования, которая является обязательным условием ускорения научно-технического прогресса, основана на широком применении средств микропроцессорной техники (МТ). Автоматизация с использованием микропроцессоров (МП) и микроконтроллеров (МК) быстро распространяется в самых разнообразных отраслях народного хозяйства, охватывает новые сферы.

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

Как известно, МТ состоит из двух специфических частей: аппаратурных средств (АС) и прикладного программного обеспечения (ППО). При этом, рассматривая общий процесс проектирования МТ, можно отметить, что в большинстве случаев доля общей трудоемкости разработки ППО значительно превосходит трудоемкость разработки АС. Указанное обстоятельство объясняется тем, что разработка аппаратурной части МТ на базе типовых микропроцессорных БИС сводится (чаще всего) к выполнению стандартных операций в соответствии с рекомендациями, изложенными в технической документации на используемые БИС. Совсем по-другому выглядит инженерный труд при разработке ППО. Проектная работа носит здесь творческий характер, изобилует решениями, имеющими "волевую" или "вкусовую" окраску, и решениями, продиктованными конъюнктурными соображениями. В силу перечисленных обстоятельств именно при проектировании ППО разработчик сталкивается с наибольшим количеством проблем и от того, как они будут решены, зависит успех разработки МТ в целом. Таким образом, весьма актуальным представляется ориентация будущих инженеров на более глубокое изучение вопросов, связанных именно с программированием МТ, в частности языков программирования, средств автоматизации программирования (ассемблеров, компиляторов с языков высокого уровня, линкеров и др.), структурных особенностей микропроцессорной элементной базы.

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

Указанным требованиям в полной мере соответствует предлагаемое учебное пособие, основное внимание в котором уделено одним из наиболее популярных и перспективных микропроцессорных БИС - однокристальным микроконтроллерам семейства MCS-51.

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



Глава 1.   СОСТАВ СЕМЕЙСТВА MCS-51

Несмотря на появление 16- и 32-разрядных микроконтроллеров и микропроцессоров, наибольшая доля мирового микропроцессорного рынка остается за 8-разрядными МК. Согласно данным компании Semico Research Corp., в 1996 году общий мировой объем продаж микроконтроллеров всех типов составил 11,4 миллиарда долларов, при этом 5,56 миллиарда долларов (или 48,8%) пришлось на долю 8-разрядных кристаллов, что примерно в 2,5 раза больше объема продаж ближайшего конкурента - 16-разрядных микроконтроллеров (2,1 млрд. долл.). Прогнозы аналитических компаний на период до 2001 года показывают, что лидирующее положение 8-разрядных МК на мировом рынке сохранится.

Среди всех 8-разрядных микроконтроллеров семейство MCS-51 является несомненным чемпионом по количеству компаний, выпускающих его модификации. Важную роль в достижении такой высокой популярности сыграла открытая политика фирмы Intel, родоначальницы этого семейства, направленная на широкое распространение лицензий на ядро MCS-51 среди большого количества ведущих полупроводниковых компаний мира.

В результате на сегодняшний день существует более 200 модификаций микроконтроллеров семейства MCS-51, выпускаемых почти 20-ю компаниями. Эти модификации включают в себя кристаллы с широчайшим набором периферии: от простых 20-выводных МК с одним таймером и резидентной памятью программ (РПП) объемом 1 Кбайт до сложнейших 100-выводных кристаллов с 10-разрядными АЦП, массивами таймеров/счетчиков, аппаратными 16-разрядными умножителями и резидентной памятью программ до 64 Кбайт. Каждый год появляются все новые варианты представителей семейства MCS-51, основными направлениями развития которого являются: увеличение быстродействия (за счет повышения тактовой частоты и (или) переработки архитектуры), снижение напряжения питания и потребления, увеличение объема РПП и резидентной памяти данных (РПД), реализация РПП на основе FLASH технологии с возможностью внутрисхемного программирования, введение в состав периферии микроконтроллера сложных устройств: системы управления приводами, CAN и USB интерфейсов и т.п.

Основными производителями модификаций 51-го семейства в мире являются фирмы Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Winbond, Silicon Systems и ряд других. В рамках данной главы невозможно рассказать о всех представителях семейства MCS-51 и всех компаниях-производителях микроконтроллеров указанного семейства. Все фирмы, о которых далее пойдет речь, имеют в России своих официальных дистрибьюторов, и, соответственно, микроконтроллеры этих фирм являются реальными кандидатами на применение в российских проектах.

Микроконтроллеры фирмы Intel

Фирма Intel является родоначальницей архитектуры семейства MCS-51, которое получило свое название от первого представителя этого семейства - микроконтроллера 8051, выпущенного в 1980 году на базе технологии n-МОП. Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер 8051 являлся для своего времени очень сложным изделием - в кристалле было использовано 128 тыс. транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре 8086. Указанный микроконтроллер остается ядром семейства MCS-51 и по сей день.

Основными элементами базовой архитектуры семейства (архитектуры микроконтроллера 8051) являются:

- 8-разрядное АЛУ;

- 4 банка регистров, по 8 в каждом;

- внутренняя (резидентная) память программ 4 Кбайт, имеющая тип ROM или EPROM (8751);

- внутренняя (резидентная) память данных 128 байт;

- 21 регистр специальных функций;

- булевый процессор;

- два 16-разрядных таймера/счетчика;

- контроллер последовательного порта (UART);

- контроллер обработки прерываний с двумя уровнями приоритетов;

- четыре 8-разрядных порта ввода/вывода, два из которых используются в качестве шины адреса/данных для доступа к внешней памяти программ и данных;

- встроенный тактовый генератор.

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

Следующим принципиальным шагом в развитии MCS-51 стал перевод технологии изготовления на КМОП (модификация 8xC51). Это позволило реализовать режимы Idl (холостой ход) и Power Down (пониженное потребление), обеспечивающие резкое снижение энергопотребления кристалла и открывшие дорогу к применению микроконтроллера в энергозависимых приложениях, например, в автономных приборах с батарейным питанием.

И последним важным этапом развития МК 8051 фирмой Intel стал выпуск микроконтроллеров 8xC51FA/FB/FC и 8xC51RA/RB/RC, которые для краткости часто обозначаются как 8xC51Fx и 8xC51Rx. Главной отличительной особенностью этой группы кристаллов является наличие у них специализированного таймера/счетчика (РСА). Кроме того, микроконтроллеры 8xC51Rx дополнительно содержат сторожевой таймер (WDT). Рассмотрим архитектуру и функциональные возможности PCA более подробно.

В состав РСА входят:

- 16-разрядный таймер/счетчик;

- пять 16-разрядных модуля выборки и сравнения, каждый из которых связан со своей линией порта ввода/вывода микроконтроллера.

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

- 16-битовая выборка значения таймера по положительному фронту внешнего сигнала;

- 16-битовая выборка значения таймера по отрицательному фронту внешнего сигнала;

- 16-битовая выборка значения таймера по любому фронту внешнего сигнала;

- 16-битовый программируемый таймер;

- 16-битовое устройство скоростного вывода;

- 8-битовый ШИМ.

Выполнение всех перечисленных функций происходит в РСА на аппаратном уровне и не загружает центральный процессор. Указанное позволяет повысить общую пропускную способность, повысить точность измерений и обработки сигналов и снизить время реакции микроконтроллера на внешние события, что особенно важно для систем реального времени. Реализованный в 8xC51Fx (8xC51Rx) РСА оказался настолько

Обозначение Макс. частота (МГц) РПП ROM/EPROM (байт) РПД (байт) Таймеры/ счетчики  
8051AH   ROM 4K      
8751BH   EPROM 4K      
8052AH   ROM 8K      
8752BH   EPROM 8K      
8xC51BH   4K      
8xC52   8K      
8xC54   16K      
8xC58   32K      
8xC5x-L       8…32K      
8xC51FA   8K   3+PCA  
8xC51FB     16K   3+PCA  
8xC51FC     32K   3+PCA  
8xL51Fx     8…32K   3+PCA  
8xC51RA     8K   3+PCA+WDT  
8xC51RB     16K   3+PCA+WDT  
8xC51RC     32К   3+PCA+WDT  
8xC251SA   8K 1K 3+PCA+WDT  
8xC251SB   16K 1K 3+PCA+WDT  
8xC251SP   8K   3+PCA+WDT  
8xC251SQ   16K   3+PCA+WDT  
TSC8xC251A1   24K 1K 2+WDT  
8xC151SA   8K   3+PCA+WDT  
8xC151SB   16K   3+PCA+WDT  

удачным, что архитектура этих микроконтроллеров стала промышленным стандартом, а сам РСА многократно воспроизводился в различных модификациях МК 8051.

Некоторые характеристики ряда микроконтроллеров MCS-51, выпускаемых фирмой Intel, приведены в табл.1.1.

Изначально наиболее "узкими" местами архитектуры MCS-51 были 8-разрядное АЛУ на базе аккумулятора и относительно медленное выполнение команд (для выполнения самых быстрых команд требуется 12 пе-

Таблица 1.1

  Линии ввода/вывода Послед. каналы АЦП, входы x разряды Другая периферия, особенности U пит. (В)
    UART - - 4,5…5,5
    UART - - 4,5…5,5
    UART - - 4,5…5,5
    UART - - 4,5…5,5
    UART - - 4,0…6,0
    UART - - 4,0…6,0
    UART - - 4,0…6,0
    UART - - 4,0…6,0
    UART - Низковольтный вариант 8xC52/54/58 2,7…3,6
    UART - - 4,0…6,0
    UART - 4 уровня IRQ, clock out 4,0…6,0
    UART - 4 уровня IRQ, clock out 4,0…6,0
    UART - Низковольтный вариант 8xC51Fx 2,7…3,6
    UART - 4 уровня IRQ, clock out 4,0…6,0
    UART - 4 уровня IRQ, clock out 4,0…6,0
    UART - 4 уровня IRQ, clock out 4,0…6,0
    UART - - 4,5…5,5
    UART - - 4,5…5,5
    UART - - 4,5…5,5
    UART - - 4,5…5,5
    UART 4x8 - 4,5…5,5
    UART - - 4,5…5,5
    UART - - 4,5…5,5

риодов тактовой частоты (частоты синхронизации МК)). Это ограничивало применение микроконтроллеров семейства в приложениях, требующих повышенного быстродействия и сложных вычислений (16- и 32-битовых). Насущным стал вопрос принципиальной модернизации архитектуры MCS-51. Проблема модернизации осложнялась тем, что к началу 90-х годов уже была создана масса наработок в области программного и аппаратного обеспечения семейства MCS-51, в связи с чем одной из основных задач проектирования новой архитектуры была реализация аппаратной и программной совместимости с разработками на базе MCS-51.

Для решения указанной задачи была создана совместная группа из специалистов компаний Intel и Philips, но позднее пути этих двух фирм разошлись. В результате в 1995 году появилось два существенно отличающихся семейства: MCS-251/151 у Intel и MCS-51XA у Philips (см. подраздел 1.2).

Основные характеристики архитектуры MCS-251:

- 24-разрядное линейное адресное пространство, обеспечивающее адресацию до 16 Мбайт памяти;

- регистровая архитектура, допускающая обращение к регистрам как к байтам, словам и двойным словам;

- страничный режим адресации для ускорения выборки команд из внешней программной памяти;

- очередь инструкций;

- расширенный набор команд, включающий 16-битовые арифметические и логические операции;

- расширенное адресное пространство стека (до 64 Кбайт);

- выполнение самой быстрой команды за 2 такта.

Система команд MCS-251 включает два набора инструкций - первый набор является копией системы команд MCS-51, а второй состоит из расширенных инструкций, реализующих преимущества архитектуры MCS-251. Перед использованием микроконтроллера его необходимо сконфигурировать, т.е. с помощью программатора "прожечь" конфигурационные биты, определяющие, какой из наборов инструкций станет активным после включения питания. Если установить первый набор инструкций, то в этом случае МК семейства MCS-251 будет совместим с MCS-51 на уровне двоичного кода. Такой режим называется Binary Mode. Если же изначально установить набор расширенных инструкций (режим Source Mode), то тогда программы, написанные для MCS-51, потребуют перекомпиляции на кросс-средствах для MCS-251. Режим Source Mode позволяет с максимальной эффективностью использовать архитектуру MCS-251 и достигнуть наибольшего быстродействия.

Для пользователей, ориентированных на применение микроконтроллеров MCS-251 в качестве механической замены MCS-51, фирма Intel выпускает микроконтроллеры MCS-151, уже запрограммированные в состояние Binary Mode.

Некоторые характеристики ряда микроконтроллеров MCS-251/151 приведены в табл.1.1.

В настоящее время Intel, устремленная на рынок Pentium-процессоров, сворачивает производство кристаллов MCS-51. В целом для конкретного разработчика это может остаться и незамеченным, если только он не использует микроконтроллеры 8xC51GB и 80C152Jx, которые не имеют своих точных аналогов среди изделий других фирм. Что же касается всех остальных микроконтроллеров семейства MCS-51, то все они многократно растиражированы другими компаниями.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: