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

Основы автоматизации Ямный,Яновский

.pdf
Скачиваний:
88
Добавлен:
29.02.2016
Размер:
1.36 Mб
Скачать

ЦП состоит из АЛУ, блока счетчика команд и блока управления и синхронизации.

Арифметико-логическое устройство МК, как и АЛУ МП Intel 8080,

выполняет арифметическую и логическую обработку данных. Отличается от него наличием восьмиразрядного регистра В, используемого при выполнении команд умножения и деления для хранения исходных операндов и результата.

Регистр слова состояния (PSW) предназначен для хранения ряда признаков (результатов) операций, формируемых при выполнении некоторых команд. Наименование и назначение битов регистра PSW приведены в табл. 9.1.

Таблица 9.1

 

 

 

Регистр PSW

 

 

Биты

Наименование

 

 

 

Имя и назначение

0

P

Флаг четности

 

 

 

 

1

 

Не используется

 

 

2

OV

Флаг переполнения. Устанавливается и сбрасывается

аппаратно при выполнении арифметических операций

 

 

 

 

Биты выбора банка регистров общего назначения

 

 

 

 

 

 

 

 

 

3

RS0

 

RS0

RS1

 

Банк

Границы адресов

 

0

0

 

0

00H–07H

 

4

RS1

 

 

 

 

1

0

 

1

08H–0FH

 

 

 

 

 

 

 

 

 

0

1

 

2

10H–17H

 

 

 

 

1

1

 

3

18H–1FH

 

 

 

 

 

 

5

F0

Флаг пользователя

 

 

6

АС

Флаг вспомогательного переноса

7

C

Флаг основного переноса.

 

 

Блок счетчика команд формирует текущие адреса памяти программ и внешней памяти данных. Содержимое счетчика команд (РС) автоматически увеличивается на 1 после выборки каждого байта команды. Его содержимое может изменяться скачкообразно при выполнении команд условных и безусловных переходов, при выполнении команды вызова подпрограммы и при обслуживании прерываний.

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

Алгоритм обработки информации в МК, также как и в МП, определяется программой. Действия МК при выполнении каждой команды определяются кодом операции команды и синхронизируются во времени

111

сигналами генератора тактовых импульсов. Частота генератора fГТИ стабилизируется кварцевым резонатором (рис. 9.2).

Совокупность действий, выполняемых МК в процессе реализации команды, называется командным циклом. В зависимости от сложности команды командный цикл состоит из одного, двух или четырех машинных циклов (МЦ). Каждый МЦ состоит из 12 периодов генератора тактовых импульсов.

9.3. Организация памяти

МК Intel 8051 имеет раздельные адресные пространства для памяти данных и памяти программ (рис. 9.3).

Рис. 9.3. Организация памяти

Память программ предназначена для хранения программ. Она является энергонезависимой, допускает только чтение и имеет байтовую организацию. Емкость резидентной (внутренней) памяти программ (РПП) 4 Кбайта.

Внутренняя память программ может быть расширена до 64 Кбайтов путем подключения внешних ИС памяти (внешней памяти программ).

При совместной работе с РПП и внешней памятью программ обращение к последней происходит автоматически, если считывается команда, имеющая адрес больший, чем 0FFFН. Отключение РПП происходит

при подаче на вход EA МК напряжения, соответствующего логическому нулю. В этом случае выборка команд осуществляется только из внешней памяти программ.

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

112

пись и чтение. Емкость резидентной (внутренней) памяти данных (РПД) 128 байтов.

Младшие 32 байта РПД сгруппированы в 4 банка регистров общего назначения по 8 регистров R0–R7 в каждом (рис. 9.4). Регистры R0 и R1 каждого банка могут использоваться в качестве регистров косвенной адресации. Следующие после банков РОН 16 байтов (адреса 20H–2FH) или 128 битов (адреса 00H–7FH) образуют область ячеек, к которым возможно как побайтовое, так и побитовое обращение. Набор команд микроконтроллера Intel 8051 содержит значительное количество инструкций, позволяющих работать с указанными битами.

7FH

 

Побайтно-адресуемая область РПД

 

• • •

 

 

 

 

 

 

 

 

 

 

30H

 

 

 

 

 

 

 

 

2FH

