Исследование таймеров/счетчиков микроконтроллера МК51
1. Цель работы
Изучить таймеры/счетчики микроконтроллеров семейства МК51. Исследовать работу таймеров при формировании временных задержек.
2. Основные теоретические сведения
В микроконтроллерах семейства МК51 имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы в качестве таймеров или счетчиков внешних событий. При работе в качестве таймера содержимое T/C инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов резонатора. При работе в качестве счетчика содержимое T/C инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий (T0,T1) вывод МК51.
Для управления режимами работы T/C и для организации взаимодействия таймеров с системой прерывания используются два регистра специальных функций: TMOD – регистр режима и TCON – регистр управления.
Регистры самих таймеров/счетчиков являются также регистрами специальных функций и обозначаются:
Для T/C0 : TL0 – младший, TH0 – старший;
Для T/C1: TL1 – младший , TH1 – старший.
Формат регистра режима таймера /счетчика TMOD:
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Разряды |
GATE |
C/ |
M1 |
M0 |
GATE |
C/ |
M1 |
M0 |
T/C1 T/C0
GATE – управление внешней блокировкой T/C, при установке разрешает внешнему входу блокировать счёт T/C, при этом единичное значение входа разрешает счёт, нулевое – запрещает;
С/ – выбор режима работы Т/С: 0 – таймер, 1 – счётчик;
М1, М0 – выбор одного из четырёх режимов работы Т/С:
00 – режим 0, 01 – режим 1, 10 – режим 2, 11 – режим 3.
Формат регистра управления/состояния таймера/счетчика TCON:
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Разряды |
TF1 |
TR1 |
TF0 |
TR0 |
IE1 |
IT1 |
IE0 |
IT0 |
TF1, TF0 – флаги переполнения Т/С1, Т/С0, устанавливаются при переполнении Т/С, сбрасываются при входе в подпрограмму обслуживания прерывания;
TR1, TR0 – управление пуском/остановом Т/С1 и Т/С0: 1 – счёт, 0 – останов;
IE1,IE0 – флаг внешнего прерывания, устанавливается при переходе сигнала из 1 в 0 на входах и , сбрасывается при выходе из подпрограммы обслуживания прерывания;
IT1, IT0 – управление типом прерывания, прерывание фиксируется: 1 – по спаду, 0 – по нулю на входах и .
Наиболее часто в программах управления и контроля таймеры/счетчики используются в режиме 1, т.е. как 16-разрядные, регистры THx и TLx включены последовательно. В этом режиме таймер может считать от 0 до 65535, т.е. от 0000H до FFFFH. При переходе из состояния «все единицы» в состояние «все нули» устанавливается флаг переполнения TFx, одновременно вырабатывается запрос прерывания. Разрешение и запрещение прерываний от таймеров/счетчиков выполняется битами регистра разрешения прерываний IE.
Формат регистра разрешения прерываний IE:
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Разряды |
EA |
— |
— |
ES |
ET1 |
EX1 |
ET0 |
EX0 |
EA – бит общего разрешения: 0 – все прерывания замаскированы, 1 – каждый источник разрешается своим собственным битом IEx;
ES - разрешение прерывания от УАПП;
ET1, ET0 – разрешение прерывания от Т/С1, Т/С0
EX1, EX0 – разрешение прерывания от ,
Если разрешено прерывание от T/C0, то при его переполнении программа переходит на адрес 000BH, где должна находится первая команда подпрограммы обработки прерывания. Если же разрешено прерывание от T/C1, то при его переполнении программа переходит на адрес 001BH.
Имеется возможность устанавливать приоритеты запросов прерывания (в случае их одновременного поступления) с помощью битов регистра управления приоритетами IP.
Формат регистра управления приоритетами IP:
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Разряды |
— |
— |
— |
PS |
PT1 |
PX1 |
PT0 |
PX0 |
PS - бит приоритета УАПП;
PT1, PT0 – биты приоритетов Т/С1, Т/С0;
PX1, PX0 – биты приоритетов , ;
бит=1 – высший приоритет, 0 – низший.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.