Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Указания к выполнению работы




 

Микроконтроллеры серии МК51 имеют два встроенных программируемых 16-разрядных таймера-счетчика. При работе в режиме таймера счетчики подсчитывают импульсы, поступающие от тактового генератора с периодом машинного цикла. При тактовой частоте 12 МГц этот период равен 1 мкс, то есть инкремент таймера производится каждую микросекунду и максимальное время счета равно 216 мкс. При работе в режиме счетчика подсчитываются импульсы, поступающие на вход T0 (P3.4 – вывод 14 микросхемы) 0-го таймера и на вход T1 (P3.5 – вывод 15 микросхемы) 1-го таймера. Внешний импульс распознается за два машинных цикла, поэтому максимальная частота сигнала счетчика равна половине частоты, соответствующей машинному циклу (500 кГц при тактовой частоте 12 МГц).

16-разрядные регистры таймеров доступны по чтению и записи побайтно и расположены в области регистров специальных функций. При использовании Ассемблера к ним можно обращаться по именам TH0 и TL0 – для старшего и младшего байтов таймера 0, TH1 и TL1 – для таймера 1.

Таймеры управляются двумя регистрами специальных функций: TMOD и TCON.

Первый регистр - TMOD имеет следующую структуру:

 

Биты
Обозн. GATE1 C/T1 M1.1 M0.1 GATE0 C/T0 M1.0 M0.0

 

Биты M0-M1 определяют один из 4-х режимов работы.

Бит C/T определяет работу в режиме таймера (0) или счетчика (1).

Бит GATE разрешает управление таймером от внешнего управляющего сигнала INT (INT0 – вывод 12, INT1 – вывод 13).

Режим работы 0 используется для совместимости с МК48. При этом в таймере для счета используется регистр TH и 5 младших разрядов регистра TL – всего 13 разрядов.

Режим работы 1 – наиболее употребительный. При этом используются все 16 разрядов счетчика.

В режиме работы 2 для счета используются только 8 младших разрядов (TL). При переполнении происходит их автоматическая перезагрузка содержимым регистров TH.

Режим работы 3 используется в основном при управлении скоростью передачи данных по последовательному каналу и в данной работе не рассматривается.

Побитный доступ к регистру TMOD отсутствует. Запись в него возможна любой командой с прямой адресацией, например, команда MOV TMOD,#00000001b определяет режим 1 нулевого таймера.

Второй регистр – TCON имеет следующую структуру:

 

Биты
Обозн. TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

 

Здесь биты TR включают - 1 и отключают - 0 работу таймеров.

Биты TF – флаги переполнения таймеров. Они устанавливаются аппаратно, когда к содержимому таймеров 0FFFFh прибавляется 1, и должны быть программно сброшены после опроса.

К данным битам возможна побитовая адресации и в Ассемблере предусмотрено обращение по именам. Например, таймер 1 запускается командой SETB TR1.

Для загрузки таймера необходимо двойное слово загрузить раздельно в два байта. Для этого удобно использовать функции Ассемблера получения младшего байта (Low()) и старшего байта (High()). Так, для получения временной задержки 200 мкс в таймер нужно загрузить константу 65536-200=65336. Это можно сделать следующей последовательностью команд:

 

       
Delay: equ -200  
  mov TH0,#low(Delay)  
  mov TL0,#high(Delay)  

 

Окончание счета можно проверить командой проверки бита TF. При этом команда JBC bit,Address позволяет проверять бит с его автоматическим сбросом.

Полностью программа, определяющая временную задержку 200 мкс, будет выглядеть следующим образом:

 

       
Delay: EQU -200 ;Определяем длительность
  MOV TMOD,#1 ;Задаем режим таймера
  Mov TH0,# high(Delay) ;Задаем длительность
  Mov TL0,# low(Delay) ;
  Setb TR0 ; Запускаем таймер
Wait: Jbc TF0,Okay ; Ждем конца счета
  Sjmp Wait  
Okay: clr TR0 ;Останавливаем таймер
           

Отладка программы с помощью логического анализатора среды разработки mVision позволяет графически отобразить состояние портов ввода-вывода микроконтроллера. Для этого в режиме отладки вызовите отображение окна логического анализатора (пункт меню View>Logic Analyzer Window). Затем в пункте меню логического анализатора Setup выберите отображаемый сигнал, например состояние порта P0.


Поделиться:

Дата добавления: 2015-04-05; просмотров: 62; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты