МК

Периферийные средства МК-51 (Лекция)

 

ПЛАН ЛЕКЦИИ

1. Параллельные каналы связи

2. Последовательный канал связи

3. Таймеры/счетчики

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

 

1. Параллельные каналы связи

Подсистема ВВ микроконтроллера МК-51 размещается непосредственно на кристалле. Для ВВ данных и управления процессом их передачи в состав МК введен ряд портов данных и регистров управления/состояния, совокупность которых образует набор специальных регистров.

Физическая система ВВ микроконтроллера МК-51 состоит из четырех двунаправленных 8-разрядных портов Р0 - РЗ. Все порты ВВ отображены в пространстве внутренней памяти DSEG по адресам 80Н, 90Н, 0А0Н, 0В0Н и ничем не отличаются от обычных ячеек памяти. Отказ от изолированного пространства ВВ, используемого в архитектуре ВЕ48, позволил увеличить вычислительную эффективность МС интенсивного ВВ, привел к более регулярной структуре набора команд ВЕ51. Любая команда с операндом из внутренней памяти может быть применена к содержимому портов Р0 - РЗ.

Кроме того, порты Р0 - РЗ совмещены с битовым пространством BSEG, что обеспечивает доступ к отдельным его разрядам независимо от других. Порты Р0 - РЗ занимают адреса BSEG: 80Н - 87Н, 90Н -97Н, 0А0Н -0А7Н и 0В0Н - 0В7Н соответственно.

Расширение пространства ВВ может быть выполнено за счет области XSEG или другими средствами с помощью самих портов Р0 - РЗ и SBUF.

При обращении к внешней памяти программ или данных порты Р0, Р2 выполняют функции системных шин AD и АВ соответственно. Младший байт адреса и данные передаются через Р0 в мультиплексном режиме: сначала выводится адрес, а затем для передачи данных используется порт. Старший байт адреса формируется на Р2. Линии порта РЗ реализуют управление циклами обмена и другие специальные функции аппаратного уровня

 

Таблица 1. Линии порта РЗ

РЗ.0

RxD

Вход приемника последовательного канала

Р3.1

TxD

Выход передатчика последовательного канала

Р3.2

INT0

Вход запроса на прерывание 0

РЗ.З

INT1

Вход запроса на прерывание 1

Р3.4

T0

Внешний вход таймера/счетчика 0

Р3.5

Tl

Внешний вход таймера/счетчика 1

Р3.6

WR

Строб записи в XSEG

Р3.7

RD

Строб чтения XSEG

 

2. Последовательный канал связи

В состав МК-51 входит дуплексный канал последовательной связи с буферизацией, который может быть запрограммирован для работы в одном из четырех режимов:

1)      режим 0-синхронный последовательный ВВ со скоростью OSC/12;

2)      режим 1-асинхронный с 10-битовым кадром и переменной скоростью передачи;

3)      режим 2 - асинхронный с 11-битовым кадром и фиксированной скоростью передачи OSC/32 или OSC/64;

4)      режим 3-асинхронный с 11-битовым кадром и переменной скоростью передачи.

Входные и выходные данные хранятся в буферном регистре SBUF с адресом 99Н. Управление работой приемопередатчиков осуществляется через слово управления и состояния SCON, расположенное в регистре по адресу 98Н:

SCON.0         RI        Флаг прерывания приемника

SCON.l           TI         Флаг прерывания передатчика

SCON.2          RB8     Восьмой бит приемника в режимах 2 и 3.

В режиме 1, если SM2 = 0, то отображает стоп-бит. В режиме 0 не используется.

SCON.3          ТВ8     Восьмой бит передатчика в режимах 2 и 3

SCON 4          REN    Разрешение приема

SCON.5          SM2    Запрещение приема кадров с нулевым восьмым

битом данных. В режиме 0 должен быть сброшен

SCON.6          SMI     Младший разряд для кодирования номера режима

SCON.7          SM0    Старший разряд для кодирования номера режима:

 

SM0

SM1

Режим

SM0

