8-900-374-94-44
[email protected]
Slide Image
Меню

Mcs 51 – Intel mcs-51 — Wikipedia

7. Последовательный интерфейс mcs-51

Через универсальный асинхронный приемопередатчик (УАПП) осуществляется прием и передача информации, представленной последовательным кодом (младшими битами вперед), в полном дуплексном режиме обмена. В состав УАПП, называемого часто последовательным портом, входят принимающий и передающий сдвигающие регистры, а также специальный буферный регистр (SBUF) приемопередатчика. Запись байта в буфер приводит к автоматической переписи байта в сдвигающий регистр передатчика и инициирует начало передачи байта. Наличие буферного регистра приемника позволяет совмещать операцию чтения ранее принятого байта с приемом очередного байта. Если к моменту окончания приема байта предыдущий байт не был считан из SBUF, то он будет потерян.

Последовательный порт МК51 может работать в четырех различных режимах.

Режим 0.В этом режиме информация и передается и принимается через внешний вывод входа приемника (RXD). Принимаются или передаются 8 бит данных. Через внешний вывод выхода передатчика (TXD) выдаются импульсы сдвига, которые сопровождают каждый бит. Частота передачи бита информации равна 1/12 частоты резонатора.

Режим 1.В этом режиме передаются через TXD или принимаются из RXD 10 бит информации: старт-бит (0), 8 бит данных и стоп-бит (1). Скорость приема/передачи –величина переменная и задается таймером.

Режим 2.В этом режиме через TXD передаются или из RXD принимаются 11 бит информации: старт-бит, 8 бит данных, программируемый девятый бит и стоп-бит. При передаче девятый бит данных может принимать значение 0 или 1, или, например, для повышения достоверности передачи путем контроля по четности в него может быть помещено значение признака паритета из слова состояния программы (PSW.0). Частота приема/передачи выбирается программой и может быть равна либо 1/32, либо 1/64 частоты резонатора в зависимости от управляющего бита SMOD.

Режим 3.Режим 3 совпадает с режимом 2 во всех деталях, за исключением частоты приема/передачи, которая является величиной переменной и задается таймером.

7.1. Регистр управления/статуса УАПП

Управление режимом работы УАПП осуществляется через специальный регистр с символическим именем SCON. Этот регистр содержит не только управляющие биты, определяющие режим работы последовательного порта, но и девятый бит принимаемых или передаваемых данных (RB8 и ТВ8) и биты прерывания приемопередатчика (RI и ТI).

Функциональное назначение бит регистра управления/статуса УАПП приводится в табл.11.1.

Прикладная программа путем загрузки в старшие биты спецрегистра SCON 2-битного кода определяет режим работы УАПП. Во всех четырех режимах работы передача из УАПП инициируется любой командой, в которой буферный регистр SBUF указан как получатель байта. Прием в УАПП в режиме 0 осуществляется при условии, что RI = 0 и REN — 1. В режимах 1, 2, 3 прием начинается с приходом старт-бита, если REN = 1.

В бите ТВ8 программно устанавливается значение девятого бита данных, который будет передан в режиме 2 или 3. В бите RB8 фиксируется в режимах 2 и 3 девятый принимаемый бит данных. В режиме 1, если SM2 = 0, в бит RB8 заносится стоп-бит. В режиме 0 бит RB8 не используется.

Флаг прерывания передатчика ТI устанавливается аппаратурно в конце периода передачи восьмого бита данных в режиме 0 и в начале периода передачи стол-бита в режимах 1,2 и 3. Соответствующая подпрограмма обслуживания прерывания должна сбрасывать бит ТI.

Флаг прерывания приемника RI устанавливается аппаратурно в конце периода приема восьмого бита данных в режиме 0 и в середине периода приема стоп-бита в режимах 1, 2 и 3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI.

Таблица 11.1. Регистр управления/статуса УАПП

Символ

Позиция

Имя и назначение

SM0

SCON.7

Биты управления режимом работы УАПП. Устанавливаются/ сбрасываются программно (см. примечание)

SM1

SCON.6

SM2

SCON.5

Бит управления режимом УАПП. Устанавливается программно для запрета приема сообщения, в котором девятый бит имеет значение 0

REN

SCON.4

Бит разрешения приема. Устанавливается/сбрасывается программно для разрешения/запрета приема последовательных данных

TB8

SCON.3

Передача бита 8. Устанавливается/сбрасывается программно для задания девятого передаваемого бита в режиме УАПП-9 бит

RB8

SCON.2

Прием бита 8. Устанавливается/сбрасывается аппаратурно для фиксации девятого принимаемого бита в режиме УАПП-9 бит

TI

SCON.1

Флаг прерывания передатчика. Устанавливается аппаратурно при окончании передачи байта. Сбрасывается программно после обслуживания прерывания

RI

SCON.0

Флаг прерывания приемника. Устанавливается аппаратурно при приеме байта. Сбрасывается программно после обслуживания прерывания

Примечание

SM0

SM1

Режим работы УАПП

0

0

Сдвигающий регистр расширения ввода/вывода

0

1

УАПП-8 бит. Изменяемая скорость передачи

1

0

УАПП-9 бит. Фиксированная скорость передачи

1

1

УАПП-9 бит. Изменяемая скорость передачи

 

7.2. Работа УАПП в мультимикроконтроллерных системах

В системах децентрализованного управления, которые используются для управления и регулирования в топологически распределенных объектах (например, прокатных станах, электроподвижном составе железных дорог и метрополитена, сборочных конвейерах и линиях гибких автоматизированных производств), возникает задача обмена информацией между множеством микроконтроллеров, объединенных в локальную вычислительно-управляющую сеть. Как правило, локальные сети на основе МК51 имеют магистральную архитектуру с разделяемым моноканалом (коаксиальный кабель, витая пара, оптическое волокно), по которому осуществляется обмен информацией между МК.

В регистре специальных функций SCON микроконтроллера имеется управляющий бит SM2, который в режимах 2 и 3 УАПП позволяет относительно простыми средствами реализовать межконтроллерный обмен информацией в локальных управляющих сетях.

Механизм межконтроллерного обмена информацией через последовательный порт МК51 построен на том, что в режимах 2 и 3 программируемый девятый бит данных при приеме фиксируется в бите RB8. УАПП может быть запрограммирован таким образом, что при получении стоп-бита прерывание от приемника будет возможно только при условии RB8 = 1. Это выполняется установкой управляющего бита SM2 в регистре SCON.

Поясним процесс межконтроллерного обмена информацией на примере. Пусть ведущему МК требуется передать блок данных некоторому (или нескольким) ведомому МК. С этой целью ведущий МК в протокольном режиме «широковещательной» передачи (всем ведомым МК) выдает в моноканал байт-идентификатор абонента (код адреса МК-получателя), который отличается от байтов данных только тем, что в его девятом бите содержится 1. Программа реализации протокола сетевого обмена информацией должна быть построена таким образом, чтобы при получении Райта- идентификатора (RB8 = 1) во всех ведомых МК произошли прерывание прикладных программ и вызов подпрограммы сравнения байта-идентификатора с кодом собственного сетевого адреса. Адресуемый МК сбрасывает свой управляющий бит SM2 и готовится к приему блока данных. Остальные ведомые МК, адрес которых не совпал с кодом байта-идентификатора, оставляют неизменным состояние SM2 = 1 и передают управление основной программе. При SM2 = 1 ин формационные байты, передаваемые по моноканалу и поступающие в УАПП ведомых МК, прерывания не вызывают, т.е. игнорируются.

