Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Регистры специальных функций

Поиск

Адреса внутренней памяти данных с 080h по 0FFh используются регистрами специальных функций. Они принадлежат дополнительным устройствам, расположенным на кристалле микроконтроллера, регистры которых отображаются в адресное пространство внутренней памяти данных. В различных микросхемах семейства MCS-51 состав дополнительных устройств различается. Микроконтроллеры рассматриваемого семейства различаются между собой количеством параллельных портов, последовательных портов, таймеров. Некоторые из регистров специальных функций с указанием их адресов в адресном пространстве SFR внутреннего ОЗУ приведены в табл. 20.4.

Таблица 20.4. Адреса регистров специальных функций во внутренней памяти данных и их значения после сброса

F8                 FF
F0 B 00000000               F7
E8                 EF
E0 ACC 00000000               E7
D8                 DF
D0 PSW 00000000               D7
C8 T2CON 00000000 T2MOD RCAP2L RCAP2H TL2 TH2     CF
C0                 C7
B8 IP X0000000 SADEN 00000000             BF
B0 P3 11111111               B7
A8 IE 00000000 SADDR 00000000             AF
A0 P2 11111111               A8
  SCON 00000000 SBUF XXXXXXXX             9F
  P1 11111111                
  TCON 00000000 TMOD 00000000 TL1 00000000 TL1 00000000 TH0 00000000 TH1 00000000     8F
  P0 11111111 SP 00000111 DPL 00000000 DPH 00000000       PCON 00XX0000  
  Битовая адресация                  
                                 

 

Примечание

1. Регистры, выделенные жирным подчеркнутым текстом, присутствуют во всех микросхемах семейства;

2. Регистры, выделенные жирным текстом,присутствуют в микросхемах с ядром 8052;

3. X — неопределенное состояние

Внутренние таймеры микроконтроллера, особенности их применения

В базовых моделях семейства (ядро MCS-51) имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы и как таймеры, и как счетчики внешних событий. Каждый из них состоит из двух 8-битных регистров TH0 (старший байт) и TH0 (младший байт) для таймера 0 или TH1 (старший байт) и TH1 (младший байт) для таймера 1. При переполнении таймеров производится запись логической единицы в дополнительный триггер (флаг) TF0 для таймера 0 или TF1 для таймера 1.

В старших моделях рассматриваемого семейства микроконтроллеров появляется еще один, причем более удобный, таймер T2. Но рассмотрение принципов работы этого таймера не входит в задачу данной книги.

В режиме таймера содержимое соответствующего таймера/счетчика инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов колебаний кварцевого резонатора.

Таймер 0 и Таймер 1 могут работать в четырех режимах:

q режим 0: 13-битный таймер;

q режим 1: 16-битный таймер;

q режим 2: 8-битный таймер с автоматической перезагрузкой;

q режим 3: Таймер 0 как 2 раздельных 8-битных таймера.

В режиме счетчика содержимое соответствующего таймера/счетчика инкрементируется (увеличивается на единицу) под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на вывод микроконтроллера T0 или T1. Так как на распознавание периода требуются два машинных цикла, то максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На максимальную длительность периода входных сигналов ограничений нет. Для гарантированного обнаружения перехода уровень входного сигнала не должен как минимум в течение одного машинного цикла микро-ЭВМ.

Кроме того, таймер 1 можно использовать для задания скорости обмена последовательного порта, работающего в режиме с настраиваемой скоростью работы.

Для управления режимами работы таймеров используется регистр TMOD (Timer- таймер, MODe - режим). Его формат приведен на рис. 20.13. Каждая тетрада регистра TMOD управляет своим таймером. Рассмотрим режимы работы внутренних таймеров более подробно.

Адрес Ст. зн. разр. Значение после сброса = 0000 0000В. Мл. зн. разр.  
89Н GATE С/ Ml M0 GATE С/ Ml M0 TMOD
  ТАЙМЕР 1 ТАЙМЕР 0  
                   

 

Бит Назначение

GATE Управление блокировкой. Когда установлен, таймер/счетчик 0 или 1 разрешен только при высоком уровне на выводе или высокий уровень и установленном бите управления TR0 или TR1 соответственно. Когда сброшен, таймер 0 или 1 разрешен только при установленном бите управления TR0 или TR1 соответственно

С/ Бит выбора режима таймера или счетчика. Режим таймера включается при C/=0 (счет внутренних импульсов синхронизации). Режим счетчика включается при C/=1 (счет внешних импульсов на выводе T0 или T1)

M1 M0 Режим работы
    8-битный таймер/счетчик (ТНх), TLx используется как 5-битный предварительный делитель
    16-битный таймер/счетчик
    8-битный таймер/счетчик с автоматической перезагрузкой. ТНх содержит значение, которое загружается в TLx при каждом переполнении
    (Таймер 0). TL0 как 8-битный таймер/счетчик, управляемый битами управления таймера 0. TH0 только как 8-битный таймер, управляемый битами управления таймера 1.
    (Таймер 1). Таймер/счетчик останавливается.

Рис. 20.13. Формат регистра выбора режимов таймеров (TMOD).

Режим 0

В режиме 0 таймер работает как 13-битный счетчик, состоящий из 8 битов регистра ТНх и младших 5 битов регистра TLx. Заметим, что x в обозначении регистра заменяется на 0 или 1 в зависимости от номера таймера, которым мы управляем в данный момент. Состояние старших 3 битов регистров TLx в режиме 0 не определены и они игнорируются. Установка запускающего таймер флага TR0 или TR1 не очищает эти регистры. Работе таймера 0 или таймера 1 в режиме 0 соответствует схема, приведенная для T0 на рис. 20.14. Флаг прерывания таймера TFx устанавливается (принимает значение логической 1) при изменении содержимого счетчика из состояния все 1 в состояние все 0, то есть при переполнении.

 

    5 разрядов   8 разрядов    
От схемы управления   TL0 TH0 TF0

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

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

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

;Настроить режим работы таймера------------------------------------------

MOV TMOD,#00000000b;настроить таймеры T0 и T1 на нулевой режим работы

;

|| ;



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 455; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.28.173 (0.009 с.)