Showing posts with label microcontroller. Show all posts
Showing posts with label microcontroller. Show all posts

8051 Microcontroller Projects List

Electronic code lock with user defined password using 8051 microcontroller (AT89C51)
How to interface 16x2 LCD with 8051 microcontroller (AT89C51)
How to interface computer's Serial Port (RS232) with 8051 microcontroller (AT89C51)
Simple Digital clock using 8051 microcontroller (AT89C51)
LCD based digital alarm clock with digital thermometer using 8051 microcontroller (AT89C51)
Celsius scale digital thermometer using 8051 microcontroller (AT89C51)
How to interface LEDs with 8051 microcontroller (AT89C51)
Automatic bidirectional visitor counter using 8051 microcontroller (AT89C51)
How to interface GSM Module with 8051 microcontroller (AT89C51) using PC
How to interface RFID with 8051 microcontroller (AT89C51)
How to interface keypad with 8051 microcontroller (AT89C51)
Distance measurement using InfraRed sensor with ADC0804 & 8051 microcontroller (AT89C51)
Liquid level alarm using 8051 microcontroller (AT89C51)
LCD based voting machine using 8051 microcontroller (AT89C51)45,094
How to interface Stepper Motor with 8051 Microcontroller (AT89C51)41,239
Interfacing GSM Module with 8051 microcontroller (AT89C51) without using PC39,503
How to interface seven segment display with 8051 microcontroller (AT89C51)38,838
How to make an alphabetic keypad using 8051 microcontroller (AT89C51)38,678
LCD based digital clock using 8051 microcontroller (AT89C51)36,718
How to Interface Serial EEPROM 24C02 with 8051 microcontroller (AT89C51)36,622
How to display text on 16x2 LCD using 8051 microcontroller (AT89C51)34,127
How to interface ADC0804 using 8051 microcontroller (AT89C51)31,785
How to interface GPS with 8051 Microcontroller (AT89C51)30,625
8 candidate quiz buzzer using 8051 microcontroller (AT89C51)30,210
Simple toll plaza system using low frequency RFID interfaced with 8051 microcontroller (AT89C51)30,163
Servo Motor control through Keypad using 8051 Microcontroller (AT89C51)29,775
RFID based Secured access system using 8051 microcontroller (AT89C51)26,860
How to interface Graphics LCD with 8051 Microcontroller (AT89C52)26,607
Celsius and Fahrenheit scale digital thermometer using 8051 microcontroller (AT89C51)26,466
How to control Stepper Motor using ULN2003 and 8051 Microcontroller (AT89C51)25,039
Stopwatch using 8051 microcontroller (AT89C51)23,581
Up down counter using 8051 microcontroller (AT89C51)
How to create custom characters on 16x2 LCD using 8051 microcontroller (AT89C51)23,557
How to interface Humidity Sensor with 8051 Microcontroller (AT89C51)23,075
Electronic voting machine using seven segment multiplexing with 8051 microcontroller (AT89C51)22,626
How to interface Servo Motor with 8051 Microcontroller (AT89C51)22,291
Seven segment based alarm clock using 8051 microcontroller (AT89C51)22,041
How to interface GSM Module with 8051 microcontroller (AT89C51) using PC and LCD21,926
Digital clock using RTC DS12C887 and 8051 microcontroller (AT89C51) with time set21,618
How to display an image on Graphics LCD using AT89C5221,056
LCD based clock using RTC DS12C887 and 8051 microcontroller (AT89C51) using update interrupt19,461
Seven segment multiplexing using 8051 microcontroller (AT89C51)
How to Interface RTC DS12C887 with 8051 microcontroller (AT89C51)
Keypad based simple electronic lock using 8051 microcontroller (AT89C51)
Countdown timer using 8051 microcontroller (AT89C51)
How to interface ADC0808 with 8051 microcontroller (AT89C51) using clock from D-flip flop
How to display number on 16x2 LCD using 8051 microcontroller (AT89C51)
How to generate sound using 8051 microcontroller (AT89C51)
How to create text animation on 16x2 LCD using 8051 microcontroller (AT89C51)
LCD based digital alarm clock using 8051 microcontroller (AT89C51)
Seven segment based digital clock with time set option using 8051 microcontroller (AT89C51)
Clock using RTC DS12C887 & 8051 microcontroller (AT89C51) with alarm set function
Clap counter using 8051 microcontroller (AT89C51)
Interfacing RFID with 8051 microcontroller (AT89C51) using serial interrupt
Digital dice using 8051 microcontroller (AT89C51)
Toll plaza system based on vehicle category interface with 8051 microcontroller (AT89C51)
How to interface Sharp's distance sensor with 8051 microcontroller (AT89C51)
How to interface ADC0808 using clock from 8051 microcontroller (AT89C51)
How to extract details from GPS Receiver using 8051 Microcontroller
Interfacing ADC0804 with Serial port (RS232) using 8051 micocontroller (AT89C51)
How to display Hindi alphabets on 16x2 LCD using 8051 microcontroller (AT89C51)
How to display string on Graphics LCD using 8051 Microcontroller (AT89C52)
Digital clock using DS12C887 and 8051 microcontroller (AT89C51) in 12 hour mode
How to interface LDR with ADC0808 using interrupt clock from 8051 microcontroller (AT89C51)
How to display custom animations on 16x2 LCD using 8051 microcontroller (AT89C51)
LCD based sound operated display using 8051 microcontroller (AT89C51)
EEPROM (24C02) Memory Reset using 8051 microcontroller (AT89C51)
How to interface three input channels of ADC0808 using 8051 microcontrollers (AT89C51)
LCD based dual message display using 8051 microcontroller (AT89C51)
User input based seven segment display using 8051 microcontroller (AT89C51)
Interfacing ADC0808 with Serial port (RS232) & 8051 microcontroller using clock from D-flip flop
How to interface Serial ADC0831 with 8051 Microcontroller (AT89C51)
Interfacing ADC0808 with Serial port (RS232) using interrupt clock from 8051 microcontroller (AT89C51)
READ MORE - 8051 Microcontroller Projects List