В режиме 1 УАПП автономного МК управляющий бит SM2 используется для контроля истинности стоп-бита (при SM2 = 1 прерывание не произойдет до тех пор, пока не будет получено истинное (единичное) значение стоп- бита). В режиме 0 бит SM2 не используется и должен быть сброшен.

7.3. Скорость приема/передачи

Скорость приема/передачи, т.е. частота работы УАПП в различных режимах, определяется различными способами.

В режиме 0 частота передачи зависит только от резонансной частоты кварцевого резонатора f0 =fрез/12. За один машинный цикл последовательный порт передает один бит информации.

В режимах 1, 2 и 3 скорость приема/передачи зависит от значения управляющего бита SMOD в регистре специальных функций РУМ(табл.11.2).

В режиме 2 частота передачи определяется выражением f2 = (2MOD/64)*fрез иными словами, при SMOD = 0 частота передачи равна (1/64) *fрез, а при SMOD = 1 равна (1/32)*fрез.

Таблица 11.2. Регистр управления мощностью РУМ

Символ

Позиция

Имя и назначение

SMOD

PCON.7

Удвоенная скорость передачи. Если бит установлен в 1, то скорость передачи вдвое больше, чем при SMOD = 0

—-

PCON.6

Не используются

—-

PCON.5

—-

PCON.4

GF1

PCON.3

Флаги, специфицируемые пользователем (флаги общего назначения)

GF0

PCON.2

PD

PCON.1

Бит пониженной мощности. При установке бит а в 1 МК переходит в режим пониженной потребляемой мощности

IDL

PCON.0

Бит холостого хода. Если бит установлен в 1, то МК переходит в режим холостого хода

Примечание. При одновременной записи 1 в PD и IDL бит PD имеет преимущество. Сброс содержимого РУМ выполняется путем загрузки в него кода 0XXX0000.

 

В режимах 1 и 3 в формировании частоты передачи кроме управляющего бита SMOD принимает участие таймер 1. При этом частота передачи зависит от частоты переполнения (OVT1) и определяется следующим образом:

f1, 3 = (2SMOD/32)*fOVT1.

Прерывание от таймера 1 в этом случае должно быть заблокировано. Сам T/C1 может работать и как таймер, и как счетчик событий в любом из трех режимов. Однако наиболее удобно использовать режим таймера с автоперезагрузкой (старшая тетрада TMOD = 0010В). При этом частота передачи определяется выражением

f1, 3 = (2SMOD/32)*(fрез/12)/(256-(Th2))

В табл.11.3 приводится описание способов настройки Т/С1 для получения типовых частот передачи данных через УАПП.

Таблица 11.3. Настройка таймера 1 для управления частотой работы УАПП

Частота приема/передачи (BAUD RATE)

Частота резонатора, МГц

SMOD

Таймер/счетчик 1

C/T

Режим (MODE)

Переза-гружаемое число

Режим 0, макс: 1 МГц

12

X

X

X

X

Режим 2, макс: 375 кГц

12

1

X

X

X

Режимы 1, 3: 62.5 кГц

12

1

0

2

0FFH

19.2 кГц

11.059

1

0

2

0FDH

9.6 кГц

11.059

0

0

2

0FDH

4.8 кГц

11.059

0

0

2

0FAH

2.4 кГц

11.059

0

0

2

0F4H

1.2 кГц

11.059

0

0

2

0E8H

137.5 Гц

11.059

0

0

2

1DH

110 Гц

6

0

0

2

72H

110 Гц

12

0

0

1

0FEEBH

 

7.4. Особенности работы УАПП в различных режимах

Режим 0. На рис.3.11 показаны упрощенная структурная схема УАПП и временная диаграмма его работы в режиме 0. Данные передаются и принимаются через вывод RXD. Через вывод TXD выдаются синхросигналы сдвига.

 

Рис 3.11 а) Структурная схема УАПП в режиме 0

 

Рис 3.11. б) Временная диаграмма работы УАПП в режиме 0

Передача начинается любой командой, по которой в SBUF поступает байт данных. В момент времени S6P2 устройство управления МК51 по сигналу Запись в буфер записывает байт в сдвигающий регистр передатчика, устанавливает триггер девятого бита и запускает блок управления передачей, который через один машинный цикл вырабатывает разрешающий сигнал Посылка. При этом в момент S6P2 каждого машинного цикла содержимое сдвигающего регистра сдвигается вправо (младшими битами вперед) и поступает на вывод RXD. В освобождающиеся старшие биты сдвигающего регистра передатчика записываются нули. При получении от детектора нуля сигнала Передатчик пуст блок управления передатчиком снимает сигнал Посылка и устанавливает флаг TI (момент S1P1 десятого машинного цикла после поступления сигнала Запись в буфер).

Прием начинается при условии REN = 1 и RI = 0. В момент S6P2 следующего машинного цикла блок управления приемником формирует разрешающий сигнал Прием, по которому на выход TXD передаются синхросигналы сдвига и в сдвигающем регистре приемника начинают формироваться значения бит данных, которые считываются с входа RXD в моменты S5P2 каждого машинного цикла. В момент S1P1 десятого машинного цикла после сигнала Запись в SCON блок управления приемником переписывает содержимое сдвигающего регистра в буфер, снимает разрешающий сигнал Прием и устанавливает флаг RI.

Режим 1.На рис. 3.12 показаны структурная схема (рис.3.12,а) и временные диаграммы работы УАПП при приеме и передаче данных (рис.3.12,б,в). Через вывод TXD УАПП передает, а с вывода RXD принимает 10 бит: старт-бит (0), 8 бит данных и стоп-бит (1). При приеме стоп-бит поступает в бит RB8 регистра SCON.

Рис 3.12 а) Структурная схема УАПП в режимах 1, 2 и 3

 

Рис 3.12 б) Временная диаграмма работы УАПП в режиме 1

 

Рис 3.12 в) Временная диаграмма работы УАПП в режимах 2 и 3

  Передача инициируется любой командой, в которой получателем байта является регистр SBUF. Генерируемый при этом управляющий сигнал Запись в буфер загружает 1 в девятый бит сдвигающего регистра передатчика, запускает блок управления передачей и в момент времени S1P1 формирует разрешающий сигнал Посылка. По этому сигналу на вывод TXD сначала поступает старт-бит, а затем (по разрешающему сигналу Данные) биты данных. Каждый период передачи бита равен 16 тактам внутреннего счетчика.

Прием начинается при обнаружении перехода сигнала на входе RXD из состояния 1 в состояние 0. Для этого под управлением внутреннего счетчика вход RXD опрашивается 16 раз за период представления бита. Как только переход из 1 в 0 на входе RXD обнаружен, в сдвигающий регистр приемника загружается код 1FFH, внутренний счетчик по модулю 16 немедленно сбрасывается и перезапускается для выравнивания его переходов с границами периодов представления принимаемых бит. Таким образом, каждый период представления бита делится на 16 периодов внутреннего счетчика. В состояниях 7, 8 и 9 счетчика в каждом периоде представления бита производится опрос сигнала на входе RXD. Считанное значение принимаемого бита – это то, которое было получено по меньшей мере дважды из трех замеров (мажоритарное голосование по принципу «два из трех»). Если значение, принятое в первом такте, не равно 0, то блок управления приемом вновь возвращается к поиску перехода из 1 в 0. Этот механизм обеспечивает подавление ложных (сбойных) старт-бит. Истинный старт-бит сдвигается в регистре приемника, и продолжается прием остальных бит посылки. Блок управления приемом сформирует сигнал Загрузка буфера, установит RB8 и флаг RI только в том случае, если в последнем такте сдвига выполняются два условия: бит RI = 0, и либо SM2 = 0, либо принятый стоп-бит равен 1. Если одно из этих двух условий не выполняется, то принятая последовательность бит теряется. В это время вне зависимости от того, выполняются указанные условия или нет, блок управления приемом вновь начинает отыскивать переход из 1 в 0 на входе RXD.

