F40-43a (1041604), страница 25
Текст из файла (страница 25)
Теперь CIP-51 может обращатьсяк SFR регистрам Порта 5 так же, как и до возникновения прерываний. См. рис. 12.8 ниже.Рисунок 12.8. Стек страниц SFR после возврата из процедуры обслуживанияпрерывания от детектора диапазона АЦП2SFR страница 0х02 автоматическивыталкивается из стека при выходеиз процедуры обслуживанияпрерывания0x0FSFRPAGEСодержимоерегистраSFRNEXTзагружаетсяв регистрSFRPAGE(Порт 5)SFRNEXTSFRLASTСледует отметить, что в приведенном выше примере все три байта в стеке SFR страниц доступны черезрегистры специального назначения SFRPAGE, SFRNEXT и SFRLAST. Если стек изменяется во времяобслуживания прерывания, то при выходе из прерывания возврат может произойти на SFR страницу, отличнуюот той, которая была выбрана до вызова прерывания.
Прямой доступ к стеку SFR страниц может оказатьсяполезным в том случае, когда, например, требуется разрешить системам, работающим в реальном (масштабе)времени, управлять переключением контекста между различными задачами.Загрузка данных в стек SFR страниц происходит лишь при обслуживании прерывания, а извлечениеданных из стека SFR страниц происходит лишь при выходе из прерывания (при выполнении команды RETI).Автоматическое переключение SFRPAGE и функционирование стека SFR страниц можно запретитьпрограммно путем сброса в 0 бита разрешения автоматического управления страницами SFR (SFRPGEN) врегистре управления SFR страницами (SFRPGCN). См.
рис.12.9.133Ред. 1.3C8051F040/1/2/3Рисунок 12.9. Регистр управления страницами SFR: SFRPGCN.R-R-R-R-R-R-Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2R-R/WSFRPGENБит 1Бит 0Значениепри сбросе:00000001SFR Адрес: 0x81SFR страница: ВсеБиты 7-1: Зарезервированы.Бит 4:SFRPGEN: Бит разрешения автоматического управления страницами SFR.После возникновения прерывания произойдет переход на соответствующую процедуруобслуживания прерывания и автоматически будет переключена SFR страница. Этот битиспользуется для управления функцией автоматического переключения SFR страниц.0: Автоматическое переключение SFR страниц запрещено.
CIP-51 не будет автоматическиустанавливать необходимую SFR страницу (т.е. ту SFR страницу, которая содержит SFR регистры,связанные с периферийным модулем (функцией), вызвавшем прерывание).1: Автоматическое переключение SFR страниц разрешено. При возникновении прерывания CIP-51автоматически установит ту SFR страницу, которая содержит SFR регистры, связанные спериферийным модулем (функцией), вызвавшем прерывание.Рисунок 12.10. Регистр страницы SFR: SFRPAGE.R/WR/WR/WR/WR/WR/WR/WR/WБит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Биты 7-0:SFR Адрес: 0x84SFR страница: ВсеSFRPAGE: Регистр страницы SFR.Этот байт представляет собой страницу SFR, которую CIP-51 использует при чтении илимодификации регистров специального назначения.Биты стека SFR страниц: Контекст SFR страниц сохраняется при возникновениипрерывания/выходе из прерывания в 3-хбайтном стеке SFR страниц: SFRPAGE является первымэлементом этого стека, SFRNEXT – вторым, а SFRLAST – третьим.
Байты SFRPAGE, SFRNEXT иSFRLAST можно использовать для изменения контекста в стеке SFR страниц. Только прерывание ивозврат из прерывания вызывают загрузку/извлечение данных в стек/из стека SFR страниц. (См.подробную информацию в разделах 12.2.6.2. и 12.2.6.3).Запись: Установка SFR страницы.Чтение: Возвращается номер SFR страницы, которую использует CIP-51.Ред. 1.3134C8051F040/1/2/3Рисунок 12.11. Регистр следующей страницы SFR: SFRNEXT.R/WR/WR/WR/WR/WR/WR/WR/WБит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000SFR Адрес: 0x85SFR страница: ВсеБиты 7-0: Биты стека SFR страниц: Контекст SFR страниц сохраняется при возникновениипрерывания/выходе из прерывания в 3-хбайтном стеке SFR страниц: SFRPAGE является первымэлементом этого стека, SFRNEXT – вторым, а SFRLAST – третьим.
Байты SFRPAGE, SFRNEXTи SFRLAST можно использовать для изменения контекста в стеке SFR страниц. Толькопрерывание и возврат из прерывания вызывают загрузку/извлечение данных в стек/из стека SFRстраниц. (См. подробную информацию в разделах 12.2.6.2. и 12.2.6.3).Запись: Загружает номер SFR страницы во второй байт стека SFR страниц. В результате привозврате из прерывания в регистр SFRPAGE будет записан этот номер SFR страницы.Чтение: Возвращается номер SFR страницы, содержащийся во втором байте стека SFR страниц.Это значение будет загружено в регистр SFRPAGE при возврате из прерывания.Рисунок 12.12. Регистр последней страницы SFR: SFRLAST.R/WR/WR/WR/WR/WR/WR/WR/WБит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000SFR Адрес: 0x86SFR страница: ВсеБиты 7-0: Биты 7-0: Биты стека SFR страниц: Контекст SFR страниц сохраняется при возникновениипрерывания/выходе из прерывания в 3-хбайтном стеке SFR страниц: SFRPAGE является первымэлементом этого стека, SFRNEXT – вторым, а SFRLAST – третьим.
Байты SFRPAGE, SFRNEXTи SFRLAST можно использовать для изменения контекста в стеке SFR страницБиты стека SFR страниц: Контекст SFR страниц сохраняется при возникновениипрерывания/выходе из прерывания в 3-хбайтном стеке SFR страниц: SFRPAGE является первымэлементом этого стека, SFRNEXT – вторым, а SFRLAST – третьим. Байты стека SFR страницможно использовать для изменения контекста в стеке SFR страниц, не вызывая при этом«проталкивания» стека.
Только прерывание и возврат из прерывания вызываютзагрузку/извлечение данных в стек/из стека SFR страниц.Запись: Загружает номер SFR страницы в последний байт стека SFR страниц. В результате привозврате из прерывания в регистр SFRNEXT будет записан этот номер SFR страницы.Чтение: Возвращается номер SFR страницы, содержащийся в последнем байте стека SFRстраниц.135Ред. 1.3C8051F040/1/2/3Таблица 12.2.
Распределение регистров специального назначения в памятиАдресF8F0E8E0D8D0C8C0B8B0A8A098SFRPAGE0123F0123F0123F0123F0123F0123F0123F0123F0123F0123F0123F0123F0123F0(8)1(9)2(A)3(B)4(C)5(D)6(E)SPI0CNCAN0CNPCA0LPCA0HPCA0CPL0PCA0CPH0PCA0CPL1PCA0CPH1Р7В(ВСЕСТРАНИЦЫ)ADC0CNADC2CNPCA0CPL2PCA0CPH2PCA0CPL3PCA0CPH3PCA0CPL4PCA0CPL5PCA0CPH5XBR0PCA0MDCAN0DATHXBR1PCA0CPM0CAN0ADRXBR2PCA0CPM1CAN0TSTXBR3PCA0CPM2REF0CNDAC0LDAC1LDAC0HDAC1HDAC0CNDAC1CNTMR2CNTMR3CNTMR4CNTMR2CFTMR3CFTMR4CFRCAP2LRCAP3LRCAP4LRCAP2HRCAP3HRCAP4HTMR2LTMR3LTMR4LTMR2HTMR3HTMR4HР4SMB0CNCAN0STASMB0STASMB0DATSMB0ADRADC0GTLAMX0PRT7(F)WDTCN(ВСЕСТРАНИЦЫ)EIP1(ВСЕСТРАНИЦЫ)EIP2(ВСЕСТРАНИЦЫ)PCA0CPH4RSTSRCEIE1(ВСЕСТРАНИЦЫ)EIE2(ВСЕСТРАНИЦЫ)PCA0CPM4PCA0CPM5Р6ACC(ВСЕСТРАНИЦЫ)PCA0CNCAN0DATLPCA0CPM3Р5PSW(ВСЕСТРАНИЦЫ)HVA0CNADC2GTIP(ВСЕСТРАНИЦЫ)SADEN0AMX0CFAMX0SLADC0CFAMX2CFAMX2SLADC2CFSMB0CRADC0LADC2AMX0PRTADC0LFLSCLFLACLSADDR0EMI0TCEMI0CNEMI0CFSCON0SCON1SBUF0SBUF1SPI0CFGSPI0DAT0(8)1(9)2(A)3(B)P2(ВСЕСТРАНИЦЫ)ADC0HADC2P3(ВСЕСТРАНИЦЫ)IE(ВСЕСТРАНИЦЫ)ADC0HРед.
1.3P1MDINP2MDINP3MDINP0MDOUTP1MDOUTP2MDOUTP3MDOUTP4MDOUTP5MDOUTP6MDOUTP7MDOUT4(C)5(D)6(E)7(F)136C8051F040/1/2/3Таблица 12.2. Распределение регистров специального назначения в памяти0123F0123F0123F908880SSTA0P1(ВСЕСТРАНИЦЫ)TCONCPT0CNCPT1CNCPT2CNTMODCPT0MDCPT1MDCPT2MDTL0TL1TH0OSCICNOSCICLOSCXCNTH1SFRPGCNCKCONCLKSELPSCTLP0(ВСЕСТРАНИЦЫ)SP(ВСЕСТРАНИЦЫ)DPL(ВСЕСТРАНИЦЫ)DPH(ВСЕСТРАНИЦЫ)SFRPAGE(ВСЕСТРАНИЦЫ)SFRNEXT(ВСЕСТРАНИЦЫ)SFRLAST(ВСЕСТРАНИЦЫ)PCON(ВСЕСТРАНИЦЫ)0(8)1(9)2(A)3(B)4(C)5(D)6(E)7(F)Таблица 12.3. Регистры специального назначенияSFR перечислены в алфавитном порядке.
Все неопределенные ячейки в области SFR зарезервированы.АдресРегистрСтраницаSFRОписаниеВсе стр-цы Аккумулятор№ стр.0xE0ACC0xBCADC0CF0Конфигурация АЦП054*, 76**0xE8ADC0CN0Управление АЦП055*, 77**0xC5ADC0GTH0Нижняя граница диапазона АЦП0 (старший байт)58*, 80**0xC4ADC0GTL0Нижняя граница диапазона АЦП0 (младший байт)58*, 80**0xBFADC0H0Слово данных АЦП0 (старший байт)56*, 78**0xBEADC0L0Слово данных АЦП0 (младший байт)56*, 78**0xC7ADC0LTHВерхняя граница диапазона АЦП0 (старший байт)58*, 80**0xC6ADC0LTL00Верхняя граница диапазона АЦП0 (младший байт)58*, 80**1440xBEADC22Слово данных АЦП2950xBCADC2CF2Конфигурация АЦП2910xE8ADC2CN2Управление АЦП2940xC4ADC2GT1Нижняя граница детектора диапазона АЦП2960xC6ADC2LT1Верхняя граница детектора диапазона АЦП20xBAAMX0CF0Конфигурация мультиплексора АЦП00xBDAMX0PRT0Выбор выводов Порта 396*45 , 67**470xBBAMX0SL0Выбор канала мультиплексора АЦП045 , 67**0xBBAMX2SL2Выбор канала мультиплексора АЦП2920xF0B0xDACAN0ADRВсе стр-цы Регистр В1Адрес CAN01Управление CAN0*1442130xF8CAN0CN0xD9CAN0DATH1Старший байт регистра данных CAN02120xD8CAN0DATL1Младший байт регистра данных CAN02120xC0CAN0STA1Состояние CAN02140xDBCAN0TST1Регистр тестирования CAN0214137Ред.
1.3213C8051F040/1/2/30x8ECKCONСтраницаSFR0Управление тактированием таймеров 0 и 12790x97CLKSELFВыбор тактового генератора1650x89CPT0MD1Выбор режима компаратора 01170x89CPT1MD2Выбор режима компаратора 11170x89CPT2MD3Выбор режима компаратора 21170x88CPT0CN1Управление компаратором 01160x88CPT1CN2Управление компаратором 11160x88CPT2CN3Управление компаратором 2116DAC0CN0Управление ЦАП0104DAC0H0Слово данных ЦАП0 (старший байт)103Адрес0xD40xD3РегистрОписание№ стр.DAC0L0Слово данных ЦАП0 (младший байт)1030xD4DAC1CN1Управление ЦАП11060xD3DAC1H1Слово данных ЦАП1 (старший байт)1050xD2DAC1L1Слово данных ЦАП1 (младший байт)1050x83DPHВсе стр-цы Указатель данных (старший байт)1420x82DPLВсе стр-цы Указатель данных (младший байт)1420xE6EIE1Все стр-цы Дополнительный регистр разрешения прерываний 11500xE7EIE2Все стр-цы Дополнительный регистр разрешения прерываний 21510xF6EIP1Все стр-цы Дополнительный регистр приоритетов прерываний 11520xF7EIP2Все стр-цы Дополнительный регистр приоритетов прерываний 21530xA2EMI0CN0Управление интерфейсом внешней памяти1770xA3EMI0CF01770xA1EMI0TC01820xB7FLACLFКонфигурация интерфейса внешней памятиУправление временными параметрами интерфейса внешнейпамятиОграничение доступа к Flash-памяти0xB7FLSCL0Делитель модуля Flash-памяти1730xD6HVA0CN00xA8IEВсе стр-цы Разрешение прерываний1480xB8IP1490x8BOSCICL0xB2OSCICNВсе стр-цы Управление приоритетами прерыванийFКалибровка внутреннего генератораFУправление внутренним генератором0xD20xB10x80OSCXCNP00xA4P0MDOUT0x90P10xADP1MDIN0xA5P1MDOUT0xA0P20xAEP2MDIN0xA6P2MDOUT0xB0P30xAFP3MDIN0xA7P3MDOUTFУправление высоковольтным дифференциальным усилителемУправление внешним генераторомВсе стр-цы Регистр-защелка порта 0FРегистр настройки выходов порта 0Все стр-цы Регистр-защелка порта 1FРегистр настройки входов порта 1FРегистр настройки выходов порта 1Все стр-цы Регистр-защелка порта 2FРегистр настройки входов порта 2FРегистр настройки выходов порта 2Все стр-цы Регистр-защелка порта 3FРегистр настройки входов порта 3FРегистр настройки выходов порта 3Ред.
1.317349*, 71**164164166205205206206207207208208209209210138C8051F040/1/2/3АдресСтраницаSFRРегистрОписание№ стр.0xC8P4+FРегистр-защелка порта 4212+0x9CP4MDOUT +FРегистр настройки выходов порта 4212FРегистр-защелка порта 5213+FРегистр настройки выходов порта 5213FРегистр-защелка порта 6214+FРегистр настройки выходов порта 6214FРегистр-защелка порта 7215+F+0xD8P50x9DP5MDOUT ++0xE8P60x9EP6MDOUT +0xF8P7+0x9FP7MDOUTРегистр настройки выходов порта 72150xD8PCA0CN0Управление программируемым массивом счетчиков (ПМС) 02980xFCPCA0CPH00Слово данных модуля захвата 0 (старший байт)3020xFEPCA0CPH10Слово данных модуля захвата 1 (старший байт)3020xEAPCA0CPH20Слово данных модуля захвата 2 (старший байт)3020xECPCA0CPH30Слово данных модуля захвата 3 (старший байт)3020xEEPCA0CPH40Слово данных модуля захвата 4 (старший байт)3020xE2PCA0CPH50Слово данных модуля захвата 5 (старший байт)302PCA0CPL00Слово данных модуля захвата 0 (младший байт)302PCA0CPL10Слово данных модуля захвата 1 (младший байт)302PCA0CPL20Слово данных модуля захвата 2 (младший байт)3020xFB0xFD0xE9+PCA0CPL30Слово данных модуля захвата 3 (младший байт)3020xEDPCA0CPL40Слово данных модуля захвата 4 (младший байт)3020xE1PCA0CPL50Слово данных модуля захвата 5 (младший байт)3020xDAPCA0CPM00Настройка модуля захват/сравнение 03000xDBPCA0CPM10Настройка модуля захват/сравнение 13000xDCPCA0CPM20Настройка модуля захват/сравнение 23000xDDPCA0CPM30Настройка модуля захват/сравнение 33000xDEPCA0CPM40Настройка модуля захват/сравнение 4300PCA0CPM50Настройка модуля захват/сравнение 5300PCA0H0Слово данных таймера/счетчика ПМС (старший байт)301PCA0L0Слово данных таймера/счетчика ПМС (младший байт)301PCA0MD0Режим ПМС 02990xEB0xDF0xFA0xF90xD90x87PCONВсе стр-цы0x8FPSCTL00xD0PSW0xCBRCAP2H0Регистр захвата/перезагрузки таймера/счетчика 2 (старший байт)2870xCARCAP2L0Регистр захвата/перезагрузки таймера/счетчика 2 (младший байт)2870xCBRCAP3H1Регистр захвата/перезагрузки таймера/счетчика 3 (старший байт)2870xCARCAP3L1Регистр захвата/перезагрузки таймера/счетчика 3 (младший байт)2870xCBRCAP4H2Регистр захвата/перезагрузки таймера/счетчика 4 (старший байт)2870xCARCAP4L2Регистр захвата/перезагрузки таймера/счетчика 4 (младший байт)0xD1REF0CN0287110+,112++139Все стр-цыУправление питанием105Управление режимом чтения/записи памяти программ174Слово состояния программы143Регистр управления ИОНРед.