7FH

7EH

7DH

7CH

7BH

7AH

79H

78H

2EH

77H

76H

75H

74H

73H

72H

71H

70H

Побитно-адресуемая область РПД

21H

0FH

0EH

0DH

0CH

0BH

0AH

09H

08H

20H

07H

06H

05H

 

04H

03H

02H

01H

00H

1FH

 

 

 

Банк3 (R7–R0)

 

 

• • •

 

 

 

 

 

18H

 

 

 

 

 

 

 

 

 

17H

 

 

 

Банк2 (R7–R0)

 

 

• • •

 

 

 

 

 

10H

 

 

 

 

 

 

 

 

 

0FH

 

 

 

Банк1 (R7–R0)

 

 

• • •

 

 

 

 

 

08H

 

 

 

 

 

 

 

 

 

07H

 

 

 

Банк0 (R7–R0)

 

 

• • •

 

 

 

 

 

00H

 

 

 

 

 

 

 

 

 

 

Рис. 9.4. Резидентная память данных

 

Все байты РПД могут адресоваться как прямо, так и косвенно. Для обращения ко всем РОН можно использовать прямую регистровую адресацию.

РПД может быть расширена до 64 Кбайтов путем подключения внешних ИС ОЗУ (внешней памяти данных). Обращение к ней возможно только с помощью специальных команд.

К адресному пространству памяти данных примыкает адресное пространство регистров специальных функций РСФ (SFR). Они доступны только при прямой адресации. Перечень регистров специальных функций приведен в табл. 9.2.

113

 

Регистры специальных функций

Таблица 9.2

 

 

 

 

Наименование

Назначение

 

Адрес

 

P0*

Порт 0

 

80H

 

SP

Регистр–указатель стека

 

81H

 

DPL

Младший байт регистра–указателя данных DPTR

 

82H

 

DPH

Старший байт регистра–указателя данных DPTR

 

83H

 

PCON

Регистр управления потреблением

 

87H

 

TCON*

Регистр управления/состояния таймера/счетчика

 

88H

 

TMOD

Регистр режима таймеров/счетчиков

 

89H

 

TL0

Таймер/счетчик 0. Младший байт

 

8АH

 

TL1

Таймер/счетчик 1. Младший байт

 

8BH

 

TH0

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

 

8CH

 

TH1

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

 

8DH

 

P1*

Порт 1

 

90H

 

SCON*

Регистр управления последовательного порта

 

98H

 

SBUF

Буфер последовательного порта

 

99H

 

P2*

Порт 2

 

0A0H

 

IE*

Регистр разрешения прерываний

 

0A8H

 

P3*

Порт 3

 

0B0H

 

IP*

Регистр приоритетов прерываний

 

0B8H

 

PSW*

Регистр состояния программы

 

0D0H

 

A*

Аккумулятор

 

0E0H

 

B*

Регистр B

 

0F0H

 

* – регистры, допускающие побитовую адресацию.

9.4. Порты ввода/вывода информации

Четыре 8-разрядных двунаправленных порта ввода/вывода P0, P1, P2, P3 предназначены для обмена информацией МК с внешними устройствами. Порты адресуются как регистры специальных функций. Каждая линия (группа линий) портов может быть использована индивидуально для ввода или вывода информации. Для того чтобы некоторая линия (группа линий) порта использовалась для ввода, в соответствующий разряд (группу разрядов) этого порта необходимо записать 1.

Порты P0, P2, P3 могут выполнять ряд дополнительных функций.

9.5. Организация таймеров/счетчиков

МК Intel 8051 содержит два программируемых 16-разрядных таймера/счетчика (Т/Cч0 и T/Cч1). Каждый из них состоит из двух доступных по записи и чтению регистров специальных функций THx и TLx (x = 0, 1), предназначенных для хранения текущего содержимого таймеров/счетчиков.

114

Таймеры/счетчики (Т/Сч) могут быть использованы как в качестве таймеров, так и в качестве счетчиков внешних событий. В первом случае содержимое соответствующего Т/Сч инкрементируется в каждом машинном цикле, т. е. через 12 периодов тактового генератора. Во втором случае содержимое Т/Сч инкрементируется под воздействием перехода из 1 в 0 внешнего сигнала, подаваемого на соответствующий вход (Т0, Т1) МК. При этом максимальная частота регистрируемых сигналов не должна превышать 1/24 частоты тактового генератора МК. Для надежной регистрации каждое значение входного сигнала должно удерживаться как минимум в течение одного машинного цикла.

