F00-17 (1041601), страница 33
Текст из файла (страница 33)
При установке флага TF0 будет сгенерировано прерывание, если оноразрешено. Перезагружаемое значение в регистре TH0 не изменяется. Чтобы первый отсчет был корректным,необходимо проинициализировать регистр TL0 требуемым значением до включения таймера. Таймер 1 врежиме 2 работает точно так же, как Таймер 0. В режиме 2 оба Т/С включаются и настраиваются точно также, как в режиме 0.Рисунок 19.2. Структурная схема Таймера 0 в режиме 2CKCON12TMODGATE1TTT2 1 0MMMC/T1T T1 1MM1 0GATE0C/T0T T0 0MM1 00SYSCLKT0Матрица01TCLKTL0(8 бит)TCON1TR0GATE0/INT0Page 138МатрицаTH0(8 бит)TF1TR1TF0TR0IE1IT1IE0IT0ПрерываниеПерезагрузкаCYGNAL Integrated Products, Inc.
20024.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/719.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 можно использовать для генерации скорости передачи данных. В разделе 18приведена информация о настройке Таймера 1 для генерации скорости передачи данных.Рисунок 19.3. Структурная схема Таймера 0 в режиме 3CKCONTMODGATE1TTT2 1 0MMMC/T1T T1 1MM1 0GATE0C/T0T T0 0MM1 0TR1TH0(8 бит)0SYSCLK1T00C/T0TCON121МатрицаTL0TF1TR1TF0TR0IE1IT1IE0IT0ПрерываниеПрерывание(8 бит)TR0GATE0/INT04.2002; Rev. 1.4МатрицаCYGNAL Integrated Products, Inc.
2002Page 139C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Рисунок 19.4. TCON: Регистр управления Таймерами 0 и 1R/WR/WR/WR/WR/WR/WR/WR/WTF1TR1TF0TR0IE1IT1IE0IT0Значениепри сбросе:Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 000000000(доступен в битовомрежиме адресации)SFR Адрес:0x88Бит 7: TF1: Флаг переполнения Таймера 1.Устанавливается аппаратно при переполнении Таймера 1. Сбрасывается аппаратно припереходе к процедуре обслуживания прерывания от Таймера 1, но может быть сброшен ипрограммно.0: Переполнения Таймера 1 не обнаружено.1: Таймер 1 переполнился.Бит 6: TR1: Управление запуском Таймера 1.0: Таймер 1 отключен (остановлен).1: Таймер 1 включен (запущен).Бит 5: TF0: Флаг переполнения Таймера 0.Устанавливается аппаратно при переполнении Таймера 0.
Сбрасывается аппаратно припереходе к процедуре обслуживания прерывания от Таймера 0, но может быть сброшен ипрограммно.0: Переполнения Таймера 0 не обнаружено.1: Таймер 0 переполнился.Бит 4: TR0: Управление запуском Таймера 0.0: Таймер 0 отключен (остановлен).1: Таймер 0 включен (запущен).Бит 3: IE1: Внешнее прерывание 1.Этот флаг аппаратно устанавливается в 1 при обнаружении активного фронта/уровня(определяется битом IT1) внешнего сигнала. Может быть сброшен программно, но припереходе к процедуре обслуживания внешнего прерывания 1 сбрасывается аппаратно, еслиIT1=1.
При IT1=0 этот флаг является инверсией логического уровня входного внешнегосигнала /INT1.Бит 2: IT1: Выбор типа внешнего прерывания 1.Этот бит определяет, какое событие будет вызывать внешнее прерывание 1: срез или низкийуровень внешнего сигнала /INT1.0: Внешнее прерывание 1 вызывается низким уровнем сигнала /INT1.1: Внешнее прерывание 1 вызывается срезом сигнала /INT1.Бит 1: IE0: Внешнее прерывание 0.Этот флаг аппаратно устанавливается в 1 при обнаружении активного фронта/уровня(определяется битом IT0) внешнего сигнала. Может быть сброшен программно, но припереходе к процедуре обслуживания внешнего прерывания 0 сбрасывается аппаратно, еслиIT0=1.
При IT0=0 этот флаг является инверсией логического уровня входного внешнегосигнала /INT0.Бит 0: IT0: Выбор типа внешнего прерывания 0.Этот бит определяет, какое событие будет вызывать внешнее прерывание 0: срез или низкийуровень внешнего сигнала /INT0.0: Внешнее прерывание 0 вызывается низким уровнем сигнала /INT0.1: Внешнее прерывание 0 вызывается срезом сигнала /INT0.Page 140CYGNAL Integrated Products, Inc.
20024.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Рисунок 19.5. TMOD: Регистр режима Таймеров 0 и 1R/WR/WR/WR/WR/WR/WR/WR/WGATE1C/T1T1M1T1M0GATE0C/T0T0M1T0M0Значениепри сбросе:Бит 7Бит 6Бит 5Бит 4Бит 3Бит 1Бит 000000000Бит 2SFR Адрес:0x89Бит 7: GATE1: Управление блокировкой Таймера 1.0: Таймер 1 включен, если TR1 = 1, независимо от логического уровня на входе /INT1.1: Таймер 1 включен только тогда, когда TR1 = 1 и на входе /INT1 высокий уровень.Бит 6: C/T1: Выбор режима таймера или счетчика для Т/С1.0: Т/С1 работает как таймер: Таймер 1 инкрементируется от внутреннего сигналатактирования, который задается битом T1M (CKCON.4).1: Т/С1 работает как счетчик: Таймер 1 инкрементируется под воздействием перехода из 1 в 0внешнего входного сигнала (T1).Биты 5-4: T1M1-T1M0: Выбор режима работы Таймера 1.Эти биты определяют режим работы Таймера 1.T1M10011T1M00101РежимРежим 0: 13-разрядный таймер/счетчикРежим 1: 16-разрядный таймер/счетчикРежим 2: 8-разрядный таймер/счетчик с автоперезагрузкойРежим 3: Таймер 1 не активен/остановленБит 3: GATE0: Управление блокировкой Таймера 0.0: Таймер 0 включен, если TR0 = 1, независимо от логического уровня на входе /INT0.1: Таймер 0 включен только тогда, когда TR0 = 1 и на входе /INT0 высокий уровень.Бит 2: C/T0: Выбор режима таймера или счетчика для Т/С0.0: Т/С0 работает как таймер: Таймер 0 инкрементируется от внутреннего сигналатактирования, который задается битом T0M (CKCON.3).1: Т/С0 работает как счетчик: Таймер 0 инкрементируется под воздействием перехода из 1 в 0внешнего входного сигнала (T0).Биты 1-0: T0M1-T0M0: Выбор режима работы Таймера 0.Эти биты определяют режим работы Таймера 0.T0M100114.2002; Rev.
1.4T0M00101РежимРежим 0: 13-разрядный таймер/счетчикРежим 1: 16-разрядный таймер/счетчикРежим 2: 8-разрядный таймер/счетчик с автоперезагрузкойРежим 3: Два 8-разрядных таймера/счетчикаCYGNAL Integrated Products, Inc. 2002Page 141C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Рисунок 19.6. CKCON: Регистр управления тактированием Таймеров 0, 1 и 2R/WR/WR/WR/WR/WR/WR/WR/W--T2MT1MT0MReservedReservedReservedЗначениепри сбросе:Бит 7Бит 6Бит 5Бит 4Бит 1Бит 000000000Бит 3Бит 2SFR Адрес:0x8EБиты 7-6: Не используются. Читаются как 00b.Бит 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.Page 142CYGNAL Integrated Products, Inc. 20024.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Рисунок 19.7. TL0: Младший байт Таймера 0R/WR/WR/WR/WБит 7Бит 6Бит 5Бит 4R/WБит 3R/WБит 2R/WR/WЗначениепри сбросе:Бит 1Бит 000000000SFR Адрес:0x8AБиты 7-0: TL0: Младший байт Таймера 0.Регистр TL0 является младшим байтом 16-разрядного Таймера 0.Рисунок 19.8. TL1: Младший байт Таймера 1R/WR/WR/WR/WБит 7Бит 6Бит 5Бит 4R/WБит 3R/WБит 2R/WR/WЗначениепри сбросе:Бит 1Бит 000000000SFR Адрес:0x8BБиты 7-0: TL1: Младший байт Таймера 1.Регистр TL1 является младшим байтом 16-разрядного Таймера 1.Рисунок 19.9. TH0: Старший байт Таймера 0R/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 000000000SFR Адрес:0x8CБиты 7-0: TH0: Старший байт Таймера 0.Регистр TH0 является старшим байтом 16-разрядного Таймера 0.Рисунок 19.10.