Режимы 2, 3.Через вывод TXD УАПП передает или с вывода RXD принимает 11 бит: старт-бит (0), 8 бит данных, программируемый девятый бит и стоп-бит (1). На временной диаграмме (рис.3.12,в) показана работа УАПП при передаче и приеме данных в режимах 2 и 3. Как видно, режимы 2 и 3 отличаются от режима 1 только наличием девятого программируемого бита. Вследствие этого несколько изменяются условия окончания цикла приема: блок управления приемником сформирует управляющий сигнал Загрузка буфера, загрузит RB8 и установит флаг RI только в том случае, если в последнем такте сдвига выполняются два условия: бит RI = 0 и либо SM2 = 0, либо значение принятого девятого бита данных равно 1.

studfiles.net

Система команд MCS-51 (Лекция) | ЛЕКЦИИ ПО МК

В начало

 

ПЛАН ЛЕКЦИИ

1. Введение

2. Арифметические и логические инструкции

3. Команды передачи данных

4. Булевы операции

5. Инструкции переходов

 

1. Введение

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

Режимы адресации: набор команд MCS-51 поддерживает следующие режимы адресации. Прямая адресация: операнд определяется 8-битовым адресом в инструкции. Прямая адресация используется только для младшей половины внутренней памяти данных и регистров SFR. Косвенная адресация: инструкция адресует регистр, содержащий адрес операнда. Данный вид адресации используется для внешнего и внутреннего ОЗУ. Для указания 8-битовых адресов могут использоваться регистры R0 и R1 выбранного регистрового банка или указатель стека SP. Для 16-битовой адресации используется только регистр указателя данных DPTR.

Регистровые инструкции: регистры R0–R7 текущего регистрового банка могут быть адресованы через конкретные инструкции, содержащие 3-битовое поле, указывающее номер регистра в самой инструкции. В этом случае соответствующее поле адреса в команде отсутствует. Операции с использованием специальных регистров: некоторые инструкции используют индивидуальные регистры (например, операции с аккумулятором, DPTR, и т. д.). В данном случае адрес операнда вообще не указывается в команде. Он предопределяется кодом операции.

Непосредственные константы: константа может находиться прямо в команде за кодом операции.

Индексная адресация: индексная адресация может использоваться только для доступа к программной памяти и только в режиме чтения. В этом режиме осуществляется просмотр таблиц в памяти программ. 16-битовый регистр (DPTR или программный счетчик) указывает базовый адрес требуемой таблицы, а аккумулятор указывает на точку входа в нее.

Набор команд имеет 42 мнемонических обозначения команд для конкретизации 33 функций этой системы. Синтаксис большинства команд ассемблерного языка состоит из мнемонического обозначения функции, вслед за которым идут операнды, указывающие методы адресации и типы данных. Различные типы данных или режимы адресации определяются установленными операндами, а не изменениями мнемонических обозначений.

Систему команд условно можно разбить на пять групп: арифметические команды; логические команды; команды передачи данных; команды битового процессора; команды ветвления и передачи управления. Обозначения и символы, используемые в системе команд, приведены далее.

 

Таблица. Обозначения и символы, используемые в системе команд

Обозначение, символ

Назначение

А

Аккумулятор

Rn

Регистры текущего выбранного банка регистров

r

Номер загружаемого регистра, указанного в команде

direct

Прямо адресуемый 8-битовый внутренний адрес ячейки данных, который может быть ячейкой внутреннего ОЗУ данных (0–127) или регистром специальных функций SFR (128–255)

@Rr

Косвенно адресуемая 8-битовая ячейка внутреннего ОЗУ данных

data8

8-битовое непосредственное данное, входящее в код операции (КОП)

dataH

Старшие биты (15–8) непосредственных 16-битовых данных

dataL

Младшие биты (7­–0) непосредственных 16-битовых данных

addr11

11-битовый адрес назначения

addrL

Младшие биты адреса назначения

disp8

8-битовый байт смещения со знаком

bit

Бит с прямой адресацией, адрес которого содержит КОП, находящийся во внутреннем ОЗУ данных или регистре специальных функций SFR

a15, a14…a0

Биты адреса назначения

(Х)

Содержимое элемента Х

((Х))

Содержимое по адресу, хранящемуся в элементе Х

(Х)[M]

Разряд М элемента Х


+

*
/
AND
OR
XOR
/X

Операции:
сложения
вычитания
умножения
деления
логического умножения (операция И)
логического сложения (операция ИЛИ)
сложения по модулю 2 (исключающее ИЛИ)
инверсия элемента Х

 

Мнемонические обозначения функций однозначно связаны с конкретными комбинациями способов адресации и типами данных. Всего в системе команд возможно 111 таких сочетаний.

 

2. Арифметические и логические инструкции

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

ADD A,7F16 – прибавить к содержимому регистра А число 7F16 и результат сохранить в регистре А;

ADD A,@R0 – прибавить к содержимому регистра А число, адрес которого (@ – commercial at) хранится в регистре R0 (косвенная адресация), и результат сохранить в регистре А;

ADD A,R7 – прибавить к содержимому регистра А содержимое регистра R7 и результат сохранить в регистре А;

ADD A,#127 – прибавить к содержимому регистра А число, адрес ячейки хранения которого 127 (# – символ номера), и результат сохранить в регист­-         ре А.

Все арифметические инструкции выполняются за один машинный цикл за исключением команды INC DPTR (смещение указателя данных DPTR на следующий байт), требующей два машинных цикла, а также операций умножения и деления, выполняемых за 4 машинных цикла. Любой байт во внутренней памяти данных может быть инкрементирован и декрементирован без использования аккумулятора.

Инструкция MUL AB производит умножение (multiplication – умножение) данных в аккумуляторе на данные, находящиеся в регистре B, помещая произведение в регистры A (младшая половина) и B (старшая половина).

Инструкция DIV AB делит (division – деление) содержимое аккумулятора на значение в регистре B, оставляя остаток в B, а частное – в аккумуляторе.

Инструкция DA A предназначена для двоично-десятичных арифметических операций (арифметические операции над числами, представленными в двоично-десятичном коде). Она не делает преобразования двоичного числа в двоично-десятичное, а лишь обеспечивает правильный результат при сложении двух двоично-десятичных чисел.

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

ANL A,7F16 – логическое умножение содержимого регистра А на число 7F16 и результат сохраняется в регистре А;

ANL A,@R1 – логическое умножение содержимого регистра А на число, адрес которого хранится в регистре R1 (косвенная адресация), и результат сохранить в регистре А;

ANL A,R6 – логическое умножение содержимого регистра А на содержимое регистра R6, и результат сохранить в регистре А;

ANL A,#53– логическое умножение содержимого регистра А на число, адрес ячейки хранения которого 5316, и результат сохранить в регистре А.