Признаком окончания счета, как правило, является переполнение регистров TH и TL. При этом устанавливается в единицу флаг переполнения таймера/счетчика TF. Если прерывания разрешены, управление передается подпрограмме, обслуживающей источник прерывания. По окончании этой подпрограммы управление возвращается прерванной программе. Кроме того, регистры TH и TL доступны не только по записи, но и по чтению. Поэтому контроль достижения тем или иным таймером/счетчиком заданной величины можно осуществлять программным путем.

Для выбора режимов работы таймеров/счетчиков и управления их работой используются два регистра специальных функций (TMOD – регистр режимов работы и TCON – регистр управления/состояния).

Регистр TMOD устанавливает один из четырех возможных режимов работы таймеров/счетчиков, работу каждого таймера/счетчика в режиме таймера или в режиме счетчика внешних событий. Он также обеспечивает возможность управления таймерами/счетчиками внешними сигналами. Наименование и назначение разрядов регистра TMOD приведены в табл. 9.3.

Регистр TCON предназначен для приема и хранения команды, управляющей работой таймеров/счетчиков. Наименование и назначение разрядов регистра TCON приведены в табл. 9.4.

Для обоих таймеров/счетчиков режимы 0, 1 и 2 одинаковы, режимы 3 – различны.

Таймер/счетчик T/Cч в режиме 0 (1) представляет собой устройство на основе 13- (16-) разрядного регистра, состоящего из 8 разрядов регистра TH и 5 младших разрядов (8 разрядов) регистра TL.

115

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистр TMOD

 

 

 

 

 

 

 

 

Таблица 9.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Биты

 

Наименование

 

 

 

 

 

 

 

 

Назначение

 

 

 

 

 

 

 

 

 

 

7

 

GATE1

 

Бит разрешения (GATE1 = 1)/запрещения (GATE1 = 0)

 

 

 

 

 

 

 

 

 

управления T/Cч1 от внешнего вывода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

INT1

 

6

 

C /

 

 

1

 

Бит выбора режима работы T/Cч1 в качестве таймера

 

T

 

 

 

 

 

 

 

 

 

 

( C /

T

1 = 0) или в качестве счетчика внешних событий

 

 

 

 

 

 

 

 

 

