Skip to main content

How to calculate Baud Rate in 8051 microcontroller

Baud Rate is the data transmission rate that determines the symbols per second for serial communication. The microcontroller is connected with COM port of the PC for the purpose of serial communication. So, in order to allow data transfer between PC and microcontroller without any error, we must make sure that the baud rate of the microcontroller (8051) matches the baud rate of the PC's COM port.

Steps to calculate Baud Rate:

1. The 8051 microcontroller transfers and receives data serially at many different baud rates. The baud rate in the 8051 is programmable and can be set through Timer 1 or by changing the external crystal oscillator.

2. The 8051 has external clock of frequency 11.0592 MHz, which gets divided by 12 to get machine cycle frequency is 921.6 kHz.

3. The 8051 microcontroller serial communication UART circuitry divides the machine cycle frequency of 921.6 kHz by 32, before it is used by Timer 1 to set the baud rate. Therefore, 921.6 kHz divided by 32 gives out 28,800 Hz.

4. When Timer 1 is used to set the baud rate it must be programmed in mode 2, that is 8-bit auto reload. To get baud rates compatible with PC, we must load TH1 with values: -3, -6, -12, -24. These values are fixed to find out suitable baud rate compatible with PC's COM port. PC baud rates values are set by the vendors and are fixed. Some of the baud rates values supported by Pentium IBM PC are as 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200. So, one has to generate 8051 microcontroller baud rate accordingly.


For example:
Lets XTAL=11.0592 MHz is divided by 12 = 921.6 kHz and then, 921.6 kHz/32 = 28,800 Hz is the frequency provided by UART to Timer 1 to set baud rates.
  • 28,800/3= 9600 where, -3 is loaded with TH1
  • 28,800/6= 2400 where, -12 is loaded with TH1
But, if you try to change the value loaded to TH1 other than listed above, The baud rate will not be supported by the BIOS of the PC and serial communication between 8051 microcontroller may not occur properly. However, you can program PC to transfer data at such speed.

Comments

  1. 28,800/6= 2400 where, -12 is loaded with TH1 this sentence is wrong
    28,800/6 = 4800 and -12 is loaded with TH1

    ReplyDelete
  2. 28800/3=9600 but y ur loading TH1 with -3

    ReplyDelete

Post a Comment

Popular posts from this blog

How to Switch OFF Citizen Calculator

You might be confused on seeing no OFF button on your calculator. Actually, these are general calculator available at low cost in the market. They process simple calculations like division, subtraction, Addition, Multiplication. But, how will you OFF that calculator having no option on them. There is always a trick which OFF them. It depends on the company calculator and their series to which they belong. I can tell you about Citizen Calculator CT-500 (as you can see in the image), how can you switch OFF it and can save battery too. If you leave calculator idle for 6-7 minutes, it will goes OFF automatically. My calculator goes OFF in 6.50 minutes from the point of leaving it idle. But, this is not the power saving trick for these types of calculator having not much backup battery. To save the power of your normal calculator, here is the trick to switch OFF it. Press ' /(divide sign)', 'x(multiply sign)', '%(percentage sign)', 'autoreplay option(

Buzzer interface with 8051 microcontroller

Buzzer  is a electronic device that converts the electronic signal into buzzing noise, that is applied to it. It can be used as electronic bell or as quiz buzzer in many applications around us. Here, i world like to discuss the interfacing of a small buzzer with 8051 microcontroller and how different projects can be constructed. Buzzer Interfacing: This project shows the interface with AT89S52 microcontroller to a buzzer. When a push button is pressed, the buzzer will get ON and OFF ( number of times set in the code ) and then stops. Circuit Diagram: - The port P1 of the microcontroller is connected to buzzer. This type of connection is possible, if the current requirements of the buzzer is not more than 20mA. The output is in current source mode so that buzzer will turn ON when the output of the port is logic LOW. Switch is connected to port P3 which remains at logic HIGH by pull up resistor.  Code: #include "REG52.h" #define buz P1 sbit SW=P3^0; long int i; voi

Different ways to generate delays in 8051

The delay length in 8051 microcontroller depends on three factors: The crystal frequency the number of clock per machine the C compiler. The original 8051 used 1/12 of the crystal oscillator frequency as one machine cycle. In other words, each machine cycle is equal to 12 clocks period of the crystal frequency connected to X1-X2 pins of 8051. To speed up the 8051, many recent versions of the 8051 have reduced the number of clocks per machine cycle from 12 to four, or even one. The frequency for the timer is always 1/12th the frequency of the crystal attached to the 8051, regardless of the 8051 version. In other words, AT89C51, DS5000, and DS89C4x0 the duration of the time to execute an instruction varies, but they all use 1/12th of the crystal's oscillator frequency for the clock source. 8051 has two different ways to generate time delay using C programming, regardless of 8051 version. The first method is simply using Loop   program function in which Delay() function i