Все логические операции над содержимым аккумулятора выполняются за один машинный цикл, остальные – за два. Логические операции могут производиться над любым из нижних 128 байтов внутренней памяти данных или над любым регистром SFR (регистров специальных функций) в режиме прямой адресации без использования аккумулятора.

Операции циклического сдвига RL A, RLC A и т. д. перемещают содержимое аккумулятора на один бит вправо или влево. В случае левого циклического сдвига младший бит перемещается в старшую позицию. В случае правого циклического сдвига происходит обратное.

Операция SWAP A осуществляет обмен младшей и старшей тетрад в аккумуляторе.

 

3. Команды передачи данных

Команда MOV dest,src позволяет пересылать данные между ячейками внутреннего ОЗУ или областью регистров специальных функций SFR без использования аккумулятора. При этом работа с верхней половиной внутреннего ОЗУ может осуществляться только в режиме косвенной адресации, а обращение к регистрам SFR – только в режиме прямой адресации.

Во всех микросхемах MCS-51 стек размещается непосредственно в резидентной памяти данных и увеличивается вверх. Инструкция PUSH вначале увеличивает значение в регистре указателя стека SP, а затем записывает в стек байт данных. Команды PUSH и POP используются только в режиме прямой адресации (записывая или восстанавливая байт), но стек является всегда доступным при косвенной адресации через регистр SP. Таким образом, стек может использовать и верхние 128 байт памяти данных. Эти же соображения исключают возможность использования стековых команд для адресации регистров SFR.

Инструкции передачи данных включают в себя 16-битовую операцию пересылки MOV DPTR,#data16, которая используется для инициализации регистра указателя данных DPTR при просмотре таблиц в программной памяти или для доступа к внешней памяти данных.

Операция XCH A,byte применяется для обмена данными между аккумулятором и адресуемым байтом. Команда XCHD A,@Ri аналогична предыдущей, но выполняется только для младших тетрад, участвующих в обмене операндов.

Для доступа к внешней памяти данных используется только косвенная адресация. В случае однобайтных адресов используются регистры R0 или R1 текущего регистрового банка, а для 16-разрядных – регистр указателя данных DPTR. При любом методе доступа к внешней памяти данных аккумулятор играет роль источника либо приемника информации.

Для доступа к таблицам, размещённым в программной памяти, используются команды:

MOVC A,@A+DPTR ;

MOVC A,@A+PC .

В качестве базового адреса таблицы используется содержимое соответственно регистра указателя данных DPTR или PC (программного счётчика), а смещение берется из A. Эти команды используются исключительно для чтения данных из программной памяти, но не для записи в нее.

4. Булевы операции

Микросхемы MCS-51 содержат в своем составе «булевый» процессор. Внутреннее ОЗУ имеет 128 прямо адресуемых бит. Пространство регистров специальных функций SFR может также поддерживать до 128 битовых полей. Битовые инструкции осуществляют условные переходы, пересылки, сброс, инверсии, операции «И» и «ИЛИ». Все указанные биты доступны в режиме прямой адресации.

Бит переноса CF в регистре специальных функций «слово состояния программы PSW» используется как однобитный аккумулятор булевого процессора.

 

5. Инструкции переходов

Адреса операций переходов обозначаются на языке ассемблера меткой либо реальным значением в пространстве памяти программ. Адреса условных переходов ассемблируются в относительное смещение – знаковый байт, прибавляемый к программному счетчику PC в случае выполнения условия перехода. Границы таких переходов лежат в пределах между минус 128 и 127 относительно первого байта, следующего за инструкцией. В регистре специальных функций «слово состояния программы PSW» отсутствует флажок нуля, поэтому инструкции JZ и JNZ проверяют условие «равно нулю» как тестирование данных в аккумуляторе.

Существует три вида команды безусловного перехода: SJMP, LJMP и AJMP – различающиеся форматом адреса назначения. Инструкция SJMP кодирует адрес как относительное смещение, и занимает два байта. Дальность перехода ограничена диапазоном от минус 128 до 127 байт относительно инструкции, следующей за SJMP.

В инструкции LJMP используется адрес назначения в виде 16-битной константы. Длина команды составляет три байта. Адрес назначения может располагаться в любом месте памяти программ.

Команда AJMP использует 11-битную константу адреса. Команда состоит из двух байт. При выполнении этой инструкции младшие 11 бит адресного счетчика замещаются 11-битным адресом из команды. Пять старших бит программного счетчика PC остаются неизменными. Таким образом, переход может производиться внутри 2К-байтного блока, в котором располагается инструкция, следующая за командой AJMP.

Существует два вида команды вызовы подпрограммы: LCALL и ACALL. Инструкция LCALL использует 16-битный адрес вызываемой подпрограммы. В данном случае подпрограмма может быть расположена в любом месте памяти программ. Инструкция ACALL использует 11-битный адрес подпрограммы. В этом случае вызываемая подпрограмма должна быть расположена в одном 2К-байтном блоке с инструкцией, следующей за ACALL. Оба варианта команды кладут на стек адрес следующей команды и загружают в программный счетчик PC соответствующее новое значение.

Подпрограмма завершается инструкцией RET, позволяющей вернуться на инструкцию, следующую за командой CALL. Эта инструкция снимает со стека адрес возврата и загружает его в программный счетчик PC. Инструкция RETI используется для возврата из подпрограмм обработки прерываний. Единственное отличие RETI от RET состоит в том, что RETI информирует систему о том, что обработка прерывания завершилась. Если в момент выполнения RETI нет других прерываний, то она идентична RET.

Инструкция DJNZ предназначена для управления циклами. Для выполнения цикла N раз надо загрузить в счетчик байт со значением N и закрыть тело цикла командой DJNZ, указывающей на начало цикла.

Команда CJNE сравнивает два своих операнда как беззнаковые целые и производит переход по указанному в ней адресу, если сравниваемые операнды не равны. Если первый операнд меньше, чем второй, то бит переноса CF устанавливается в «1».

Все команды в ассемблированном виде занимают 1, 2 или 3 байта.

mc-plc.ru

Старые проекты (MCS51, PC) с исходниками | msc51

1

2

3

12to300.zip

 

отлаженная схема преобразователя DC 12 В >> DC 300 В, со стабилизацией, в формате ACCEL EDA 14

adc2.arj

MCS51

сервисный интерфейс к пейджинговому передатчику с использованием АЦП AD7858 (восьмиканальный, с последовательным интерфейсом). Там же принципиальная схема в формате Corel Draw 5.

i2c_sl.arj

MCS51

работа микропроцессора AT89C1051 в качестве slave-устройства на шине I2C, но: кривовато, не хватает быстродействия

at24cxx.arj

MCS51

работа с микросхемами энергонезависимой памяти по шине I2C

lead.arj

MCS51

регулятор напряжения для паяльника на AT89C2051 (!..)

c_loader.arj

MCS51

программа загрузчика для самодельного эмулятора 80C31

24cxx.zip

Delphi

программирование микросхем 24Cxx с интерфейсом I2C через порт LPT компьютера

homefone.arj

MCS51

программа для домофона

hf_bell1.arj

MCS51

тоже программа для домофона, но звук ДИН-ДОН генерируется с помощью ШИМ

kl1.arj

MCS51 + Delphi

программатор для микросхем KeeLoq (брелки для автомобильных сигнализаций с прыгающим кодом). Сам программатор выполнен на AT89C2051, работает через RS232 с компьютерной программой.

brel_prg.zip

 

