Difference between revisions of "A4.8051 Communication Protocols:UART, RS232"
Line 34: | Line 34: | ||
|SM0||SM1||SM2||REN||TB8||RB8||TI||RI | |SM0||SM1||SM2||REN||TB8||RB8||TI||RI | ||
|} | |} | ||
− | + | {{Box|type=l_green_light|text= | |
*SM0 - Serial port mode bit 0 is used for serial port mode selection. | *SM0 - Serial port mode bit 0 is used for serial port mode selection. | ||
*SM1 - Serial port mode bit 1. | *SM1 - Serial port mode bit 1. | ||
− | + | }} | |
{| class="wikitable" style="text-align:center;background-color:#87A96B;margin: 1em auto 1em auto;" | {| class="wikitable" style="text-align:center;background-color:#87A96B;margin: 1em auto 1em auto;" | ||
|- | |- | ||
Line 50: | Line 50: | ||
|1||1||Mode 0|| 9 bit UART||Determined by the timer 1 | |1||1||Mode 0|| 9 bit UART||Determined by the timer 1 | ||
|} | |} | ||
− | + | {{Box|type=l_green_light|text= | |
*SM2 - Serial port mode 2 bit, also known as multiprocessor communication enable bit. When set, it enables multiprocessor communication in mode 2 and 3, and eventually mode 1. It should be cleared in mode 0. | *SM2 - Serial port mode 2 bit, also known as multiprocessor communication enable bit. When set, it enables multiprocessor communication in mode 2 and 3, and eventually mode 1. It should be cleared in mode 0. | ||
*REN - Reception Enable bit enables serial reception when set. When cleared, serial reception is disabled. | *REN - Reception Enable bit enables serial reception when set. When cleared, serial reception is disabled. | ||
Line 57: | Line 57: | ||
*TI - Transmit Interrupt flag is automatically set at the moment the last bit of one byte is sent. It's a signal to the processor that the line is available for a new byte transmite. It must be cleared from within the software. | *TI - Transmit Interrupt flag is automatically set at the moment the last bit of one byte is sent. It's a signal to the processor that the line is available for a new byte transmite. It must be cleared from within the software. | ||
*RI - Receive Interrupt flag is automatically set upon one byte receive. It signals that byte is received and should be read quickly prior to being replaced by a new data. This bit is also cleared from within the software. | *RI - Receive Interrupt flag is automatically set upon one byte receive. It signals that byte is received and should be read quickly prior to being replaced by a new data. This bit is also cleared from within the software. | ||
+ | }} |
Revision as of 14:05, 27 December 2013
Contents
UART Serial communication using 8051
We have covered the basics of timers in the previous tutorial, with that we can see how can a microcontroller communicate with a computer serially.
There are two ways to connect a microcontroller to a computer.
- Using RS232 protocol to the legacy serial port.
- Using a USB to serial convertor.
From microcontroller programming point of view, there is fundamentally no difference.
8051 UART Registers
SBUFF: Serial buffer register
SBUFF | |||||||
---|---|---|---|---|---|---|---|
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
SCON: Serial Control Register
SCON | |||||||
---|---|---|---|---|---|---|---|
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
*SM0 - Serial port mode bit 0 is used for serial port mode selection.
- SM1 - Serial port mode bit 1.
SM0 | SM1 | Operation | Description | Baud Rate Source |
---|---|---|---|---|
0 | 0 | Mode 0 | 8bit ShiftReg | 1/12 the quartz frequency |
0 | 1 | Mode 1 | 8 bit UART | Determined by the timer 1 |
1 | 0 | Mode 2 | 9 bit UART | 1/32 the quartz frequency |
1 | 1 | Mode 0 | 9 bit UART | Determined by the timer 1 |
*SM2 - Serial port mode 2 bit, also known as multiprocessor communication enable bit. When set, it enables multiprocessor communication in mode 2 and 3, and eventually mode 1. It should be cleared in mode 0.
- REN - Reception Enable bit enables serial reception when set. When cleared, serial reception is disabled.
- TB8 - Transmitter bit 8. Since all registers are 8-bit wide, this bit solves the problem of transmiting the 9th bit in modes 2 and 3. It is set to transmit a logic 1 in the 9th bit.
- RB8 - Receiver bit 8 or the 9th bit received in modes 2 and 3. Cleared by hardware if 9th bit received is a logic 0. Set by hardware if 9th bit received is a logic 1.
- TI - Transmit Interrupt flag is automatically set at the moment the last bit of one byte is sent. It's a signal to the processor that the line is available for a new byte transmite. It must be cleared from within the software.
- RI - Receive Interrupt flag is automatically set upon one byte receive. It signals that byte is received and should be read quickly prior to being replaced by a new data. This bit is also cleared from within the software.