
- •Теория микропроцессорных систем микроконтроллеры
- •Структура и функциональные возможности мк51
- •Электрический интерфейс мк51
- •Резидентная память данных
- •Работа блока управления и синхронизации
- •Элементы данных в мк51
- •Характеристика функциональных групп команд
- •2.5. Система команд семейства mcs-51.
- •2.5.1. Команды пересылки данных.
- •Команда обработки данных.
- •Команды передачи управления.
- •Характеристика периферийных блоков в составе мк51
- •Управление таймерами-счетчиками (т/с)
- •Описание вариантов конфигурации таймеров-счетчиков
- •Особенности реализации временных интервалов
- •Структура последовательного порта и принципы управления
- •Описание режимов работы уапп
- •Назначение и принципы функционирования системы прерываний
- •Управление приоритетами запросов прерываний
- •Работа системы обслуживания прерываний
- •Заполнение начальной области памяти программ
- •Шестнадцатиразрядные микроконтроллеры Motorola
- •Современные встраиваемые микроконтроллеры, выпускаемые производственной фирмой Freescale Semiconductor
- •Номенклатура и функциональный состав микроконтроллеров cемейства 68hcs12
- •2.1. Микроконтроллеры семейства 68нс12/912
- •2.1.3. Начальный запуск и обработка прерываний
- •2.1.4. Режимы работы и конфигурация микроконтроллеров
- •2.1.5. Функционирование и программирование Flash-памяти и эсппзу
- •2.1.6. Блок контроля функционирования и генератор тактовых импульсов
- •2.1.7. Параллельный ввод-вывод данных и подключение внешней памяти
- •2.1.8. Последовательные порты sci и spi
- •2.1.9. Таймерные модули и широтно-импульсные модуляторы
- •2.1.10. Модуль аналого-цифрового преобразователя atd
- •2.1.11. Модуль последовательного интерфейса msCan
- •2.1.12. Режим отладки bdm и установка контрольных точек
Описание вариантов конфигурации таймеров-счетчиков
Фактически работа определяется конфигурацией счётных регистров. Управление запуском и остановкой таймеров осуществляется соответственно логике восприятия значений разрядов TRx, GATE и сигнала INTx. (см. рис.14.3) и является одинаковым для всех типов конфигурации. Для всех режимов одинаковым является также выбор источника импульсов, которые подсчитываются, через установление значения разрядов С/Т (регистр TMOD). При переполнении счетных регистров (переход из состояния "1...1" к состоянию "0...0") устанавливается соответствующий флаг прерывания (TF0 или TF1), что является сигналом для процессора МК51 о завершении очередного цикла подсчета. После выдачи сигнала прерывания таймер продолжает подсчет импульсов в соответствии с установленным режимом. Действия, которые должны выполняться при переполнении таймера, зависят от задачи и определяются программистом.
Конфигурация 0 (M1=0, М0=0) - регистр THх работает как восьмиразрядний Т/С, на вход которого подключен пятиразрядний счетчик-делитель с коэффициентом 32, реализованный на TLх. Схема таймера-счетчика в режиме 0 показана на рис.14.4-а (рис. 26-а в комплекте). Таймерный регистр имеет длину 13 бит (TLx=5, THx=8).
Конфигурация 1 (M1=0, M0=1) - Т/С реализован на основе 16-разрядного таймерного регистра TLx:THx. По сути, работа такая же, как и в конфигурации 0, но делитель на TLx имеет разрядность 8 и коэффициент 256. Максимальное число импульсов, которое может быть подсчитано в этом режиме, - 65536, измеренный интервал времени до 65 мс с точностью 1 мкс.
Конфигурация 2 (M1=1, M0=0) - TLx является восьмиразрядним счетным регистром. Переполнение регистра TLx вызовет генерацию флага прерывания TFx и автоматическую загрузку в TLx стартового числа, которое предварительно может быть записано в регистр Тнх. Схема таймера для конфигурации 2 показана на рис.14.4-б (рис. 26-б в комплекте). Таймер-счетчик в конфигурации 2 имеет смысл использовать для реализации повторяющихся интервалов времени одинаковой продолжительности. Одним из стандартных применений Т/С1 в этой конфигурации является задание скорости передачи информации через последовательный порт. При этом сигнал переполнения TF1 является стробом передачи очередного бита (рис.13.1).
Конфигурация 3 (M1=1, M0=1) - Т/С1 не работает и сохраняет свое содержимое неизменным. Схема Т/С0 в конфигурации 3 показана на рис.14.5 (рис. 27 в комплекте). Регистры TL0 и ТН0 функционируют как два независимых восьмиразрядных таймера. Управление работой TL0 осуществляется битами С/Т, GATE и TR0 таймера 0, а также сигналом INT0. При переполнении таймера TL0 формируется флаг переполнения TF0. Таймер ТН0 может работать только как счетчик МЦ с запуском от TR1 и формированием флага TF1. Если Т/С0 используется в конфигурации 3, то Т/С1 может применяться по назначению, которое не требует явной обработки прерываний, например, для синхронизации последовательного порта.
Рис. 14.4
Рис. 14.5
Особенности реализации временных интервалов
Реализация временных интервалов (задание и измерение) имеет некоторые особенности, вызванные тем, что содержимое таймерных регистров нельзя контролировать в процессе подсчета импульсов без резкого снижения эффективности процессора (то есть дополнительной загрузки процессора программной проверкой содержимого таймерных регистров). В нормальном режиме параллельной работы процессора и таймера последний информирует процессор лишь о моментах переполнения путем формирования сигнала прерывания.
Исходя из этого, для реализации интервала времени заданной продолжительности T, сек, необходимо выполнить такие действия:
1. Проверить возможность реализации заданного интервала. Должно выполняться условие
[ T / Ti ] < Nmax,
где Ti - период следования подсчитываемых импульсов, (импульсы ГТИ МК51);
Nmax - максимальное число, которое может быть записано в таймерный регистр в конкретной конфигурации; [ ] - операция взятия целой части.
В случае невыполнения условия надо выбрать другой режим работы таймера или осуществить измерение на каскаде из двух (или больше) таймеров.
2. В таймерные регистры необходимо загрузить стартовое число, от которого будет начинаться счет; значение стартового числа определяется формулой
Ns = Nmax - [ T / Ti ].
После этого таймер может быть включен (например, командой SETB TRx), и через T секунд (с точностью Ti) при переполнении будет сформированный сигнал прерывания TFx, то есть процессор получит информацию о завершении заданного интервала. Процесс реализации интервала иллюстрируется схемой (рис. 14.6):
Рис. 14.6. Диаграмма реализации интервала времени на таймере