принципиальная схема и разводка печатной платы программатора kl1.arj в формате MicroSim Design Center 8

tele2.arj

MCS51

интегрированное управление системой телевизионного наблюдения (поворот камер, управление видеокоммутатором ROBOT).

t_mdm.zip

 

принципиальная схема и разводка печатной платы приёмника DTMF для tele2.arj (подключение удалённого пульта управления) в формате Corel Draw 5.

keybrd7.arj

MCS51

удалённый пульт управления для tele2.arj. Сам пульт — обыкновенная PC-клавиатура, подключенная напрямую к AT89C52. Управляющая информация передаётся в линию с помощью DTMF (генерация ШИМ).

k7.arj

MCS51 + Delphi

тот же пульт управления, но реализованный с помощью компьютера. Для передачи информации в кодер DTMF (на AT89C2051) используется RS232.

driver.arj

ASM8086

простой пример написания DOS-драйвера

ed_pgm.arj

ASM8086

редактор основной (conventional) памяти AT-совместимого компьютера

dtmf.arj

ASM8086 + Borland C

генерация DTMF с использованием LPT, ЦАП на резисторах и прерываний таймера

go_mus.arj

ASM8086 + Borland C

проигрывание звуков (wav без заголовков) через LPT и ЦАП на резисторах.

load_old.arj, loader.arj

Borland C

старая и новая версии программы-загрузчика для эмулятора ПЗУ (Borland C). Эмулятор собран с использованием макетной платы, вставляемой в шину ISA, эмуляционная память встраивается в адресное пространство convertional-памяти AT-совместимого компьютера с адреса D0000H.

prog.arj

Borland C

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

make_f2.arj

Borland C

формирование частотных таблиц для номерных фильтров в программе радиотелефона «Волемот-АРС»

rs-232.arj

ASM8086 + Borland C

работа с портом RS232 через прерывания — чтение данных от мышки

tst62256.arj

MCS51

проверка микросхем статической памяти 62256 с помощью псевдослучайной последовательности

rd_eepr5.arj

MCS51

автономный программатор/считыватель микросхем X24022 (интерфейс I2C). Индикация режимов с помощью азбуки Морзе (!)

iblock.zip

MCS51

электронный замок с использованием ключей-таблеток iButton фирмы Dallas Semiconductor.

2ton.arj

MCS51

пример декодирования DTMF

3s6.arj, cdr.arj

MCS51

приставка для радиотелефона «Алтай-3С», схема и разводка печатной платы приставки в формате Corel Draw 5

443va12.arj

MCS51

программа для радиотелефона «Волемот-АРС»

aon1.arj

MCS51

тоже программа для радиотелефона «Волемот-АРС», но с возможностью изменения АОНа с клавиатуры

amd.arj, amd1.arj, amd_cdr.arj

MCS51

система подключения сигнализации «Vista-10» к компьютеру, схема этой системы в формате Corel Draw 5

sota.arj, sota1.arj

MCS51

подключение сотового телефона NOKIA (аналоговой системы NMT450) к телефонной сети

imp51.arj, imp52.arjimp_cdr.arj

MCS51

приставка для радиотелефона «Волемот-АРС», схема и разводка печатной платы приставки в формате Corel Draw 5

decoder.zip

MCS51

декодирование POCSAG с использованием фазовой подстройки частоты. Этот пример скачан откуда-то из Интернет (не проверял).

ps9_1.arj, spp-v1_1.zip

MCS51

кодер POCSAG, схема и разводка печатной платы кодера POCSAG (ps9_1.arj) в формате MicroSim Design Center 8. В эпоху популярности пейджинга этот кодер трудился в Калуге, в Обнинске и в Останкино (Москва).

r20.arj, eh_filtr.arj

MCS51

пейджинговый ретранслятор, расчёт низкочастотного фильтра для пейджингового ретранслятора

r10a.zip

 

схема и разводка печатной платы пейджингового ретранслятора r20.arj в формате ACCEL EDA 14

repit10.zip, compar.zip

 

то же самое, но в формате MicroSim Design Center 8

testbch4.arj

Delphi

проверка работы алгоритма BCH коррекции ошибок пейджингового ретранслятора r20.arj

tstrs.zip

Delphi

тестовая программа для пейджингового ретранслятора r20.arj

sp.arj, sp8m1.zip

8080

программа для радиотелефона «Алтай-СП»

ats.arj

MCS51

старая версия приставки для радиотелефона «Алтай-СП» (импульсный набор цифр)

prist.arj

MCS51

более новая версия приставки для радиотелефона «Алтай-СП» (тональный набор цифр)

sp_cdr.arj

 

схема и разводка печатной платы приставки prist.arj в формате Corel Draw 5

microsin.net

Intel MCS 51 • ru.knowledgr.com

Intel MCS 51 (обычно называемый 8 051) является архитектурой Гарварда, набором команд CISC, однокристальный микродиспетчер (µC) ряд, который был развит Intel в 1980 для использования во встроенных системах. Оригинальные версии intel были популярны в 1980-х и в начале 1990-х и увеличили двойные совместимые производные, остаются популярными сегодня.

Оригинальные МГЦ intel 51 семья была развита, используя технологию NMOS, но более поздние версии, определенные письмом C на их имя (например, 80C51), использовали технологию CMOS и потребляют меньше власти, чем их предшественники NMOS. Это сделало их более подходящими для работающих от аккумулятора устройств.

Семья была продолжена в 1996 с расширенными 8-битными МГЦ 151 и 8/16/32-bit МГЦ 251 семья двойных совместимых микродиспетчеров. В то время как Intel больше не производит МГЦ 51, МГЦ 151 и МГЦ 251 семья, увеличенные двойные совместимые производные, сделанные многочисленными продавцами, остаются популярными сегодня. Некоторые производные объединяют процессор цифрового сигнала (DSP). В дополнение к этим физическим устройствам несколько компаний также предлагают МГЦ 51 производную как IP ядра для использования в проектов ASICs или FPGAs.

Важные особенности и заявления

8 051 архитектура обеспечивает много функций (центральный процессор, RAM, ROM, ввод/вывод, логика перерыва, таймер, и т.д.) в единственном пакете

  • 8-битный ALU и Сумматор, 8-битные Регистры (один 16-битный регистр со специальными командами на движение), 8-битная шина данных и 2×16-bit адресная шина / указатель прилавка/данных программы и связанный 8/11/16-bit операции; следовательно это — главным образом, 8-битный микродиспетчер
  • Булев процессор с 17 инструкциями, 1-битный сумматор, 32 регистра (4 адресуемых битом 8 битов) и до 144 специальных 1 адресуемая битом переменная RAM (18 адресуемых битом 8 битов)
  • Умножьте, разделите и сравните инструкции
  • 4 быстрых переключаемых банка регистра с 8 регистрами каждый (нанесенная на карту память)
  • Быстрый перерыв с дополнительной коммутацией блоков памяти регистра
  • Перерывы и нити с выбираемым приоритетом
  • Двойная 16-битная адресная шина – Это может получить доступ к 2 x 2 местоположения памяти – 64 КБ (65 536 местоположений) каждая RAM и ROM
  • 128 байтов RAM на чипе (IRAM)
  • 4 кибибита ROM на чипе, с 16-битным адресным пространством (на 64 кибибита) (PMEM). Не включенный в 803X варианты
  • Четыре 8-битных двунаправленных порта ввода/вывода
  • UART (последовательный порт)
  • Два 16-битных Прилавка/таймера
  • Способ экономии власти (на некоторых производных)

