Радиоэлектроника и телекоммуникации
Для отсчета временных интервалов, равных периоду чтения/записи, удобно использовать модуль таймера Т0, входящий в состав микроконтроллера AT90S2313.
Модуль содержит 8-разрядный таймер - счетчик, содержимое которого инкрементируется от 00H до FFH и при переполнении снова переходит в состояние 00H. Прерывание от таймера Т0 генерируется при переполнении, при этом устанавливается флажок TOV0 (разряд 0 регистра TIFR). Это прерывание можно использовать для пробуждения МК и начала нового цикла чтения/записи.
Структурная схема таймера/счетчика Т0 показана на рисунке 6.
Рисунок 6. Структурная схема таймера/счетчика Т0
Таймер/счетчика Т0 может работать в двух режимах:
Режим таймера. В этом режиме на вход таймера/счетчика поступают импульсы тактового сигнала микроконтроллера (непосредственно или через предделитель);
Режим счетчика событий. В этом режиме инкремент содержимого счетного регистра производится по активному фронту сигнала на входе T0 микроконтроллера.
Выбор режима работы (источника тактового сигнала), а также запуск и остановка таймера/счетчика осуществляются с помощью разрядов CS02…CS00 регистра управления таймером TCCR0.
Предделитель таймера Т0 позволяет формировать продолжительные временные интервалы (задержки). Для его программирования необходимо загрузить код начальной установки в счетный регистр таймера TCNT0 (адрес $32)и определить коэффициент деления предделителя в регистре управления TCCR0 (адрес $33). Для расчета величины временной задержки используется формула:
Τзад = (2k -Ainu)× kдел / fCLK : (1)
где
– Ainu - код инициализации;
– k - разрядность счетчика таймера;
– kдел - коэффициент деления частоты;
– fCLK - тактовая частота микроконтроллера;
Выразим код инициализации Ainu:
Ainu = 2k - (Τзад× fCLK / kдел), (2)
Т.к. разрядность счетчика таймера Т0 8-разрядная, то 28= 256. Согласно заданию, длительность сигнала равно 1 мс, следовательно, величина временной задержки таймера
Τзад = 0.001 (с)
Полагая что, kдел= 1024, а тактовая частота микроконтроллера fCLK= 4МГц, то по формуле (2) определяем значение кода инициализации
Ainu= 256 - (0,001*4*106 / 1024)= 256 - 4 = 252
Полученное значение переводим в шестнадцатеричный код:
D=FC
Это означает, что в процессе программирования в счетный регистр TCNT0 таймера Т0 должно быть записано значение FC.
В регистр управления таймера Т0 TCCR0 должно быть записано слово, определяющее режим работы таймера и коэффициент предделителя его входной частоты k дел.=1024. Код слова:
Разряды TCCR0 | |||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
TCCR0: = 11111100D
Заключение
В ходе курсовой работы мы рассмотрели особенности и возможности микроконтроллеров AVR. Также было разработано устройство на основе микроконтроллера AVR, а именно матрицу кнопочных переключателей. Особенностью разработанного устройства является минимальное использование различных составляющих компонентов, а следовательно и низкая стоимость при значительных функциональных возможностях.
лабораторных работ. Часть 2. Ростов- на-Дону: РИСЮРГУЭС, 2006 -104 с.
Другие стьтьи в тему
Разработка технологической инструкции по обслуживанию и ремонту импульсной паяльной системы
Прохождение
производственной практики позволяет практиканту закрепить теоретические знания,
опробовав их на деле. Главной особенностью данной практики является то, что
практикант имеет хорошую возможность для усовершенствования собственных навыков
владения рабочим инструментом, а так ...
Разработка измерительного канала температуры на основе бесконтактных методов
Без грамотного построения измерительного канала невозможно построить
систему автоматического регулирования и управления технологическим процессом
(АСУТП). Данный курсовой проект дает возможность не только в теории, но на
практике познать сущность проблемы проектирования измерительных ...