Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МСУзаочники2013 / Лекции МПРО_2012.ppt
Скачиваний:
30
Добавлен:
10.06.2015
Размер:
2.61 Mб
Скачать

Пример.Организация временных отметок

Задание. В МП устройстве подключен кварцевый резонатор на 12МГц. Требуется запрограммировать таймер 0 в режим таймера без управления от внешнего входа, чтобы интервал переполнений таймера был 0,05сек.

Решение.

Частота генерации импульсов, для считающего элемента таймера равна

12000000/12= 1000000.

Это означает, что за 1 сек на считающий элемент поступит 1000000 импульсов, а требуемый временной интервал составляет 0,05сек. Таким образом число импульсов, поступающих за 0,05 сек составит

1000000*0,05=50000

Соответственно для подсчета такого числа импульсов требуется 16-разрядный считающий элемент, для этого выбираем режим 1.

Пример.Организация временных отметок

Начальная константа для счета равна 65536-

50000=15536

Переводим в 16-ричную систему 15536D =

3CB0H

Программируем таймер.

MOV TMOD,#00000001B

MOV TH0,#3CH

MOV TL0,#B0H

• Запускаем таймер командой

SETB TR0

Система прерываний

Прерывание - приостановка выполнения процессором текущей программы с целью обработки запроса прерывания.

Запрос прерывания - сигнал от внутреннего или внешнего периферийного устройства с целью выполнения программы обработки прерывания.

Программа обработки прерывания - заранее подготовленная и записанная в памяти программа, выполнение которой осуществляется по запросу прерывания и которая запускается через вектор прерывания.

Вектор прерывания – адрес в начальной зоне адресов памяти программ, с которого размещается или программа обработки прерывания или команда перехода на нее.

Система прерываний

Приоритет прерывания – предпочтение в обработке одного запроса прерывания над другим. При одновременном поступлении двух запросов первым будет обрабатываться запрос, имеющий более высокий приоритет. При поступлении запроса во время обработки другого прерывания запрос фиксируется, а обработка производится после завершения программы первого прерывания.

Запросу прерывания программно может быть назначен наивысший приоритет, он обрабатывается в первую очередь и может прервать обработку ранее поступившего запроса прерывания.

Разрешение прерывания. Каждое прерывание может быть запрещено или разрешено программно. Если прерывание запрещено, то обработки соответствующего запроса не производится. Могут быть запрещены сразу все прерывания.

Блок прерываний микроконтроллера MCS-51

Источники прерываний:

внешний вход INT0 (контакт процессора, к которому может быть подключено внешнее устройство);

таймер/счетчик T0 (при переполнении считающего элемента – TF0);

внешний вход INT1 (контакт процессора, к которому может быть подключено внешнее устройство);

таймер/счетчик T1 (при переполнении считающего элемента – TF1);

последовательный канал TI/RI (при завершении передачи или приема байта по последовательным линиям).

Базовая расстановка приоритетов

Высший

приоритет

Низший

приоритет

Блок прерываний микроконтроллера MCS-51

Настройка приема запросов прерывания от внешних устройств (INT0 и INT1) осуществляется с помощью регистра TCON

TF1

TR1

TF0

 

TR0

 

IE1

IT1

IE0

 

IT0

 

 

 

 

 

 

 

 

 

 

 

 

 

Таймер/счетчик 1 Таймер/счетчик 0

Управление запросами

INT 1

INT

0

 

внешних прерываний

 

.

При прерывании по фронту IT0 и IT1 сбрасываются аппаратно (автоматически) при обращении к соответствующей подпрограмме обработки прерываний.

При прерывании по уровню флаги очищаются при снятии запроса внешнего прерывания (т.е. IT0 и IT1 отслеживают состояние входов INT0 или INT1).

 

запроса

запроса

Δt

прерывания

прерывания

 

по уровню

по фронту

Блок прерываний микроконтроллера MCS-51

Формат регистра разрешения прерываний IE

EA

 

 

 

ES

ET1

EX1

ET0

EX0

 

 

 

 

 

 

 

 

 

ЕА – общее разрешение прерываний, если ЕА=0, то все прерывания запрещены; если ЕА=1, то прерывания могут быть разрешены индивидуальными разрешениями EX0, ET0, EX1, ET1 или ES;

ES – разрешение прерывания от последовательного порта;

ЕТ1 – разрешение прерывания от Т/С1;

ЕХ1 – разрешение прерывания от внешнего источника INT1;

ЕТ0 – разрешение прерывания от Т/С0;

ЕХ0 - разрешение прерывания от внешнего источника INT0.

Установка 1 в соответствующем бите разрешает прерывание, запись 0 запрещает соответствующее прерывание.

Блок прерываний микроконтроллера MCS-51

Формат регистра приоритетов прерываний IP

 

 

 

 

PS

PT1

PX1

PT0

PX0

 

 

 

 

 

 

 

 

 

PX0 – установка высшего приоритета прерыванию от внешнего источника INT0;

РТ0 – установка высшего приоритета прерыванию от таймера/счетчика Т/С0;

PX1 – установка высшего приоритета прерыванию от внешнего источника INT1;

РТ1 – установка высшего приоритета прерыванию от таймера/счетчика Т/С1;

PS - установка высшего приоритета прерыванию от последовательного порта;

Назначение наивысшего приоритета запросу прерывания осуществляется установкой 1 в соответствующем бите.

Между прерываниями, которым назначен наивысший приоритет действует базовая расстановка приоритетов

Блок прерываний микроконтроллера MCS-51

Векторы прерываний

 

Источник прерывания

Вектор

 

прерывания

Внешнее прерывание INT0

0003Н

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

000ВН

Внешнее прерывание INT1

0013Н

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

001ВН

Последовательный порт

0023Н

Адрес вектора прерывания назначен каждому из запросов на аппаратном уровне и не может быть изменен программно.

Структура блока прерываний микроконтроллера MCS-51

1

INT0

TF0

1

INT1

TF1

 

 

 

 

 

TI

 

1

 

 

 

 

RI

 

 

 

 

 

 

 

IP PS PT1PX1PT0 PX0

 

 

В

 

 

Н

 

 

ы

 

 

и

 

 

 

 

 

з

 

 

с

 

 

 

 

ш

 

 

ш

 

 

и

 

 

и

 

 

й

 

 

й

 

 

 

 

 

 

 

 

 

п

 

 

п

 

 

 

 

р

 

 

р

 

 

и

 

 

и

 

 

 

 

 

 

о

 

 

о

 

 

р

 

 

р

 

 

и

 

 

и

 

 

т

 

 

т

 

 

 

 

 

 

е

 

 

е

 

 

т

 

 

т

 

 

 

 

 

 

 

 

 

 

 

 

TCON

IE1

IT1

IE0

IT0

 

 

 

 

 

 

 

 

 

 

 

 

IE

EA

 

 

 

ES

 

ET1

 

EX1

ET0

EX0