Одна особенность 8 051 ядра — включение булева двигателя обработки, который позволяет операциям по булевой логике уровня долота быть выполненными непосредственно и эффективно в избранных внутренних регистрах и избранных местоположениях RAM. Эта особенность помогла цементировать популярность 8051 в приложениях промышленного контроля, потому что это уменьшило кодовый размер на целых 30%. Другая особенность — включение четырех банков выбираемые рабочие наборы регистров, которые значительно уменьшают количество времени, требуемое закончить сервисный режим перерыва. С единственной инструкцией эти 8051 могут переключить банки регистра в противоположность трудоемкой задаче передачи критических регистров к стеку или определяемым местоположениям RAM. Эти регистры также позволили 8051 быстро выполнять выключатель контекста.

Как только UART и таймер при необходимости, формировались, программист должен только написать простой установленный порядок перерыва, чтобы снова наполнить послать сдвиговый регистр каждый раз, когда последний бит перемещен UART, и/или опустейте, полные получают сдвиговый регистр (скопируйте данные где-то в другом месте). Главная программа тогда выступает последовательный, читает и пишет просто, читая и в письме к 8-битные данные стекам.

Особенности производного числа

, новые производные числа все еще развиты многими крупнейшими производителями чипов, и крупные поставщики компилятора, такие как Системы IAR, Keil и Altium Tasking непрерывно выпускают обновления.

МГЦ 51 основанный микродиспетчер, как правило, включает один или два UARTs, два или три таймера, 128 или 256 байтов внутренней RAM данных (16 байтов которого адресуемы битом), до 128 байтов ввода/вывода, от 512 байтов до 64 КБ внутренней памяти программы, и иногда количество расширенной RAM данных (ERAM), расположенный во внешнем космосе данных. Оригинальное 8 051 ядро достигло 12 тактов за машинный цикл с большей частью выполнения инструкций в одном или двух машинных циклах. С частотой часов на 12 МГц эти 8051 могли таким образом выполнить 1 миллион инструкций с одним циклом в секунду или 500 000 инструкций с двумя циклами в секунду. Увеличенный 8 051 ядро теперь обычно используется, которые достигают шесть, четыре, два, или даже часы за машинный цикл, и имеют частоты часов до 100 МГц и таким образом способны к еще большему числу инструкций в секунду. У всей Silicon Labs, некоторого Далласа и нескольких устройств Atmel есть единственные ядра цикла.

8 051 вариант может включать встроенные таймеры сброса с обнаружением частичного затемнения, генераторы на чипе, самопрограммируемую память программы ROM Вспышки, встроенную внешнюю RAM, дополнительное внутреннее хранение программы, bootloader кодекс в ROM, EEPROM энергонезависимое хранение данных, I²C, SPI и интерфейсы хозяина USB, МОГУТ или автобус LIN, ZigBee или модули радио Bluetooth, генераторы PWM, аналоговые компараторы, A/D и конвертеры D/A, RTCs, дополнительные прилавки и таймеры, в схеме отлаживая средства, больше источников перерыва, дополнительных способов экономии власти, и т.д.

Во многих технических институтах 8 051 микродиспетчер используется во вводных курсах микродиспетчера.

Архитектура памяти

У

МГЦ 51 есть четыре отличных типа памяти – внутренняя RAM, специальные регистры функции, память программы и внешняя память данных.

Внутренняя RAM (IRAM) расположена от адреса 0, чтобы обратиться к 0xFF. К IRAM от 0x00 до 0x7F можно получить доступ непосредственно. К IRAM от 0x80 до 0xFF нужно получить доступ косвенно, используя @R0 или @R1 синтаксис, с обращением к доступу, загруженному в R0 или R1. 128 битов в местоположениях IRAM 0x20–0x2F адресуемы битом.

Специальные регистры функции (SFR) расположены в том же самом адресном пространстве как IRAM, по адресам 0x80 к 0xFF, и получены доступ, непосредственно используя те же самые инструкции что касается более низкой половины IRAM. К ним нельзя получить доступ косвенно через @R0 или @R1. 16 из SFRs также адресуемы битом.

Память программы (PMEM, хотя менее распространенный в использовании, чем IRAM и XRAM) составляет до 64 кибибитов постоянной памяти, начинающейся по адресу 0 в отдельном адресном пространстве. Это может идти — или вне чипа, в зависимости от особой модели используемого чипа. Память программы только для чтения, хотя некоторые варианты 8 051 использования флэш-память на чипе и обеспечивают метод перепрограммирования памяти в системе или в применении. Кроме того, чтобы закодировать, возможно хранить данные только для чтения в памяти программы, к которой получает доступ MOVC A, @DPTR инструкция. Данные принесены от адреса, определенного в 16-битном специальном DPTR регистра функции.

Внешняя память данных (XRAM) является третьим адресным пространством, также начинающимся по адресу 0. Это может также идти — или вне чипа; что делает, «внешний» случается так, что к этому нужно получить доступ, используя MOVX (Двиньтесь внешний), инструкция. Много вариантов этих 8051 включают стандартные 256 байтов IRAM плюс несколько KB XRAM на чипе.

Эти 8051 разработаны как строгая архитектура Гарварда.

Эти 8051 могут только выполнить кодекс, принесенный от памяти программы.

У

этих 8051 нет инструкции написать памяти программы.

Большинство 8 051 система уважает это различие, и так неспособна загрузить и непосредственно выполнить новые программы.

Строгая архитектура Гарварда имеет преимущество создания таких систем, неуязвимых для большинства форм вредоносного программного обеспечения.

Приблизительно 8 051 система имеет (или может быть изменен, чтобы иметь), некоторая «нанесенная на карту двойным образом» RAM, заставляя их действовать несколько больше как архитектура Принстона.

Эта (частичная) архитектура Принстона имеет преимущество позволения Дальше загрузчик операционной системы, бегущий на 8051, чтобы написать новый родной кодекс RAM и затем выполнить его, приводя быстрее к возрастающим и интерактивным программным циклам, чем строгие системы Гарварда.

Регистры

Единственный регистр на 8051, который не нанесен на карту памятью, является встречным PC с 16 битными программами. Это определяет адрес следующей инструкции выполнить. Относительные команды перехода поставляют подписанное погашение 8 битов, которое добавлено к PC.

К

8 регистрам общего назначения R0–R7 можно получить доступ с инструкциями на 1 байт короче, чем другие. Они нанесены на карту к IRAM между 0x00 и 0x1F. Только 8 байтов того диапазона используются в любой момент времени, определяются двумя банками избранные биты в PSW.

Следующие регистры нанесены на карту памятью в специальное пространство регистра функции:

  • (0x81) SP указателя Стека. Это — 8-битный регистр, используемый инструкциями по возвращению и вызовом подпрограммы. Стек становится восходящим; SP увеличен перед подталкиванием и decremented после сования стоимости.
  • (0x82–83) РАЗНОСТЬ ПОТЕНЦИАЛОВ указателя Данных. Это — 16-битный регистр, который используется для доступа к PMEM и XRAM.
  • (0xD0) слово статуса Программы PSW. Это содержит важные флаги статуса:
  • PSW.0: P Паритет. Дает паритет (модуль 2 суммы частей) новый результат ALU.
  • PSW.1: Определенный Пользователь UD. Для общего использования программного обеспечения, не иначе используемого аппаратными средствами.
  • PSW.2: флаг Переполнения OV. Набор, когда дополнение производит подписанное переполнение.
  • PSW.3: Регистр RS0 выбирает 0. Часть младшего разряда банка регистра. Набор, когда банки в 0x08 или 0x18 используются.
  • PSW.4: Регистр RS1 выбирает 1. Старшая часть банка регистра. Набор, когда банки в 0x10 или 0x18 используются.
  • PSW.5: Флаг F0 0. Для общего использования программного обеспечения, не иначе используемого аппаратными средствами.
  • PSW.6: вспомогательные AC несут. Набор, когда дополнение производит нести из бита 3 к биту 4.
  • PSW.7: К Карри укусила.
  • (0xE0) Сумматор A. Этот регистр используется большинством инструкций.
  • (0xF0) B регистр. Это используется в качестве расширения к сумматору для, умножают и делят инструкции.

