Читаем Занимательно о микроконтроллерах полностью

Этот режим был введен для совместимости с устаревшим семейством микроконтроллеров MCS-48, чтобы облегчить перенос уже разработанных программ на новые процессоры, и поэтому в настоящее время не используется. Тем не менее, в этом режиме можно обеспечить формирование одиночного интервала времени длительностью до 8096 мс при частоте задающего генератора 12 МГц.

Обычно пользователя интересует не максимальный интервал времени, а некоторый конкретный временной промежуток. Для уменьшения интервала времени в регистры таймера можно предварительно занести число и тем самым сформировать промежуток времени нужной длительности.

Рассмотрим пример подготовки таймера Т0 для формирования временного интервала 5мс:

;Настроить таймер на генерацию 5-миллисекундного интервала времени

MOV TH0, #HIGH(-5000)   ;Загрузить старший байт таймера

MOV TL0, #LOW(-5000)    ;Загрузить младший байт таймера

В рассмотренном исходном тексте программы используется двоичное представление управляющей константы. Это позволяет показать каждый отдельный бит константы, тем более, что разные биты управляют различными узлами таймера. Для того чтобы программа была более понятной, в комментарии поясняется назначение отдельных битов константы.

В исходном тексте программы, особенно при написании его под Windows, невозможно использовать символы псевдографики, поэтому для указания, к какому же из битов константы относится комментарий, используются символы «-» и «|». Для перехода от горизонтальной черты к вертикальной используется символ «+». В случае, когда для управления блоком таймера требуется несколько битов константы, в одной строке может быть использовано несколько символов «+».

При настройке таймера требуется загрузить 16-битную константу в счетчик таймера. Однако в системе команд микроконтроллера существуют только команды загрузки 8-битной константы. Для расщепления 16-битной константы на два отдельных байта в приведенном участке программы были использованы операторы выделения старшего и младшего байта HIGH и LOW соответственно. Эти функции присутствуют в большинстве языков программирования ассемблера, предназначенных для микроконтроллеров MCS-51. Если же язык программирования не содержит в своем составе подобные функции, то можно для выделения байтов воспользоваться операцией деления на 256:

MOV TH0, #-5000/256             ;Загрузить старший байт константы в старший байт таймера

MOV TL0, #-(5000–5000/256)   ;Загрузить младший байт константы в младший байт таймера

Режим 1

В режиме 1 таймер работает как 16-разрядный счетчик. Этот режим похож на режим 0, за исключением того, что в регистрах таймера использует все 16 битов. В этом режиме регистры ТНх и TLx также включены последовательно друг за другом. Работе таймера Т0 или таймера T1 в режиме I соответствует схема, приведенная на рис. 6.15. На этой схеме изображен таймер Т0.

Рис. 6.15.Схема таймера Т0, работающего в режиме 1

В этом режиме можно обеспечить формирование интервала времени длительностью до 65536 мкс при частоте задающего генератора 12 МГц.

Рассмотрим пример использования таймера Т0 для формирования временного интервала 15 мс.

;Настроить таймер на генерацию 15-миллисекундного интервала времени

MOV TH0, #HIGH(-15000)    ;Загрузить старший байт константы в старший байт таймера

MOV TL0, #LOW(-15000)     ;Загрузить младший байт константы в младший байт таймера

OjidanTimer:

JNB TF0, OjidanTimer       ;Подождать пока не переполнится таймер

В рассмотренном примере переполнение таймера произойдет через 15000 циклов процессора, т. е. при частоте тактового генератора микроконтроллера, равной 12 МГц, через 15 мс. Программа будет постоянно проверять состояние флага переполнения таймера и, как только он установится в единицу, перейдет к выполнению следующей команды. Это не самый лучший вариант использования таймера, но для иллюстрации его настройки для работы в режиме 1 вполне подходит.

Режимы 0 и 1 таймеров Т0 и T1 предназначены для формирования одиночного интервала времени. Если требуется формировать периодическую последовательность интервалов времени, то надо обеспечить программную загрузку регистров ТН0 и TL0 для задания нужного интервала времени, что для коротких интервалов времени может привести к значительным затратам процессорного времени.

Перейти на страницу:

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника