Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лекции - Микропроцессоры и микропроцессорные системы - файл 1.doc


Лекции - Микропроцессоры и микропроцессорные системы
скачать (2465.5 kb.)

Доступные файлы (1):

1.doc2466kb.24.11.2011 12:18скачать

1.doc

1   2   3   4   5   6   7   8   9   10
^

1.25.5.Машинные циклы и синхронизация микро-ЭВМ


Питание микро-ЭВМ ..ВЕ52 осуществляется от одного источника +5В. Кварцевый резонатор 3,5..12 МГц подключается к выводам Х1, Х2; возможно подключение внешнего тактового генератора через Х1.

OSC/2 - основная внутренняя тактовая частота CLK. Первая половина периода CLK - фаза P1, вторая - P2. Каждый машинный цикл состоит из шести периодов CLK: состояний S1, S2, .. S6 или двенадцати периодов OSC, называемых фазами S1P1, S1P2, S2P1, .. S6P, S6P2. Каждый машинный цикл сопровождается генерацией двух стробов ALE длительностью в один период CLK - S1P2..S2P1, S4P2.. S5P1 (Рис. 11.96).

Командный цикл (КЦ) содержит один или два машинных цикла (МЦ) и отсчитывается от S1P1. По фазе S1P2 в IR фиксируется код операции, второй байт двухбайтовой команды читается в S4P2 того же МЦ, третий байт трехбайтовой - в S1P2 следующего МЦ. Таким образом, для ввода каждого байта команды требуется один полуцикл. Во время всех оставшихся полуциклов в фазах S1P2 и S4P2 читается код операции следующей размещенной в памяти команды, однако он не помещается в IR и не инкрементируется PC. Текущий КЦ всегда завершается в S6P2. Вслед за этим начинается S1, в котором в IR вводится новый байт.

Обращение к внешней памяти данных XSEG по команде MOVX требует второго МЦ, в котором не вырабатывается первый строб ALE. На Рис. 11.97 приведена временная диаграмма обращения к XSEG (чтение). Запись в XSEG осуществляется аналогично, кроме того, что вместо сигнала RD формируется WR и на P0 после снятия младшего байта адреса устанавливаются выходные данные (содержимое аккумулятора).

Для приведения ..ВЕ52 в исходное состояние необходимо подать на вход RST импульс H-уровня длительностью не менее 24 периодов OSC (два МЦ) при условии что генератор запущен.
*
) если память программ внешняя

Рис. 11.96. Синхронизация микро-ЭВМ ..ВЕ52

По сбросу большинство внутренних регистров устанавливается в нулевое состояние. Исключение составляют:

  • порты P0..P3 - в FFh;

  • указатель стека SP - в 07.
^

1.25.6.Внешние устройства микро-ЭВМ


К “внешним” устройствам микроЭВМ К1816ВЕ52 отнесем:

  • параллельных двунаправленных порта ввода/вывода P0..P3;

  • буфер SBUF и регистр управления SCON последовательного канала;

  • таймеры/счетчики T0, T1, их регистр управления TCON и регистр режимов TMOD;

  • таймер/счетчик T2, его буферный регистр RCAP2 и регистр управления T2CON;

  • регистры управления подсистемой прерываний: регистр приоритетов IP и регистр маски IE;

  • регистр управления машиной PCON.

Ф
орматы этих регистров и их размещение в пространствах DSEG и BSEG показаны на Рис. 11.98.

Рис. 11.97. Чтение из внешней памяти данных

Поскольку порты ввода/вывода размещены в пространстве DSEG, любая команда с операндом из DSEG применима к содержимому P0-P3, а совмещение с BSEG позволяет иметь доступ к каждому биту портов.

При обращении к внешней памяти порты P0 и P2 выполняют функцию системных шин A/D[7:0] и A[15:8] соответственно. Линии порта P3 используются для передачи управляющих сигналов.

Характерно, что при отсутствии в системе внешней памяти линии управления можно использовать как обычные программируемые линии порта. С другой стороны, пользователь может программировать интерфейс памяти, подавая на выходы RD\, WR\, PSEN\ импульсы произвольной длительности.

Буферы портов P0..P2 ..ВЕ52 отличаются от соответствующих буферов ..ВЕ48. Структура разрядов порта Р0 и Р3 приведены на Рис. 11.99 и Рис. 11.100. При обращении к внешним объектам содержимое буфера P2 не меняется, а P0 устанавливается в FF. Каждый линия P0..P3 может быть использована в качестве выходной независимо от других. Для перевода линии в режим ввода в соответствующий разряд выходного регистра должна быть записана “1”. Для использования линий P3 для управления соответствующий разряд должен быть установлен в “1” (Рис. 11.100), иначе на выходе всегда будет “0”.





