- •Программирование микроконтроллеров mcs-51
- •Учебное издание
- •Предисловие
- •1.1. Микроконтроллеры фирмы Intel
- •1.2. Микроконтроллеры фирмы Philips
- •1.3. Микроконтроллеры фирм Siemens, Atmel
- •2.1. Программная модель микроконтроллера 8051
- •2.2. Ассемблерный язык микроконтроллера 8051
- •2.2.1. Система команд языка асм51
- •2.2.2. Директивы языка асм51
- •Include операнды
- •3.1. Этапы проектирования ппо
- •3.2. Кросс-ассемблер x8051
- •3.3. Кросс-редактор связей Link
- •3.4. Примеры микроконтроллерных программ
- •Оглавление
- •Глава 1. Состав семейства mcs-51. . . . . . . 5
- •Глава 2. Особенности программирования
- •Глава 3. Технология разработки прикладного
1.1. Микроконтроллеры фирмы 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 |
12 |
ROM 4K |
128 |
2 |
|
8751BH |
12 |
EPROM 4K |
128 |
2 |
|
8052AH |
12 |
ROM 8K |
256 |
3 |
|
8752BH |
12 |
EPROM 8K |
256 |
3 |
|
8xC51BH |
24 |
4K |
128 |
2 |
|
8xC52 |
24 |
8K |
256 |
3 |
|
8xC54 |
33 |
16K |
256 |
3 |
|
8xC58 |
33 |
32K |
256 |
3 |
|
8xC5x-L
|
24 |
8…32K |
256 |
3 |
|
8xC51FA |
24 |
8K |
256 |
3+PCA |
|
8xC51FB
|
24 |
16K |
256 |
3+PCA |
|
8xC51FC
|
24 |
32K |
256 |
3+PCA |
|
8xL51Fx
|
16 |
8…32K |
256 |
3+PCA |
|
8xC51RA
|
24 |
8K |
512 |
3+PCA+WDT |
|
8xC51RB
|
24 |
16K |
512 |
3+PCA+WDT |
|
8xC51RC
|
24 |
32К |
512 |
3+PCA+WDT |
|
8xC251SA |
16 |
8K |
1K |
3+PCA+WDT |
|
8xC251SB |
16 |
16K |
1K |
3+PCA+WDT |
|
8xC251SP |
16 |
8K |
512 |
3+PCA+WDT |
|
8xC251SQ |
16 |
16K |
512 |
3+PCA+WDT |
|
TSC8xC251A1 |
16 |
24K |
1K |
2+WDT |
|
8xC151SA |
16 |
8K |
256 |
3+PCA+WDT |
|
8xC151SB |
16 |
16K |
256 |
3+PCA+WDT |
|
удачным, что архитектура этих микроконтроллеров стала промышленным стандартом, а сам РСА многократно воспроизводился в различных модификациях МК 8051.
Некоторые характеристики ряда микроконтроллеров MCS-51, выпускаемых фирмой Intel, приведены в табл.1.1.
Изначально наиболее "узкими" местами архитектуры MCS-51 были 8-разрядное АЛУ на базе аккумулятора и относительно медленное выполнение команд (для выполнения самых быстрых команд требуется 12 пе-
Таблица 1.1
|
Линии ввода/вывода |
Послед. каналы |
АЦП, входы x разряды |
Другая периферия, особенности |
U пит. (В) |
|
32 |
UART |
- |
- |
4,5…5,5 |
|
32 |
UART |
- |
- |
4,5…5,5 |
|
32 |
UART |
- |
- |
4,5…5,5 |
|
32 |
UART |
- |
- |
4,5…5,5 |
|
32 |
UART |
- |
- |
4,0…6,0 |
|
32 |
UART |
- |
- |
4,0…6,0 |
|
32 |
UART |
- |
- |
4,0…6,0 |
|
32 |
UART |
- |
- |
4,0…6,0 |
|
32 |
UART |
- |
Низковольтный вариант 8xC52/54/58 |
2,7…3,6 |
|
32 |
UART |
- |
- |
4,0…6,0 |
|
32 |
UART |
- |
4 уровня IRQ, clock out |
4,0…6,0 |
|
32 |
UART |
- |
4 уровня IRQ, clock out |
4,0…6,0 |
|
32 |
UART |
- |
Низковольтный вариант 8xC51Fx |
2,7…3,6 |
|
32 |
UART |
- |
4 уровня IRQ, clock out |
4,0…6,0 |
|
32 |
UART |
- |
4 уровня IRQ, clock out |
4,0…6,0 |
|
32 |
UART |
- |
4 уровня IRQ, clock out |
4,0…6,0 |
|
32 |
UART |
- |
- |
4,5…5,5 |
|
32 |
UART |
- |
- |
4,5…5,5 |
|
32 |
UART |
- |
- |
4,5…5,5 |
|
32 |
UART |
- |
- |
4,5…5,5 |
|
32 |
UART |
4x8 |
- |
4,5…5,5 |
|
32 |
UART |
- |
- |
4,5…5,5 |
|
32 |
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, то все они многократно растиражированы другими компаниями.
