Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lect_sbis.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2.14 Mб
Скачать

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

Это режимы 9-разрядного приёмо-передатчика с постоянной (режим 2) и переменной (режим 3) скоростью обмена данными. В этих режимах 11 бит передаются и принимаются через выводы TxD и RxD в следующей последовательности: старт-бит, 9 бит данных, стоп-бит. При передаче 9-й бит данных определяется содержимым разряда ТВ8 регистра SCON. При приёме 9-й бит заносится в бит RB8 регистра SCON.

В режиме 2 скорость (частота) приёма-передачи программно настраивается на одну из двух возможных величин fxtal/32 и fxtal/64 с помощью бита SMOD регистра PCON. В режиме 3 скорость определяется частотой преполнения Т/С 1 (fov). Во всём остальном режимы идентичны.

Временные диаграммы при передаче в отличие от режима 1 имеет перед стоп-битом бит ТВ8, а при приёме перед стоп-битом следует бит RB8. Регистр сдвига приёмника (как и передатчика) является 9-разрядным. При приёме после десятого импульса "Сдвиг" в регистре находятся 9 бит принятой посылки (8 бит данных и бит RB8). После десятого импульса "Сдвиг" биты D0 – D7 загружаются в регистр SBUF, 9-й разряд регистра сдвига загружается в бит RB8 регистра SCON и устанавливается флаг прерывания приёмника RI регистра SCON. Загрузка SBUF, RB8 и установка RI происходит при выполнении 2-х условий: 1) RI = 0 и 2) Либо SM2 = 0, либо принятый 9-й бит равен 1. Если хотя бы одно условие не выполняется посылка теряется , а флаг RI не устанавливается. Независимо от выполнения этих условий последовательный порт вновь начинает отслеживать на входе RxD переход из 1 в 0. Значение принятого стоп-бита не влияет на SBUF, RB8 и RI.

Напомним, что использование 9-го служебного бита необходимо для организации контроля обмена по чётности или обеспечения многопроцессорной работы микроконтроллеров.

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

Пусть требуется принять в асинхронном режиме данные со скоростью 9600 бод и записать их во внешнюю память, начиная с ячейки 00H до 05FFH при тактовой частоте синхрогенератора микроконтроллера 11059 МГц.

jmp PROG ; Обход подпрограммы обработки прерывания от

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

org 0023H ; Установка 1-ой команды подпрограммы обработки

; прерывания на вектор;

mov A, SBUF ; Начало подпрограммы обработки прерывания;

movx @DPTR, A; Пересылка байта в ячейку внешней памяти;

inc DPTR ; Увеличение адреса ячейки внешней памяти на 1;

clr RI ; Сброс флага запроса прерывания от приёмника;

reti ; Возврат из подпрограммы прерывания приёмника;

PROG:

mov TMOD, #00100000b; выбор 2-го режима работы Т/С1;

mov TH1, #FDH ; Загрузка в счётный регистр таймера T/C1 числа, ;

;определяющего скорость обмена (см. таблицу);

mov TCON, #01000000b; включение Т/С1;

mov SCON, #11010000b; Выбор 3-го режима работы последовательного

; порта (9 бит данных), установка бита

;разрешения приёма REN = 1, сброс бита RI;

mov TE, #10010000; общее и индивидуальное разрешение прерываний

; от последовательного порта (установка битов ЕА

; и ES);

DD: mov DPTR, #00H ; загрузка начального адреса ячейки внешней памяти;

SS: mov R0, DPH; ; ожидание, когда внешняя память заполнится до

cjne R0, # 05h, SS ; адреса 0500Н;

mov R0, DPL ; ожидание, когда внешняя память заполнится до

cjne R0, #FFH, SS; адреса 05FFH;

jmp DD ; повторение цикла заполнения ячеек внешней памяти

; по тем же адресам;

Литература

    1. Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.: Энергоатомиздат, 1990. 224 с.

    2. А.Е.Васильев. Микроконтроллеры. Разработка встраиваемых приложений. 2008, 304 с.

    3. Белов А.В. Конструирование узлов на микроконтроллерах. – СПБ.: "Наука и техника, 2005

    4. Базылев В.К. Микропроцессорные системы сбора и обработки данных: методические указания к лабораторным работам / Рязан. Гос. Радиотехн. Ун-т: сост В. К. Базылев, Рязань, 2012. 56 с

    5. Программирование интегральной системы сбора данных ADuC812: методические указания к лабораторным работам / Рязан. Гос. Радиотехн. Ун-т, сост. В. К. Базылев. Рязань, 2010. 24 с.

    6. Каспер Э. Программирование на языке Ассемблера для микроконтроллеров i8051. 2004. 191 с.

    7. Болски М. И. Язык программирования Си: справочник: пер. с англ. – М.: Радио и связь, 1988. – 96 с.

    8. Уэйт М., Прата С., Мартин Д. Язык Си для начинающих: пер. с англ. – М.: Мир, 1988. – 120 с.

    9. Proteus по-русски. Радиоежегодник. Выпуск 24, 2013 г.

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