7

6

5

4

3

2

1

0





Параллельные


87


86


85


84


83


82


81


80

P0

(80)



порты


97


96


95


94


93


92

T2EX

91

T2

90

P1

(90)


ввода/вывода


A7


A6


A5


A4


A3


A2


A1


A0

P2

(A0)




RD

B7

WR

B6

T1

B5

T0

B4

INT1

B3

INT0

B2

TxD

B1

RxD

B0

P3

(B0)




Буфер и регистр управления

SBUF

(99)

/состояния

последов. порта

SM0

9F

SM1

9E

SM29D

REN9C

TB89B

RB8

9A

TI

99

RI

98

SCON

(98)







T0L

(8A)




T0H

(8B)




T1L

(8C)




T1H

(8D)

Регистр управ-

T1 MOD

T0 MOD

TMOD

ления режимом

GTE

C/T

M1

M0

GTE

C/T

M1

M0

(89)

Регистр управ-

лен. таймерами

TF1

8F

TR1

8E

TF0

8D

TR0

8C

IE1

8B

IT1

8A

IE0

89

IT0

88

TCON

(88)




RCAP2L

(CA)




RCAP2H

(CB)




T2L

(CC)




T2H

(CD)

Регистр упр.

таймером Т2

TF2

CF

EXF2

CE

RCLK

CD

TCLK

CC

EXN2

CB

TR2

CA

C/T2

C9

CP/R

C8

T2CON

(C8)




Регистр маски

прерываний

EA

AF

-

AE

ET2

AD

ES

AC

ET1

AB

EX1

AA

ET0

A9

EX0

A8

IE

(A8)

Регистр

приоритетов
прерываний

-

BF

-

BE

PT2

BD

PS

BC

PT1

BB

PX1

BA

PT0

B9

PX0

B8

IP

(B8)




Рг.управл.(87)

SMD

-

-

-

GF1

GF0

PD

IDL

PCON

Рис. 11.98. Размещение регистров внешних устройств в DSEG и BSEG и форматы регистров

При сбросе микро-ЭВМ все регистры портов устанавливаются в состояние FF.

Линии порта P0 - с открытым стоком, P1..P3 имеют встроенную нагрузку.

З
апись результата операции в порты P0..P3 проходит по фазе S6P2, однако на выходе порта новые значения появляются по S1P1. При записи в порты P1..P3 информации, требующей перехода “0”  “1”, через выходную цепь в течение S1 пропускается импульс тока, амплитуда которого в 100 раз превышает номинальное значение, что обеспечивает повышение скорости переключения состояния выходных линий. Порт P0 таким свойством не обладает.
Рис. 11.99. Разряд порта Р0

Выходы P1..P3 обеспечивают нагрузку для четырех маломощных ТТЛ-входов (выходной ток - 1,6 мA). Нагрузочная способность выходов P0 - 3,2 мA, однако для их работы требуются внешние нагрузочные резисторы.

Считывание данных, присутствующих на входах P0, P1 выполняется по фазе S5P1 последнего машинного цикла команды, а со входов P2, P3 - по фазе S5P2.
^

1.25.7.Описание последовательного порта.


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

  • режим "0" - синхронный ввод/вывод с частотой OSC/12;

  • режим "1" - асинхронный с 8-бит. кадром, частота kf;

  • режим "2" - асинхронный с 9-бит. кадром, частота kOSC/32;

  • режим "3" - асинхронный с 9-бит. кадром, частота kf;

где k {1, 1/2}, f - частота переполнения T1 (fov), деленная на 16.

В
ходные и выходные данные хранятся в регистре SBUF(99), управление работой приемопередатчиков осуществляется словом состояния и управления SCON (98), формат которого представлен в Табл. 11.38.

Рис. 11.100. Разряд порта Р3

В режиме "0" (синхронный) данные передаются или принимаются по линии RxD со скоростью OSC/12 младшими битами вперед по 8 бит за операцию. Для синхронизации внешних средств используется линия TxD (Рис. 11.101)

Табл. 11.38

№ бита

Имя

Назначение



RI

Флаг прерывания приемника



TI

Флаг прерывания передатчика



RB8

8 бит приемника (реж. 2 и 3)



TB8

8 бит передатчика (реж. 2 и 3)



REN

Разрешение приема



SM2

Запрещение приема кодов с b8 = 0



SM1

