SlideShare a Scribd company logo
Serial Communication in 8051
Sudhanshu Janwadkar
Lecture Notes
22nd March 2018- 4th April 2018
Objectives
 Contrast and compare serial versus parallel communication
 Contrast synchronous versus asynchronous communication
 Contrast half-versus full-duplex transmission
 Understand the basics of serial communication- data framing and
data transfer rate
 Define the RS232 standard and handshaking signals
 Understand various Serial Modes
 Write Codes to transmit and receive data serially in Mode 1
 Understand Doubling the Baud rate in 8051
 Exploring Second Serial Port of 8051 based controllers
 Discover the Power saving modes in 8051
Serial v/s Parallel Communication
Serial v/s Parallel Communication
Parallel Communication Serial Communication
Often 8 or more lines (wire conductors)
are used to transfer data. Multiple bits
are transferred at a time.
The data is sent one bit at a time on a
single line (wire)
Preferred for short-distance
communication
Preferred over long-distance
communication
Costly as more resources are required Comparatively cheaper
Speed of data transfer is high Slow
Example: SPI, I2C, UART Example: PCI
Basics of Serial Communication
• Serial communication uses single data line making it much cheaper
• Enables two computers in different cities to communicate over the
telephone
• Byte of data must be converted to serial bits using a parallel-in-serial-
out shift register and transmitted over a single data line
• At the receiving end there must be a serial-in-parallel-out shift
register
• If transferred on the telephone line, it must be converted to audio
tones by modem for short distance
Modes of Serial Communication
Modes of Serial Communication
• In simplex transmissions, the computer can only send data. There is
only one wire.
• If the data can be transmitted and received, then it is a duplex
transmission
• Duplex transmissions can be half or full duplex depending on
whether or not the data transfer can be simultaneous
• If the communication is only one way at a time, it is half duplex
• If both sides can communicate at the same time, it is full duplex
 Full duplex requires two wire conductors for the data lines
(in addition to the signal ground)
Basics of Serial Communication
• Serial Communication can be
 Asynchronous
 Synchronous
Synchronous Communication
• Synchronous methods transfer a block of data (characters) at a time
• The events are referenced to a clock
• Example: SPI bus, I2C bus
Asynchronous Communication
• Asynchronous methods transfer a single byte at a time
• There is no clock. The bytes are separated by start and stop bits.
• Example: UART
Basics of Serial Communication
• To support serial communication, special interfaces are built in the
microcontroller.
• The microcontrollers use special IC chips called UART (universal
asynchronous receiver-transmitter) and USART (universal
synchronous asynchronous receiver-transmitter)
• 8051 chip has a built-in UART
Data Framing in Asynchronous Serial
Communication
• Data is transmitted in 0s and 1s
• To have a sense of synchronization between transmitter and
receiver and to make sense of the data, transmitter and receiver
agree on a set of rules i.e protocol, which describes
 how the data is packed
 how many bits constitute a character
 when the data begins and ends
Data Framing in Asynchronous Serial
Communication
Start and stop bits
• Each character is placed between start and stop bits. This is called
framing.
• Start bit is always one bit, stop bit can be one, two or one and half
bits
• In 8051 serial port, when there is no transmission, the TxD line is
held high. This is called mark.
• Start bit is always a 0 (low), stop bit(s) is 1 (high)
• LSB is sent out first
Data Framing in Asynchronous Serial
Communication
Framing ASCII A
• The transmission begins with a start bit, followed by the LSB(D0),
then the rest of the bits until MSB (D7), and finally, the one stop
bit indicating the end of the character
• When there is no transfer, the signal is 1 (high), which is referred
to as mark
Data Framing in Asynchronous Serial
Communication
• Assuming that we are transferring a text file of ASCII
characters using 1 stop bit, we have a total of 10 bits for each
character
 This gives 25% overhead, i.e. each 8-bit character with an
extra 2 bits
• In some systems in order to maintain data integrity, the parity
bit of the character byte is included in the data frame
 UART chips allow programming of the parity bit for odd-,
even-, and no-parity options
Data Transfer Rate in Asynchronous
Serial Communication
• The rate of data transfer in serial data communication is stated in
bps (bits per second)
• Another widely used terminology for bps is baud rate
 It is modem terminology and is defined as the number of signal
changes per second
 In modems, there are occasions when a single change of signal
transfers several bits of data
• As far as the conductor wire is concerned, the baud rate and bps
are the same, and we use the terms interchangeably
• The data transfer rate of given computer system depends on
communication ports incorporated into that system
 IBM PC/XT could transfer data at the rate of 100 to 9600 bps
RS232 Standards
• An interfacing standard RS232 was set by the Electronics
Industries Association (EIA) in 1960
• In RS232, a 1 is represented by -3 ~ -25 V, while a 0 bit is +3 ~
+25 V, making -3 to +3 undefined
• The standard was set long before the advent of the TTL logic
family, its input and output voltage levels are not TTL compatible
• A microcontroller system must use voltage converters such as
MAX232 to convert the TTL logic levels to the RS232 voltage
levels, and vice versa
• MAX232 IC chips are commonly referred to as line drivers
DB9 pin connections
• RS232 supports both DB25 and DB 9 pin connector
• DB-9 Pin Connector
Handshaking in Rs232
• Current terminology classifies data communication equipment as
DTE (data terminal equipment) refers to terminal and
computers that send and receive data
DCE (data communication equipment) refers to
communication equipment, such as modems
• The simplest connection between a PC and microcontroller
requires a minimum of three pins, TxD, RxD, and ground
Handshaking signals in Rs232
DTR (data terminal ready)
When terminal is turned on, it sends out signal DTR to indicate that it is
ready for communication
DSR (data set ready)
When DCE is turned on and has gone through the self-test, it assert DSR to
indicate that it is ready to communicate
RTS (request to send)
When the DTE device has byte to transmit, it assert RTS to signal the
modem that it has a byte of data to transmit
CTS (clear to send)
When the modem has room for storing the data it is to receive, it sends out
signal CTS to DTE to indicate that it can receive the data now
Handshaking signals in Rs232
DCD (data carrier detect)
The modem asserts signal DCD to inform the DTE that a valid carrier
has been detected and that contact between it and the other modem
is established
RI (ring indicator)
• An output from the modem and an input to a PC indicates that the
telephone is ringing
• It goes on and off in synchronous with the ringing sound
TxD and RxD in 8051
• 8051 has two pins that are used specifically for transferring and
receiving data serially
 These two pins are called TxD and RxD and are part of the
