Контроллеры семейства МК51

Однокристальные
микроконтроллеры - отдельный класс микросистем. Полный набор их средств
расположен на одном кристалле. Сюда кроме центрального процессора входят память,
подсистема ввода-вывода, средства поддержки режима реального времени (РВ).
Интеграция всех составных частей микро-ЭВМ на одном кристалле внесла ряд
ограничений на принципы ее организации, потребовала новых решений в развитии ее
архитектуры, не свойственных многокристальным компоновкам. В результате был
получен новый класс микроконтроллеров (МК) с присущими только ему принципами
построения архитектуры и структурной схемы. Структурная организация, набор
команд и аппаратурно-программные средства ввода/вывода информации
микроконтроллеров лучше всего приспособлены для решения задач управления и
регулирования в приборах, устройствах и системах автоматики, а не для решения
задач обработки данных. Микроконтроллеры не являются машинами классического
"фон-неймановского" типа, так как физическая и логическая разделенность памяти
программ и памяти данных исключает возможность модификации и/или замены
(перегрузки) прикладных программ микроконтроллеров во время работы, что сильно
затрудняет их использование в качестве универсальных средств обработки
данных. МК51 имеет в своем составе: процессор, в состав которого входят 1-
байтное АЛУ и схема аппаратурной реализации команд умножения и деления;
стираемое ПЗУ программ емкостью 4 Кбайта, ОЗУ данных емкостью 128 байт; два 16-
битных таймера/счетчика; программируемые схемы ввода/вывода (32 линии); блок
двухуровневого векторного прерывания от пяти источников; асинхронный канал
дуплексного последовательного ввода/вывода информации со скоростью до 375
кбит/с; генератор, схему синхронизации и управления. Микроконтроллер выполнен на основе
высокоуровневой n-МОП технологии и выпускается в корпусе БИС, имеющем 40 внешних
выводов. Через четыре программируемых порта ввода/вывода МК51 взаимодействует со
средой в стандарте ТТЛ-схем с тремя состояниями по выходу. В современном
исполнении микроконтроллер может быть выполнен также в К-МОП
исполнении GND - потенциал земли; VCC
- основное напряжение питания +5В; PSEN - разрешение внешней памяти
программ; WR - стробирующий сигнал при записи во внешнюю память
данных или устройства ввода/вывода; Т1 -
входной сигнал, опрашиваемый по командам условного перехода, используется в
качестве входа внутреннего счетчика внешних событий; RST/VPD - сигнал общего сброса/вход питания при пониженном
энергопотреблении; P0, P1, P2, P3 -
квазидвунаправленные порты параллельного ввода-вывода (порт P3 несет
дополнительные функции) 8-битное АЛУ
может выполнять арифметические операции сложения, вычитания, умножения и
деления; логические операции и, или, исключающее или, а так же операции сдвига,
сброса, инвертирования и т.д. В АЛУ имеются программно недоступные регистры Т1 и
Т2, предназначенные для временного хранения операндов, схема десятичной
коррекции и схема формирования признаков. Важной особенностью АЛУ является его
способность оперировать не только байтами, но и битами. Отдельные программно
доступные биты могут быть установлены, сброшены, инвертированы, переданы,
проверены и использованы в логических операциях. Память программ и память данных, размещенные на кристалле МК51,
физически и логически разделены, имеют различные механизмы адресации, работают
под управлением различных сигналов и выполняют различные функции. Память
программ(РПП): имеет емкость 4 Кбайта и предназначена для хранения команд,
констант, управляющих слов инициализации, таблиц перекодировки входных и
выходных переменных и т.п. РПП имеет 16-битную шину адреса, через которую
обеспечивается доступ из счетчика команд или из регистра указателя данных.
Последний выполняет функции базового регистра при косвенных переходах по
программе или используется в командах, оперирующих с таблицами. Память данных
(РПД): предназначена для хранения переменных в процессе выполнения прикладной
программы, адресуется одним байтом и имеет емкость 128 байт. Кроме того, к
адресному пространству РПД примыкают адреса регистров специальных
функций. В МК51 предусмотрены четыре банка по
восемь рабочих регистров R0...R7; банк выбирается полем RS в слове состояния
программы. Они выполняют общецелевые функции по промежуточному хранению данных.
По аналогии с МК48 R0 и R1 каждого банка реализуют также функцию 8-разрядных
указателей данных. С помощью набора рабочих регистров существенно уменьшается
длительность переключения контекстов ЦП, что очень важно для микроконтроллеров
реального времени. В МС51 отсутствует ограничения, накладываемые на процедуры
обслуживания прерываний, свойственные МК48. Память программ (64 Кбайт) -
однородная линейная область, реализуемая как внутренними, так и внешними
средствами. Для совместимости с МК48 предусмотрен ряд команд, которые позволяют
рассматривать память в виде набора 2-Кбайтных банков. Подобно архитектуре МК48
все банки рабочих регистров, а также системный стек располагаются во внутренней
памяти данных.Определены два способа адресации памяти: прямой (direct) и
косвенный (@Ri, где i=0...1). С помощью прямой адресации доступна только младшая
адресного пространства внутренней памяти данных (128 байт), тогда как косвенная
обеспечивает доступ к любой ее ячейки из диапазона 256 байт. Введение прямой
адресации расширило возможности однокристальных микроконтроллеров по обработки
данных. В частности, появились средства доступа к рабочим регистрам и системному
стеку, интерпретируемым как обычные ячейки памяти. Микроконтроллер МК51
имеет развитую подсистему ввода-вывода и средства управления режимом реального
времени. Для их управления в микроконтроллере предусмотрен ряд регистров,
которые размещены в отдельно прямо адресуемом пространстве специальных регистров
(128 байт). Сюда же включены и некоторые регистры ЦП. Пространство специальных
регистров вместе с младшей частью адресного пространства внутренней памяти
данных образуют прямо адресуемую область. При этом сначала размещается младшая
половина пространства внутренней памяти данных, а затем пространство специальных
регистров. Символ Регистр-расширитель аккумулятора P1 Порт 2 0B0H Флаг переноса. Устанавливается и
аппаратурными средствами или программой при выполнении арифметических и
логических операций Флаг вспомогательного переноса.
Устанавливается и сбрасывается только аппаратурными средствами при выполнении
команд сложения и вычитания и сигнализирует о переносе или заеме в бите
3 Флаг 0. Может быть установлен, сброшен или проверен программой
как флаг специфицируемый пользователем Выбор банка регистров. Устанавливается и сбрасывается аппаратно
при выполнении арифметических операций Флаг
переполнения. Устанавливается и сбрасывается аппаратно при выполнении
арифметических операций Флаг
паритета. Устанавливается и сбрасывается аппаратно в каждом цикле команды и
фиксирует нечетное/четное число единичных бит в аккумуляторе, т.е. выполняет
контроль по четности (PSW.0) Центральный процессор МК51
содержит специальную логику для выполнения ряда однобитных операций, в которых
роль аккумулятора реализует флажок переноса СУ. Для хранения булевых данных в
архитектуре МК51 предусмотрено отдельное прямо адресуемое пространство BSEG (256
бит), которое физически совмещено с прямо адресуемой частью внутренней памяти
данных и областью специальных регистров. Hапример, аккумулятор A, доступный как
элемент регистровой памяти, может быть прямо адресован и как элемент
пространства специальных регистров (адрес 0E0h), и как область битов с адресами
0E0h...0E7h. При этом битовый адрес 0E0h относится к младшему разряду
аккумулятора. Размещенные в области специальных регистров четыре 8-разрядных
псевдодвунаправленных порта ввода-вывода совмещены с битовым пространством, что
обеспечивает доступ к отдельным их разрядам независимо друг от друга.
В составе МК1 введен дуплексный периферийный
связной адаптер, который может быть запрограммирован для работы в одном из
четырех основных режимов: 1 асинхронный с 10-битовым кадром и переменной скоростью передачи; 3 асинхронный с 11-битовым кадром и переменной скоростью
передачи. Через универсальный асинхронный приемопередатчик (УАПП)
осуществляется прием, передача информации, представленной последовательным
кодом, в полном дуплексном режиме обмена. В состав УАПП входят принимающий и
передающий сдвигающие регистры, а также специальный буферный регистр (SBUF)
приемопередатчика. Запись байта в буфер приводит к автоматической переписи байта
в сдвигающий регистр и инициирует начало передачи байта. Наличие буферного
регистра приемника позволяет совмещать операцию чтения ранее принятого байта с
приемом очередного байта. Если к моменту окончания приема байта предыдущий байт
не был считан из SBUF, то он будет потерян. Управление режимом работы УАПП
осуществляется через специальный регистр с символическим именем SCON. Этот
регистр содержит не только управляющие биты, определяющие режим работы
последовательного порта, но и девятый бит принимаемых или передаваемых данных
(RB8и TB8) и биты прерывания приемопередатчика (RI и
TI). Два программируемых 16-битных таймера/счетчика (Т/С0
и Т/С1) могут быть использованы в качестве таймеров или счетчиков внешних
событий. При работе в качестве таймера содержимое Т/С инкрементируется в каждом
машинном цикле. При работе в качестве счетчика содержимое Т/С инкрементируется
под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на
соответствующий (Т0, Т1) вывод МК51. Так как на распознавание перехода требуется
два машинных цикла, то максимальная частота подсчета входных сигналов равна 1/24
частоты резонатора. На длительность периода входных сигналов ограничений сверху
нет. Для гарантированного прочтения входного считаемого сигнала он должен
удерживать значение 1 как минимум в течение одного машинного цикла. Управление блокировкой. Бит выбора режима таймера или счетчика событий.
Биты выбора режима
работы Внешние прерывания INT0 и INT1 могут быть
вызваны либо уровнем, либо перепадом сигнала из 1 в 0 на входах МК51 в
зависимости от значений управляющих бит IT0 и IT1 в регистре TCON. Прерывания
могут быть вызваны или отменены программой, так как все рассмотренные выше флаги
прерываний программно-доступны и могут быть установлены/сброшены программой с
тем же результатом, как если бы они были установлены/сброшены аппаратурными
средствами. В блоке регистров специальных функций есть два регистра,
предназначенных для управления режимом прерываний и уровнями приоритета. Их
символические имена IE и IP соответственно.