00 - "0"

10 - "2"



SM0

01 - "1"

11 - "3"

Передача инициируется всякий раз, когда в новые данные записываются в буфер SBUF. Признаком окончания передачи служит установка флага TI.

Операция ввода активизируется при разрешенном приеме (REN = 1) по сбросу RI. Установка RI свидетельствует о готовности введенных данных для считывания из буфера SBUF.

В
режиме 1..3 реализуется асинхронный обмен данными. Кадр для передачи в режиме 1 показан на Рис. 11.102. Кадры для режимов 2 и 3 отличаются наличием девятого бита D8, следующего за D7 перед стоповым битом.

Рис. 11.101. Прием/передача в синхронном режиме

Д
ля повышения помехоустойчивости приема в режимах 1..3 каждый бит данных опрашивается трижды. Для этого период передачи бита делится на 16 интервалов и опросы осуществляются в 7, 8, 9 интервалах; значение бита определяется мажорированием. До прихода стартового бита приемник RxD проверяется 16 раз за период. При обнаружении перехода "H"  "L" начинается отсчет. Если стартовый бит не подтверждается (опрос 3 раза), то переход принимается за помеху. При обнаружении стартового бита осуществляется прием следующих 8 или 9 битов (в зависимости от режима) и размещение их в SBUF и флажке RB8. При приеме стопового бита устанавливается флаг RI, свидетельствующий об окончании приема очередного кадра.

Рис. 11.102. Кадр передачи в режиме 1

Передача данных на выход TxD начинается после записи их в SBUF независимо от флага TI. Передача стартового бита начинается в фазе S1P1 МЦ, следующего за сигналом переполнения того счетчика, который служит генератором скорости. Кадр завершается выдачей стопового бита. Перед началом передачи стоп-бита устанавливается флаг TI - окончание передачи данных.

Флажки RI и TI способны осуществлять запросы на прерывания, причем в режимах 1..3 при SM2 = 1 установка флага RI (и генерация запроса) возможна только при приеме кадра с D8 = 1. Для режима 1 это соответствует приему стопового бита. Таким образом имеется возможность (в режимах 2 и 3) разделять принимаемые кадры на два класса (по D8  RB8). Кадры, принимаемые с RB8 = 0 теряются. Это дает возможность эффективно управлять межмашинной связью в сетях с единой последовательной магистралью. Кадры с RB8 = 1 - широковещательные и содержат адрес приемника, информация которому будет передаваться кадрами с RB8 = 0. Для вызова другого абонента следует передать новый кадр с RB8 = 1.

Скорость передачи зависит от состояния флага SMOD в регистре PCON (87), режима работы канала и длительности периода пересчета таймера-генератора скорости.

Для режима 2: при SMOD = 1 - скорость OSC/32;

SMOD = 0 - скорость OSC/64.

В режимах 1 и 3 скорость передачи определяется частотой переполнения таймера T1(fov) следующим образом:

f = (2SMOD/32)  fov .

При использовании таймера T1 в режиме автозагрузки скорость последовательного обмена определяется по следующей формуле:

f = (2SMOD  fOSC)/(32  12 [256 - (тн)]).

В случае SMOD = 1 скорость совпадает с частотой переполнения таймера, при SMOD = 0 - скорость в два раза ниже.

1.25.8.Таймеры-счетчики


В состав ..ВЕ51 входят два 16-разрядных таймера/счетчика T0, T1. Состояние таймеров/ счетчиков (далее для краткости - таймеров) отображается регистровыми парами TiH-TiL в пространстве DSEG.

В режиме таймеров осуществляется пересчет тактовых сигналов с частотой OSC/12, а в режиме счетчиков подсчитываются переходы с H-уровня в L-уровень на соответствующих входах T0, T1. Вход тестируется в течение S5P2 каждого машинного цикла. При обнаружении состояния "1" в одном цикле и "0" - в следующем к соответствующему счетчику добавляется 1. В фазе S3P1 следующего цикла модифицированное значение счетчика отображается в регистровой паре. Т.к. процедура обнаружения перехода длится 2 машинных цикла, максимальная частота счета не должна превышать OSC/24 и каждый уровень должен удерживаться неизменным min в течение одного машинного цикла.

Функционирование таймера T2 несколько отличается от работы T0, T1.

Управление режимом работы T0, T1 осуществляет регистр TMOD (89), формат которого приведен на Рис. 11.103.

Регистр управления режимом

T1 MOD

T0 MOD

TMOD

(89)

GTE

C/T

M1

M0

GTE

C/T

M1

