F40-43a (1041604), страница 26
Текст из файла (страница 26)
1.3C8051F040/1/2/3АдресРегистр0xEF0xA90xB90x990x99RSTSRCSADDR0SADEN0SBUF0SBUF1SCON0SCON1SFRPAGESFRPGCNSFRNEXTSFRLAST0x980x980x840x960x850x860xC30xC00xCF0xC20xC10x810x9A0x9D0xF80x9B0x910x880x8C0x8D0x8A0x8B0x890xC90xC80xCD0xCC0xC90xC80xCD0xCC0xC90xC80xCD0xCC0xFF0xE10xE20xE30xE4SMB0ADRSMB0CNSMB0CRSMB0DATSMB0STASPSPI0CFGSPI0CKRSPI0CNSPI0DATSSTA0TCONTH0TH1TL0TL1TMODTMR2CFTMR2CNTMR2HTMR2LTMR3CFTMR3CNTMR3HTMR3LTMR4CFTMR4CNTMR4HTMR4LWDTCNXBR0XBR1XBR2XBR3СтраницаSFR0000101Все стр-цыFВсе стр-цыВсе стр-цы00000Все стр-цы00000000000000011112222Все стр-цыFFFFОписаниеРегистр источника сбросаАдрес ведомого УАПП0Разрешение адреса ведомого УАПП0Буфер данных УАПП0Буфер данных УАПП1Управление последовательным портом УАПП0Управление последовательным портом УАПП1Регистр страницы SFRРегистр управления страницы SFRРегистр следующей SFR страницы в стеке страниц SFRРегистр последней SFR страницы в стеке страниц SFRАдрес модуля SMBus 0Управление модулем SMBus 0Установка частоты тактирования модуля SMBus 0Регистр данных модуля SMBus 0Регистр состояния модуля SMBus 0Указатель стекаКонфигурация модуля SPIУстановка частоты тактирования модуля SPIУправление модулем SPIРегистр данных модуля SPIВыбор тактирования/состояние УАПП0Управление таймером/счетчикомСлово данных таймера/счетчика 0 (старший байт)Слово данных таймера/счетчика 1 (старший байт)Слово данных таймера/счетчика 0 (младший байт)Слово данных таймера/счетчика 1 (младший байт)Режим таймера/счетчикаНастройка таймера/счетчика 2Управление таймером/счетчиком 2Старший байт таймера/счетчика 2Младший байт таймера/счетчика 2Настройка таймера/счетчика 3Управление таймером/счетчиком 3Старший байт таймера/счетчика 3Младший байт таймера/счетчика 3Настройка таймера/счетчика 4Управление таймером/счетчиком 4Старший байт таймера/счетчика 4Младший байт таймера/счетчика 4Управление сторожевым таймеромРегистр 0 конфигурации матрицы портов ввода/выводаРегистр 1 конфигурации матрицы портов ввода/выводаРегистр 2 конфигурации матрицы портов ввода/выводаРегистр 3 конфигурации матрицы портов ввода/выводаРед.
1.3№ стр.161262262262269260268134134135135238236237238239142249251250252261277280280280280278286285288287286285288287286285288287160201202203204140C8051F040/1/2/3АдресРегистрСтраницаSFR0x97, 0xA2, 0xB3,0xB4, 0xCE, 0xDF,***+++141ОписаниеЗарезервированы- Только для МК C8051F040/1- Только для МК C8051F042/3- Только для МК C8051F040/2- Только для МК C8051F041/3Ред. 1.3№ стр.C8051F040/1/2/312.2.7. Описания регистровНиже приведены описания регистров SFR, связанных с работой ядра CIP-51.
Зарезервированные битыне следует устанавливать в логическую 1. Будущие версии МК могут использовать эти биты для реализацииновых функций, тогда при сбросе в эти биты будут записаны логические нули, выбирая тем самым состояниепо умолчанию для новых функций. Подробные описания остальных SFR включены в разделы настоящегоруководства, посвященные описанию связанных с ними системных модулей и функций.Рисунок 12.13.
SP: Указатель стекаR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000111Бит 7SFR Адрес: 0x81SFR страница: ВсеБиты 7-0: SP: Указатель стека.Указатель стека содержит адрес вершины стека. Указатель стека инкрементируется передкаждой операцией PUSH. После сброса регистр SP содержит значение по умолчанию 0x07.Рисунок 12.14. DPL: Младший байт указателя данныхR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес: 0x82SFR страница: ВсеБиты 7-0: DPL: Младший байт указателя данных.Регистр DPL является младшим байтом 16-разрядного регистра DPTR. DPTRиспользуется для доступа в режиме косвенной адресации к памяти XRAM и Flash-памяти.Рисунок 12.15. DPH: Старший байт указателя данныхR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес: 0x83SFR страница: ВсеБиты 7-0: DPH: Старший байт указателя данных.Регистр DPH является младшим байтом 16-разрядного регистра DPTR.
DPTRиспользуется для доступа в режиме косвенной адресации к памяти XRAM и Flash-памяти.Ред. 1.3142C8051F040/1/2/3Рисунок 12.16. PSW: Слово состояния программыR/WCYБит 7R/WACR/WF0R/WRS1R/WRS0R/WOVR/WF1R/WPARITYБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0(доступен в битовомрежиме адресации)Значениепри сбросе:00000000SFR Адрес: 0x83SFR страница: ВсеБит 7: CY: Флаг переноса.Этот бит устанавливается, если в результате последней арифметическойоперации произошел перенос (сложение) или заем (вычитание).
Онсбрасывается в 0 всеми другими арифметическими операциями.Бит 6: AC: Флаг десятичного переноса.Этот бит устанавливается, если в результате последней арифметической операциипроизошел перенос (сложение) в старший полубайт или заем (вычитание) из старшегополубайта. Он сбрасывается в 0 всеми другими арифметическими операциями.Бит 5: F0: Флаг пользователя 0.Это доступный в битовом режиме адресации флаг общего назначения,предназначенный для использования под управлением программы.Биты 4-3: RS1-RS0: Биты выбора банка регистров.Эти биты определяют активный банк регистров.RS10011RS00101Банк регистров0123Адреса0x00-0x070x08-0x0F0x10-0x170x18-0x1FБит 2: OV: Флаг переполнения.Этот бит устанавливается в 1 в следующих случаях:- если в результате выполнения команды ADD, ADDC или SUBB произошло переполнение сизменением знака;- если в результате выполнения команды MUL произошло переполнение (результат превышаетзначение 255);- если при выполнении команды DIV произошло деление на ноль.Бит OV сбрасывается в 0 командами ADD, ADDC, SUBB, MUL и DIV во всех других случаях.Бит 1: F1: Флаг пользователя 1.Это доступный в битовом режиме адресации флаг общего назначения,предназначенный для использования под управлением программы.Бит 0: PARITY: Флаг четности.(Только для чтения)Этот бит устанавливается в 1, если сумма восьми бит в аккумуляторе нечетная исбрасывается, если сумма четная.143Ред.
1.3C8051F040/1/2/3Рисунок 12.17. ACC: АккумуляторR/WACC.7R/WACC.6R/WACC.5R/WACC.4R/WACC.3R/WACC.2Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2R/WACC.1Бит 1R/WACC.0Бит 0(доступен в битовомрежиме адресации)Значениепри сбросе:00000000SFR Адрес: 0xE0SFR страница: ВсеБиты 7-0: ACC: АккумуляторЭтот регистр является аккумулятором для арифметических операций.Рисунок 12.18. B: Регистр BR/WB.7Бит 7R/WB.6R/WB.5R/WB.4R/WB.3R/WB.2R/WB.1R/WB.0Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0(доступен в битовомрежиме адресации)Значениепри сбросе:00000000SFR Адрес: 0xF0SFR страница: ВсеБиты 7-0: B: Регистр BЭтот регистр работает в качестве второго аккумулятора для точных арифметических операций.12.3.
ОБРАБОТКА ПРЕРЫВАНИЙCIP-51 имеет развитую систему прерываний, поддерживающую в общей сложности 20 источниковпрерываний с двумя уровнями приоритета. Распределение источников прерываний между встроеннымипериферийными модулями и внешними входными выводами зависит от конкретного типа МК. Каждыйисточник прерываний имеет один или несколько связанных с ним флагов прерываний, размещенных в SFR.Когда периферийный модуль или внешний источник прерываний регистрирует событие, удовлетворяющееусловию прерывания, соответствующий флаг прерывания устанавливается в 1.Если прерывание от источника прерываний разрешено, то при установке флага прерываниягенерируется запрос прерывания.
Как только выполнение текущей команды завершится, будет сгенерированакоманда LCALL перехода по предопределенному адресу, откуда начнется исполнение процедурыобслуживания прерывания (interrupt service routine - ISR). Каждая ISR должна заканчиваться командой RETI,которая возвращает управление прерванной программе и приводит к выполнению той команды, котораяисполнилась бы, если бы запроса прерывания не было. Если прерывания не разрешены, флаг прерыванияигнорируется и выполнение программы продолжается в нормальном режиме.
(Флаг прерыванияустанавливается в 1 независимо от того, разрешены прерывания или запрещены).Прерывание от каждого источника прерываний может быть разрешено или запрещено с помощьюсоответствующих битов разрешения прерываний в регистрах SFR (IE-EIE2). Однако, сначала прерываниянеобходимо разрешить глобально установкой в 1 бита EA (IE.7), только после этого состояние индивидуальныхфлагов разрешения прерываний будет иметь силу.
Сброс в 0 бита ЕА запрещает прерывания от всех источниковпрерываний независимо от состояния индивидуальных флагов разрешения прерываний.Некоторые флаги прерываний сбрасываются автоматически аппаратными средствами при переходе кпроцедуре ISR. Однако большинство флагов прерываний не сбрасываются аппаратно и должны быть сброшеныпрограммно до возвращения из процедуры ISR. Если флаг прерывания остается установленным послезавершения выполнения команды возврата из прерывания (RETI), то сразу же будет сгенерирован новый запроспрерывания и после завершения выполнения следующей команды произойдет повторный переход к процедуреISR.Ред. 1.3144C8051F040/1/2/312.3.1.
Источники и векторы прерыванийДанное семейство МК поддерживает 20 источников прерываний. Программа может симулироватьпрерывание установкой в 1 любого флага прерывания. Если прерывание для этого флага разрешено, будутсгенерирован запрос прерывания и произойдет переход по адресу процедуры ISR, связанной с этим флагомпрерывания. Источники прерываний МК, соответствующие им адреса прерываний, уровень приоритета и битыуправления перечислены в таблице 12.4. Подробная информация относительно условий возникновенияпрерываний от периферийных модулей и поведения их флагов прерываний приведена в разделах данногоруководства, посвященных работе соответствующих периферийных модулей.12.3.2.