SM1

Режим

0

0

0

1

0

2

0

1

1

1

1

3

 

3. Таймеры/счетчики

К стандартным средствам поддержки режима реального времени относятся таймеры/счетчики и подсистема прерываний. Если таймеры необходимы для организации системных меток реального времени и отработки временных интервалов, то подсистема прерываний обеспечивает своевременную реакцию МК на асинхронные события, происходящие как внутри МС, так и вне ее.

В состав МК-51 входят два 16-разрядных таймера/счетчика СТ0, СТ1. Еще один (СТ2) добавлен в архитектуре 8052. Состояние таймеров/счетчиков отражается программно-доступными регистровыми парами (TH0, TL0), (TH1, ТЫ) и (ТН2, TL2) соответственно, размещенными в пространстве DSEG по адресам (8СН, 8АН), (8DH, 8ВН) и (0CDH, 0ССН).

Таймеры/счетчики СТ0 - СТ2 могут быть запрограммированы для работы либо в качестве таймера, либо в качестве счетчика. Функция таймера состоит в счете числа машинных циклов, следующих с частотой OSC/12. Функция счетчика заключается в отслеживании числа переходов из 1 в 0 на соответствующих входах Т0, Tl, T2.

Управление режимом работы СТ0, СТ1 осуществляет регистр TMOD (Timer/Counter Mode), который расположен по адресу 89Н. Регистр разбит на два 4-разрядных подрегистра T0MOD и T1MOD, которые ответственны за управление СТО и СТ1 соответственно:

 

Таблица 3

TMOD.0

M0

Младший бит поля управления режимом СТ0

TMOD.l

Ml

Старший бит поля управления режимом СТ0

 

 

М0

Ml

Режим

М0

Ml

Режим

 

 

0

0

0

1

0

2

 

 

0

1

1

1

1

3

TMOD.2

C/TN

Выбор функции таймера или счетчика СТ0. При

 

 

С/Т - 0 выбирается функция таймера, в противном случае счетчика

TMOD.3

GATE

Флажок управления работой СТО. При GATE = 1 работа разрешается, если INTO = 1 и TR0 = 1(см. TCON).

При GATE=0 работа счетчика зависит только от состояния TR0

TMOD.4

М0

То же, но для СТ1

TM0D.5

Ml

То же, но для СТ1

TMOD.6

С/Т

То же, но для СТ1

TMOD.7

GATE

То же, но для СТ1

 

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

Архитектура МК- 51 поддерживает двухуровневую приоритетную систему прерываний с пятью (или шестью в случае 8052) источниками запросов на обслуживание, имеющими фиксированные векторы прерываний. Программное управление системой осуществляется через два 8-разрядных регистра: IP (Interrupt Priopity) - регистр приоритета прерываний и IE (Interrupt Enable) - регистр разрешения прерываний.

Для приема внешних запросов на прерывание служат линии INT0 и INT1, которые могут быть запрограммированы на срабатывание как по переходу из одного состояния в другое, так и по уровню входного сигнала независимо друг от друга. Управление типом входа осуществляется флажками IT0/TCON.0 (Interrupt Туре 0) и IT1/TCON.2. При ITi = l устанавливается режим срабатывания по переходу из 1 в 0, в противном случае - по напряжению низкого уровня на входе INTi, i = 0-1. Запросы на прерывание от внешних источников INT0 или INT1 устанавливают флажки IE0/TCON.1 (Interrupt Edge 0) и IE1/TCON.3. В случае работы по переходу эти флажки сбрасываются автоматически при входе в соответствующую процедуру обслуживания прерывания. В случае режима работы по уровню флажки отслеживают состояние сигналов на входных линиях INT0 и INT1, повторяя все их изменения.

Источниками внутренних запросов могут быть: флажок TF0/TCON.5 (Timer Flag 0) - признак переполнения СТ0, с флажок TF1/TCON.7 - признак переполнения СП, а также флажок TI/SCON.1 (Transmit Interrupt) или флажок RI/SCON.O (Recive Interrupt).