M0

Регистр управления таймерами

TF1

8F

TR1

8E

TF0

8D

TR0

8C

IE1

8B

IT1

8A

IE0

89

IT0

88

TCON

(88)

Рис. 11.103. Форматы регистров TCON и TMOD.

Регистр разбит на два 4-разрядных подрегистра одинакового формата :

T0MOD = TMOD[3:0], T1MOD = TMOD[7:4].

Поля регистра TiMOD:

  • M[1:0] - код режима работы таймеров;

  • C/T - выбор функции: 0 - таймер, 1 - счетчик;

  • GATE - флаг управления работой, при GATE = 1 работа разрешена, если (INT=1)&(TR=1) (см. TCON), иначе работа зависит только от TR.

Управление работой T0, T1 обеспечивается регистром TCON (88) (аналогично TMOD разбитому на два одинаковых подрегистра).

П
оля регистра TiCON:

  • IT - управление типом входа внешнего прерывания, 0 - динамический по срезу, 1 - статический;

  • IE - флаг запроса внешнего прерывания при динамическом входе, при подтверждении прерывания сбрасывается;

  • TR - флаг программного запуска/останова таймера/счетчика;

  • TF - флаг переполнения, вызывающий запрос прерывания, при подтверждении прерывания сбрасывается.

Рис. 11.104. Работа таймеров/счетчиков в режимах “0” и “1”

Таймеры T0, T1 могут работать в одном из четырех режимов, схемы работы в которых показаны на Рис. 11.104, Рис. 11.105, Рис. 11.106.

Режим "0" отличается от режима "1" длиной счетчика (13 бит для "0" и 16 - для "1"). Три старших разряда TjL в режиме "0" игнорируются. Установка GATE = 1 дает возможность таймеру измерить ширину импульса INTj.
В
режиме "2" в восьмиразрядный счетчик TjL производится автозагрузка из TjH. Сигнал переполнения устанавливает флаг TFj и перезагружает TjH  TjL. Следует иметь в виду, что программная установка флага TFj не вызывает перезагрузки. Перезагрузка TjH  TjL не меняет содержимого TjH.

Рис. 11.105. Работа таймеров/счетчиков в режиме “2”

В
режиме "3" T0 и T1 работают по разному. T1 в этом режиме заблокирован и просто сохраняет свое состояние (значение в регистрах Т1L и T1H), как и в случае TR1 = 0.

Рис. 11.106. Режим “3” для Т0

T0 работает как два независимых 8-разрядных таймера, причем T0L может работать как в режиме таймера, так и в режиме счетчика. За ним сохраняются все биты управления T0, он реагирует на воздействия по входам T0, INT0\, устанавливает флаг TF0.

T0H может работать только в режиме таймера. Он использует бит включения TR1, при переполнении выставляет флаг TF1. Других битов управления устройство в этом режиме не имеет.

Установка Т0 в режим “3” лишает Т1 бита включения TR1, поэтому в этом случае Т1 в режимах “0”, “1”, “2” при GATE = 0 всегда включен и при переполнении в режимах “0” и “1” обнуляется, а в режиме “2” перезагружается, не устанавливая флаг. Управление от входов INT\, T1, биты управления C/T1, GATE1 не зависят от режима Т0.

Т1 аппаратно связан с блоком синхронизации последовательного канала. При работе в режимах “0”, “1”, “2” Т1 всегда вырабатывает импульс тактирования последовательного канала (который канал может и не использовать).

^ 16-разрядный таймер/счетчик T2 обладает дополнительными возможностями по сравнению с T0, T1.

Помимо регистровой пары T2H.T2L (8B.8A), отображающей состояние таймера/счетчика, предусмотрена регистровая пара RCAP2 (H - CBh, L - CAh), в которую осуществляется автозахват и из которой осуществляется автозагрузка T2. Для внешнего управления процессами автозахвата/автозагрузки предусмотрен дополнительный вход T2EX.

Управление работой T2 осуществляется с помощью регистра T2CON (C8), формат которого приведен на Рис. 11.107.




RCAP2L

(CAh)




RCAP2H

(CBh)




T2L

(CCh)




T2H

(CDh)

Регистр управл.

таймером Т2

TF2

CF

EXF2

CE

RCLK

CD

TCLK

CC

EXN2

CB

TR2

CA

C/T2

C9

CP/R

C8

T2CON

(C8h)

Рис. 11.107. Регистры таймера Т2

Разряды регистра T2CON имеют следующее назначение:

