Радиоэлектроника и телекоммуникации
Для отсчета временных интервалов, равных периоду чтения/записи, удобно использовать модуль таймера Т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 с.
Другие стьтьи в тему
Расчет и моделирование усилительного каскада на биполярном транзисторе
Цель работы: расчёт и компьютерное моделирование
усилителя на примере усилительного каскада на биполярном транзисторе в схеме
включения с общим эмиттером, получение навыков в выборе параметров,
соответствующих максимальному использованию транзистора, а также приобретение
навыков комп ...
Регулятор мощности
На
современном этапе научно-технического прогресса огромную роль играет развитие
электроники. Электронная промышленность определяет научно-технический и
экономический потенциал Республики Беларусь. В данную отрасль промышленности
входит множество объединений, заводов, конструкторских ...