port 3 group (P3.0 and P3.1)
 These pins are TTL compatible; therefore, they require a line
driver to make them RS232 compatible
• We need a line driver (voltage converter) to convert the R232’s
signals to TTL voltage levels that will be acceptable to 8051’s TxD
and RxD pins
PC Baud rate
• PC/compatible COM ports PC/compatible computers (Pentium)
microprocessors normally have two COM ports
• Both ports have RS232-type connectors
• COM ports are designated as COM 1 and COM 2 (replaced by USB
ports)
• To allow data transfer between the PC and an 8051 system
without any error, we must make sure that the baud rate of 8051
system matches the baud rate of the PC’s COM port
• Baud rate supported by IBM PC: 19200, 9600, 4800, 2400, 1200,
600, 300, 150 and 110
Setting Baud rate in 8051
• Baud rate in the 8051 baud rate in the 8051 is programmable
Relationship between the crystal frequency and the baud rate in
the 8051
 8051 divides the crystal frequency by 12 to get the machine cycle
frequency
 XTAL = 11.0592 MHz, the machine cycle frequency is 921.6 kHz
8051's UART divides the machine cycle frequency of 921.6 kHz by
32 once more before it is used by Timer 1 to set the baud rate 921.6
kHz divided by 32 gives 28,800 Hz
Setting Baud rate in 8051
• Timer 1 must be programmed in mode 2, that is 8-bit, auto-reload
Setting Baud rate in 8051
• Timer 1 must be programmed in mode 2, that is 8-bit, auto-reload
SBUF Register
• A byte of data to be transferred via the TxD line must be placed in the
SBUF register
• SBUF holds the byte of data when it is received by the RxD line
• SBUF can be accessed like any other register
 MOV SBUF, #'D' ;load SBUF=44H, ASCII for 'D‘
 MOV SBUF, A ;copy accumulator into SBUF
 MOV A, SBUF ;copy SBUF into accumulator
 When a byte is written in SBUF, it is framed by 8051 with the start and
stop bits and transferred serially via the TxD pin
 When the bits are received serially via RxD, it is deframed by 8051 by
eliminating the stop and start bits, making a byte out of the data received,
and then placing it in the SBUF
 Framing need not be done by programmer explicitly
SBUF Register
• The special function register SBUF is physically two registers.
 One is, write-only and is used to hold data to be transmitted out
of the 8051 via TXD.
 The other is, read-only and holds the received data from external
sources via RXD.
• Both mutually exclusive registers have the same address 099H.
• SBUF is not bit addressable
SCON Register
SM0 SM1 SM2 REN TB8 RB8 TI RI
SCON is an 8-bit register used to program the start bit, stop bit, and data
bits of data framing, among other Things
• SM0 : Serial Mode Specifier
• SM1 : Serial Mode Speceifier
• SM2 : Used for multiprocessor Communication
• REN : Set/Cleared by Software to enable/disable reception
• TB8 : not used in Mode 1
• RB8 : Not used in Mode 1
• TI : Transmit interrupt flag. Set by HW at the begin of the stop bit mode 1.
And cleared by SW
• RI : Receive interrupt flag. Set by HW at the begin of the stop bit mode 1.
And cleared by SW
SCON Register
SM0, SM1 determine the framing of data by specifying the
number of bits per character, and the start and stop bits
SM0 SM1 Serial Mode
0 0 Mode 0
0 1 Mode 1
1 0 Mode 2
1 1 Mode 3
Serial Data Transmission Modes
Mode 0
• In this mode, the serial port works like a shift register and the
data transmission works synchronously with a clock frequency of
fosc /12.
• Serial data is received and transmitted through RXD.
• 8 bits are transmitted/ received at a time.
• Pin TXD outputs the shift clock pulses of frequency fosc /12, which
is connected to the external circuitry for synchronization.
• The shift frequency or baud rate is always 1/12 of the oscillator
frequency.
Serial Data Transmission Modes
Mode 1
• In mode-1, the serial port functions as a standard Universal
Asynchronous Receiver Transmitter (UART) mode.
• 10 bits are transmitted through TXD or received through RXD.
• The 10 bits consist of one start bit (which is usually '0'), 8 data
bits (LSB is sent first/received first), and a stop bit (which is
usually '1').
• Once received, the stop bit goes into RB8 in the special function
register SCON. The baud rate is variable.
Serial Data Transmission Modes
Mode 2
• In this mode 11 bits are transmitted through TXD or received through
RXD.
• The various bits are as follows: a start bit (usually '0'), 8 data bits (LSB
first), a programmable 9 th (TB8 or RB8)bit and a stop bit (usually '1').
• While transmitting, the 9 th data bit (TB8 in SCON) can be assigned the
value '0' or '1'.
 For example, if the information of parity is to be transmitted, the