CP/RL2 - флаг захвата/автозагрузки T2. При CP/RL2 = 1 захват текущего состояния осуществляется по срезу T2EX, если EXEN2 = 1. При CP/RL = 0 разрешается автозагрузка T2, если T2 переполнен или по срезу T2EX, если EXEN2 = 1. Этот флаг не принимается во внимание, если RCLK = 1 или TCLK = 1, т.е. когда T2 работает в качестве генератора скорости последовательного канала;

C/T2 - управление функцией таймера (0) или счетчика (1);

TR2 - программный запуск T2 при TR2 = 1 и останов по TR2 = 0;

EXEN2 - флаг разрешения (по “1”) динамическому (\__) входу осуществлять захват/автозагрузку, если он не работает в режиме генератора скорости последовательного порта;

TCLK - при TCLK = 1 T2 служит генератором скорости для передатчика последовательного канала, работающего в режиме “1” или “3”. При TCLK = 0 генератором скорости служит T1;

RCLK - то же для приемника последовательного канала;

EXF2 - флаг выполнения захвата/автозагрузки, вызванного изменением состояния на входе T2EX при EXEN2 = 1. При разрешенном прерывании вызывает запрос. Сбрасывается только программно;

TF2 - флаг переполнения T2. Вызывает запрос на прерывание. Функции установки подавляются при TCLK = 1 или RCLK = 1.

Режимы работы T2 (их три) определяются состоянием разрядов 4, 5 и 0 регистра T2CON.

RCLK \/ TCLK = 1 - режим генератора скорости последовательного канала. В этом случае остальные флаги режимов игнорируются, а выработка запроса прерывания по переполнению подавляется;

CP/RL = 1 - режим захвата;

CP/RL = 0 - режим автозагрузки.

^ Режим захвата осуществляется путем копирования текущего состояния T2 в регистры RCAP2 по отрицательному перепаду (\__) импульса на входе T2EX при условии EXEN2 = 1. Захват сопровождается установкой флага EXF2.

В режиме автозагрузки каждое переполнение T2 вызывает установку TF2 и перезагрузку RCAP2  T2. Перезагрузку можно осуществить и от внешнего источника - по отрицательному перепаду сигнала на входе T2EX (при условии EXEN2 = 1), причем такая перезагрузка сопровождается установкой флага EXF2.
^

1.25.9.Подсистема прерываний


Архитектура ..ВЕ51/52 поддерживает двухуровневую радиальную приоритетную подсистему прерываний (ПП) с шестью источниками запросов. Программное управление ПП осуществляется через два 8-разрядных регистра

  • IP (B8) - Interrupt Priority - регистр приоритетов прерываний;

  • IE (A8) - Interrupt Enable - регистр разрешения прерываний, форматы которых представлены на Рис. 11.108

Для приема внешних прерываний служат входы INT0\, INT1\, которые могут быть независимо друг от друга запрограммированы на срабатывание как по переходу "H" "L", так и по
L-уровню. Управление типом входа осуществляется значениями IT0 и IT1 - соответственно разряды 0 и 2 регистра TCON. При TI = 1 устанавливается режим фиксации запроса по спаду (\__) сигнала на входе INT, иначе - по низкому уровню на этом входе.

Регистр разрешения прерываний

EA

AF

-

AE

ET2

AD

ES

AC

ET1

AB

EX1

AA

ET0

A9

EX0

A8

IE

(A8)

Регистр приоритетов прерываний

-

BF

-

BE

PT2

BD

PS

BC

PT1

BB

PX1

BA

PT0

B9

PX0

B8

IP

(B8)

Рис. 11.108. Форматы регистров управления прерываниями

Запросы INT[1:0] устанавливают флажки IE[1:0] - разряды 1 и 3 регистра TCON соответственно. В случае работы по спаду INT эти флажки сбрасываются автоматически при начале обслуживания прерывания, при работе по уровню флажки отслеживают состояния соответствующих входов INT.

Источниками внутренних запросов могут служить сигналы переполнения таймеров T0, T1, Т2 и сигнал окончания работы последовательного канала.

Флажки внутренних запросов от таймеров сбрасываются аппаратно при начале обслуживания прерывания, а флажки последовательного канала TI и RI сохраняются для уточнения источника прерывания программными средствами (т.к. и приемник и передатчик последовательного канала используют общий запрос) и могут быть сброшены программно.

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

Каждый из источников запросов может быть замаскирован с помощью разряда регистра маски IE. В Табл. 11.39 приведено назначение разрядов этого регистра. Прерывание разрешается при наличии “1” в соответствующем разряде регистра IE.

Табл. 11.39

