F20-23 (1041603), страница 46
Текст из файла (страница 46)
Когда данные помещаются в регистр SBUF1, они записываются в буферпередатчика и сохраняются для последовательной передачи. Запись данных в SBUF1инициирует передачу. Когда данные извлекаются из регистра SBUF1, они считываются избуфера приемника.Рисунок 21.10. SADDR1: Регистр адреса ведомого УАПП1R/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0xF3Биты 7-0: SADDR1.[7:0]: Адрес ведомого УАПП1.Содержимое этого регистра используется для определения адреса ведомого УАПП1.
РегистрSADEN1 является битовой маской, которая определяет, какие биты регистра SADDR1 будутучаствовать в сравнении с принятым адресом: в сравнении участвуют только те биты регистраSADDR1, которым соответствуют биты регистра SADEN1, установленные в 1; состояниеостальных бит регистра SADDR1 «не имеет значения» и в сравнении они не участвуют.Рисунок 21.11. SADEN1: Регистр разрешения адреса ведомого УАПП1R/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0xAEБиты 7-0: SADEN1.[7:0]: Биты разрешения адреса ведомого УАПП1.Биты этого регистра разрешают соответствующим битам регистра SADDR1 участвовать вопределении адреса ведомого УАПП1.0: Соответствующий бит регистра SADDR1 «не имеет значения».1: Соответствующий бит регистра SADDR1 участвует в сравнении с принятым адресом.Ред.
1.4224C8051F020/1/2/322. ТАЙМЕРЫМК C8051F020/1/2/3 содержат пять таймеров/счетчиков (Т/С): три 16-разрядных Т/С, совместимые сТ/С стандартной архитектуры 8051, и два 16-разрядных таймер, предназначенный для использования совместнос модулями АЦП, модулем SMBus, УАПП1 или в качестве таймера общего назначения. Эти Т/С могутиспользоваться для измерения временных интервалов, подсчета внешних событий, а также для генерациипериодических запросов прерываний. Таймер 0 и Таймер 1 почти идентичны и имеют четыре основных режимаработы. Таймер 2 обладает дополнительными возможностями, отсутствующими у Таймеров 0 и 1. Таймер 3аналогичен Таймеру 2, но не имеет режимов «захват» и «генератор скорости передачи данных».
Таймер 4аналогичен Таймеру 2 и поддерживает режим генератора скорости передачи данных для УАПП1.Таймер 0 и Таймер 1:13-разрядный Т/С16-разрядный Т/С8-разрядный Т/С савтоперезагрузкойТаймер 2:16-разрядный Т/С савтоперезагрузкой16-разрядный Т/С сзахватомГенератор скоростипередачи данных дляУАПП0Таймер 3:16-разрядный таймер савтоперезагрузкойТаймер 4:16-разрядный Т/С савтоперезагрузкой16-разрядный Т/С сзахватомГенератор скоростипередачи данных дляУАПП1Два 8-разрядных Т/С(только Таймер 0)Когда Т/С функционирует как таймер, регистры Т/С инкрементируются по каждому такту внутреннегосигнала тактирования Т/С. Частота внутреннего сигнала тактирования Т/С равна системной тактовой частоте,деленной либо на 1, либо на 12 (определяется битами T4M-T0M регистра CKCON). Возможность делениясистемной тактовой частоты на 12 обеспечивает совместимость с МК семейства 8051 более старшегопоколения.
Приложения, которым необходим более быстрый таймер, могут использовать для тактирования Т/Свнутренний сигнал с частотой, равной системной тактовой частоте.Когда Т/С функционирует как счетчик, регистры Т/С инкрементируются под воздействием перехода из1 в 0 внешнего сигнала на выбранном входном выводе. Могут подсчитываться импульсы с частотой до 1/4системной тактовой частоты. Входной сигнал не обязательно должен быть периодическим, но для егогарантированного прочтения он должен удерживаться на заданном уровне как минимум в течение двух полныхсистемных тактовых циклов.225Ред. 1.4C8051F020/1/2/3Рисунок 22.1. CKCON: Регистр управления тактированием Таймеров 0, 1, 2 и 4R/WБит 7R/WT4MR/WT2MR/WT1MR/WT0MR/WЗарезерв.Бит 6Бит 5Бит 4Бит 3Бит 2R/WЗарезерв.Бит 1R/WЗарезерв.Бит 0Значениепри сбросе:00000000SFR Адрес:0x8EБит 7:Не используется.
Читается как 0b.Бит 6:T4M: Выбор коэффициента деления системной тактовой частоты для Таймера 4.Этот бит определяет частоту сигнала тактирования Таймера 4. Бит T4Mигнорируется,если Таймер 4 работает в режиме генератора скорости передачи или в режиме счетчика(т.е. C/T4 = 1).0: Частота сигнала тактирования Таймера 4 равна 1/12 системной тактовой частоты.1: Частота сигнала тактирования Таймера 4 равна системной тактовой частоте.Бит 5:T2M: Выбор коэффициента деления системной тактовой частоты для Таймера 2.Этот бит определяет частоту сигнала тактирования Таймера 2. Бит T2Mигнорируется,если Таймер 2 работает в режиме генератора скорости передачи или в режиме счетчика(т.е.
C/T2 = 1).0: Частота сигнала тактирования Таймера 2 равна 1/12 системной тактовой частоты.1: Частота сигнала тактирования Таймера 2 равна системной тактовой частоте.Бит 4:T1M: Выбор коэффициента деления системной тактовой частоты для Таймера 1.Этот бит определяет частоту сигнала тактирования Таймера 1.0: Частота сигнала тактирования Таймера 1 равна 1/12 системной тактовой частоты.1: Частота сигнала тактирования Таймера 1 равна системной тактовой частоте.Бит 3:T0M: Выбор коэффициента деления системной тактовой частоты для Таймера 0.Этот бит определяет частоту сигнала тактирования Таймера/счетчика 0.0: Частота сигнала тактирования Таймера/Счетчика 0 равна 1/12 системной тактовойчастоты.1: Частота сигнала тактирования Таймера/Счетчика 0 равна системной тактовой частоте.Биты 2-0: Зарезервированы.
Читаются как 000b. Должны быть записаны как 000b.Ред. 1.4226C8051F020/1/2/322.1. Таймер 0 и Таймер 1Для доступа к Т/С 0 и 1 и управления ими используются регистры специального назначения. КаждыйТ/С реализован в виде 16-разрядного регистра, доступного как два отдельных байта: младший байт (TL0 илиTL1) и старший байт (TH0 или TH1). Регистр управления Т/С (TCON) используется для включения Т/С 0 и 1, атакже для определения их состояния. Оба Т/С работают в одном из четырех основных режимов, задаваемыхбитами выбора режима M1-M0 регистра режима Т/С (TMOD).
Каждый Т/С может быть настроен независимо отдругого. В следующих разделах приведено подробное описание каждого режима работы.22.1.1. Режим 0: 13-разрядный таймер/счетчикВ режиме 0 Таймеры 0 и 1 работают как 13-разрядный таймер/счетчик. Ниже приводится описаниенастройки и функционирования Таймера 0. Однако, оба таймера идентичны, и Таймер 1 настраивается точнотак же, как и Таймер 0.Регистр TH0 содержит восемь старших бит 13-разрядного значения Т/С. Регистр TL0 содержит пятьмладших бит 13-разрядного значения Т/С в разрядах TL0.4-TL0.0. Три старших бита регистра TL0 (TL0.7TL0.5) не определены и должны маскироваться или игнорироваться при чтении регистра TL0.
Приинкрементировании 13-разрядного таймера и переполнении его из состояния 0x1FFF (все единицы) в состояние0x0000 устанавливается в 1 флаг переполнения таймера TF0 (TCON.5) и будет сгенерировано прерывание, еслионо разрешено.Бит C/T0 (TMOD.2) выбирает источник сигнала тактирования Т/С. Сбросом бита C/T0 осуществляетсявыбор системного тактового сигнала в качестве входного сигнала тактирования таймера. Если бит C/T0установлен в 1, то инкремент регистра таймера осуществляется под воздействием перехода из 1 в 0 внешнегосигнала на выбранном входном выводе (Т0).
(Подробная информация о выборе и настройке внешних выводовприведена в разделе 17.1.).Установка в 1 бита TR0 (TCON.4) включит таймер, если либо бит GATE0 (TMOD.3) равен нулю, либона внешнем выводе /INT0 присутствует сигнал с высоким логическим уровнем. После установки в 1 битаGATE0 управление таймером передается внешнему сигналу /INT0, что позволяет легко осуществлятьизмерение ширины импульсов.TR0GATE00Х101111X = не имеет значения/INT0Таймер/СчетчикХХ01ОтключенВключенОтключенВключенУстановка TR0 не сбрасывает регистр таймера. Регистр таймера следует инициализироватьнеобходимым значением до включения таймера.TL1 и TH1 образуют 13-разрядный регистр Таймера 1 точно так же, как описано выше для регистровTL0 и TH0. Для настройки Таймера 1 и управления им используются соответствующие биты регистров TCON иTMOD таким же образом, как и для Таймера 0.227Ред.
1.4C8051F020/1/2/3Рисунок 22.2. Структурная схема Таймера 0 в режиме 0CKCONTTTT4 2 1 0MMMM12TMODGATE1C/T1T T G1 1 AMM T1 0 E0C/T0T T0 0MM1 00SYSCLK011TCLKМатрицаTL0(5 бит)TR0/INT0TH0(8 бит)TCONT0TF1TR1TF0TR0IE1IT1IE0IT0ПрерываниеGATE022.1.2. Режим 1: 16-разрядный Таймер/СчетчикРежим 1 аналогичен режиму 0 с тем лишь исключением, что регистры Т/С используют все 16 бит.Таймеры/счетчики включаются и настраиваются в режиме 1 точно так же, как в режиме 0.Ред. 1.4228C8051F020/1/2/322.1.3. Режим 2: 8-разрядный таймер/счетчик с перезагрузкойВ режиме 2 Таймеры 0 и 1 настраиваются для работы в качестве 8-разрядных таймеров/счетчиков савтоматической перезагрузкой начального значения. Регистр TL0 содержит значение счетчика, а регистр TH0содержит перезагружаемое значение.
Когда счетчик в регистре TL0 переполняется (переходит из состояния0xFF в состояние 0х00), флаг переполнения таймера TF0 (TCON.5) устанавливается в 1 и значение регистраTH0 загружается в регистр TL0. При установке флага TF0 будет сгенерировано прерывание, если оноразрешено. Перезагружаемое значение в регистре TH0 не изменяется.
Чтобы первый отсчет был корректным,необходимо проинициализировать регистр TL0 требуемым значением до включения таймера. Таймер 1 врежиме 2 работает точно так же, как Таймер 0. В режиме 2 оба Т/С включаются и настраиваются точно так же,как в режиме 0.Рисунок 22.3. Структурная схема Таймера 0 в режиме 2CKCONTTTT4 2 1 0MMMM12TMODGATE1C/T1T T1 1MM1 0GATE0C/T0T T0 0MM1 00SYSCLK011T0МатрицаTR0/INT0GATE0229TL0(8 бит)TCONTCLKTH0(8 бит)Ред. 1.4ПерезагрузкаTF1TR1TF0TR0IE1IT1IE0IT0ПрерываниеC8051F020/1/2/322.1.4. Режим 3: Два 8-разрядных таймера/счетчика (только Таймер 0)В режиме 3 Таймер 0 и Таймер 1 функционируют различным образом. Таймер 0 настраивается как дваотдельных 8-разрядных таймера/счетчика TL0 и TH0.
Для управления таймером/счетчиком TL0 используютсябиты управления/состояния Таймера 0 (в регистрах TCON и TMOD): TR0, C/T0, GATE0 и TF0. В качествеисточника тактирования он может использовать либо системный тактовый сигнал, либо внешний входнойсигнал. Таймер/счетчик TH0 может использовать для тактирования только системный тактовый сигнал. Длявключения таймера/счетчика TH0 используется управляющий бит запуска Таймера 1 (TR1). Таймер/счетчикTH0 при переполнении устанавливает флаг переполнения Таймера 1 TF1 и, таким образом, управляетпрерыванием от Таймера 1.В режиме 3 Таймер 1 не активен, поэтому, если Таймер 0 используется в режиме 3, Таймер 1 можетбыть отключен путем перевода его в собственный режим 3 и включен путем выхода из режима 3.
Когда Таймер0 работает в режиме 3, Таймер 1 может работать в режимах 0, 1 или 2, но не может тактироваться внешнимисигналами, устанавливать флаг TF1 и генерировать прерывание. Однако, переполнение Таймера 1 можноиспользовать для генерации скорости передачи данных для УАПП0 и/или УАПП1. В разделе 20 приведенаинформация о настройке Таймера 1 для генерации скорости передачи данных.Рисунок 22.4. Структурная схема Таймера 0 в режиме 3CKCONT T T T4 2 1 0MMMM12TMODGATE1C/T1T T1 1MM1 0GATE0C/T0T T0 0MM1 00TR1SYSCLKTH0(8 бит)1TCON0TF1TR1TF0TR0IE1IT1IE0IT0ПрерываниеПрерывание1T0TL0Матрица(8 бит)TR0/INT0GATE0Ред.
1.4230C8051F020/1/2/3Рисунок 22.5. TCON: Регистр управления Таймерами 0 и 1R/WTF1R/WTR1R/WTF0R/WTR0R/WIE1R/WIT1R/WIE0R/WIT0Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0(доступен в битовомрежиме адресации)Значениепри сбросе:00000000SFR Адрес:0x88Бит 7: TF1: Флаг переполнения Таймера 1.Устанавливается аппаратно при переполнении Таймера 1. Сбрасывается аппаратно припереходе к процедуре обслуживания прерывания от Таймера 1, но может быть сброшен ипрограммно.0: Переполнения Таймера 1 не обнаружено.1: Таймер 1 переполнился.Бит 6: TR1: Управление запуском Таймера 1.0: Таймер 1 отключен (остановлен).1: Таймер 1 включен (запущен).Бит 5: TF0: Флаг переполнения Таймера 0.Устанавливается аппаратно при переполнении Таймера 0.