parity bit (P) in PSW could be moved into TB8. On reception of the
data, the 9 th bit goes into RB8 in 'SCON', while the stop bit is
ignored.
• The baud rate is programmable to either 1/32 or 1/64 of the oscillator
frequency.
• f baud = (2 SMOD /64) fosc.
Serial Data Transmission Modes
Mode 3
• In this mode 11 bits are transmitted through TXD or received
through RXD.
• The various bits are: a start bit (usually '0'), 8 data bits (LSB first),
a programmable 9 th bit and a stop bit (usually '1').
• Mode-3 is same as mode-2, except the fact that the baud rate in
mode-3 is variable (i.e., just as in mode-1).
• f baud = (2 SMOD /32) * ( fosc / 12 (256-TH1)) .
• This baud rate holds when Timer-1 is programmed in Mode-2.
TI and RI Flags
TI (transmit interrupt)
• When 8051 finishes the transfer of the 8-bit character, it raises the
TI flag to indicate that it is ready to transfer another byte
• TI bit is raised at the beginning of the stop bit
RI (receive interrupt)
• When the 8051 receives data serially via RxD, it places the byte in
the SBUF register then raises the RI flag bit to indicate that a byte
has been received and should be picked up before it is lost
• RI is raised halfway through the stop bit
Programming the 8051 to transfer
character bytes serially
1. TMOD register is loaded with the value 20H, indicating the use of
timer 1 in mode 2 (8-bit auto-reload) to set baud rate
2. The TH1 is loaded with one of the value to set baud rate for serial data
transfer
3. The SCON register is loaded with the value 50H, indicating serial mode
1, where an 8- bit data is framed with start and stop bits
4. TR1 is set to 1 to start timer 1
5. TI is cleared by CLR TI instruction
6. The character byte to be transferred serially is written into SBUF
register
7. The TI flag bit is monitored with the use of instruction JNB TI,xx to see
if the character has been transferred completely
8. To transfer the next byte, go to step 5
Steps that 8051 goes through in
transmitting a character via TxD
1. The byte character to be transmitted is written into the SBUF register
2. The start bit is transferred
3. The 8-bit character is transferred on bit at a time
4. The stop bit is transferred
 It is during the transfer of the stop bit that 8051 raises the TI flag,
indicating that the last character was transmitted
5. By monitoring the TI flag, we make sure that we are not overloading
the SBUF
 If we write another byte into the SBUF before TI is raised, the
untransmitted portion of the previous byte will be lost
6. After SBUF is loaded with a new byte, the TI flag bit must be forced to
0 by CLR TI in order for this new byte to be transferred
Importance of TI Flag
• By checking the TI flag bit, we know whether or not the
8051 is ready to transfer another byte
• If we write a byte into SBUF before the TI flag bit is
raised, we risk the loss of a portion of the byte being
transferred
Programming the 8051 to receive
character bytes serially
1. TMOD register is loaded with the value 20H, indicating the use of
timer 1 in mode 2 (8-bit auto-reload) to set baud rate
2. The TH1 is loaded with one of the value to set baud rate for serial data
transfer
3. The SCON register is loaded with the value 50H, indicating serial mode
1, where an 8- bit data is framed with start and stop bits
4. TR1 is set to 1 to start timer 1
5. RI is cleared by CLR RI instruction
6. The RI flag bit is monitored with the use of instruction JNB RI,xx to see
if the entire character has been received yet
7. When RI is raised, SBUF has the byte, its contents are moved into a
safe place
8. To transfer the next byte, go to step 5
Steps that 8051 goes through in
receiving a character via RxD
1. It receives the start bit
 Indicating that the next bit is the first bit of the character byte it is about
to receive
2. The 8-bit character is received one bit at time
3. The stop bit is received
 When receiving the stop bit 8051 makes RI = 1, indicating that an entire
character byte has been received and must be picked up before it gets
overwritten by an incoming character
4. By checking the RI flag bit when it is raised, we know that a character has
been received and is sitting in the SBUF register
 We copy the SBUF contents to a safe place in some other register or
memory before it is lost
5. After the SBUF contents are copied into a safe place, the RI flag bit must be
forced to 0 by CLR RI in order to allow the next received character byte to be
placed in SBUF
 Failure to do this causes loss of the received character
Importance of RI Flag
• By checking the RI flag bit, we know whether or not the
8051 received a character byte
• If we copy SBUF into a safe place before the RI flag bit is
raised, we risk copying garbage
Steps that 8051 goes through in
receiving a character via RxD
1. It receives the start bit
 Indicating that the next bit is the first bit of the character byte it is about
to receive
2. The 8-bit character is received one bit at time
3. The stop bit is received
 When receiving the stop bit 8051 makes RI = 1, indicating that an entire
character byte has been received and must be picked up before it gets
overwritten by an incoming character
4. By checking the RI flag bit when it is raised, we know that a character has
been received and is sitting in the SBUF register
 We copy the SBUF contents to a safe place in some other register or
memory before it is lost
5. After the SBUF contents are copied into a safe place, the RI flag bit must be
forced to 0 by CLR RI in order to allow the next received character byte to be
placed in SBUF
 Failure to do this causes loss of the received character
Serial Communication in 8051
Serial Communication in 8051
Doubling the Baud Rate in 8051
• There are two ways to increase the baud rate of data transfer
 To use a higher frequency crystal
 To set the SMOD bit in the PCON register
