- •Понятие о микропроцессорах и
- •Понятие о микропроцессорах и микроконтроллерах
- •Понятие о микропроцессорах и микроконтроллерах
- •Шинная организация. Характеристики шин.
- •Шинная организация. Характеристики шин для микроконтроллеров семейства MCS-51.
- •Шинная организация. Характеристики шин для микроконтроллеров семейства MCS-51.
- •Шинная организация. Характеристики шин для микроконтроллеров семейства MCS-51.
- •Структура микроконтроллера семейства MCS-51
- •Структура микроконтроллера семейства MCS-51
- •Назначение блоков микроконтроллера
- •Назначение блоков микроконтроллера
- •Назначение блоков микроконтроллера
- •Назначение блоков микроконтроллера
- •Назначение блоков микроконтроллера
- •Блок управления
- •Функции блока управления:
- •Функции блока управления:
- •Структура блока счетчика команд (СК)
- •Режимы работы блока счетчика команд
- •Процедура чтения и выполнения команды:
- •Арифметико-логическое устройство
- •Арифметико-логическое устройство
- •Принцип работы арифметико-логического
- •Принцип работы арифметико-логического
- •Принцип работы арифметико-логического
- •Порты микроконтроллера
- •Порты микроконтроллера
- •Порты микроконтроллера
- •Структура разряда порта P0
- •Структура разряда порта P0
- •Организация памяти
- •Классификация памяти микроконтроллера
- •Структура внутренней памяти данных
- •Структура внутренней памяти данных
- •Структура памяти битового доступа
- •Структура внутренней памяти данных
- •Структура внутренней памяти данных
- •Структура внутренней памяти данных
- •Подключение внешней памяти
- •Подключение внешней памяти программ
- •Подключение внешней памяти данных
- •Подключение внешней памяти программ и данных
- •Блок таймеров / счетчиков
- •Блок таймеров / счетчиков
- •Пример.Организация временных отметок
- •Пример.Организация временных отметок
- •Система прерываний
- •Система прерываний
- •Блок прерываний микроконтроллера MCS-51
- •Блок прерываний микроконтроллера MCS-51
- •Блок прерываний микроконтроллера MCS-51
- •Блок прерываний микроконтроллера MCS-51
- •Блок прерываний микроконтроллера MCS-51
- •Структура блока прерываний микроконтроллера MCS-51
- •Настройка блока прерываний. Программирование типа запросов прерывания от
- •Настройка блока прерываний. Разрешение прерывания от
- •Настройка блока прерываний. Программирование приоритетов разрешенных прерываний. Таймер 0 и последовательный канал с
- •Прохождение запросов прерывания при поступлении по одному
- •Прохождение запросов прерывания разного уровня приоритета при одновременном поступлении
- •Прохождение запросов прерывания при одновременном поступлении двух запросов одного уровня приоритета
- •Процедура обработки прерывания (нет запроса)
- •Процедура обработки прерывания (поступление запроса)
- •Процедура обработки прерывания (запись содержимого счетчика
- •Процедура обработки прерывания (модификация адреса)
- •Процедура обработки прерывания (выполнение программы
- •Процедура обработки прерывания (восстановление сохраненного в
- •Блок последовательного канала (интерфейса)
- •Блок последовательного канала
- •Блок последовательного канала
- •Блок последовательного канала
- •Блок последовательного канала
- •Блок последовательного канала
- •Блок последовательного канала
- •Блок последовательного канала
Пример.Организация временных отметок
•Задание. В МП устройстве подключен кварцевый резонатор на 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 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|