КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Указания к выполнению работы
Микроконтроллеры серии МК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 имеет следующую структуру:
Биты 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 имеет следующую структуру:
Здесь биты TR включают - 1 и отключают - 0 работу таймеров. Биты TF – флаги переполнения таймеров. Они устанавливаются аппаратно, когда к содержимому таймеров 0FFFFh прибавляется 1, и должны быть программно сброшены после опроса. К данным битам возможна побитовая адресации и в Ассемблере предусмотрено обращение по именам. Например, таймер 1 запускается командой SETB TR1. Для загрузки таймера необходимо двойное слово загрузить раздельно в два байта. Для этого удобно использовать функции Ассемблера получения младшего байта (Low()) и старшего байта (High()). Так, для получения временной задержки 200 мкс в таймер нужно загрузить константу 65536-200=65336. Это можно сделать следующей последовательностью команд:
Окончание счета можно проверить командой проверки бита TF. При этом команда JBC bit,Address позволяет проверять бит с его автоматическим сбросом. Полностью программа, определяющая временную задержку 200 мкс, будет выглядеть следующим образом:
Отладка программы с помощью логического анализатора среды разработки mVision позволяет графически отобразить состояние портов ввода-вывода микроконтроллера. Для этого в режиме отладки вызовите отображение окна логического анализатора (пункт меню View>Logic Analyzer Window). Затем в пункте меню логического анализатора Setup выберите отображаемый сигнал, например состояние порта P0.
|