• PCON register is an 8-bit register, whose MSB is SMOD
• When 8051 is powered up, SMOD is zero
• We can set it to high by software and thereby double the baud rate
• PCON is not bit-addressable register. Hence, we cannot set SMOD
bit directly. This may be done as:
MOV A, PCON ;place a copy of PCON in ACC
SETB ACC.7 ;make D7=1
MOV PCON,A ;changing any other bits
Doubling the Baud Rate in 8051
Programming the Second serial Port
• Many new generations of 8051 microcontroller come with two serial
ports, like DS89C4x0 and DS80C320
• The second serial port of DS89C4x0 uses pins P1.2 and P1.3 for the Rx
and Tx lines
• The second serial port uses the same reserved SFR addresses for the
SCON and SBUF (SCON0 and SBUF0)
• The SFR addresses of C0H and C1H are set aside for SBUF and SCON
of second serial port of DS89C4x0. These registers are referred as
SCON1 and SBUF1
• Upon reset, DS89c4x0 uses Timer 1 for setting baud rate of both
serial ports
• While each serial port has its own SCON and SBUF registers, both
ports can use Timer1 for setting the baud rate
• Since the older 8051 assemblers do not support this new second
serial port, we need to define them in program
SBUF1 EQU 0C1H ;2nd serial SBUF address
SCON1 EQU 0C0H ;2nd serial SCON address
TI1 BIT 0C1H ;2nd serial TI bit address
RI1 BIT 0C0H ;2nd serial RI bit address
• To avoid confusion, in DS89C4x0 programs we use SCON0 and
SBUF0 for the first and SCON1 and SBUF1for the second serial
ports
Programming the Second serial Port
PCON register and Power Saving
Modes in 8051
PCON register and Power Saving
Modes in 8051
• Generally speaking, the microcontroller is inactive for the most
part and just waits for some external signal in order to takes its
role in a show.
• This can cause some problems in case batteries are used for
power supply.
• In extreme cases, the only solution is to set the whole electronics
in sleep mode in order to minimize consumption.
PCON register and Power Saving
Modes in 8051
Idle Mode
• Upon the IDL bit of the PCON register is set, the microcontroller
turns off the CPU unit while peripheral units such as serial port,
timers and interrupt system continue operating normally
• In Idle mode, the state of all registers and I/O ports remains
unchanged.
• In order to exit the Idle mode and make the microcontroller
operate normally, it is necessary to reset.
• It will cause the IDL bit to be automatically cleared and the
program resumes operation from instruction having set the IDL
bit.
PCON register and Power Saving
Modes in 8051
Power Down Mode
• By setting the PD bit of the PCON register from within the
program, the microcontroller is set to Power down mode,
• In power down mode, internal oscillator is off and reduces power
consumption enormously.
• The only way to get the microcontroller back to normal mode is
by reset.
• While the microcontroller is in Power Down mode, the state of all
SFR registers and I/O ports remains unchanged.
• By setting it back into the normal mode, the contents of the SFR
register is lost, but the content of internal RAM is saved.

More Related Content

PPTX
Interrupts in 8051
DOC
8051 Microcontroller Notes
PPTX
MICROCONTROLLER 8051- Architecture & Pin Configuration
PPTX
8251 USART
PDF
Memory interfacing of microcontroller 8051
PPT
Interrupt programming with 8051 microcontroller
PPTX
8251 USART
PPTX
Interfacing memory with 8086 microprocessor
Interrupts in 8051
8051 Microcontroller Notes
MICROCONTROLLER 8051- Architecture & Pin Configuration
8251 USART
Memory interfacing of microcontroller 8051
Interrupt programming with 8051 microcontroller
8251 USART
Interfacing memory with 8086 microprocessor

What's hot (20)

PPT
8051 instruction set
PDF
DAC Interfacing with 8051.pdf
PPTX
Pass Transistor Logic
PPT
Addressing modes of 8051
PPTX
Direct Memory Access(DMA)
PPT
8051 Microcontroller
PPTX
Addressing modes of 8051
PPTX
8051 timer counter
PPT
Memory organization of 8051
PPTX
8257 DMA Controller
PDF
ARM CORTEX M3 PPT
PPTX
Digital modulation techniques...
PPT
Architecture of 8086 Microprocessor
DOCX
8051 data types and directives
PPT
Memory & I/O interfacing
PPTX
PIC-18 Microcontroller
PPT
Adc interfacing
PPTX
Sensor interfacing in 8051
PPT
8086 pin details
DOCX
Lambda design rule
8051 instruction set
DAC Interfacing with 8051.pdf
Pass Transistor Logic
Addressing modes of 8051
Direct Memory Access(DMA)
8051 Microcontroller
Addressing modes of 8051
8051 timer counter
Memory organization of 8051
8257 DMA Controller
ARM CORTEX M3 PPT
Digital modulation techniques...
Architecture of 8086 Microprocessor
8051 data types and directives
Memory & I/O interfacing
PIC-18 Microcontroller
Adc interfacing
Sensor interfacing in 8051
8086 pin details
Lambda design rule
Ad

Similar to Serial Communication in 8051 (20)

PPTX
Serial Communication
PPTX
Microcontrollers and microprocessors in electrical communication engineering....
PPT
8051 serial communication-UART
PPT
Seminar on serial communication
PPT
12 mt06ped019
PPT
Chap10
PPTX
Serial data transfer
PDF
EJ5I Embedded system chapter 2 of diploma Chapter 3.pdf
PDF
MPS W8-L2L3 Programming AVR Serial Port Ia (in C).pdf
PPTX
Micro c lab8(serial communication)
PPTX
Universal Serial Communication Interface
PDF
Serial Port Device Driver
PPTX
8051 serialp port
PPTX
8051 serial communication1
PDF
Serial1
PPTX
Serial communication
PPTX
INTERFACING 8051-MICROCONTROLLER with timer and display
PPTX
Chapter 3 esy
PPTX
The presentation is about USART and serial communication
PDF
Lecture 3 - Serial Communicationkahfag.pdf
Serial Communication
Microcontrollers and microprocessors in electrical communication engineering....
8051 serial communication-UART
Seminar on serial communication
12 mt06ped019
Chap10
Serial data transfer
EJ5I Embedded system chapter 2 of diploma Chapter 3.pdf
MPS W8-L2L3 Programming AVR Serial Port Ia (in C).pdf
Micro c lab8(serial communication)
Universal Serial Communication Interface
Serial Port Device Driver
8051 serialp port
8051 serial communication1
Serial1
Serial communication
INTERFACING 8051-MICROCONTROLLER with timer and display
Chapter 3 esy
The presentation is about USART and serial communication
Lecture 3 - Serial Communicationkahfag.pdf
Ad

