Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
sh.doc
Скачиваний:
21
Добавлен:
16.12.2018
Размер:
8 Мб
Скачать
☆

40. Структура и основные режимы работы канала последовательного ввода-вывода микроконтроллера мк51.

Настройка канала – через SCON.

режим 0 – синхронный ввод-вывод со скоростью 1/12 частоты резонатора;

режим 1 – асинхронный 10 – битовый ввод-вывод с переменной скоростью работы, определяемой таймером 1;

режим 2 – асинхронный 11- битовый ввод-вывод со скоростью 1/32 и 1/64 частоты резонатора;

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

Формат управляющего слова SCON:

D7 D0

SM0 SM1

SM2

REN

TB8

RB8

TI

RI

где SM0,SM1 – биты режима (00 – режим 0, 01 – режим 1, 10 – режим 2, 11 –режим 3); SM2 – бит, запрещающий прием данных с битом D8=0 в режимах 2, 3, в режиме 0 сброшен, в режиме 1 установлен; REN – бит разрешения приема; TB8 – девятый бит, передаваемый в режимах 2, 3; RB8 - девятый бит, принимаемый в режимах 2, 3; TI – флаг прерывания передатчика; RI - флаг прерывания приемника.

Скорость работы в режимах 1-3 определяется формулой: F = f рез*2^SMOD/(12*32*Ktf1),

Передача данных в асинхронном режиме осуществляется по линии порта P3.1 (TxD) в формате: старт-бит, 8 битов данных, бит контроля (если это предусмотрено программой) и стоп-бит – всего 10 либо 11 бит. Передача начинается по команде: MOV SBUF, A – пересылка содержимого аккумулятора в буферный регистр. После передачи символа в передатчик канала устанавливается в 1 флаг готовности передатчика, что позволяет перейти к выводу следующего символа либо путем прерывания либо путем опроса состояния передатчика.

Прием данных происходит по отрицательному фронту на линии порта P3.0 при наличии разрешения (бит REN в регистре управления SCON должен быть установлен в 1). При поступлении стоп-бита в регистре управления SCON устанавливается флаг готовности приемника RI=1, который путем прерывания либо опроса состояния приемника разрешает принять символ из буферного регистра приемника в аккумулятор микроконтроллера: MOV A, SBUF.

Контроль передачи осуществляется путем добавления бита четности (нечетности) в бит TB8 и выбора 11-битового режима передачи. Формирование бита четности, например, можно осуществить, сложив значение передаваемого символа с нулем. Образующийся признак паритета P в слове состояния программы PSW.0 может быть использован для установки бита TB8 (SCON.3). Ниже приведен фрагмент программы согласно описанной процедуре.

ADD A, #0 ;образование бита четности в PSW

MOV C, P ;пересылка в битовый аккумулятор

MOV TB8, C ;пересылка для передатчика

MOV SBUF, A ;пересылка символа в буфер приемника

Контроль при приеме осуществляется программно путем сравнения принятого бита RB8 (SCON.2) c значением бита четности символа, поступившего в аккумулятор из буфера приемника.

MOV A, SBUF

ADD A, #0 ;образование бита четности в PSW

MOV C, P ;сохранение P и RB8

MOV F0, RB8

JB RB8, m1 ;проверка значения 9-го бита

CPL C ;инвертирование P и RB8

CPL F0

m1: ANL C, F0 ;сравнение P и RB8

JC m0 ;переход при P=RB8

;регистрация ошибки при P<>RB8

m0:

;продолжить прием

Особенности работы УАПП в различных режимах

Режим 0. Данные передаются и принимаются через вывод RXD. Через вывод TXD выдаются синхросигналы сдвига. Передача начинается любой командой, по которой в SBUF поступает байт данных.

Режим 1. Через вывод TXD УАПП передает, а с вывода RXD принимает 10 бит: старт-бит (0), 8 бит данных и стоп-бит (1). При приеме стоп-бит поступает в бит RB8 регистра SCON. Передача инициируется любой командой, в которой получателем байта является регистр SBUF.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]