256 единственных битов непосредственно адресуемы. Это 16 местоположений IRAM от 0x20–0x2F, и 16 специальных функций регистрируют 0x80, 0x88, 0x90, …, 0xF8. К любому биту этих байтов может непосредственно получить доступ множество логических операций и условных отделений.

Обратите внимание на то, что PSW не содержит общий (отрицательный) N и Z (ноль) флаги. Вместо этого потому что сумматор — швейцарский франк долота-addressible, возможно ветвиться на его самом значительном бите непосредственно. Есть также инструкция подскочить, если сумматор — ноль или отличный от нуля.

Набор команд

Инструкции все 1 — 3 байта длиной, состоя из начальной буквы opcode байт, сопровождаемый максимум на 2 байта операндов.

Есть 16 основных инструкций ALU, которые работают между сумматором и вторым операндом. Самое значительное откусывание opcode байта определяет операцию, и наименее значительное откусывание определяет один из следующих 12 способов обращения:

  • Прямой регистр, R0–R7 (opcodes x8–xF)
  • Косвенный регистр, @R0 или @R1 (opcodes x6 и x7)
  • Прямая память, определяя IRAM или местоположение швейцарского франка (opcodes x5, сопровождаемый на 1 байт адреса)
  • Немедленный, определяя 8-битную константу (opcodes x4, сопровождаемый на 1 байт данных)

Операции следующие. Не вся поддержка все способы обращения; непосредственный способ в особенности иногда бессмыслен:

  • 0y INC операнд: Увеличьте указанный операнд. Opcode 04 определяет «INC»
  • Операнд в ДЕКАБРЕ 1 года: Декремент указанный операнд. Opcode 14 определяет «ДЕКАБРЬ»
  • 2 года ДОБАВЛЯЮТ A, операнд: Добавьте операнд к сумматору A.
  • 3 года ADDC A, операнд: Добавьте, что операнд, плюс C укусил к сумматору.
  • 4 года ORL A, операнд: Логичный ИЛИ операнд в регистр.
  • 5 лет ANL A, операнд: Логичный И операнд в регистр.
  • 6 лет XRL A, операнд: Логичный исключительный — ИЛИ операнд в регистр.
  • 7 лет MOV operand,#data: Переместите непосредственные данные в операнд. Opcode 74 определяет «MOV A,#data.
  • 8 лет адрес MOV, операнд: Переместите данные в регистр швейцарского франка или IRAM.
  • 9 лет SUBB A, операнд: Вычтите операнд из сумматора, с одалживают. Примечание там, не вычитают без, одалживают.
  • Да операнд MOV, адрес: Переместите данные из регистра швейцарского франка или IRAM. Opcodes A4 и A5 не используются.
  • CJNE operand,#data,offset: Сравните операнд с непосредственными данными и отделение к PC+offset если не равный. Opcodes B4 и B5 выполняют CJNE A, операнд, возмещают для памяти прямые и непосредственные операнды. Примечание там не, «выдерживают сравнение и подскакивают если равная» инструкция.
  • Сай XCH A, операнд: Обмен (обмен) сумматор и операнд. Opcode C4 не используется.
  • Dy DJNZ операнд, погашение: Декремент операнд и отделение к PC+offset, если результат отличный от нуля. Opcodes D4, D6 и D7 не используются.
  • Ey MOV A, операнд: Переместите операнд в сумматор. Opcode E4 не используется. (Используйте opcode 74 вместо этого.)
  • Fy MOV операнд, A: Переместите сумматор в операнд. Opcode F4 не используется.

Только ДОБАВЛЕНИЕ, ADDC и инструкции SUBB устанавливают флаги PSW. INC, ДЕКАБРЬ и логические инструкции не делают. Инструкции CJNE изменяют бит C только к тому, чтобы одалживать, которое следует из operand1−operand2.

64 opcodes x0–x3, плюс несколько opcodes, не используемые в вышеупомянутом диапазоне, используются для других инструкций с более ограниченными возможностями спецификации операнда:

Одна из причин популярности 8051 — свой диапазон операций на единственных битах. Биты всегда определяются абсолютными адресами; нет никакого косвенного регистром или внесенного в указатель обращения. Инструкции, которые воздействуют на единственные биты:

  • SETB укусил, CLR укусил, CPL укусил: Набор, ясный, или дополнение указанный бит
  • JB укусил, погашение: Скачок, если набор сверл
  • JNB укусил, погашение: Скачок, если бит ясный
  • JBC укусил, погашение: Скачок, если набор сверл и ясный бит
  • MOV C, бит, MOV укусил, C: Переместите указанный бит в нести бит, или наоборот
  • ORL C, бит, ORL C, / бит: ИЛИ бит (или его дополнение) к нести биту
  • ANL C, бит, ANL C, / бит: И бит (или его дополнение) к нести биту
  • XRL C, бит, XRL C, / бит: исключительный — ИЛИ бит (или его дополнение) к нести биту

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

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

Есть различные компиляторы языка программирования высокого уровня для 8051. Несколько компиляторов C доступны для этих 8051, большинство которых позволяет программисту определять, где каждая переменная должна быть сохранена в ее шести типах памяти, и обеспечивают доступ к 8 051 определенной особенности аппаратных средств, таким как многократные банки регистра и инструкции по побитовой обработке. Есть много коммерческих компиляторов C.

SDCC — популярный открытый источник C компилятор.

Другие языки высокого уровня, такие как C ++, Дальше,

ОСНОВНОЙ, Паскаль/Объект Паскаль, PL/M и Modula-2 доступны для этих 8051, но они менее широко используются, чем C и собрание.

Поскольку IRAM, XRAM и PMEM (читает только) у всех есть адрес 0, C компиляторы для 8 051 архитектуры обеспечивают определенный для компилятора pragmas или другие расширения, чтобы указать, где особая часть данных должна быть сохранена (т.е. константы в PMEM или переменных, нуждающихся в быстром доступе в IRAM). Так как данные могли быть в одном из трех мест памяти, механизм обычно обеспечивается, чтобы позволить определять, к которой памяти указатель относится, или вынуждая тип указателя включать место в памяти, или снабжая метаданные указателем.

Связанные процессоры

Предшественник 8051, эти 8048, использовался в клавиатуре первого ПК IBM-PC, где это преобразовало keypresses в последовательный поток данных, который посылают в главную единицу компьютера. 8048 и производные все еще используются для клавишных инструментов базовой модели.