More from Sudhanshu Janwadkar (20)

PPTX
Presentation on Elementary Data Link Protocols
PPTX
Error Correcting and Error Detecting Codes.pptx
PPTX
DSP Processors versus ASICs
PDF
Keypad Interfacing with 8051 Microcontroller
PPT
ASIC design Flow (Digital Design)
PPTX
Fpga architectures and applications
PPTX
LCD Interacing with 8051
PPT
SPI Bus Protocol
PPTX
I2C Protocol
PPTX
Introduction to 8051 Timer/Counter
PPTX
Intel 8051 Programming in C
PPTX
Hardware View of Intel 8051
PPTX
Architecture of the Intel 8051 Microcontroller
PPTX
Introduction to Embedded Systems
PPTX
PPTX
Interconnects in Reconfigurable Architectures
PPTX
Introduction to FPGAs
PDF
Design and Implementation of a GPS based Personal Tracking System
PDF
Embedded Logic Flip-Flops: A Conceptual Review
PPTX
Memory and Processor Testing
Presentation on Elementary Data Link Protocols
Error Correcting and Error Detecting Codes.pptx
DSP Processors versus ASICs
Keypad Interfacing with 8051 Microcontroller
ASIC design Flow (Digital Design)
Fpga architectures and applications
LCD Interacing with 8051
SPI Bus Protocol
I2C Protocol
Introduction to 8051 Timer/Counter
Intel 8051 Programming in C
Hardware View of Intel 8051
Architecture of the Intel 8051 Microcontroller
Introduction to Embedded Systems
Interconnects in Reconfigurable Architectures
Introduction to FPGAs
Design and Implementation of a GPS based Personal Tracking System
Embedded Logic Flip-Flops: A Conceptual Review
Memory and Processor Testing

Recently uploaded (20)

PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
01-Introduction-to-Information-Management.pdf
PDF
Classroom Observation Tools for Teachers
PPTX
Institutional Correction lecture only . . .
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
RMMM.pdf make it easy to upload and study
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
102 student loan defaulters named and shamed – Is someone you know on the list?
O5-L3 Freight Transport Ops (International) V1.pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPH.pptx obstetrics and gynecology in nursing
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
01-Introduction-to-Information-Management.pdf
Classroom Observation Tools for Teachers
Institutional Correction lecture only . . .
Supply Chain Operations Speaking Notes -ICLT Program
TR - Agricultural Crops Production NC III.pdf
RMMM.pdf make it easy to upload and study
O7-L3 Supply Chain Operations - ICLT Program
STATICS OF THE RIGID BODIES Hibbelers.pdf
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
Microbial disease of the cardiovascular and lymphatic systems
Microbial diseases, their pathogenesis and prophylaxis
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
FourierSeries-QuestionsWithAnswers(Part-A).pdf

