Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Stenin Lab / C8051F60-67-устройство МК.pdf
Скачиваний:
196
Добавлен:
10.02.2015
Размер:
5.19 Mб
Скачать

C8051F060/1/2/3/4/5/6/7

После выполнения команды RETI в процедуре обслуживания прерывания от детектора диапазона АЦП2 содержимое регистра SFRNEXT переписывается в регистр SFRPAGE. Теперь CIP-51 может обращаться к SFR регистрам Порта 5 так же, как и до возникновения прерываний. См. рис. 13.8 ниже.

Рисунок 13.8. Стек страниц SFR после возврата из процедуры обслуживания прерывания от детектора диапазона АЦП2

SFR страница 0х02 автоматически выталкивается из стека при выходе из процедуры обслуживания прерывания

Содержимое

регистра

SFRNEXT

загружается в регистр

SFRPAGE

0x0F

(Порт 5)

SFRPAGE

SFRNEXT

SFRLAST

Следует отметить, что в приведенном выше примере все три байта в стеке SFR страниц доступны через регистры специального назначения SFRPAGE, SFRNEXT и SFRLAST. Если стек изменяется во время обслуживания прерывания, то при выходе из прерывания возврат может произойти на SFR страницу, отличную от той, которая была выбрана до вызова прерывания. Прямой доступ к стеку SFR страниц может оказаться полезным в том случае, когда, например, требуется разрешить системам, работающим в реальном (масштабе) времени, управлять переключением контекста между различными задачами.

Загрузка данных в стек SFR страниц происходит лишь при обслуживании прерывания, а извлечение данных из стека SFR страниц происходит лишь при выходе из прерывания (при выполнении команды RETI). Автоматическое переключение SFRPAGE и функционирование стека SFR страниц можно запретить программно путем сброса в 0 бита разрешения автоматического управления страницами SFR (SFRPGEN) в регистре управления SFR страницами (SFRPGCN). См. рис.13.9.

Ред. 1.2

138

C8051F060/1/2/3/4/5/6/7

Рисунок 13.9. Регистр управления страницами SFR: SFRPGCN.

R/W

R/W

R/W

R/W

R/W

 

R/W

R/W

R/W

Значение

-

-

-

-

-

 

-

-

SFRPGEN

при сбросе:

 

 

 

 

 

 

 

 

 

00000001

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

 

Бит 2

Бит 1

Бит 0

 

SFR Адрес: 0x96

 

 

 

 

 

 

 

 

 

SFR страница: F

Биты 7-1: Зарезервированы.

Бит 0: SFRPGEN: Бит разрешения автоматического управления страницами SFR.

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

0:Автоматическое переключение SFR страниц запрещено. CIP-51 не будет автоматически устанавливать необходимую SFR страницу (т.е. ту SFR страницу, которая содержит SFR регистры, связанные с периферийным модулем (функцией), вызвавшем прерывание).

1:Автоматическое переключение SFR страниц разрешено. При возникновении прерывания CIP-51 автоматически установит ту SFR страницу, которая содержит SFR регистры, связанные с периферийным модулем (функцией), вызвавшем прерывание.

Рисунок 13.10. Регистр страницы SFR: SFRPAGE.

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Значение

 

 

 

 

 

 

 

 

при сбросе:

 

 

 

 

 

 

 

 

00000000

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

SFR Адрес: 0x84

 

 

 

 

 

 

 

 

SFR страница: Все

Биты 7-0: SFRPAGE: Регистр страницы SFR.

Этот байт представляет собой страницу SFR, которую CIP-51 использует при чтении или модификации регистров специального назначения.

Запись: Установка SFR страницы.

Чтение: Возвращается номер SFR страницы, которую использует CIP-51.

Если SFRPGEN = 1, то С8051 будет автоматически переключаться на ту SFR страницу, которая содержит SFR регистры, связанные с периферийным модулем (функцией), вызвавшем прерывание, а при выходе из прерывания будет восстанавливаться предыдущая страница (если только стек SFR страниц не был изменен до выхода из прерывания).

