Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микропроц техника / 4 курс_МТ_МСУД / задание на лаб раб таймеры

.pdf
Скачиваний:
7
Добавлен:
10.02.2015
Размер:
52.53 Кб
Скачать

Порядок выполнения работы

1 С помощью Таймера 1 вывести на 7-сегментный индикатор (разряд – по указанию преподавателя) точку, мигающую с частотой 1Гц.

-определить биты регистра TMOD Таймера 1: режим (Mode) 1, функция – таймер;

-рассчитать требуемую периодичность мигания точки. В режиме Таймера, 16битный регистр увеличивает свое значение на единицу каждый машинный цикл (машинный цикл длится 12 тактов ГТИ, т.е. коэффициент счета равен 1/12 частоты тактового генератора). Частота внешнего резонатора – f = 8 МГц. Так как таймер -16-

битный, то за 1 секунду будет совершаться примерно 10,17 переполнений: 8МГц/(12*216);

-в функции Timer1InterruptHandler (см пример) описать действия, выполняемые МК по прерыванию

-набрать код программы, скомпилировать и прошить в МК.

Пример

void Timer1InterruptHandler() org 0x1B

{

EA = 0; // очистить флаг разрешения прерывания

TR1 = 0; // остановить Timer1

TH1 = 0x00; // сбросить значение старшего байта Timer1 TL1 = 0x00; // сбросить значение младшего байта Timer1

Действия по прерыванию

EA = 1; // установить общий флаг разрешения прерывания

TR1 = 1; // запустить Timer1

}

void main()

{ P0 = 0; // инициализировать PORT0

TF1 = 0; // убедиться, что флаг прерывания TF1 очищен ET1 = 1; // разрешить прерывание Timer1

EA = 1; // установить общий флаг разрешения прерывания

TMOD.T1_GATE = 0; // запрет внешнего управления

TMOD.T1_CT

= 0; // установка в режиме таймера.

TMOD.T1_M1

= 0; // M1_M0 = 00 => выбор режима работы(16-битный

Таймер/Счетчик)

 

TMOD.T1_M0

= 0;

TR1 = 0; TH1 = 0x00; TL1 = 0x00; TR1 = 1;

}

//сбросить Timer1

// установить старший байт Timer1

//установить младший байт Timer1

//запустить Timer1

2 С помощью прерываний Таймера 0 вывести на порт 2 (светодиоды) бегущий «0» (смещение активного светодиода в сторону старшего разряда при каждом прерывании. Использовать тот же исходный код, что и в первой задаче

Вопросы для защиты

1 Основные отличия Таймеров 0 и 1 от Таймера 2 2 Описать работу Таймеров 0 и 1 в режимах 1 и 2. 3 Описать работу Таймеров 0 и 1 в режиме 3

4 Описать назначение битов регистра T1CON

5 Описать назначение битов регистра T1MOD

6 Описать назначение битов регистра T2CON

7 Описать назначение битов регистра T2MOD

8Описать режим захвата.

9Описать режим автоперезагрузки.

10Описать режим генератора импульсов.