Эти 8031 были сокращением вниз версия оригинального Intel 8051, который не содержал внутренней памяти программы (ROM). Чтобы использовать этот чип, внешний ROM должен был быть добавлен содержащий программу, которую эти 8031 принесут и выполнят. 8 051 чип мог быть продан в качестве ROM меньше 8031, поскольку внутренний ROM 8051 отключен нормальным государством булавки ЗЕМЛИ в дизайне на основе 8031. Продавец мог бы продать 8051 в качестве 8031 для любого числа причин, таких как дефектный кодекс в ROM 8051, или просто переизбыток 8051 и дефицит 8031.

Эти 8052 были расширенной версией оригинальных 8051, которые показали 256 байтов внутренней RAM вместо 128 байтов, 8 КБ ROM вместо 4 КБ и третьего 16-битного таймера. У этих 8032 были эти те же самые особенности за исключением внутренней памяти программы ROM. Большинство современных «совместимых с 8051» микродиспетчеров включает эти особенности.

Intel прекратил своих МГЦ 51 производственная линия в марте 2007; однако, есть много расширенного 8 051 продукта или кремниевой интеллектуальной собственности, добавляемой регулярно от других продавцов.

80C537 и 80C517 версии CMOS, разработанные для автомобильной промышленности. Улучшения главным образом включают новые периферийные особенности и расширили арифметические инструкции. 80C517 имеет предохранительные механизмы, установки подготовки аналогового сигнала и возможности таймера и память программы на чипе. Другие особенности включают:

  • 256-байтовая RAM на чипе
  • 256 непосредственно адресуемых битов
  • Внешняя программа и память данных растяжимых до 64 КБ
  • 8-битный конвертер A/D с 12 мультиплексными входами
  • Арифметическая единица может сделать разделение, умножение, переместить и нормализовать операции
  • Восемь указателей данных вместо одного для косвенного обращения программы и внешней памяти данных
  • Расширенные охранительные средства
  • Девять портов
  • Два полных дуплекса последовательные взаимодействия с собственными генераторами скорости передачи в бодах
  • Четыре приоритетных уровня прерывают системы, 14 векторов перерыва
  • Три способа экономии власти

Продавцы производного числа

Среди

нынешних продавцов МГЦ 51 совместимый процессор больше чем 20 независимых изготовителей включая Atmel, Infineon Technologies (раньше Siemens AG), Максим Интегрэтед Продуктс (через ее Далласский филиал Полупроводника), NXP (раньше Philips Semiconductor), Технология Чипа, Nuvoton (раньше Winbond), СВ. Микроелектроникс, Кремниевые Лаборатории (раньше Cygnal), Texas Instruments, Ramtron International, Кремниевая Технология Хранения, Полупроводник Кипариса и Analog Devices.

ICs или IPS, совместимый с МГЦ 51, были развиты:

Используйте в качестве интеллектуальной собственности

Сегодня, 8051 все еще доступны как дискретные части, но они главным образом используются в качестве кремниевых ядер интеллектуальной собственности. Доступный в языковом исходном коде высокого уровня (VHDL или Verilog) или FPGA netlist формы, эти ядра, как правило, объединяются в пределах встроенных систем в продуктах в пределах от Флэшек к стиральным машинам к сложным системам радиосвязи на чипе. Проектировщики используют 8 051 кремниевое IP ядро, из-за меньшего размера и более низкой власти, по сравнению с 32-битными процессорами как РУКА M ряд, MIPS и BA22.

Современное 8 051 ядро быстрее, чем ранее упакованные версии. Улучшения дизайна увеличили 8 051 работу в то время как сдерживающая совместимость с оригинальными МГЦ 51 набор команд. Оригинальный Intel 8051 достиг 12 тактов за машинный цикл и большинства инструкций, выполненных в одном или двух машинных циклах. Типичная максимальная частота часов 12 МГц означала, что эти старые 8051 могли выполнить один миллион инструкций единственного цикла или 500 000 инструкций с двумя циклами, в секунду. Напротив, увеличил 8 051 кремниевое IP ядро, теперь достигают одного такта за машинный цикл и имеют частоты часов до 450 МГц. Это означает, что совместимый с 8051 процессор может теперь выполнить инструкции в секунду.

MCU, основанный на 8 051

AT83C5134 XC800
  • NXP: NXP700 и ряд NXP900
  • Silicon Labs: ряд C8051
  • Texas Instruments CC111x, CC24xx и семьи CC25xx
RF SoCs

Варианты процессора цифрового сигнала (DSP)

Существуют несколько вариантов с дополнительным 16-битным процессором цифрового сигнала (DSP) (например, для MP3 или OGG, кодирования/расшифровки) максимум с 675 миллионами операций в секунду (MIPS) и интегрированный интерфейс USB 2.0 или как интеллектуальная собственность.

Расширенный 8-битный двойной совместимый микродиспетчер: МГЦ 151 семья

Intel 1996 года объявил о МГЦ 151 семья, до 6 раз более быстрый вариант. 8 051 полностью двойной и совместимый набор команд, но с pipelined центральным процессором, 16-битным внутренним кодовым автобусом и 6x скорость. МГЦ 151 семья была также прекращена Intel, но широко доступна в двойных совместимых и частично расширенных вариантах.

8/16/32-bit двойной совместимый микродиспетчер: МГЦ 251 семья

8051 8/16/32-bit микродиспетчер с 16 МБ (24 бита) адресное пространство и в 6 раз более быстрый цикл инструкции были введены Intel в 1996. Это может выступить как 8 битов 8051, имеет 24-битное внешнее адресное пространство, которое является сегментированным и 32-битным ALU 16 битов шириной с главным образом 8/16/32-bit широкими инструкциями по данным (также процессор Boolean со специальными регистрами/памятью) и большой набор команд CISC, 40 8/16/32-bit регистры с 8 8-битными регистрами в 4 раза, быстро переключающие банки памяти (максимальные 512 адресуемых 8-битных специальных регистров).

Это показывает расширенные инструкции — см. также гида программиста — и более поздние варианты с более высокой работой, также доступной как интеллектуальная собственность (IP). Это — 3-этапный pipelined. МГЦ 251 семья была также прекращена Intel, но широко доступна в двойных совместимых и частично расширенных вариантах от многих изготовителей.

См. также

  • Комплект системного проектирования SDK-51
DS80C390

Дополнительные материалы для чтения

Книги

  • 8 051 Микродиспетчер: Подход Систем; Mazidi, Маккинлей, Mazidi; 648 страниц; 2012; ISBN 978-0135080443.
  • C и 8051; 4-й Выпуск; Томас Шульц; 464 страницы; 2008; ISBN 978-0978399504.
  • 8051/8052 Микродиспетчер: Архитектура, Ассемблер и Установление связи Аппаратных средств; Крэйг Штайнер; 348 страниц; 2005; ISBN 978-1581124590.
  • 8 051 Микродиспетчер: Аппаратные средства, программное обеспечение и Приложения; Calcutt, Кауэн, Parchizadeh; 329 страниц; 2000; ISBN 978-0340677070.
  • Книга Идеи Микродиспетчера: Схемы, Программы и Заявления, показывающие 8052-ОСНОВНОГО Микродиспетчера; Ян Акселсон; 277 страниц; 1994; ISBN 978-0965081900.

Intel

Внешние ссылки

  • Закончите обучающую программу для 8 051 микродиспетчера
  • Набор команд 8 051 микродиспетчера
  • исходный веб-сайт об обучающих программах и симулятор для 8 051
  • Основная 8 051 взаимодействующая схема
  • Общедоступное внедрение VHDL 8051 (Системы Душицы)

ru.knowledgr.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *