Курс лекций - Микропроцессоры

Скорость приема/передачи информации через последовательный порт - часть 5


Обычно используются стандартные скорости передачи, такие как 1200бит/с, 2400 бит/с и т.д. Для таких скоростей передачи обычно используется кварцевый резонатор с частотой 11.0592 МГц. Скорости передачи и коэффициенты, загружаемые в таймер 1, для этих скоростей передачи приведены в .

В отличие от нулевого режима работы в первом режиме работы возможен обмен информацией между двумя микроконтроллерами, а не только между микроконтроллером и исполнительными микросхемами. Схема соединения двух микроконтроллеров между собой для обмена информацией приведена на рисунке 7. Таким образом может быть построена простейшая многопроцессорная система.

Рисунок 7. Схема обмена информацией между двумя микроконтроллерами по последовательному порту.

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

В качестве примера работы с последовательным портом приведём подпрограмму инициализации последовательного порта для работы в асинхронном режиме на скорости 9600 бит/с. Настройка режима работы последовательного порта в этой программе производится записью двоичной константы в регистр управления . Выбор конкретных значений бит двоичной константы подробно приводится в комментариях к программе.

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

Скорость работы последовательного порта настраивается записью константы 0FDh в старший байт .

;********************************************************************************************************************************* ;НАСТРОЙКА ПОСЛЕДОВАТЕЛЬНОГО ПОРТА ;********************************************************************************************************************************* ;Настроить режим работы последовательного порта----------------------------------------------------------------------------------- mov SCON,#01110000b ;настроить последовательный порт на первый режим работы ; ;|+-------Обнулить флаг приёмника RI ;+--------Обнулить флаг передатчика TI ;|+---------Обнулить девятый бит приёмника RB8 ;+----------Обнулить девятый бит передатчика TB8 ;|+-----------Разрешить работу приёмника ;+------------Проверять ошибку кадра (приём нулевого бита на месте стоп-бита) ;++-------------Включить асинхронный режим работы последовательного порта ;Настроить режим работы таймера T1 ---------------------------------------------------------------------------------------------- anl TMOD,#00001111b ;Подготовить таймер T1 к настройке (таймер T0 не трогать!) orl TMOD,#00100000b ;перевести таймер T1 вo второй режим работы (таймер T0 не трогать!) ; ;++--------------Перевести таймер T1 в режим автозагрузки ;|+----------------Синхронизироваться от внутреннего генератора ;+-----------------Запретить управление таймером от ножки INT1 ;Настроить таймер на генерацию 3-x микросекундного интервала времени-------------------------------------------------------------- mov TH0, #fdh ;Загрузить старший байт таймера mov TL0, #fdh ;Загрузить младший байт таймера setb TR1 ;Включить таймер 1 ;********************************************************************************************************************************* ;РАБОТА С ПОСЛЕДОВАТЕЛЬНЫМ ПОРТОМ ;********************************************************************************************************************************* JNB RI, $ ;Подождать окончания приёма байта по последовательному порту MOV A, SBUF ;и скопировать его в аккумулятор

Рисунок 8.


- Начало -  - Назад -  - Вперед -