- •Введение
- •Назначение микропроцессорных систем сбора и обработки данных
- •Микроконтроллеры семейства mcs-51
- •Общая характеристика базовой модели
- •Структурная схема кристалла 80с51.
- •Регистры специальных функций
- •Синхронизация микроконтроллера
- •Организация памяти в семействе мсs-51
- •Режимы 2 и 3 работы последовательного порта
- •Пример программирования последовательного порта
Режимы 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 ; повторение цикла заполнения ячеек внешней памяти
; по тем же адресам;
Литература
Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.: Энергоатомиздат, 1990. 224 с.
А.Е.Васильев. Микроконтроллеры. Разработка встраиваемых приложений. 2008, 304 с.
Белов А.В. Конструирование узлов на микроконтроллерах. – СПБ.: "Наука и техника, 2005
Базылев В.К. Микропроцессорные системы сбора и обработки данных: методические указания к лабораторным работам / Рязан. Гос. Радиотехн. Ун-т: сост В. К. Базылев, Рязань, 2012. 56 с
Программирование интегральной системы сбора данных ADuC812: методические указания к лабораторным работам / Рязан. Гос. Радиотехн. Ун-т, сост. В. К. Базылев. Рязань, 2010. 24 с.
Каспер Э. Программирование на языке Ассемблера для микроконтроллеров i8051. 2004. 191 с.
Болски М. И. Язык программирования Си: справочник: пер. с англ. – М.: Радио и связь, 1988. – 96 с.
Уэйт М., Прата С., Мартин Д. Язык Си для начинающих: пер. с англ. – М.: Мир, 1988. – 120 с.
Proteus по-русски. Радиоежегодник. Выпуск 24, 2013 г.
