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

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

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

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

Для приема внешних прерываний служат входы 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.25. Форматы регистров управления прерываниями

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

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

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

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

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

Табл. 11.2

Разряд IE Имя Назначение
EX0 Разрешение IE0 или INT0\
ET0 Разрешение TF0 (таймер T0)
EX1 Разрешение IE1 или INT1\
ET1 Разрешение TF1 (таймер T1)
ES Разрешение TI Ú RI (послед. канал)
ET2 Разрешение TF2 Ú EXF2 (таймер T1)
- Не используется
EA Общее разрешение прерывания

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

Табл. 11.3

Флаг Тип прерывания Адрес подпрограммы
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.25). В разряды 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;

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

Система команд включает 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.4 – Табл. 11.7 приведены мнемокоды команд, длина команды в МЦ,
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.4 – Табл. 11.7 в описании команд указаны соответствующие обозначения. Отсутствие обозначения говорит о том, что данная команда не меняет значений признаков. Символ в фигурных скобках означает, что он относится ко всем командам блока.

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

  Мнемокод МЦ HEX-коды Описание команды
  MOV A, Rn E8 .. EF A Rn
  MOV A, direct E5 A (direct)
  MOV A, @Ri E6 .. E7 A (Ri)
  MOV A, #data A data
  MOV Rn, A F8 .. FF Rn A
  MOV Rn, direct A8 .. AF Rn (direct)
  MOV Rn, #data 78 .. 7F Rn data
  MOV direct, A F5 (direct) A
  MOV direct, Rn 88 .. 8F (direct) Rn
  MOV direct, direct (direct) (direct)
  MOV direct, @Ri 86 .. 87 (direct) (Ri)
  MOV direct, #data (direct) data
  MOV @Ri, A F6 .. F7 (Ri) A
  MOV @Ri, direct A6 .. A7 (Ri) (direct)
  MOV @Ri, #data 76 .. 77 (Ri) data
  MOV DPTR, #data16 DPTR data16
  MOVC A,@A+DPTR A CSEG(A+DPTR)
  MOVC A,@A+PC A CSEG(A+PC)
  MOVX A, @Ri E2 .. E3 A XSEG(P2.Ri)
  MOVX A, @DPTR E0 A XSEG(DPTR)
  MOVX @Ri, A F2 .. F3 XSEG (P2.Ri) A
  MOVX @DPTR, A F0 XSEG (DPTR) A
  PUSH direct C0 +(SP) (direct)
  POP direct D0 (direct) (SP)-
  XCH A, Rn C8 .. CF A « Rn
  XCH A, direct C5 A « (direct)
  XCH A, @Ri C6 .. C7 A « (Ri)
  XCHD A, @Ri D6 .. D7 A[3:0] « (Ri[3:0])

 

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

  Мнемокод МЦ HEX-коды Описание команды
  ANL A, Rn 58 .. 5F A A & Rn
  ANL A, direct A A & (direct)
  ANL A, @Ri 56 .. 57 A A & (Ri)
  ANL A, #data A A & data
  ANL direct, A (direct) (direct) & A
  ANL direct, #data (direct) (direct) & data
  ORL A, Rn 48 .. 4F A A Ú Rn
  ORL A, direct A A Ú (direct)
  ORL A, @Ri 46 .. 47 A A Ú (Ri)
  ORL A, #data A A Ú data
  ORL direct, A (direct) (direct) Ú A
  ORL direct, #data (direct) (direct) Ú data
  XRL A, Rn 68 .. 6F A A Å Rn
  XRL A, direct A A Å (direct)
  XRL A, @Ri 66 .. 67 A A Å (Ri)
  XRL A, #data A A Å data
  XRL direct, A (direct) (direct) Å A
  XRL direct, #data (direct) (direct) Å data
  CLR A E4 A 0000 0000 (Очистка акк.)
  CLP A F4 A A\ (Инверсия аккумулятора)
  RL A Сдвиг левый циклический
  RLC A Сдвиг левый с переносом
  RR A Сдвиг правый циклический
  RRC A Сдвиг правый с переносом
  SWAP A C4 A[7:4] « A[3:0]
  ADD A, Rn 28 .. 2F A A + Rn
  ADD A, direct A A + (direct)
  ADD A, @Ri 26 .. 27 A A + (Ri)
  ADD A, #data A A + data
  ADDC A, Rn 38 .. 3F A A + Rn + CY
  ADDC A, direct A A + (direct) + CY
  ADDC A, @Ri 36 .. 37 A A + (Ri) + CY
  ADDC A, #data A A + data + CY
  SUBB A, Rn 98 .. 9F A A - Rn - CY
  SUBB A, direct A A - (direct) - CY
  SUBB A, @Ri 96 .. 97 A A - (Ri) - CY
  SUBB A, #data A A - data - CY
  INC A A A + 1
  INC Rn 08 .. 0F Rn Rn + 1
  INC direct (direct) (direct) + 1
  INC @Ri 06 .. 07 (Ri) (Ri) + 1
  INC DPTR A3 DPTR DPTR + 1
  DEC A A A - 1
  DEC Rn 18 .. 1F Rn Rn - 1
  DEC direct (direct) (direct) - 1
  DEC @Ri 16 .. 17 (Ri) (Ri) - 1
  MUL AB A4 B.A A × B
  DIV AB A.B A : B
  DA A Десятичная коррекция сложения

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

  Мнемокод МЦ HEX-коды Описание команды
  ACALL addr11 aaa10001 +(SP) PC; PC[10:0] adrr11
  LCALL addr16 +(SP) PC; PC adrr16
  RET PC (SP)-
  RETI PC (SP)-; конец прерывания
  AJMP addr11 aaa00001 PC[10:0] adrr11
  LJMP addr16 PC adrr16
  JMP @A + DPTR PC DPTR +A
  SJMP rel PC PC + rel
  JZ rel if A = 0 then PC PC + rel
  JNZ rel if A ¹ 0 then PC PC + rel
  CJNE A, direct, rel B5 if A ¹ (direct) then PC PC + rel
  CJNE A, #data, rel B4 if A ¹ data then PC PC + rel
  CJNE Rn, #data, rel B8 .. BF if Rn ¹ data then PC PC + rel
  CJNE @Ri,#data, rel B6 .. B7 if (Ri) ¹ data then PC PC + rel
  CJNZ Rn,rel D8 .. DF Rn Rn - 1 if Rn ¹ 0 then PC PC + rel
  CJNE direct, rel D5 (direct) (direct) - 1 if (direct) ¹ 0 then PC PC + rel
  NOP  

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

  Мнемокод МЦ HEX-коды Описание команды
  MOV C, bit A9 CY BSEG(bit)
  MOV bit, C BSEG(bit) CY
  CLR C C3 CY 0
  CLR bit C2 BSEG(bit) 0
  SETB C D3 CY 1
  SETB bit D2 BSEG(bit) 1
  CPL C B3 CY CY\
  CPL bit B2 BSEG(bit) BSEG(bit)\
  ANL C, bit CY CY & BSEG(bit)
  ANL C, bit\ B0 CY CY & BSEG(bit)\
  ORL C, bit CY CY Ú BSEG(bit)
  ORL C, bit\ A0 CY CY Ú BSEG(bit)\
  JC rel if CY = 1 then PC PC + rel
  JNC rel if CY = 0 then PC PC + rel
  JB bit, rel if BSEG(bit) = 1 then PC PC + rel
  JNB bit, rel if BSEG(bit) = 0 then PC PC + rel
  JBC bit, rel if BSEG(bit) = 1 then PC PC + rel и BSEG(bit) 0

 








Дата добавления: 2019-02-07; просмотров: 390;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.