Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Stenin Lab / C8051F60-67-устройство МК.pdf
Скачиваний:
150
Добавлен:
10.02.2015
Размер:
5.19 Mб
Скачать

C8051F060/1/2/3/4/5/6/7

22. УАПП0

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

Сработой УАПП0 связаны следующие регистры специального назначения: регистр управления УАПП0 (SCON0) и буфер данных УАПП0 (SBUF0). Одна и та же ячейка памяти, адресуемая как SBUF0, обеспечивает доступ и к регистру передатчика, и к регистру приемника. При чтении регистра SBUF0 осуществляется доступ к регистру приемника, а при записи регистра SBUF0 - к регистру передатчика.

Смодулем УАПП0 можно работать как в режиме опроса, так и с использованием прерываний. УАПП0 имеет два источника прерываний:

-флаг прерываний от передатчика TI0 (SCON0.1), устанавливается, когда передача байта данных завершена;

-флаг прерываний от приемника RI0 (SCON0.0), устанавливается, когда завершен прием байта данных.

Флаги прерываний от УАПП0 не сбрасываются аппаратно при переходе к процедуре обслуживания прерывания. Они должны сбрасываться программно. Это позволяет программе определить причину, вызвавшую прерывание от УАПП0 (завершение передачи или завершение приема).

Рисунок 22.1. Структурная схема УАПП0

 

 

 

 

 

 

 

 

 

 

 

 

SFR шина

 

 

 

 

 

 

 

 

 

 

 

Запись

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в SBUF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TB80

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SET

 

 

 

 

 

SBUF0

 

 

 

 

 

SSTA0

 

 

D

Q

 

 

 

 

 

 

TX0

 

 

 

 

CLR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Матрица

F

R

T

S

S

S

S

S

 

 

 

 

 

 

 

 

 

 

 

 

E

X

X

M

0

0

0

0

 

 

 

 

Детектор нуля

 

 

 

0

O C O T

T

R

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V O D C C C C

 

 

 

 

 

 

 

 

 

 

 

 

 

0

L

0

L

L

L

L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

K

K

K

K

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

Генерация

Сдвиг

 

 

 

 

 

 

Данные

 

 

 

 

 

 

 

 

 

 

бита STOP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Управление передатчиком (Tx)

 

 

 

 

 

 

 

 

 

 

 

Старт

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тактирование Tx

 

 

 

 

 

Прерывание Tx

Передача

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Схема

 

 

 

 

 

 

SCON0

 

 

TI0

 

 

 

генератора

 

 

 

 

 

 

 

 

 

 

 

 

 

S

S

S

R

T

R

T

R

 

 

Прерывание от

 

скорости

 

 

 

 

 

 

 

 

 

 

 

M M M

E

B

B

I

I

 

 

последовательного

 

 

обмена

 

 

 

 

0

1

2

N

8

8 0

0

 

 

порта (УАПП0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

УАПП0

 

 

 

 

0

0

0

0

0

0

 

 

RI0

 

 

 

 

 

 

 

 

 

 

Тактирование Rx

 

 

Включение

 

Прерывание Rx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Загрузка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SBUF

 

 

 

 

 

 

 

 

 

 

Управление приемником (Rx)

 

 

Порт

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Совпадение

 

 

 

 

 

 

 

 

 

Старт

 

 

 

 

 

 

 

 

адреса

 

ввода/

 

 

 

 

 

 

 

 

 

 

 

Сдвиг

 

 

0x1FF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вывода

 

 

 

 

 

 

 

 

Схема

 

 

 

 

Входной регистр

 

 

 

 

 

 

 

 

 

 

 

определения

 

 

 

сдвига (9 бит)

 

 

 

 

 

 

 

 

 

 

 

ошибки формата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Загрузка

 

 

 

 

 

 

 

 

RB80

 

 

 

 

 

 

 

 

 

SBUF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SBUF0

 

 

 

Детектор

SADDR0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

совпадения

SADEN0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Чтение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SBUF

 

 

 

 

 

 

 

 

 

 

 

 

SFR шина

 

 

 

 

RX0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Матрица

265

 

 

 

 

 

 

 

 

 

 

 

 

Ред. 1.2