Разряд IE

Имя

Назначение

0

EX0

Разрешение IE0 или INT0\

1

ET0

Разрешение TF0 (таймер T0)

2

EX1

Разрешение IE1 или INT1\

3

ET1

Разрешение TF1 (таймер T1)

4

ES

Разрешение TI  RI (послед. канал)

5

ET2

Разрешение TF2  EXF2 (таймер T1)

6

-

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

7

EA

Общее разрешение прерывания

Таким образом, в ПП ..ВЕ51 имеют место следующие радиальные запросы (каждый из которых, как отмечалось выше, может быть установлен и программно):

Табл. 11.40

Флаг

Тип прерывания

Адрес подпрограммы

IE0

внешнее прерывание INT0\

0003h

TF0

прерывание от таймера T0

000Bh

IE1

внешнее прерывание INT1\

0013h

TF1

прерывание от таймера T1

001Bh

RITI

флаг последовательного порта

0023h

TF2 EXF2

прерывание от таймера Т2 или по факту захвата/автозагрузки

002Bh

Эти запросы могут быть:

  1. запрещены все - при IE[7] = 0;

  2. произвольно замаскированы разрядами регистра IE[4:0];

  3. произвольно разбиты на два непересекающихся подмножества прерываний с высшим и низшим приоритетом обслуживающих подпрограмм.

Разбиение на два подмножества по приоритетам программ осуществляется с помощью разрядов регистра IP[4:0] (см. Рис. 11.108). В разряды IP, соответствующие прерываниям, отнесенным к высшему приоритету, следует установить "1", к низшему - "0".

Процедура обслуживания низкоприоритетного запроса может быть прервана высокоприоритетным запросом; обслуживание высокоприоритетного запроса не прерывается.

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

IE0  TF0  IE1  TF1  RITI  TF2EXF2.

высший низший

Запросы могут быть приняты на обслуживание в конце каждого КЦ, кроме циклов исполнения команды RETI или команд с любым видом доступа к регистрам IE и IP. При фиксации запроса аппаратно генерируется команда LCALL vect. Процедура обслуживания прерывания должна заканчиваться командой RETI.

В состав ..ВЕ52 входит регистр управления - PCON (Power Control), формат которого зависит от технологии изготовления БИС. В БИС, реализованных по n-МОП технологии, задействован только один разряд PCON[7] - SMOD, определяющий скорость работы последовательного канала (“1” - двойная скорость).

В КМОП-БИС предусмотрены разряды управления режимом потребления мощности. При выключенном источнике питания +5В ..ВЕ52/51 может сохранять содержимое внутренней памяти данных (пространства DSEG). При этом напряжение резервного источника подается на вход RST, а ток, потребляемый от него, очень мал. При восстановлении основного питания резервный источник должен оставаться включенным еще два машинных цикла, в течение которых выполняется сброс системы.

Для перехода в режим с малым потреблением используется флаги PD (PCON[1]) и IDL (PCON[0]). При установке IDL работа генератора не прекращается, а следовательно работают все внутренние устройства. При установке PD останавливается генератор.

Выход из IDL - по сбросу или прерыванию, выход из PD только по сбросу.

В состав регистра PCON включены так же два общецелевых флажка GF0 и GF1.

Все управляющие регистры, кроме PCON, совмещены с битовым пространством BSEG. При сбросе все управляющие регистры обнуляются, кроме нижеследующих:

IP (..ВЕ51) - ххх0 0000; SBUF - хххх хххх;

IP (..ВЕ52) - хх00 0000; PCON (n-MOP)- 0ххх хххх;

IE (..ВЕ51) - 0хх0 0000; PCON (КMOP) - 0ххх 0000.

IE (..ВЕ52) - 0х00 0000;
^

1.25.10.Система команд


Система команд включает 111 команд - однобайтовых (49), двухбайтовых (45) и трехбайтовых (17). Все команды выполняются за 1 или 2 МЦ (12 тактов CLK), за исключением команд умножения и деления MUL и DIV, для выполнения которых требуется 4 МЦ. Большинство двухбайтовых команд - одноцикловые, а все трехбайтовые двухцикловые. За один МЦ в ..ВЕ52 можно вводить до двух байтов программного кода.

