F20-23 (1041603), страница 47
Текст из файла (страница 47)
Сбрасывается аппаратно припереходе к процедуре обслуживания прерывания от Таймера 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.231Ред.
1.4C8051F020/1/2/3Рисунок 22.6. TMOD: Регистр режима Таймеров 0 и 1R/WGATE1R/WC/T1R/WT1M1R/WT1M0R/WGATE0R/WC/T0R/WT0M1Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1R/WT0M0Бит 0Значениепри сбросе:00000000SFR Адрес: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.T0M10011T0M00101РежимРежим 0: 13-разрядный таймер/счетчикРежим 1: 16-разрядный таймер/счетчикРежим 2: 8-разрядный таймер/счетчик с автоперезагрузкойРежим 3: Два 8-разрядных таймера/счетчикаРед.
1.4232C8051F020/1/2/3Рисунок 22.7. TL0: Младший байт Таймера 0R/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0x8AБиты 7-0: TL0: Младший байт Таймера 0.Регистр TL0 является младшим байтом 16-разрядного Таймера 0.Рисунок 22.8.
TL1: Младший байт Таймера 1R/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0x8BБиты 7-0: TL1: Младший байт Таймера 1.Регистр TL1 является младшим байтом 16-разрядного Таймера 1.Рисунок 22.9. TH0: Старший байт Таймера 0R/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0x8CБиты 7-0: TH0: Старший байт Таймера 0.Регистр TH0 является старшим байтом 16-разрядного Таймера 0.Рисунок 22.10.
TH1: Старший байт Таймера 1R/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0x8DБиты 7-0: TH1: Старший байт Таймера 1.Регистр TH1 является старшим байтом 16-разрядного Таймера 1.233Ред. 1.4C8051F020/1/2/322.2. Таймер 2Таймер 2 представляет собой 16-разрядный таймер/счетчик, образованный двумя SFR регистрами: TL2(младший байт) и TH2 (старший байт). Аналогично Таймерам 0 и 1, Таймер 2 в качестве сигнала тактированияможет использовать системный тактовый сигнал или срез сигнала на внешнем входном выводе (Т2).
Битвыбора режима таймера или счетчика C/T2 (T2CON.1) определяет источник сигнала тактирования дляТаймера 2. Если бит C/T2 = 0, то в качестве сигнала тактирования будет использоваться системный тактовыйсигнал (деленный либо на 1, либо на 12 в зависимости от значения бита T2M регистра CKCON). Если бит C/T2= 1, то регистр таймера/счетчика будет инкрементироваться под воздействием перехода из 1 в 0 внешнегосигнала на входном выводе Т2. (В разделе 17.1 приведена подробная информация о выборе и настройкевнешних выводов). Таймер 2 может также использоваться для запуска преобразования АЦП.Таймер 2 обладает дополнительными возможностями, отсутствующими у Таймеров 0 и 1. Он можетработать в одном из трех режимов:- 16-разрядный таймер/счетчик с захватом,- 16-разрядный таймер/счетчик с автоперезагрузкой,- режим генератора скорости передачи данных.Режимы работы Таймера 2 задаются установкой бит конфигурации в регистре управления Таймера 2T2CON, (см.
таблицу в конце этого раздела). В следующих разделах приводится подробное описание каждогорежима работы Таймера 2.RCLK000011XTCLK000101XCP/RL210XXXXTR2111110Режим16-разрядный таймер/счетчик с захватом16-разрядный таймер/счетчик с автоперезагрузкойГенератор скорости передачи данных для УАПП0Генератор скорости передачи данных для УАПП0Генератор скорости передачи данных для УАПП0ОтключенРед. 1.4234C8051F020/1/2/322.2.1.
Режим 0: 16-разрядный таймер/счетчик с захватомВ этом режиме Таймер 2 работает как 16-разрядный счетчик с возможностью захвата. Подвоздействием перехода из 1 в 0 внешнего сигнала на входном выводе T2EX происходит следующее:1. 16-разрядное значение из регистров Таймера 2 (TH2, TL2) загружается в регистры захвата(RCAP2H, RCAP2L).2. Устанавливается в 1 флаг внешнего входного сигнала Таймера 2 (EXF2).3.
Генерируется прерывание от Таймера 2, если оно разрешено.Таймер 2 при работе в режиме таймера/счетчика с захватом в качестве внутреннего сигналатактирования может использовать сигнал системной тактовой частоты (SYSCLK), сигнал системной тактовойчастоты, деленной на 12 (SYSCLK/12), или срез (переход из 1 в 0) сигнала на внешнем выводе Т2. Если битC/T2 (T2CON.1) сброшен в 0, то в качестве сигнала тактирования будет использоваться системный тактовыйсигнал (деленный либо на 1, либо на 12 в зависимости от значения бита T2M регистра CKCON).
Если бит C/T2установлен в 1, то регистр таймера/счетчика будет инкрементироваться под воздействием перехода из 1 в 0внешнего сигнала на входном выводе Т2. Когда регистр таймера/счетчика инкрементируется и переполняетсяиз состояния 0xFFFF в состояние 0x0000, устанавливается флаг переполнения таймера TF2 и будетсгенерировано прерывание, если оно разрешено.Режим таймера/счетчика с захватом выбирается установкой в 1 бита выбора режимазахват/перезагрузка CP/RL2 (T2CON.0) и бита управления запуском Таймера 2 TR2 (T2CON.2). Для включениязахвата бит разрешения внешнего сигнала для Таймера 2 EXEN2 (T2CON.3) также должен быть установлен в 1.Если бит EXEN2 сброшен, то срезы внешнего сигнала на входном выводе T2EX будут игнорироваться.Рисунок 22.11.
Структурная схема Таймера 2 в режиме 0CKCONTTTT4 2 1 0MMMM120SYSCLK101МатрицаT2EXTCLKTH2TR2ЗахватEXEN2235TL2T2CONT2Ред. 1.4RCAP2LRCAP2HCP/RL2C/T2TR2EXEN2TCLK0RCLK0EXF2TF2ПрерываниеC8051F020/1/2/322.2.2. Режим 1: 16-разрядный таймер/счетчик с автоперезагрузкойТаймер/Счетчик с режимом автоперезагрузки устанавливает флаг переполнения таймера TF2 припереполнении регистра таймера/счетчика из состояния 0xFFFF в состояние 0x0000. Генерируется прерывание,если оно разрешено. При переполнении 16-битное значение, хранящееся в двух регистрах захвата (RCAP2H,RCAP2L), автоматически загружается в регистр таймера/счетчика и таймер перезапускается.Режим таймера/счетчика с автоперезагрузкой выбирается сбросом в 0 бита CP/RL2.
Установка в 1 битаTR2 включает и запускает таймер. Таймер 2 в качестве внутреннего сигнала тактирования может использоватьсигнал системной тактовой частоты или срез (переход из 1 в 0) внешнего сигнала на входном выводе Т2 (выборсигнала тактирования осуществляется битом С/Т2). Если бит EXEN2 установлен в 1, то под воздействиемперехода из 1 в 0 внешнего сигнала на выводе T2EX произойдет перезагрузка Таймера 2 и будет сгенерированопрерывание от Таймера 2, если оно разрешено. Если бит EXEN2 сброшен в 0, то срезы внешнего сигнала навходном выводе T2EX будут игнорироваться.Рисунок 22.12. Структурная схема Таймера 2 в режиме 1CKCONT T T T4 2 1 0MMMM120SYSCLK01T2МатрицаT2EXTCLKTL2TH2T2CON1TR2ПерезагрузкаRCAP2LRCAP2HCP/RL2C/T2TR2EXEN2TCLK0RCLK0EXF2TF2ПрерываниеEXEN2Ред. 1.4236C8051F020/1/2/322.2.3.
Режим 2: Генератор скорости передачи данныхТаймер 2 может использоваться в качестве генератора скорости передачи данных дляпоследовательного порта УАПП0, если УАПП0 работает в режимах 1 или 3 (подробная информация о режимахработы УАПП0 приведена в разделе 20.1).
В режиме генератора скорости передачи данных Таймер 2 работаеттак же, как в режиме автоперезагрузки. При переполнении 16-битное значение, хранящееся в двух регистрахзахвата (RCAP2H, RCAP2L), автоматически загружается в регистр таймера/счетчика. Однако, флагпереполнения TF2 не устанавливается и прерывание не генерируется.
Вместо этого, событие переполненияиспользуется в качестве входного тактового сигнала для регистра сдвига модуля УАПП0. ПереполнениеТаймера 2 может использоваться для генерации скорости передачи данных для передатчика и/или приемниканезависимо.Режим генератора скорости передачи данных выбирается установкой в 1 битов RCLK0 (T2CON.5)и/или TCLK0 (T2CON.4). Если RCLK0 = 1 или TCLK0 = 1, то Таймер 2 работает в режиме автоперезагрузкинезависимо от состояния бита CP/RL2. Следует иметь ввиду, что в режиме генератора скорости передачиданных частота тактирования Таймера 2 равна системной тактовой частоте, деленной на 2.
Если Таймер 2используется в качестве генератора скорости передачи данных для УАПП0, то скорость передачи данныхУАПП0 определяется следующим уравнением:Baud Rate = SYSCLK / [32 * (65536 – [RCAP2H:RCAP2L]) ]Если требуется другая частота тактирования таймера, то установка в 1 бита С/Т2 позволитиспользовать для этой цели входной сигнал на внешнем выводе Т2. В этом случае скорость передачи данныхдля УАПП0 вычисляется по формуле:Baud Rate = FCLK / [16 * (65536 – [RCAP2H:RCAP2L]) ],гдеFCLK – частота входного сигнала на внешнем выводе Т2,[RCAP2H:RCAP2L] - 16-битное значение, хранящееся в регистрах захвата.Как описано выше, в режиме генератора скорости передачи данных Таймер 2 не устанавливает флагпереполнения TF2 и поэтому не может генерировать прерывание. Однако, если бит EXEN2 установлен в 1, топод воздействием перехода из 1 в 0 входного сигнала на внешнем выводе T2EX будет установлен в 1 флагEXF2 и будет сгенерировано прерывание от Таймера 2, если оно разрешено.
Поэтому вход T2EX можноиспользовать как дополнительный источник внешнего прерывания.Рисунок 22.13. Структурная схема Таймера 2 в режиме 2C/T2SYSCLK20RCLK0T2Матрица1TL2TCLKTH2ПереполнениеТаймера 2016TR2SSMSOTDA0 T0PCONSSMSOTDA1 T1ПерезагрузкаS ITDOLPERCAP2L1RCAP2H0162ПереполнениеТаймера 101EXEN2T2EX237МатрицаT2CON1CP/RL2C/T2TR2EXEN2TCLK0RCLK0EXF2TF2Ред. 1.4ТактовыеимпульсыдляприемникаTCLK0ПрерываниеТактовыеимпульсыдляпередатчикаC8051F020/1/2/3Рисунок 22.14.