- •Понятие о микропроцессорах и
- •Понятие о микропроцессорах и микроконтроллерах
- •Понятие о микропроцессорах и микроконтроллерах
- •Шинная организация. Характеристики шин.
- •Шинная организация. Характеристики шин для микроконтроллеров семейства 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 и последовательный канал с
- •Прохождение запросов прерывания при поступлении по одному
- •Прохождение запросов прерывания разного уровня приоритета при одновременном поступлении
- •Прохождение запросов прерывания при одновременном поступлении двух запросов одного уровня приоритета
- •Процедура обработки прерывания (нет запроса)
- •Процедура обработки прерывания (поступление запроса)
- •Процедура обработки прерывания (запись содержимого счетчика
- •Процедура обработки прерывания (модификация адреса)
- •Процедура обработки прерывания (выполнение программы
- •Процедура обработки прерывания (восстановление сохраненного в
- •Блок последовательного канала (интерфейса)
- •Блок последовательного канала
- •Блок последовательного канала
- •Блок последовательного канала
- •Блок последовательного канала
- •Блок последовательного канала
- •Блок последовательного канала
- •Блок последовательного канала
Подключение внешней памяти
RD WR
Р0.0
Р0.1
…
Р0.7
ALE PME
Р2.0
Р2.1
…
Р2.7
???
ША А0-А7
ША А8-А15
ШД
А0 |
D0 |
А1 |
D1 |
……
А7 D7 А8 А9
…
А15
CS
Память
микроконтроллер
Подключение внешней памяти программ
Р0.0
Р0.1
…
Р0.7
ALE
PME
Р2.0
Р2.1
RD …
Р2.7
WR
микроконтроллер
Буферный
регистр |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D0 |
|
|
|
|
D0 |
B0 |
|
|
|
|
|
А0 |
|
|
|
|
|
|
|
|
|
|
|
|
||||
D1 |
B1 |
|
|
|
|
|
А1 |
D1 |
|
|
|
|
|
|
|
|
|
|
|
||||
… |
… |
|
|
|
|
|
… |
… |
|
|
|
D7 |
B7 |
|
|
|
|
|
А7 |
D7 |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
А8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CS |
|
|
|
|
|
|
А9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
… |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
А15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Память
программ
Подключение внешней памяти данных
Р0.0
Р0.1
…
Р0.7
ALE
PME
Р2.0
Р2.1
RD …
Р2.7
WR
микроконтроллер
Буферный
регистр
D0 |
B0 |
D1 |
B1 |
… |
… |
D7 |
B7 |
CS
А0 |
D0 |
А1 |
D1 |
……
А7 D7 А8 А9
…
А15
RD
WR
Память
данных
Подключение внешней памяти программ и данных |
||||||||||
|
|
|
|
|
|
1 |
|
А0 |
D0 |
1 |
|
|
|
|
|
|
2 |
|
2 |
||
|
|
|
|
|
|
|
А1 |
D1 |
||
|
|
|
|
|
|
|
|
|
||
|
|
|
|
Буферный |
|
8 |
|
… |
… |
8 |
|
|
|
|
регистр |
|
|
А7 |
D7 |
||
|
|
1 |
1 |
|
1 |
1 |
|
|||
|
Р0.0 |
D0 |
B0 |
А8 |
Память |
|
||||
|
2 |
2 |
2 |
2 |
|
|||||
|
Р0.1 |
D1 |
B1 |
А9 |
программ |
|
||||
|
|
|
|
|
|
|||||
|
… |
8 |
8 |
… |
… |
8 |
8 |
… |
|
|
|
Р0.7 |
D7 |
B7 |
А15 |
|
|||||
|
|
|
|
|
|
|||||
|
ALE |
|
|
CS |
|
|
|
CS |
|
|
|
|
|
|
|
|
|
|
1 |
||
|
PME |
|
|
|
|
1 |
|
А0 |
D0 |
|
|
|
|
|
|
|
2 |
||||
|
|
|
|
|
|
2 |
|
|||
|
Р2.0 |
1 |
|
|
|
|
А1 |
D1 |
|
|
|
|
|
|
|
|
|
||||
|
2 |
|
|
|
|
|
… |
… |
8 |
|
|
Р2.1 |
|
|
|
8 |
|
||||
|
|
|
|
|
|
А7 |
D7 |
|||
RD |
… |
|
|
|
|
1 |
|
|||
8 |
|
|
|
А8 |
|
|
||||
|
Р2.7 |
|
|
|
2 |
Память |
|
|||
WR |
|
|
|
|
|
А9 |
|
|||
|
|
|
|
|
|
|
… данных |
|
||
|
|
|
|
|
|
8 |
|
|||
Микроконтроллер |
|
|
|
|
А15 |
|
||||
|
|
|
|
|
|
RD |
|
|||
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
WR |
|
Блок таймеров / счетчиков
Содержит два таймера/счетчика Т/С0 и Т/С1
У каждого таймера/счетчика имеется 16-разрядный регистр (ТН0,TL0 для Т/С0) и (TH1,TL1 для Т/С1), который выполняет функцию считающего элемента.
Управление работой таймеров/счетчиков осуществляется с помощью регистров специального назначения – регистра режимов TMOD и регистра управления TCON, а также схемы управления.
Число, с которого начинается счет, заносится в регистры таймеров/счетчиков программно. В процессе счета содержимое регистров Т/С0 и Т/С1 инкрементируется. При переполнении регистров Т/С0 или Т/С1 (переход от состояния «все единицы» к состоянию «все нули») формируется флаг переполнения.
Блок таймеров / счетчиков
При работе в качестве таймера, содержимое Т/С0 и Т/С1 инкрементируется каждый машинный цикл, т.е. частота счета равна fQ/12 , где fQ – частота тактового генератора.
При работе Т/С0 и Т/С1 в качестве счетчиков внешних событий (сигналы поступают на входы Р3.4 и Р3.5) , содержимое счетчиков инкрементируется при переходе из «1» в «0» сигналов на счетных входах.
7 |
|
|
Структура регистра TMOD: |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
GATE1 |
C\T1 |
|
M1.1 |
|
M1.0 |
GATE0 |
C\T0 |
M0.1 |
|
M0.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таймер/счетчик 1 |
Таймер/счетчик 0 |
• Регистр режимов TMOD определяет:
• режим работы каждого таймера/счетчика – используемую
MX.1 MX.0 Режим работы
разрядность считающего элемента;
0 |
0 |
Режим |
0, используется 13-разрядный считающий |
|
элемент ( 5 разрядовTH0+8 разрядов TL0). |
||||
|
|
|||
0 |
1 |
Режим |
1, используется 16-разрядный считающий |
|
элемент ( 8 разрядовTH0+8 разрядов TL0). |
||||
|
|
|||
|
|
Режим |
2, используется 8-разрядный считающий |
|
1 |
0 |
элемент TL0. TH0 хранит константу перезагрузки. |
||
|
|
При переполнении TL0 автоматически перезагружается |
||
1 |
1 |
Режим |
3, для Т/С1 не используется. Т/С0 работает как |
|
два независимых 8-разрядных счетчика TH0 и TL0. |
||||
|
|
7 |
|
|
Структура регистра TMOD: |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
GATE1 |
C\T1 |
|
M1.1 |
|
M1.0 |
GATE0 |
C\T0 |
M0.1 |
|
M0.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таймер/счетчик 1 |
Таймер/счетчик 0 |
•Регистр режимов TMOD определяет:
•источник импульсов для счета – работу в качестве таймера или счетчика;
|
• |
- режим таймера ( импульсы поступают от ГТИ) |
C\T |
С/Т = 0 |
|
• |
- режим счетчика (импульсы поступают от внешнего входа). |
|
|
С/Т = 1 |
•разрешение управления запуском таймера / счетчика от внешнего входа.
|
• |
|
|
|
Бит GATE разрешает управлять таймером от внешнего вывода INT0 – |
GATE |
для Т/С0, INT1 – для Т/С1. |
|
• |
|
GATE = 0 – управление запрещено; |
|
• |
|
GATE = 1 – управление разрешено. |
7 |
|
Структура регистра TCON: |
|||||||||
|
|
|
|
|
|
|
|
|
|
0 |
|
|
TF1 |
TR1 |
TF0 |
TR0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таймер/счетчик 1 Таймер/счетчик 0 |
Управление запросами |
|
внешних прерываний |
•Назначение разрядов регистра управления TCON:
•TR0, TR1 – биты включения Т/С, отдельно для Т/С0 и Т/С1. Если TR = 0 - выключен, TR = 1 – включен. Биты устанавливаются и сбрасываются программно
•TF0, TF1 – флаги переполнения Т/С. Биты сбрасываются и устанавливаются аппаратно и программно.
|
Настройка работы таймера / счетчика |
|||||||
GATE1 C\T1 |
M1.1 |
M1.0 |
Режим 0. |
Таймер. |
|
Без внешнего |
||
|
|
|
управления. |
|||||
0 |
0 |
0 |
|
0 |
|
|
|
|
ГТИ |
|
|
:12 |
|
TH1 |
TL1 |
||
|
|
|
|
|
|
|||
|
|
|
|
|
|
1FFC |
TF1 |
|
Т1 |
|
|
|
|
|
5р |
|
8р |
|
|
|
TR1 |
|
|
|
|
|
|
|
|
|
1 |
& 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
|
MOV TMOD,#00000000B |
||
INT1 |
|
|
|
1 |
|
MOV TH1,#1FH |
||
|
|
|
|
|
MOV TL1,#FCH |
|||
|
|
|
|
|
|
SETB TR1
|
Принцип работы таймера / счетчика |
|||||||||
GATE1 C\T1 |
M1.1 |
M1.0 |
|
|
Режим 0. |
Таймер. |
|
Без внешнего |
||
|
|
|
|
|
управления. |
|||||
0 |
0 |
0 |
|
0 |
|
|
|
|
|
|
ГТИ |
1 |
|
12 |
1 |
0 |
|
|
0 |
0 |
|
|
|
|
TH1 |
TL1 |
||||||
|
|
|
|
|
|
|
1 |
1FFD |
TF1 |
|
Т1 |
|
|
|
|
|
|
5р |
|
8р |
|
|
|
|
|
|
|
|
|
|||
|
|
TR1 |
|
|
1 |
& |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
0 1 |
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
INT1 |
|
|
|
|
|
|
|
|
|
|
|
Принцип работы таймера / счетчика |
|||||||
GATE1 C\T1 |
M1.1 M1.0 |
Режим 0. |
Таймер. |
|
Без внешнего |
|||
|
|
|
управления. |
|||||
0 |
0 |
|
0 |
0 |
|
|
|
|
ГТИ |
1 |
|
:1212 |
1 |
0 |
0 |
0 |
|
|
TH1 |
TL1 |
||||||
|
|
|
|
|
1 |
1FFE |
TF1 |
|
Т1 |
|
|
|
|
5р |
|
8р |
|
|
|
|
|
|
|
|||
|
|
|
TR1 |
|
1 |
|
|
|
|
|
|
1 |
|
& |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
1 |
|
|
|
|
0 |
|
|
|
|
|
||
INT1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Принцип работы таймера / счетчика |
|||||||
GATE1 C\T1 |
M1.1 M1.0 |
Режим 0. |
Таймер. |
|
Без внешнего |
|||
|
|
|
управления. |
|||||
0 |
0 |
|
0 |
0 |
|
|
|
|
ГТИ |
1 |
|
:12 |
1 |
0 |
0 |
0 |
|
|
TH1 |
TL1 |
||||||
|
|
|
|
|
1 |
1FFF |
TF1 |
|
Т1 |
|
|
|
|
5р |
|
8р |
|
|
|
|
|
|
|
|||
|
|
|
TR1 |
|
1 |
|
|
|
|
|
|
1 |
|
& |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
1 |
|
|
|
|
0 |
|
|
|
|
|
||
INT1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Принцип работы таймера / счетчика |
|
|||||||
GATE1 C\T1 |
M1.1 M1.0 |
Режим 0. |
Таймер. |
|
Без внешнего |
||||
|
|
|
управления. |
||||||
0 |
0 |
|
0 |
0 |
|
|
|
||
ГТИ |
1 |
|
:12 |
1 |
0 |
0 |
0 |
|
|
|
TH1 |
TL1 |
|
||||||
|
|
|
|
|
1 |
0000 |
1 |
TF1 |
|
Т1 |
|
|
|
|
5р |
|
8р |
|
|
|
|
|
|
|
|
|
|||
|
|
|
TR1 |
|
1 |
|
|
|
|
|
|
|
1 |
|
& |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
1 |
|
|
|
|
|
0 |
|
|
|
|
|
|
||
INT1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Принцип работы таймера / счетчика |
|||||||
GATE1 C\T1 |
M1.1 M1.0 |
Режим 0. |
Таймер. |
|
Без внешнего |
|||
|
|
|
управления. |
|||||
0 |
0 |
|
0 |
0 |
|
|
|
|
ГТИ |
1 |
|
:12 |
1 |
0 |
0 |
0 |
|
|
TH1 |
TL1 |
||||||
|
|
|
|
|
1 |
0001 |
TF1 |
|
Т1 |
|
|
|
|
5р |
|
8р |
|
|
|
|
|
|
|
|||
|
|
|
TR1 |
|
1 |
|
|
|
|
|
|
1 |
|
& |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
1 |
|
|
|
|
0 |
|
|
|
|
|
||
INT1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Принцип работы таймера / счетчика |
|
|||||||
GATE1 C\T1 |
M1.1 |
M1.0 |
Режим 0. |
Таймер. |
Без внешнего |
||||
|
|
|
управления. |
||||||
0 |
0 |
|
0 |
0 |
|
|
|
||
ГТИ |
1 |
|
:12 |
1 |
0 |
|
0 |
0 |
|
|
|
TH1 |
TL1 |
|
|||||
|
|
|
|
|
|
1 |
0001 |
TF1 |
|
Т1 |
|
|
|
|
|
5р |
8р |
|
|
|
|
|
|
|
|
|
|||
|
|
|
TR1 |
|
|
|
|
|
|
|
|
|
0 |
& |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
0 |
1 |
1 |
|
1 |
|
|
|
|
|
|
|
|
|
CLR TR1 |
|
|||
|
|
|
|
1 |
|
|
|
|
|
INT1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Принцип работы таймера / счетчика |
||||||
GATE1 C\T1 |
M1.1 M1.0 |
Режим 0. |
Счетчик. |
Без внешнего |
|||
|
|
|
управления. |
||||
0 |
1 |
0 |
0 |
|
|
|
|
ГТИ |
|
:12 |
|
1 |
0 |
0 |
|
|
|
TH1 |
TL1 |
||||
|
|
|
|
1 |
1FFF |
TF1 |
|
Т1 |
1 |
|
|
5р |
|
8р |
|
|
|
|
|
||||
|
|
TR1 |
|
1 |
|
|
|
|
|
1 |
|
& |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
1 |
|
|
|
|
0 |
|
|
|
|
|
|
INT1 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Принцип работы таймера / счетчика |
||||||||
GATE1 C\T1 |
M1.1 M1.0 |
Режим 0. |
Счетчик. |
C внешним |
|||||
|
|
|
|
управлением. |
|||||
1 |
1 |
|
0 |
0 |
|
|
|
|
|
ГТИ |
|
|
:12 |
|
1 |
|
0 |
0 |
|
|
|
|
|
TH1 |
TL1 |
||||
|
|
|
|
|
|
0 |
1FFF |
TF1 |
|
Т1 |
1 |
|
|
|
|
5р |
|
8р |
|
|
|
|
|
|
|
||||
|
|
|
TR1 |
|
1 |
|
|
|
|
|
|
|
1 |
|
& |
1 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
1 |
0 |
|
0 |
|
|
|
|
|
1 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
INT1 |
1 |
|
0 1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
Настройка работы таймера / счетчика |
|||||||
GATE1 C\T1 |
M1.1 |
M1.0 |
Режим 1. |
Таймер. |
|
Без внешнего |
||
|
|
|
управления. |
|||||
0 |
0 |
0 |
|
1 |
|
|
|
|
ГТИ |
1 |
|
:12 |
|
TH1 |
TL1 |
||
|
|
|
|
|
|
|||
|
|
|
|
|
|
FFFD |
TF1 |
|
Т1 |
|
|
|
|
|
8р |
|
8р |
|
|
|
TR1 |
|
|
|
|
|
|
|
|
|
1 |
& 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
|
MOV TMOD,#00010000B |
||
INT1 |
|
|
|
1 |
|
MOV TH1,#FFH |
||
|
|
|
|
|
MOV TL1,#FDH |
|||
|
|
|
|
|
|
SETB TR1
|
Настройка работы таймера / счетчика |
||||||
GATE1 C\T1 |
M1.1 |
M1.0 |
Режим 2. |
Таймер. |
Без внешнего |
||
|
|
управления. |
|||||
0 |
0 |
1 |
|
0 |
|
|
|
ГТИ |
1 |
|
:12 |
|
TL1 |
||
|
|
|
|
|
|
FD |
TF1 |
Т1 |
|
|
|
|
|
|
8р |
|
|
|
|
|
|
|
|
|
|
|
TR1 |
|
& |
|
|
|
|
|
|
1 |
& 1 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
|
TH1 |
|
|
|
|
|
1 |
|
FD |
8р |
INT1 |
|
|
|
|
|
|
|
|
|
|
|
MOV TMOD,#00100000B |
|||
|
|
|
|
|
MOV TH1,#FDH
MOV TL1,#FDH
SETB TR1