Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Краткие теоретические сведения к заданию 2Отработать определенный временной интервал можно также, используя прерывания от таймера. В МК ВЕ51 имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы как в качестве таймеров, так и в качестве счетчиков внешних событий. Каждый из них состоит из двух 8-битных регистров TH0 (старший байт) и TL0 (младший байт) для таймера 0 или TH1 (старший байт) и TL1 (младший байт) для таймера 1. В режиме таймера содержимое соответствующего регистра инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов колебаний кварцевого резонатора. В режиме счетчика - инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на вывод микроконтроллера T0 или T1 соответственно. Таймеры могут работать в одном из четырех режимов: · режим 0: 13-битный таймер; · режим 1: 16-битный таймер; · режим 2: 8-битный автоперезагружаемый таймер; · режим 3: таймер 0 как 2 раздельных 8-битных таймера. Кроме того, таймер 1 можно использовать для задания скорости передачи (baud rate) последовательного порта. Для переключения режимов работы таймеров используются биты M0 и M1 регистра специальной функции TMOD (см. прил. 2). Название образовано от сокращения двух английских слов: T(timer)- таймер и mode - режим. Таймер может включаться и выключаться битами TR0, TR1 (timer restart). Биты включения таймеров TR0 и TR1 размещены в регистре TCON (timer control) (см. прил. 2). Для работы таймера также необходимо разрешить прерывания, установив в 1 ET0 или ET1 (enable timer) в регистре масок прерываний IE, а также снять блокировку подсистемы прерываний через управляющий бит EA. В режиме 2 регистр таймера TLi работает как 8-битный счетчик с автоматической перезагрузкой начального значения из регистра ТНi в регистр TLi. Переполнение регистра TLi не только устанавливает флаг TFi, но и загружает регистр TLi содержимым регистра ТНi, который предварительно инициализируется программно. Перезагрузка не изменяет содержимое регистра ТНi. Таким образом, в функции main() обязательно нужно установить биты ЕА, TRi, ETi, инициализировать THi (начальное значение выбирается по усмотрению разработчика программы), а также режим работы таймера в регистре TMOD. Функция должна заканчиваться бесконечным циклом. Обработчик прерывания прерывания будет подсчитывать прерывания от таймера, которые во втором режиме происходят при переполнении регистра TLx, c частотой 12МГц/(12·(256-(TH0)). В начале написания программы необходимо вычислить, сколько прерываний должно произойти для отработки временного интервала. Пусть таких прерываний будет Т. Тогда частота, с которой будет изменятся состояние светодиода, составит 12МГц/(12·T·(256-(TH0)). В обработчике необходимо определить переменную, в которой будем хранить число прерываний от таймера, и как только произойдет Т прерываний – изменим состояние светодиодов, а переменную сбросим в 0.
Задание 2. Подключите к МПС на основе МК ВЕ51 светодиод. Разработайте программный модуль, который изменяет состояние светодиода с частотой, заданной преподавателем. Способ передачи данных - посредством прерываний от таймера. Используйте второй режим работы таймера/счетчика. Отладьте программный модуль.
|