SFRPAGE является старшим байтом стека SFR страниц. Только прерывание и возврат из прерывания вызывают загрузку/извлечение данных в стек/из стека SFR страниц (а не чтение/запись регистра SFRPAGE.

139

Ред. 1.2

C8051F060/1/2/3/4/5/6/7

Рисунок 13.11. Регистр следующей страницы SFR: SFRNEXT.

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Значение

 

 

 

 

 

 

 

 

при сбросе:

 

 

 

 

 

 

 

 

00000000

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

SFR Адрес: 0x85

 

 

 

 

 

 

 

 

SFR страница: Все

Биты 7-0: Биты стека SFR страниц: Контекст SFR страниц сохраняется при возникновении прерывания/выходе из прерывания в 3-хбайтном стеке SFR страниц: SFRPAGE является первым элементом этого стека, SFRNEXT – вторым, а SFRLAST – третьим. Байты SFRPAGE, SFRNEXT и SFRLAST можно использовать для изменения контекста в стеке SFR страниц, не вызывая «проталкивания» данных по стеку. Только прерывание и возврат из прерывания вызывают загрузку/извлечение данных в стек/из стека SFR страниц.

Запись: Загружает номер SFR страницы во второй байт стека SFR страниц. В результате при возврате из прерывания в регистр SFRPAGE будет записан этот номер SFR страницы.

Чтение: Возвращается номер SFR страницы, содержащийся во втором байте стека SFR страниц. Это значение будет загружено в регистр SFRPAGE при возврате из прерывания.

Рисунок 13.12. Регистр последней страницы SFR: SFRLAST.

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Значение

 

 

 

 

 

 

 

 

при сбросе:

 

 

 

 

 

 

 

 

00000000

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

SFR Адрес: 0x86

 

 

 

 

 

 

 

 

SFR страница: Все

Биты 7-0: Биты стека SFR страниц: Контекст SFR страниц сохраняется при возникновении прерывания/выходе из прерывания в 3-хбайтном стеке SFR страниц: SFRPAGE является первым элементом этого стека, SFRNEXT – вторым, а SFRLAST – третьим. Байты стека SFR страниц можно использовать для изменения контекста в стеке SFR страниц, не вызывая при этом «проталкивания» стека. Только прерывание и возврат из прерывания вызывают загрузку/извлечение данных в стек/из стека SFR страниц.

Запись: Загружает номер SFR страницы в последний байт стека SFR страниц. В результате при возврате из прерывания в регистр SFRNEXT будет записан этот номер SFR страницы.

Чтение: Возвращается номер SFR страницы, содержащийся в последнем байте стека SFR страниц.

Ред. 1.2

140

C8051F060/1/2/3/4/5/6/7

Таблица 13.2. Распределение регистров специального назначения в памяти

Адрес

 

SFR

 

 

0(8)

 

1(9)

2(A)

3(B)

4(C)

5(D)

6(E)

7(F)

 

 

PAGE

 

 

 

 

 

 

 

 

 

 

 

0

 

 

SPI0CN

 

PCA0L

PCA0H

PCA0CPL0

PCA0CPH0

PCA0CPL1

PCA0CPH1

WDTCN

 

 

 

1

 

 

CAN0CN

 

 

 

 

 

 

 

 

F8

 

 

 

 

 

 

 

 

 

 

(ВСЕ

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СТРА-

 

 

 

3

 

 

DMA0CF

 

DMA0CTL

DMA0CTH

DMA0CSL

DMA0CSH

DMA0BND

DMA0ISW

 

 

 

 

 

 

НИЦЫ)

 

 

 

F

 

 

Р7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

В

 

 

 

 

 

 

EIP1

EIP2

 

 

 

1

 

 

 

 

 

 

 

 

 

F0

 

 

 

(ВСЕ

 

 

 

 

 

 

(ВСЕ

(ВСЕ

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

СТРА-

 

 

 

 

 

 

СТРА-

СТРА-

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

НИЦЫ)

 

 

 

 

 

 

НИЦЫ)

НИЦЫ)

 

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

ADC0CN

 

PCA0CPL2

PCA0CPH2

PCA0CPL3

PCA0CPH3

PCA0CPL4

PCA0CPH4

RSTSRC

 

E8

 

1

 

 

ADC1CN

 

 

 

 

 

 

 

 

 

 

2

 

 

ADC2CN

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

Р6

 

 

 

 

 

 

 

 

 

 

 

0

 

 

ACC

 

PCA0CPL5

PCA0CPH5

 

 

 

EIE1

EIE2

 

 

 

1

 

 

 

 

 

 

 

 

 

E0

 

 

 

(ВСЕ

 

 

 

 

 

 

(ВСЕ

(ВСЕ

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

СТРА-

 

 

 

 

 

 

СТРА-

СТРА-

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

НИЦЫ)

 

 

 

 

 

 

НИЦЫ)

НИЦЫ)

 

 

 

F

 

 

 

XBR0

XBR1

XBR2

XBR3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

PCA0CN

PCA0MD

PCA0CPM0

PCA0CPM1

PCA0CPM2

PCA0CPM3

PCA0CPM4

PCA0CPM5

 

D8

 

1

 

CAN0DATL

CAN0DATH

CAN0ADR

CAN0TST

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

DMA0CN

DMA0DAL

DMA0DAH

DMA0DSL

DMA0DSH

DMA0IPT

DMA0IDT

 

 

 

 

F

 

 

Р5

 

 

 

 

 

 

 

 

 

 

0

 

 

PSW

 

REF0CN

DAC0L

DAC0H

DAC0CN

 

 

 

 

 

 

1

 

 

 

REF1CN

DAC1L

DAC1H

DAC1CN

 

 

 

 

D0

 

 

 

(ВСЕ

 

 

 

 

 

 

2

 

 

 

REF2CN

 

 

 

 

 

 

 

 

 

 

СТРА-

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НИЦЫ)

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

TMR2CN

 

TMR2CF

RCAP2L

RCAP2H

TMR2L

TMR2H

 

SMB0CR

 

C8

 

1

 

 

TMR3CN

 

TMR3CF

RCAP3L

RCAP3H

TMR3L

TMR3H

 

 

 

 

2

 

 

TMR4CN

 

TMR4CF

RCAP4L

RCAP4H

TMR4L

TMR4H

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

Р4

 

 

 

 

 

 

 

 

 

 

 

0

 

 

SMB0CN

 

SMB0STA

SMB0DAT

SMB0ADR

ADC0GTL

ADC0GTH

ADC0LTL

ADC0LTH

 

C0

 

1

 

 

CAN0STA

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

ADC2GTL

ADC2GTH

ADC2LTL

ADC2LTH

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

IP

 

SADEN0

 

AMX0SL

ADC0CF

 

ADC0L

ADC0H

 

 

 

1

 

 

 

 

 

 

ADC1CF

 

ADC1L

ADC1H

 

B8

 

 

 

(ВСЕ

 

 

 

 

 

 

 

2

 

 

 

 

AMX2CF

AMX2SL

ADC2CF

 

ADC2L

ADC2H

 

 

 

 

СТРА-

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НИЦЫ)

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

ADC0CPT

ADC0CCF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

P3

 

 

 

 

 

 

 

FLSCL

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

B0

 

 

 

(ВСЕ

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СТРА-

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НИЦЫ)

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

 

 

FLACL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

IE

 

SADDR0

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

A8

 

 

 

(ВСЕ

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СТРА-

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НИЦЫ)

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

P1MDIN

P2MDIN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

P2

 

EMI0TC

EMI0CN

EMI0CF

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

A0

 

 

 

(ВСЕ

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СТРА-

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НИЦЫ)

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

P0MDOUT

P1MDOUT

P2MDOUT

P3MDOUT

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

SCON0

 

SBUF0

SPI0CFG

SPI0DAT

 

 

 

 

 

98

 

1

 

 

SCON1

 

SBUF1

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

P4MDOUT

P5MDOUT

P6MDOUT

P7MDOUT

 

 

 

 

 

 

0(8)

 

1(9)

2(A)

3(B)

4(C)

5(D)

6(E)

7(F)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

141

Ред. 1.2

C8051F060/1/2/3/4/5/6/7

Таблица 13.2. Распределение регистров специального назначения в памяти

 

 

0

 

 

P1

 

SSTA0

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

90

 

 

 

(ВСЕ

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

СТРА-

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НИЦЫ)

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

 

SFRPGCN

CLKSEL

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

TCON

 

TMOD

TL0

TL1

TH0

TH1

CKCON

PSCTL

88

 

1

 

 

CPT0CN

 

CPT0MD

 

 

 

 

 

 

 

2

 

 

CPT1CN

 

CPT1MD

 

 

 

 

 

 

 

 

3

 

 

CPT2CN

 

CPT2MD

 

 

 

 

 

 

 

 

F

 

 

 

 

 

OSCICN

OSCICL

OSCXCN

 

 

 

 

 

0

 

 

P0

 

SP

DPL

DPH

SFRPAGE

SFRNEXT

SFRLAST

PCON

 

 

1

 

 

 

80

 

 

 

(ВСЕ

 

(ВСЕ

(ВСЕ

(ВСЕ

(ВСЕ

(ВСЕ

(ВСЕ

(ВСЕ

 

2

 

 

 

 

 

 

СТРА-

 

СТРА-

СТРА-

СТРА-

СТРА-

СТРА-

СТРА-

СТРА-

 

 

3

 

 

 

 

 

 

 

НИЦЫ)

 

НИЦЫ)

НИЦЫ)

НИЦЫ)

НИЦЫ)

НИЦЫ)

НИЦЫ)

НИЦЫ)

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0(8)

 

1(9)

2(A)

3(B)

4(C)

5(D)

6(E)

7(F)

Ред. 1.2

142