Serial Communication 8051 - Theory.

 

                     Types of serial communication : UART  - I2C - SPI
                    We would be using 
UART for serial communication.

Registers required for UART :    SBUF - SCON - TMOD

SCON register : 

                     | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI | 
SM0   SM1  
 0         0         -    Mode 0 ( Shift register mode )
 0         1         -    Mode 1  ( 8 bit UART - Timer defined baud rate ).
 1         0         -    Mode 2  ( 9 bit UART )
1         1         -    Mode 3  ( 9 bit UART )

SM2 - Multiprocessing.
REN - Receiving Enabled ( 1 )
           Receiving Disabled ( 0 )
TI    -  Transmit interrupt flag.
RI   -   Receive interrupt flag.

We have set     SCON = 0x5D;     for mode 1 configuration.


TMOD register :

       Timer 1 in mode 2 : TMOD = 0X20;


Now TH register needs to be fixed for baud rate.

Crystal oscillator freq --> 11.0592Mhz.
Machine Cycle            --> 12

Crystal oscillator / Machine Cycle = 921.6 Khz.

UART block  --> 32

921.6 / 32 = 28800 Hz

but required baud rate is 9600. 
 
  28800 / 9600 = 3 

Maximum value of TH is FF

If you want to set baud rate to 9600 . so (FF + 1) - 3  = FD 

therefore  TH = 0XFD ; (for baud rate requirement of 9600 )  

 

 SBUF register : 

The Serial Buffer or SBUF register is used to hold the serial data while transmission or reception.



Comments