Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кормилин_2003_Устрой.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
576 Кб
Скачать
☆
    1. Последовательный порт

Последовательный порт в МК51 - это универсальный асинхронный приемопередатчик (УАПП или UART (Universal Asynchron Receiver Transmitter)), через который выполняется прием и передача информации, представленной последовательным кодом. УАПП является полным дуплексным портом, что означает возможность осуществлять передачу и прием одновременно. В состав УАПП входят сдвигающие регистры приема и передачи и буферный регистр приемника/передатчика SBUF. На самом деле регистр SBUF состоит из двух раздельных регистров: буферного регистра приемника и буферного регистра передатчика.

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

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

Для управления режимами и контроля состояниями используется регистр SCON (таблица 4.6).

Таблица 4.6 - Регистр управления SCON

Этот регистр содержит биты выборки режима (SM0 и SM1), бит SM2, предназначенный для мультипроцессорных режимов, бит разрешения приема (REN), 9-й бит данных для 9-битных режимов передачи и приема (TB8 и TR8) и биты прерывания последовательного порта (TI и RI).

      1. Режимы работы уапп

Последовательный порт может работать в 4 режимах.

Режим 0. В этом режиме информация по 8 бит передается и принимается через внешний вывод входа приемника (RXD, порт Р3.0). Через внешний вывод передатчика (TXD, порт P3.1) выдаются импульсы сдвига с фиксированной частотой FOSC/12, которые синхронизируют каждый бит данных.

Передача начинается сразу после записи байта в SBUF. Прием начинается при условии (RI=0 ( REN=1).

Режим 1. В этом режиме через TXD передаются и через RXD принимаются 10 бит: нулевой старт-бит, 8 бит данных, представленных младшими битами вперед и единичный стоп-бит (рисунок 4.15).

Рисунок 4.15 - Кадр данных в режиме 1

Скорость передачи в этом режиме переменная. Для ее задания можно использовать таймер Т/С1. Прием данных начинается с приходом старт-бита при условии, что бит REN=1 (SCON.4).

Режим 2. В этом режиме через TXD передаются или через RXD принимаются 11 бит: нулевой старт-бит, 8 бит данных, программируемый 9-тый бит и единичный стоп-бит (рисунок 4.16).

Рисунок 4.16 - Кадр данных в режиме 2

При передаче 9-тый бит данных считывается из бита TB8 (SCON.3), который можно изменять программно, например, копируя в него бит четности Р (PSW.0). При приеме 9-тый принятый бит записывается в бит RB8 (SCON.2) с возможностью его дальнейшего программного анализа.

Скорость передачи фиксирована и выбирается из двух возможных вариантов: FOSC/32 или FOSC/64.

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

      1. Скорость передачи

Сводка режимов (таблица 4.7) позволяет выбрать режим передачи с учетом требуемой скорости обмена информацией.

Таблица 4.7 - Скорость передачи в УАПП

Режим УАПП

Скорость передачи

0

1

, FOVT1 - частота переполнения таймера 1

2

3

, FOVT1 - частота переполнения таймера 1

1 или 3. Т/С1 в режиме с перезагрузкой

Стандартные скорости передачи (таблица 4.8) получаются с использованием таймера 1. В этом случае необходимо запретить прерывание TF1 (TCON.7). Таймер может работать либо как таймер, либо как счетчик событий в любом из трех режимов. В большинстве применений он используется как таймер в режиме 2 с автоперезагрузкой.

Таблица 4.8 - Типовые скорости передачи, генерируемые таймером 1

Скорость передачи в режимах 1, 2 или 3 дополнительно зависит от значения бита SMOD, расположенного в регистре управления энергопотреблением PCON (таблица 4.9). Кроме этого, в регистре имеются два бита, определяемые пользователем GF0 и GF1, бит пониженного энергопотребления PD и бит холостого хода IDL.

Таблица 4.9 - Регистр PCON