В микро-ЭВМ предусмотрена прямая (direct), косвенная (через R0, R1 или DPTR) и непосредственная (# data) адресация элементов DSEG и RSEG, прямая адресация элемента BSEG, косвенная (через R0, R1 или DPTR) адресация XSEG.

Все множество команд разбито на 5 групп: пересылки (28), логические (25), арифметические (24), передачи управления (17) и битового процессора (17).

В Табл. 11.41 – Табл. 11.44 приведены мнемокоды команд, длина команды в МЦ,
HEX-коды и описание команды. В таблицах использованы следующие обозначения:

A,B

- аккумулятор, дополнительный аккумулятор;

Rn

- регистр общего назначения (n = 0..7);

@Ri

- косвенный адрес через Ri (i = 0,1);

direct

- прямой адрес DSEG (8 бит);

#data

- непосредственный операнд длиной 8 бит;

#data16

- непосредственный операнд длиной 16 бит;

addr11

- адрес перехода длиной 11 бит;

addr16

- адрес перехода длиной 16 бит;

rel

- смещение на странице CSEG длиной 8 бит;

bit

- прямой адрес BSEG (номер бита).

В командах возможны следующие варианты формирования признаков

[1] - P

[2] - CY, P

[3] - CY, AC, OV, P

[4] - OV, P, CY  0

[5] - CY

В Табл. 11.41 – Табл. 11.44 в описании команд указаны соответствующие обозначения. Отсутствие обозначения говорит о том, что данная команда не меняет значений признаков. Символ в фигурных скобках означает, что он относится ко всем командам блока.

Табл. 11.41. Команды пересылки




Мнемокод

МЦ

HEX-коды

Описание команды




MOV A, Rn

1

E8 .. EF

A  Rn




MOV A, direct

1

E5

A  (direct)




MOV A, @Ri

1

E6 .. E7

A  (Ri)




MOV A, #data

1

74

A  data




MOV Rn, A

1

F8 .. FF

Rn  A




MOV Rn, direct

2

A8 .. AF

Rn  (direct)




MOV Rn, #data

1

78 .. 7F

Rn  data




MOV direct, A

1

F5

(direct)  A




MOV direct, Rn

2

88 .. 8F

(direct)  Rn




MOV direct, direct

2

85

(direct)  (direct)




MOV direct, @Ri

2

86 .. 87

(direct)  (Ri)




MOV direct, #data

2

75

(direct)  data




MOV @Ri, A

1

F6 .. F7

(Ri)  A




MOV @Ri, direct

2

A6 .. A7

(Ri)  (direct)




MOV @Ri, #data

1

76 .. 77

(Ri)  data




MOV DPTR, #data16

2

90

DPTR  data16




MOVC A,@A+DPTR

2

93

A  CSEG(A+DPTR)




MOVC A,@A+PC

2

83

A  CSEG(A+PC)




MOVX A, @Ri

2

E2 .. E3

A  XSEG(P2.Ri)




MOVX A, @DPTR

2

E0

A  XSEG(DPTR)




MOVX @Ri, A

2

F2 .. F3

XSEG (P2.Ri)  A




MOVX @DPTR, A

2

F0

XSEG (DPTR)  A




PUSH direct

2

C0

+(SP)  (direct)




POP direct

2

D0

(direct)  (SP)-




XCH A, Rn

1

C8 .. CF

A  Rn




XCH A, direct

1

C5

A  (direct)




XCH A, @Ri

1

C6 .. C7

A  (Ri)




XCHD A, @Ri

1

D6 .. D7

A[3:0]  (Ri[3:0])


Табл. 11.42. Логические и арифметические команды




Мнемокод

МЦ

HEX-коды

Описание команды




ANL A, Rn

1

58 .. 5F

A  A  Rn




ANL A, direct

1

55

A  A  (direct)




ANL A, @Ri

1

56 .. 57

A  A  (Ri)




ANL A, #data

1

54

A  A  data




ANL direct, A

1

52

(direct)  (direct)  A




ANL direct, #data

2

53

(direct)  (direct)  data




ORL A, Rn

1

48 .. 4F

A  A  Rn




ORL A, direct

1

45

A  A  (direct)




ORL A, @Ri

1

46 .. 47

A  A  (Ri)




ORL A, #data

1

44

A  A  data




ORL direct, A

1

42

(direct)  (direct)  A




ORL direct, #data

2

43

(direct)  (direct)  data




XRL A, Rn

1

68 .. 6F

A  A  Rn




XRL A, direct

1

65

A  A  (direct)




XRL A, @Ri

1

66 .. 67

A  A  (Ri)




XRL A, #data

1

64

A  A  data




XRL direct, A

1

62

(direct)  (direct)  A




XRL direct, #data

2

63

(direct)  (direct)  data




CLR A

1

E4

A  0000 0000 (Очистка акк.)




CLP A

1

F4

A  A\ (Инверсия аккумулятора)




RL A

1

23

Сдвиг левый циклический




RLC A

1

33

Сдвиг левый с переносом




RR A

1

03

Сдвиг правый циклический




RRC A

1

13

Сдвиг правый с переносом




SWAP A

1

C4

A[7:4]  A[3:0]




ADD A, Rn

1

28 .. 2F

A  A + Rn




ADD A, direct

1

25

A  A + (direct)




ADD A, @Ri

1

26 .. 27

A  A + (Ri)




ADD A, #data

1

24

A  A + data




ADDC A, Rn

1

38 .. 3F

A  A + Rn + CY




ADDC A, direct

1

35

A  A + (direct) + CY




ADDC A, @Ri

1

36 .. 37

A  A + (Ri) + CY




ADDC A, #data

1

34

A  A + data + CY




SUBB A, Rn

1

98 .. 9F

A  A - Rn - CY




SUBB A, direct

1

95

A  A - (direct) - CY




SUBB A, @Ri

1

96 .. 97

A  A - (Ri) - CY




SUBB A, #data

1

94

A  A - data - CY




INC A

1

04

A  A + 1




INC Rn

1

08 .. 0F

Rn  Rn + 1




INC direct

1

05

(direct)  (direct) + 1




INC @Ri

1

06 .. 07

(Ri)  (Ri) + 1




INC DPTR

1

A3

DPTR  DPTR + 1




DEC A

1

14

A  A - 1




DEC Rn

1

18 .. 1F

Rn  Rn - 1




DEC direct

1

15

(direct)  (direct) - 1




DEC @Ri

1

16 .. 17

(Ri)  (Ri) - 1




MUL AB

4

A4

B.A  A × B




DIV AB

4

84

A.B  A  B




DA A

1

74

Десятичная коррекция сложения

Табл. 11.43. Команды передачи управления




Мнемокод

МЦ

HEX-коды

Описание команды




ACALL addr11

2

aaa10001

+(SP)  PC; PC[10:0]  adrr11




LCALL addr16

2

12

+(SP)  PC; PC  adrr16




RET

2

22

PC  (SP)-




RETI

2

32

PC  (SP)-; конец прерывания




AJMP addr11

2

aaa00001

PC[10:0]  adrr11




LJMP addr16

2

02

PC  adrr16




JMP @A + DPTR

2

73

PC  DPTR +A




SJMP rel

2

80

PC  PC + rel




JZ rel

2

60

if A = 0 then PC  PC + rel




JNZ rel

2

70

if A  0 then PC  PC + rel




CJNE A, direct, rel

2

B5

if A  (direct) then PC  PC + rel




CJNE A, #data, rel

2

B4

if A  data then PC  PC + rel




CJNE Rn, #data, rel

2

B8 .. BF

if Rn  data then PC  PC + rel




CJNE @Ri,#data, rel

2

B6 .. B7

if (Ri)  data then PC  PC + rel




CJNZ Rn,rel

2

D8 .. DF

Rn  Rn - 1

if Rn  0 then PC  PC + rel




CJNE direct, rel

2

D5

(direct)  (direct) - 1

if (direct)  0 then PC  PC + rel




NOP

1

00




Табл. 11.44. Булевые команды




Мнемокод

МЦ

HEX-коды

Описание команды




MOV C, bit

1

A9

CY  BSEG(bit)




MOV bit, C

1

92

BSEG(bit)  CY




CLR C

1

C3

CY  0




CLR bit

1

C2

BSEG(bit)  0




SETB C

1

D3

CY  1




SETB bit

1

D2

BSEG(bit)  1




CPL C

1

B3

CY  CY\




CPL bit

1

B2

BSEG(bit)  BSEG(bit)\




ANL C, bit

2

82

CY  CY  BSEG(bit)




ANL C, bit\

2

B0

CY  CY  BSEG(bit)\




ORL C, bit

2

72

CY  CY  BSEG(bit)




ORL C, bit\

2

A0

CY  CY  BSEG(bit)\




JC rel

2

40

if CY = 1 then PC  PC + rel




JNC rel

2

50

if CY = 0 then PC  PC + rel




JB bit, rel

2

20

if BSEG(bit) = 1

then PC  PC + rel




JNB bit, rel

2

30

if BSEG(bit) = 0

then PC  PC + rel




JBC bit, rel

2

10

if BSEG(bit) = 1 then

PC  PC + rel и BSEG(bit)  0
1   2   3   4   5   6   7   8   9   10



Скачать файл (2465.5 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации