- •Лабораторная работа № 3
- •1.2. Краткий обзор режима 0
- •1.3. Асинхронные режимы
- •1.3.1. Краткий обзор Режима 1
- •1.3.2. Краткий обзор Режима 2
- •1.3.3. Краткий обзор Режима 3
- •1.4. Многопроцессорная связь
- •1.5. Программирование последовательного порта
- •1.5.1. Регистр скорости передачи
- •1.5.2. Регистр буфера приемника последовательного порта
- •1.5.3. Регистр буфера передатчика последовательного порта
- •1.5.4. Регистр управления последовательным портом.
- •1.5.5. Регистр статуса последовательного порта.
- •1.6. Прерывания последовательного порта
- •1.6.1 Описание работы контроллера прерывания
- •1.6.2. Приоритеты прерывания
- •1.6.3. Изменение приоритетов прерывания
- •1.6.4. Программы обработки прерывания
- •Фрагмент программы
- •2. Порядок выполнения работы
- •3. Содержание отчета
Лабораторная работа № 3
ИЗУЧЕНИЕ ПОСЛЕДОВАТЕЛЬНОГО
ПОРТА МИКРОКОНТРОЛЛЕРА 8XC196КС
Цель работы: 1. Изучение структуры и функциональных возможностей последовательного порта микроконтроллера 8XC196КС
2. Изучение порядка программирования последовательного порта микроконтроллера I8XC196KC.
3. Подготовка программ с использованием интегрированной среды.
1. ОПИСАНИЕ ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА МИКРОКОНТРОЛЛЕРА 8XC196KC
1.1. Общие сведения
Последовательный порт предназначен для обмена данными, представленными в последовательном коде, между микроконтроллером (МК) и различными внешними устройствами.
Последовательный порт позволяет:
- увеличивать число параллельных портов у МК путем подключения внешних сдвигающих регистров;
- осуществлять обмен данными с другими устройствами по последовательному каналу связи;
- создавать из нескольких микроконтроллеров простейшую локальную сеть.
На рис.3.1 изображена структурная схема последовательного порта.
В состав последовательного порта входят регистры специальных функций SP_CON, SP_STAT, SP_BAUD, SBUF(RX) и SBUF(TX), а также сдвигающий регистр передатчика (Transmit Shift Register), сдвигающий регистр приемника (Receive Shift Register) и генератор тактового сигнала (Baud Rate Generator).
Последовательный порт принимает данные в регистр SBUF(RX), а передает данные из регистра SBUF(TX). Разрешается одновременное чтение и запись обоих регистров.
Передатчик и приемник буферизируются, для того, чтобы поддерживать непрерывную передачу и позволять прием второго байта до того, как будет прочитан первый байт.
Последовательный порт поддерживает один синхронный режим (Режим 0) и три асинхронных режима (Режимы 1, 2, и 3) и для передачи и для приема.
1.2. Краткий обзор режима 0
В синхронном режиме осуществляется последовательная передача или последовательный приём байта с использованием внешних сдвигающих регистров. При этом контакт P2.0 (TXD) используется для выдачи серии из восьми импульсов управления сдвигом внешнего регистра, а контакт P2.1 (RXD) для последовательной выдачи или приёма битов данных D0, D1, D2....D7 .
На рис.3.2 приведена временная диаграмма работы последовательного порта в режиме 0.
В режиме 0, приёмник (RXD) должен быть отключён для начала передачи и включён для начала приема. Когда RXD отключён, запись в SBUF (TX) начинает передачу. Когда RXD включён, приём начинается или по падающему фронту на входе RXD или по очистке флага прерывания по приёму (RI). Отключение RXD останавливает процесс приёма и запрещает дальнейшие приемы.
Для избежания нежелательного частичного или полного приема, отключайте приёмник (RXD) перед очисткой флажка RI. Завершение приема может обрабатываться через прерывания, используя флажки в регистре SP_STAT, или непосредственно в строках программы, используя регистр захвата прерывания.
Во время приема, после того, как будет получен последний информационный разряд, флажок RI установится в 1. Непосредственно перед установкой флажка RI генерируется сигнал прерывания приёмника.
Во время передачи, флажок TI устанавливается немедленно после передачи последнего (восьмого) информационного разряда, после этого генерируется сигнал прерывания передатчика.