Скачиваний:
90
Добавлен:
21.02.2014
Размер:
4.45 Mб
Скачать

4.3.4 Скорость передачи-приёма данных через последовательный порт

Скорость (частота пересылки битов) последовательного обмена Vпд в зависимости от режима работы последовательного порта определяется либо частотой синхронизации ОМЭВМ fBQ (режимы 0 и 2), либо частотой переполнения Таймера / Счетчика 1 Fov (режимы 1 и 3).

В режиме 0 скорость последовательного обмена максимальна. Она постоянна и составляет:

Vпд = fBQ/12 [бит/с]. (3)

При необходимости работать с переменной скоростью используется режим 2 последовательного порта. В этом режиме скорость последовательной передачи зависит от состояния бита SMOD регистра SCON и частоты fBQ:

Vпд= (2SMOD/64) * fBQ[бит/с]. (4)

Т. е. при SMOD = 0 Vпд = fBQ/64, а при SMOD = 1 Vпд = fBQ/32. по сигналу “сброс” бит SMOD устанавливается в нуль. Для установки бита SMOD используются команды с байтовой адресацией, например, команда MOV 87H, #80Н.

В режимах 1, 3 также имеется возможность изменить скорость последовательной передачи:

Vпд= (2SMOD/32) *FOVT/C1[бит/с], (5)

где FOVT/C1– частота переполнений Т/С 1.

Для использования Т/С 1 в качестве источника для задания скорости обмена необходимо:

1) запретить прерывания от Т/С 1;

2) запрограммировать работу Т/С 1 в качестве таймера или в качестве счетчика, установив при этом для него один из режимов 0, 1 или 2;

3) запустить Т/С 1 на счет.

Обычно для синхронизации последовательного порта таймер Т/С 1 включается в режим автозагрузки (режим 2).

В этом случае скорость последовательного обмена определяется по формуле:

Vпд= (2SMOD*fBQ)/(32 * 12 * [256-(TH1)]) [бит/с], (6)

где (ТН1) – десятичный код содержимого ТН1. Если необходим последователь­ный обмен с очень низкой скоростью, то можно использовать Т/С 1 в режиме 16-разрядного таймера (режим 1), разрешив при этом прерывание от Т/С 1 с целью перезагрузки TL1/TH1 в подпрограмме обслуживания прерывания.

В таблице 19 приведен ряд стандартных скоростей последовательного обмена и то, как они могут быть реализованы в ОМЭВМ.

Таблица 19 - Формирование стандартных скоростей обмена по последовательному порту

В таблице 20 приведена сводная информация по всем четырем режимам работы последовательного порта ОМЭВМ семейства МК51.

Таблица 20 - Сводная информация по всем режимам работы последовательного порта

4.3.5 Пример программирования последовательного порта омэвм

Исходные данные для программирования:

  1. Скорость обмена – 110 бит/с (бод);

  2. fBQ = 6 МГц;

  3. Режим работы последовательного порта - 3;

  4. Режим работы T/C1 – 2;

  5. Вид обмена – под управлением микропроцессора (программно-управляемый);

  6. Бит SMODрегистраPCONсигналом "RESET" установлен в 0.

Ниже приведен пример программы инициализации последовательного порта и фрагменты программно-управляемого обмена:

; инициализация последовательного порта

; для работы со скоростью 110 бод на

; частоте тактового сигнала 6 МГц;

INT1: CLR TCON.6 ; останов таймера;

CLR IE.3 ; запрет прерываний от T/C1;

CLR IE.4 ; запрет прерываний от УАПП;

MOV TH1,#72H ; автозагружаемое значение для получения

; скорости 110 бод;

MOV SCON,#11011000B ; установка режима 9-разрядного УАПП;

MOV TMOD,#00100000B ; установка режима автозагрузки таймера 1;

SETB TCON.6 ; запуск таймера1;

; приём символа от внешнего устройства;

CIN: JNB RI,CIN ; ожидание завершения приёма;

MOV A,SBUF ; чтение полученного символа;

CLR RI ; очистка флага приёма;

; передача символа на внешнее устройство;

COUT: JNB TI,COUT ; ожидание окончания передачи предыдущего

; символа;

CLR TI ; очистка флага передачи;

MOV SBUF,A ; выдача символа.

Соседние файлы в папке КУРСАЧ