( C /

 

 

1 = 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

М1.1

 

Биты выбора одного из четырех режимов работы T/Cч1

 

4

 

М0.1

 

 

M1.1

M0.1

 

 

Режим

 

 

 

 

 

 

 

 

 

0

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

3

 

 

 

 

 

3

 

GATE0

 

Бит разрешения (GATE0 = 1)/запрещения (GATE0 = 0)

 

 

 

 

 

 

 

 

 

управления T/Cч0 от внешнего вывода

 

 

 

 

 

 

 

 

 

 

 

 

 

INT 0

 

2

 

C /

 

 

0

 

Бит выбора режима работы T/Cч0 в качестве таймера

 

 

T

 

 

 

 

 

 

 

 

 

 

( C /

T

0 = 0) или в качестве счетчика внешних событий

 

 

 

 

 

 

 

 

 

( C /

 

0 = 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

М1.0

 

Биты выбора одного из четырех режимов работы T/Cч0

 

0

 

М0.0

 

(аналогично Т/Сч1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистр TCON

 

 

 

 

 

 

 

 

Таблица 9.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Биты

 

Наименование

 

 

 

 

 

 

 

 

Назначение

 

 

 

 

 

 

 

 

 

 

7

 

TF1

 

Флаг переполнения T/Cч1

 

 

 

 

 

 

 

 

 

 

6

 

TR1

 

Бит включения T/Cч1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TR1 = 1 включен, TR1 = 0 выключен

 

5

 

TF0

 

Флаг переполнения T/Cч0

 

 

 

 

 

 

 

 

 

 

4

 

TR0

 

Бит включения T/Cч0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TR0 = 1 – включен, TR0 = 0 – выключен

 

3

 

 

IE1

 

Флаг запроса внешнего прерывания

 

 

 

 

 

 

 

 

 

 

INT1

 

2

 

 

IT1

 

Бит выбора типа прерывания

 

 

 

 

 

 

 

 

 

INT1

 

 

 

 

 

 

 

 

 

 

IT1 = 0 прерывание по уровню (низкому),

 

 

 

 

 

 

 

 

 

 

IT1 = 1 прерывание по переходу из «1» в «0»

 

1

 

 

IE0

 

Флаг запроса внешнего прерывания

 

 

 

 

 

 

 

 

 

INT 0

 

0

 

 

IT0

 

Бит выбора типа прерывания

 

 

 

 

 

 

 

INT 0

 

 

 

 

 

 

 

 

 

 

IT0 = 0 прерывание по уровню (низкому),

 

 

 

 

 

 

 

 

 

 

IT0 = 1 прерывание по переходу из «1» в «0»

116

В режиме 2 T/Cч представляет собой устройство на основе 8-раз- рядного регистра TL. При каждом переполнении регистра TL устанавливается флаг переполнения TF и происходит автозагрузка регистра TL содержимым регистра TH, при этом содержимое регистра TH не изменяется.

Таймер/счетчик T/Cч1 в режиме 3 заблокирован (значение кода в регистрах TH1, TL1 не изменяется). Таймер/счетчик T/Cч0 в режиме 3 представляет собой два независимых устройства на основе регистров TH0 и TL0. Устройство на основе TL0 может работать в режиме таймера или в режиме счетчика и при переполнении устанавливает флаг TF0. За

этим устройством сохраняются биты управления TR0, GATE0, C /T 0. Устройство на основе регистра TH0 может работать только в режиме таймера. Оно использует бит включения TR1, при переполнении выставляет флаг TF1. Других битов управления устройство на основе TH0 не имеет.

9.6. Универсальный асинхронный приемопередатчик

Последовательный порт МК Intel 8051 – универсальный асинхронный приемопередатчик (УАПП) – обеспечивает прием и передачу информации, представленной в последовательном коде. В состав УАПП входят передающий и принимающий сдвигающие регистры, буфер приемника и передатчика SBUF и блок управления работой приемопередатчика с регистром управления SCON. Запись подлежащего передаче байта данных в буфер передатчика SBUF приводит к его автоматической загрузке в сдвигающий регистр передатчика, к преобразованию данных из параллельного кода в последовательный код и добавлению (в случае необходимости) служебных битов. Сформированная таким образом последовательность битов подается на выход УАПП.

Сдвигающий регистр приемника принимает данные, поступающие на вход УАПП в последовательном коде, преобразует их в параллельный код, очищает (в случае необходимости) от служебных битов. Полученный в результате байт данных записывается в буфер приемника. Принятое из канала слово считывается в ЦП МК из буфера приемника.

УАПП может работать в четырех режимах. В режиме 0 УАПП реализует полудуплексный синхронный канал передачи данных, а в режимах 1, 2 и 3 – дуплексный асинхронный канал.

Настройка УАПП на определенный режим работы осуществляется путем загрузки соответствующего управляющего слова в регистр управления УАПП SCON. Наименование и назначение разрядов регистра SCON приведены в табл. 9.5.

117

 

 

 

 

 

 

Таблица 9.5

 

 

 

Регистр SCON

 

 

Биты

Наименование

 

 

 

Назначение

7

SM0

 

 

Биты выбора режима работы

6

SM1

 

 

 

 

 

SM0

SM1

Режим

 

Характеристика режима

 

 

 

 

 

0

0

0

 

синхронный

 

 

0

1

1

 

8 бит, асинхронный, скорость

 

 

 

 

 

 

переменная

 

 

1

0

2

 

9 бит, асинхронный, скорость

 

 

 

 

 

 

fГТИ/64 или fГТИ/32

 

 

1

1

3

 

9 бит, асинхронный, скорость

 

 

 

 

 

 

переменная

5

SM2

Бит

разрешения многопроцессорной работы

 

 

 

4

REN

Бит разрешения приема. REN = 1 прием разрешен,

 

 

REN = 0 прием запрещен

 

 

 

3

TB8

Девятый бит передаваемых в режимах 2, 3 данных

 

 

 

2

RB8

Девятый бит принятых в режимах 2, 3 данных

 

 

 

1

TI

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

 

 

 

0

RI

Флаг прерывания приемника

 

 

 

 

 

 

 

Режим 0. Режим последовательной синхронной передачи данных.

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

Реализуется полудуплексный канал связи. Данные поступают через внешний вывод приемника RxD в обе стороны (т. е. и передаются, и принимаются), но в каждый конкретный момент времени только в одну сторону. На выходе передатчика TxD формируются тактовые импульсы синхронизации, стробирующие передаваемые или принимаемые биты.

Во всех остальных режимах работы УАПП реализуется полнодуплексный канал связи, причем асинхронная передача и прием могут вестись одновременно с одинаковой или разной скоростью.

В нулевом режиме работы обеспечивается максимальная скорость передачи данных УАПП. За один МЦ УАПП передает один бит информации.

Режим 1. Режим последовательной асинхронной передачи данных.

Используемый стандартный формат содержит 8 передаваемых битов информации и два специальных служебных бита, называемых стартовым и стоповым. Информация передается через вывод TxD, а принимается че-

118

рез вывод RxD. Скорость приема/передачи является переменной и задается таймером/счетчиком Т/Сч1.

До начала передачи символа на выводе TxD формируется логическая 1. Первый передаваемый бит всегда имеет нулевое значение и является стартовым битом. Приняв его, приемная сторона подстраивает фазу своих синхросигналов в соответствии с моментом прихода стартового бита. После стартового бита один за другим следуют 8 битов данных. Завершается передача стоповым битом, имеющим всегда единичное значение. Формат передачи десятичного числа 95, представленного двоичнодесятичным кодом 8-4-2-1, приведен на рис. 9.5.

Нет

Стартовый

Номера

информационных

 

битов

 

Стоповый

Нет

пере-

 

бит

 

 

 

 

 

 

 

 

бит

пере-

дачи

0

1

2

3

4

5

6

7

 

дачи

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 9.5. Формат передачи десятичного числа 95 в режиме 1 УАПП

Режим 2. Режим 2, как и режим 1, является режимом последовательной асинхронной передачи данных. Отличается от режима 1 наличием девятого программируемого бита данных, предназначенного для организации обмена данными в мультиконтроллерных системах. При передаче значение этого бита берется из бита TB8, а при приеме записывается в бит RB8 регистра SCON. Частота приема/передачи может быть выбрана равной 1/32 или 1/64 частоты тактового генератора МК.

Режим 3. Режим 3 идентичен режиму 2 с тем отличием, что скорость приема/передачи является переменной и задается Т/Сч1.

Синхронизация ЦП МК с УАПП осуществляется с помощью флагов прерывания приемника и передатчика. Флаг RI прерываний приемника аппаратно устанавливается в конце времени приема 8-го бита данных в режиме 0 УАПП или через половину времени приема стоп бита в остальных режимах работы УАПП. Флаг TI прерываний передатчика устанавливается аппаратно в конце выдачи 8-го бита в режиме 0 или в начале передачи стоп бита в остальных режимах работы УАПП.

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

Система прерываний МК Intel 8051 обеспечивает возможность ап-

паратного прерывания от двух внешних источников ( INT 0, INT1) преры-

вания и четырех внутренних источников прерывания. К внутренним источникам относятся передатчик УАПП, приемник УАПП, Т/Сч0 и Т/Сч1.

119

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

Запросы прерываний от внутренних источников генерируются в соответствии с принципами работы устройств, их генерирующих.

Для приема внешних запросов на прерывание служат линии

INT 0, INT1. При возникновении внешнего запроса прерывания устанав-

ливается флаг прерывания IE0 или флаг прерывания IE1 соответственно. Для обнаружения запроса требуемые уровни сигналов должны присутствовать на входе в течение как минимум одного машинного цикла.

Каждый источник имеет свой, фиксированный вектор прерывания

 

 

 

 

 

Таблица 9.6

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

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

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

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

 

 

 

 

0003Н

INT 0

Т/Сч0

000ВН

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

 

 

0013Н

INT1

Т/Сч1

001ВН

УАПП

0023Н

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

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

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

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

120