
- •Лабораторная работа № 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. Содержание отчета
1.5.2. Регистр буфера приемника последовательного порта
Serial Port Receive Buffer Register
Аббревиатура - SBUF (RX).
Размер - 1 байт.
Находится по адресу 07h.
Использовать для записи в окне HWindow 15.
Использовать для чтения в окне HWindow 0.
Регистр буфера приемника последовательного порта содержит данные, получаемые из последовательного порта. Приёмник последовательного порта использует двойную буферизацию и поэтому может начать приём второго байта данных, до того, как из него будет прочитан первый байт. Данные удерживаются в сдвигающем регистре приёмника до тех пор, пока не будет получен последний бит данных, затем байт данных загружается в SBUF(RX). Если данные из сдвигающего регистра загружаются в SBUF(RX) до того, как из SBUF(RX) будет прочитан предыдущий байт данных, установится бит ошибки переполнения OE (SP_STAT.2). Регистр SBUF(RX) всегда содержит последний принятый из последовательного порта байт данных. По сбросу SBUF(RX)=00000000
SBUF(RX)
адрес 07h ,
запись HWindow 15
чтение HWindow 0
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
1.5.3. Регистр буфера передатчика последовательного порта
Serial Port Transmit Buffer Register
Аббревиатура - SBUF (TX).
Размер - 1 байт.
Находится по адресу 07h.
Использовать для записи в окне Hwindow 0.
Использовать для чтения в окне Hwindow 15.
Регистр буфера передатчика последовательного порта содержит данные, которые готовы для передачи. В режимах 1,2,3 запись в SBUF(TX) начинает передачу. В режиме 0 запись в SBUF(TX) начинает передачу, только если отключен приемник REN (SP_CON.3=0). По сбросу SBUF(TX)=00000000
SBUF(TX)
адрес 07h
запись HWindow 0
чтение HWindow 15
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
1.5.4. Регистр управления последовательным портом.
Serial Port Control Register
Аббревиатура - SP_CON.
Размер - 1 байт.
Находится по адресу 11h.
Использовать для записи в окне Hwindow 0.
Использовать для чтения в окне Hwindow 15.
Регистр управления последовательным портом устанавливает коммуникационный режим, разрешает или запрещает:
- работу приёмника;
- контроль четности;
- передачу девятого бита данных.
Передатчик (TXD) совместно с портом P2 использует контакт P2.0, и поэтому, чтобы допустить функции передатчика, должен быть установлен бит IOC1.5 . В режимах 1,2,3 TXD служит в качестве контакта передатчика последовательного порта, а в режиме 0 в качестве контакта синхронизации. Для запрещения функции передатчика для контакта P2.0 очистите бит IOC1.5 .
Приёмник (RXD) совместно с портом P2 использует контакт P2.1, и поэтому, чтобы допустить функции приёмника должен быть установлен бит REN (SP_CON.3) . В режимах 1,2,3 RXD служит в качестве контакта приёмника последовательного порта, а в режиме 0 в качестве приемника или передатчика.
Для запрещения функции приёмника для контакта P2.1 очистите бит REN (SP_CON.3) .
SP_CON
адрес 11h ,
запись HWindow 0
чтение HWindow 15
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
R |
R |
R |
TB8 |
REN |
PEN |
SER_MODE |
SER_MODE
SER_MODE - эти два бита выбирают (см. табл.3.2) коммуникаци-онный режим
Табл.3.2
Бит 1 |
Бит 0 |
|
0 |
0 |
Режим 0 |
0 |
1 |
Режим 1 |
1 |
0 |
Режим 2 |
1 |
1 |
Режим 3 |
Выбор нового коммуникационного режима сбрасывает последовательный порт ввода-вывода и прекращает передачу и приём в канале.
PEN - (Even Parity Enable, разрешение контроля четности) - В режимах 1 и 3 установка этого бита разрешает контроль чётности. В режиме 2 этот бит должен быть очищен. Когда этот бит установлен, при передаче TB8 содержит значение величины контроля по четности. При приёме, если принятый и вычисленный бит контроля по четности не совпали, бит SP_STAT.7 устанавливается в 1.
REN - (Receive Enable, разрешение приёма) - установка этого бита разрешает функцию RXD для контакта P2.1/RXD . Когда этот бит установлен, переход из высокого в низкое состояние на контакте RXD в режимах 1,2,3 начинает приём. В режиме 0 для начала передачи этот бит должен быть очищен, а для начала приёма этот бит должен быть установлен. Очистка этого бита останавливает процесс приёма и запрещает дальнейший прием.
TB8 - (Transmit Ninth Data Bit, девятый передаваемый бит данных) - это девятый бит данных, который будет передан в режимах 2 или 3. Этот бит очищается после каждой передачи, поэтому, если требуется, он должен быть установлен перед записью в SBUF(TX). Когда REN в состоянии еденица (SPCON.2 =1) этот бит представляет величину контроля по четности.
R - зарезервированные биты, всегда должны быть очищены.
По сбросу состояние регистра SP_CON следующее: 00001011