Simple Digital clock using 8051 microcontroller (AT89C51)


Simple Digital clock using 8051 microcontroller (AT89C51)
A digital clock is one that displays time digitally. The circuit explained here displays time with two ‘minutes’ digits and two ‘seconds’ digits on four seven segment displays. The seven segment and switches are interfaced with 8051 microcontroller AT89C51. This circuit can be used in cars, houses, offices etc.
DESCRIPTION : 
As soon as the Vcc supply is provided to this circuit, the clock starts from 00:00. The time is displayed on four seven segments (in common anode configuration) by using the concept of multiplexing. This is achieved by using timer interrupt (Timer0) of AT89C51

which is configured to refresh seven segments. The segments are refreshed many times in a second for simultaneous display. The clock runs with a delay of exactly one second. Timer1 has been used to produce a time delay of one second. The data pins (a–h) of all the segments are interconnected and receive signal from port P2 of the microcontroller. The control or enable pins (common anode) are connected to pins 1-4 of port P1 (P1^0 – P1^3).

The number on 4th segment (displaying the unit digit of second) is incremented once in a second as it goes from 0 to 9. The number on 3rd segment is incremented after every 10 seconds from 0 to 5. Thus seconds are displayed varying from 00 to 59. The digit on the 2nd segment changes after every 60 seconds (a minute) from 0 to 9 and so on. Thus the clock runs for an hour and after that it resets to zero again
READ MORE - Simple Digital clock using 8051 microcontroller (AT89C51)

How to interface 16x2 LCD with 8051 microcontroller (AT89C51)


How to interface 16x2 LCD with 8051 microcontroller (AT89C51)
It is very important to keep a track of the working of almost all the automated and semi-automated devices, be it a washing machine, an autonomous robot or anything else. This is achieved by displaying their status on a small display module. LCD (Liquid Crystal Display) screen is such a display module and a 16x2 LCD module is very commonly used. These modules are replacing seven segments and other multi segment LEDs for these purposes. The reasons being: LCDs are economical, easily programmable, have no limitation of displaying special & even custom characters (unlike in seven segments), animationsand so on. LCD can be easily interfaced with a microcontroller to display a message or status of a device. This topic explains the basics of a 16x2 LCD and how it can be interfaced with AT89C51 to display a character
DESCRIPTION : 
A 16xLCD means it can display 16 characters per line and there are 2 such lines. In this LCD each character is displayed in 5x7 pixel matrix. This LCD has two registers.
1.      Command/Instruction Register - stores the command instructions given to the LCD. A command is an instruction given to LCD to do a predefined task like initializing, clearing the screen, setting the cursor position, controlling display etc.
2.      Data Register - stores the data to be displayed on the LCD. The data is the ASCII value of the character to be displayed on the LCD.
Commonly used LCD Command codes:
Hex Code
Command to LCD Instruction Register
1
Clear screen display
2
Return home
4
Decrement cursor
6
Increment cursor
E
Display ON, Cursor ON
80
Force the cursor to the beginning of the 1st line
C0
Force cursor to the beginning of the 2nd line
38
Use 2 lines and 5x7 matrix  
The pin description of this module is given below.
Pin configuration:

Pin
Symbol
Description
1
VSS
Ground
0 V
2
VCC
Main power supply
+5 V
3
VEE
Power supply to control contrast
Contrast adjustment by providing a variable resistor through VCC
4
RS
Register Select
RS=0 to select Command Register
RS=1 to select Data Register
5
R/W
Read/write
R/W=0 to write to the register
R/W=1 to read from the register
6
EN
Enable
A high to low pulse (minimum 450ns wide) is given when data is sent to data pins
7
DB0
To display letters or numbers, their ASCII codes are sent to data pins (with RS=1). Also instruction command codes are sent to these pins.
8
DB1
9
DB2
10
DB3
             8-bit data pins
11
DB4
12
DB5
13
DB6
14
DB7
15
Led+
Backlight VCC
+5 V
16
Led-
Backlight Ground
0 V

Programming the LCD:
1.      Data pin8 (DB7) of the LCD is busy flag and is read when R/W = 1 & RS = 0. When busy flag=1, it means that LCD is not ready to accept data since it is busy with the internal operations. Therefore before passing any data to LCD, its command register should be read and busy flag should be checked.
 2.      To send data on the LCD, data is first written to the data pins with R/W = 0 (to specify the write operation) and RS = 1 (to select the data register). A high to low pulse is given at EN pin when data is sent. Each write operation is performed on the positive edge of the Enable signal.
3.      To send a command on the LCD, a particular command is first specified to the data pins with R/W = 0 (to specify the write operation) and RS = 0 (to select the command register). A high to low pulse is given at EN pin when data is sent.
Displaying single character ‘A’ on LCD
 The LCD is interfaced with microcontroller (AT89C51). This microcontroller has 40 pins with four 8-bit ports (P0, P1, P2, and P3). Here P1 is used as output port which is connected to data pins of the LCD. The control pins (pin 4-6) are controlled by pins 2-4 of P0 port. Pin 3 is connected to a preset of 10k? to adjust the contrast on LCD screen. This program uses the above concepts of interfacing the LCD with controller by displaying the character ‘A’ on it
 CIRCUIT DIAGRAM : 

VIDEO ;



READ MORE - How to interface 16x2 LCD with 8051 microcontroller (AT89C51)