Serial Communication in 8051

  • 1. Serial Communication in 8051 Sudhanshu Janwadkar Lecture Notes 22nd March 2018- 4th April 2018
  • 2. Objectives  Contrast and compare serial versus parallel communication  Contrast synchronous versus asynchronous communication  Contrast half-versus full-duplex transmission  Understand the basics of serial communication- data framing and data transfer rate  Define the RS232 standard and handshaking signals  Understand various Serial Modes  Write Codes to transmit and receive data serially in Mode 1  Understand Doubling the Baud rate in 8051  Exploring Second Serial Port of 8051 based controllers  Discover the Power saving modes in 8051
  • 3. Serial v/s Parallel Communication
  • 4. Serial v/s Parallel Communication Parallel Communication Serial Communication Often 8 or more lines (wire conductors) are used to transfer data. Multiple bits are transferred at a time. The data is sent one bit at a time on a single line (wire) Preferred for short-distance communication Preferred over long-distance communication Costly as more resources are required Comparatively cheaper Speed of data transfer is high Slow Example: SPI, I2C, UART Example: PCI
  • 5. Basics of Serial Communication • Serial communication uses single data line making it much cheaper • Enables two computers in different cities to communicate over the telephone • Byte of data must be converted to serial bits using a parallel-in-serial- out shift register and transmitted over a single data line • At the receiving end there must be a serial-in-parallel-out shift register • If transferred on the telephone line, it must be converted to audio tones by modem for short distance
  • 6. Modes of Serial Communication
  • 7. Modes of Serial Communication • In simplex transmissions, the computer can only send data. There is only one wire. • If the data can be transmitted and received, then it is a duplex transmission • Duplex transmissions can be half or full duplex depending on whether or not the data transfer can be simultaneous • If the communication is only one way at a time, it is half duplex • If both sides can communicate at the same time, it is full duplex  Full duplex requires two wire conductors for the data lines (in addition to the signal ground)
  • 8. Basics of Serial Communication • Serial Communication can be  Asynchronous  Synchronous Synchronous Communication • Synchronous methods transfer a block of data (characters) at a time • The events are referenced to a clock • Example: SPI bus, I2C bus Asynchronous Communication • Asynchronous methods transfer a single byte at a time • There is no clock. The bytes are separated by start and stop bits. • Example: UART
  • 9. Basics of Serial Communication • To support serial communication, special interfaces are built in the microcontroller. • The microcontrollers use special IC chips called UART (universal asynchronous receiver-transmitter) and USART (universal synchronous asynchronous receiver-transmitter) • 8051 chip has a built-in UART
  • 10. Data Framing in Asynchronous Serial Communication • Data is transmitted in 0s and 1s • To have a sense of synchronization between transmitter and receiver and to make sense of the data, transmitter and receiver agree on a set of rules i.e protocol, which describes  how the data is packed  how many bits constitute a character  when the data begins and ends
  • 11. Data Framing in Asynchronous Serial Communication Start and stop bits • Each character is placed between start and stop bits. This is called framing. • Start bit is always one bit, stop bit can be one, two or one and half bits • In 8051 serial port, when there is no transmission, the TxD line is held high. This is called mark. • Start bit is always a 0 (low), stop bit(s) is 1 (high) • LSB is sent out first
  • 12. Data Framing in Asynchronous Serial Communication Framing ASCII A • The transmission begins with a start bit, followed by the LSB(D0), then the rest of the bits until MSB (D7), and finally, the one stop bit indicating the end of the character • When there is no transfer, the signal is 1 (high), which is referred to as mark
  • 13. Data Framing in Asynchronous Serial Communication • Assuming that we are transferring a text file of ASCII characters using 1 stop bit, we have a total of 10 bits for each character  This gives 25% overhead, i.e. each 8-bit character with an extra 2 bits • In some systems in order to maintain data integrity, the parity bit of the character byte is included in the data frame  UART chips allow programming of the parity bit for odd-, even-, and no-parity options
  • 14. Data Transfer Rate in Asynchronous Serial Communication • The rate of data transfer in serial data communication is stated in bps (bits per second) • Another widely used terminology for bps is baud rate  It is modem terminology and is defined as the number of signal changes per second  In modems, there are occasions when a single change of signal transfers several bits of data • As far as the conductor wire is concerned, the baud rate and bps are the same, and we use the terms interchangeably • The data transfer rate of given computer system depends on communication ports incorporated into that system  IBM PC/XT could transfer data at the rate of 100 to 9600 bps
  • 15. RS232 Standards • An interfacing standard RS232 was set by the Electronics Industries Association (EIA) in 1960 • In RS232, a 1 is represented by -3 ~ -25 V, while a 0 bit is +3 ~ +25 V, making -3 to +3 undefined • The standard was set long before the advent of the TTL logic family, its input and output voltage levels are not TTL compatible • A microcontroller system must use voltage converters such as MAX232 to convert the TTL logic levels to the RS232 voltage levels, and vice versa • MAX232 IC chips are commonly referred to as line drivers
  • 16. DB9 pin connections • RS232 supports both DB25 and DB 9 pin connector • DB-9 Pin Connector
  • 17. Handshaking in Rs232 • Current terminology classifies data communication equipment as DTE (data terminal equipment) refers to terminal and computers that send and receive data DCE (data communication equipment) refers to communication equipment, such as modems • The simplest connection between a PC and microcontroller requires a minimum of three pins, TxD, RxD, and ground
  • 18. Handshaking signals in Rs232 DTR (data terminal ready) When terminal is turned on, it sends out signal DTR to indicate that it is ready for communication DSR (data set ready) When DCE is turned on and has gone through the self-test, it assert DSR to indicate that it is ready to communicate RTS (request to send) When the DTE device has byte to transmit, it assert RTS to signal the modem that it has a byte of data to transmit CTS (clear to send) When the modem has room for storing the data it is to receive, it sends out signal CTS to DTE to indicate that it can receive the data now
  • 19. Handshaking signals in Rs232 DCD (data carrier detect) The modem asserts signal DCD to inform the DTE that a valid carrier has been detected and that contact between it and the other modem is established RI (ring indicator) • An output from the modem and an input to a PC indicates that the telephone is ringing • It goes on and off in synchronous with the ringing sound
  • 20. TxD and RxD in 8051 • 8051 has two pins that are used specifically for transferring and receiving data serially  These two pins are called TxD and RxD and are part of the port 3 group (P3.0 and P3.1)  These pins are TTL compatible; therefore, they require a line driver to make them RS232 compatible • We need a line driver (voltage converter) to convert the R232’s signals to TTL voltage levels that will be acceptable to 8051’s TxD and RxD pins
  • 21. PC Baud rate • PC/compatible COM ports PC/compatible computers (Pentium) microprocessors normally have two COM ports • Both ports have RS232-type connectors • COM ports are designated as COM 1 and COM 2 (replaced by USB ports) • To allow data transfer between the PC and an 8051 system without any error, we must make sure that the baud rate of 8051 system matches the baud rate of the PC’s COM port • Baud rate supported by IBM PC: 19200, 9600, 4800, 2400, 1200, 600, 300, 150 and 110
  • 22. Setting Baud rate in 8051 • Baud rate in the 8051 baud rate in the 8051 is programmable Relationship between the crystal frequency and the baud rate in the 8051  8051 divides the crystal frequency by 12 to get the machine cycle frequency  XTAL = 11.0592 MHz, the machine cycle frequency is 921.6 kHz 8051's UART divides the machine cycle frequency of 921.6 kHz by 32 once more before it is used by Timer 1 to set the baud rate 921.6 kHz divided by 32 gives 28,800 Hz
  • 23. Setting Baud rate in 8051 • Timer 1 must be programmed in mode 2, that is 8-bit, auto-reload
  • 24. Setting Baud rate in 8051 • Timer 1 must be programmed in mode 2, that is 8-bit, auto-reload
  • 25. SBUF Register • A byte of data to be transferred via the TxD line must be placed in the SBUF register • SBUF holds the byte of data when it is received by the RxD line • SBUF can be accessed like any other register  MOV SBUF, #'D' ;load SBUF=44H, ASCII for 'D‘  MOV SBUF, A ;copy accumulator into SBUF  MOV A, SBUF ;copy SBUF into accumulator  When a byte is written in SBUF, it is framed by 8051 with the start and stop bits and transferred serially via the TxD pin  When the bits are received serially via RxD, it is deframed by 8051 by eliminating the stop and start bits, making a byte out of the data received, and then placing it in the SBUF  Framing need not be done by programmer explicitly
  • 26. SBUF Register • The special function register SBUF is physically two registers.  One is, write-only and is used to hold data to be transmitted out of the 8051 via TXD.  The other is, read-only and holds the received data from external sources via RXD. • Both mutually exclusive registers have the same address 099H. • SBUF is not bit addressable
  • 27. SCON Register SM0 SM1 SM2 REN TB8 RB8 TI RI SCON is an 8-bit register used to program the start bit, stop bit, and data bits of data framing, among other Things • SM0 : Serial Mode Specifier • SM1 : Serial Mode Speceifier • SM2 : Used for multiprocessor Communication • REN : Set/Cleared by Software to enable/disable reception • TB8 : not used in Mode 1 • RB8 : Not used in Mode 1 • TI : Transmit interrupt flag. Set by HW at the begin of the stop bit mode 1. And cleared by SW • RI : Receive interrupt flag. Set by HW at the begin of the stop bit mode 1. And cleared by SW
  • 28. SCON Register SM0, SM1 determine the framing of data by specifying the number of bits per character, and the start and stop bits SM0 SM1 Serial Mode 0 0 Mode 0 0 1 Mode 1 1 0 Mode 2 1 1 Mode 3
  • 29. Serial Data Transmission Modes Mode 0 • In this mode, the serial port works like a shift register and the data transmission works synchronously with a clock frequency of fosc /12. • Serial data is received and transmitted through RXD. • 8 bits are transmitted/ received at a time. • Pin TXD outputs the shift clock pulses of frequency fosc /12, which is connected to the external circuitry for synchronization. • The shift frequency or baud rate is always 1/12 of the oscillator frequency.
  • 30. Serial Data Transmission Modes Mode 1 • In mode-1, the serial port functions as a standard Universal Asynchronous Receiver Transmitter (UART) mode. • 10 bits are transmitted through TXD or received through RXD. • The 10 bits consist of one start bit (which is usually '0'), 8 data bits (LSB is sent first/received first), and a stop bit (which is usually '1'). • Once received, the stop bit goes into RB8 in the special function register SCON. The baud rate is variable.
  • 31. Serial Data Transmission Modes Mode 2 • In this mode 11 bits are transmitted through TXD or received through RXD. • The various bits are as follows: a start bit (usually '0'), 8 data bits (LSB first), a programmable 9 th (TB8 or RB8)bit and a stop bit (usually '1'). • While transmitting, the 9 th data bit (TB8 in SCON) can be assigned the value '0' or '1'.  For example, if the information of parity is to be transmitted, the parity bit (P) in PSW could be moved into TB8. On reception of the data, the 9 th bit goes into RB8 in 'SCON', while the stop bit is ignored. • The baud rate is programmable to either 1/32 or 1/64 of the oscillator frequency. • f baud = (2 SMOD /64) fosc.
  • 32. Serial Data Transmission Modes Mode 3 • In this mode 11 bits are transmitted through TXD or received through RXD. • The various bits are: a start bit (usually '0'), 8 data bits (LSB first), a programmable 9 th bit and a stop bit (usually '1'). • Mode-3 is same as mode-2, except the fact that the baud rate in mode-3 is variable (i.e., just as in mode-1). • f baud = (2 SMOD /32) * ( fosc / 12 (256-TH1)) . • This baud rate holds when Timer-1 is programmed in Mode-2.
  • 33. TI and RI Flags TI (transmit interrupt) • When 8051 finishes the transfer of the 8-bit character, it raises the TI flag to indicate that it is ready to transfer another byte • TI bit is raised at the beginning of the stop bit RI (receive interrupt) • When the 8051 receives data serially via RxD, it places the byte in the SBUF register then raises the RI flag bit to indicate that a byte has been received and should be picked up before it is lost • RI is raised halfway through the stop bit
  • 34. Programming the 8051 to transfer character bytes serially 1. TMOD register is loaded with the value 20H, indicating the use of timer 1 in mode 2 (8-bit auto-reload) to set baud rate 2. The TH1 is loaded with one of the value to set baud rate for serial data transfer 3. The SCON register is loaded with the value 50H, indicating serial mode 1, where an 8- bit data is framed with start and stop bits 4. TR1 is set to 1 to start timer 1 5. TI is cleared by CLR TI instruction 6. The character byte to be transferred serially is written into SBUF register 7. The TI flag bit is monitored with the use of instruction JNB TI,xx to see if the character has been transferred completely 8. To transfer the next byte, go to step 5
  • 35. Steps that 8051 goes through in transmitting a character via TxD 1. The byte character to be transmitted is written into the SBUF register 2. The start bit is transferred 3. The 8-bit character is transferred on bit at a time 4. The stop bit is transferred  It is during the transfer of the stop bit that 8051 raises the TI flag, indicating that the last character was transmitted 5. By monitoring the TI flag, we make sure that we are not overloading the SBUF  If we write another byte into the SBUF before TI is raised, the untransmitted portion of the previous byte will be lost 6. After SBUF is loaded with a new byte, the TI flag bit must be forced to 0 by CLR TI in order for this new byte to be transferred
  • 36. Importance of TI Flag • By checking the TI flag bit, we know whether or not the 8051 is ready to transfer another byte • If we write a byte into SBUF before the TI flag bit is raised, we risk the loss of a portion of the byte being transferred
  • 37. Programming the 8051 to receive character bytes serially 1. TMOD register is loaded with the value 20H, indicating the use of timer 1 in mode 2 (8-bit auto-reload) to set baud rate 2. The TH1 is loaded with one of the value to set baud rate for serial data transfer 3. The SCON register is loaded with the value 50H, indicating serial mode 1, where an 8- bit data is framed with start and stop bits 4. TR1 is set to 1 to start timer 1 5. RI is cleared by CLR RI instruction 6. The RI flag bit is monitored with the use of instruction JNB RI,xx to see if the entire character has been received yet 7. When RI is raised, SBUF has the byte, its contents are moved into a safe place 8. To transfer the next byte, go to step 5
  • 38. Steps that 8051 goes through in receiving a character via RxD 1. It receives the start bit  Indicating that the next bit is the first bit of the character byte it is about to receive 2. The 8-bit character is received one bit at time 3. The stop bit is received  When receiving the stop bit 8051 makes RI = 1, indicating that an entire character byte has been received and must be picked up before it gets overwritten by an incoming character 4. By checking the RI flag bit when it is raised, we know that a character has been received and is sitting in the SBUF register  We copy the SBUF contents to a safe place in some other register or memory before it is lost 5. After the SBUF contents are copied into a safe place, the RI flag bit must be forced to 0 by CLR RI in order to allow the next received character byte to be placed in SBUF  Failure to do this causes loss of the received character
  • 39. Importance of RI Flag • By checking the RI flag bit, we know whether or not the 8051 received a character byte • If we copy SBUF into a safe place before the RI flag bit is raised, we risk copying garbage
  • 40. Steps that 8051 goes through in receiving a character via RxD 1. It receives the start bit  Indicating that the next bit is the first bit of the character byte it is about to receive 2. The 8-bit character is received one bit at time 3. The stop bit is received  When receiving the stop bit 8051 makes RI = 1, indicating that an entire character byte has been received and must be picked up before it gets overwritten by an incoming character 4. By checking the RI flag bit when it is raised, we know that a character has been received and is sitting in the SBUF register  We copy the SBUF contents to a safe place in some other register or memory before it is lost 5. After the SBUF contents are copied into a safe place, the RI flag bit must be forced to 0 by CLR RI in order to allow the next received character byte to be placed in SBUF  Failure to do this causes loss of the received character
  • 43. Doubling the Baud Rate in 8051 • There are two ways to increase the baud rate of data transfer  To use a higher frequency crystal  To set the SMOD bit in the PCON register • PCON register is an 8-bit register, whose MSB is SMOD • When 8051 is powered up, SMOD is zero • We can set it to high by software and thereby double the baud rate • PCON is not bit-addressable register. Hence, we cannot set SMOD bit directly. This may be done as: MOV A, PCON ;place a copy of PCON in ACC SETB ACC.7 ;make D7=1 MOV PCON,A ;changing any other bits
  • 44. Doubling the Baud Rate in 8051
  • 45. Programming the Second serial Port • Many new generations of 8051 microcontroller come with two serial ports, like DS89C4x0 and DS80C320 • The second serial port of DS89C4x0 uses pins P1.2 and P1.3 for the Rx and Tx lines • The second serial port uses the same reserved SFR addresses for the SCON and SBUF (SCON0 and SBUF0) • The SFR addresses of C0H and C1H are set aside for SBUF and SCON of second serial port of DS89C4x0. These registers are referred as SCON1 and SBUF1
  • 46. • Upon reset, DS89c4x0 uses Timer 1 for setting baud rate of both serial ports • While each serial port has its own SCON and SBUF registers, both ports can use Timer1 for setting the baud rate • Since the older 8051 assemblers do not support this new second serial port, we need to define them in program SBUF1 EQU 0C1H ;2nd serial SBUF address SCON1 EQU 0C0H ;2nd serial SCON address TI1 BIT 0C1H ;2nd serial TI bit address RI1 BIT 0C0H ;2nd serial RI bit address • To avoid confusion, in DS89C4x0 programs we use SCON0 and SBUF0 for the first and SCON1 and SBUF1for the second serial ports Programming the Second serial Port
  • 47. PCON register and Power Saving Modes in 8051
  • 48. PCON register and Power Saving Modes in 8051 • Generally speaking, the microcontroller is inactive for the most part and just waits for some external signal in order to takes its role in a show. • This can cause some problems in case batteries are used for power supply. • In extreme cases, the only solution is to set the whole electronics in sleep mode in order to minimize consumption.
  • 49. PCON register and Power Saving Modes in 8051 Idle Mode • Upon the IDL bit of the PCON register is set, the microcontroller turns off the CPU unit while peripheral units such as serial port, timers and interrupt system continue operating normally • In Idle mode, the state of all registers and I/O ports remains unchanged. • In order to exit the Idle mode and make the microcontroller operate normally, it is necessary to reset. • It will cause the IDL bit to be automatically cleared and the program resumes operation from instruction having set the IDL bit.
  • 50. PCON register and Power Saving Modes in 8051 Power Down Mode • By setting the PD bit of the PCON register from within the program, the microcontroller is set to Power down mode, • In power down mode, internal oscillator is off and reduces power consumption enormously. • The only way to get the microcontroller back to normal mode is by reset. • While the microcontroller is in Power Down mode, the state of all SFR registers and I/O ports remains unchanged. • By setting it back into the normal mode, the contents of the SFR register is lost, but the content of internal RAM is saved.