An electronic notice board is a versatile tool for displaying information in real-time across various public and private spaces. Utilizing an 8051 microcontroller, we can create a simple and effective electronic notice board that can be updated remotely using a personal computer or other interfaces. This project is ideal for educational institutions, offices, and public places where timely updates are necessary.
Components Required
8051 Microcontroller (AT89S52)
16x2 LCD Display
MAX232 IC
RS232 Cable
Power Supply (5V DC)
Crystal Oscillator (11.0592 MHz)
Capacitors (33pF, 10µF)
Resistors (10kΩ, 1kΩ)
Push Buttons
Connecting Wires
Breadboard or PCB
Circuit Connections
The circuit for the electronic notice board consists of interfacing a 16x2 LCD with the 8051 microcontroller and using a MAX232 IC for serial communication between the microcontroller and a PC.
Connections
8051 Microcontroller:
Vcc and GND to 5V and Ground respectively.
XTAL1 and XTAL2 to Crystal Oscillator with 33pF capacitors connected to ground.
16x2 LCD Display:
RS to P2.0
RW to P2.1
E to P2.2
Data Pins D4-D7 to P2.4-P2.7
Vss to Ground
Vcc to 5V
VEE to the middle pin of a 10kΩ potentiometer for contrast adjustment.
MAX232 IC:
T1IN to P3.0 (TXD)
R1OUT to P3.1 (RXD)
Connect Vcc and GND
Connect the capacitors as per the MAX232 datasheet
Connect RS232 cable to the DB9 connector, which in turn connects to the PC.
Working Principle
The main principle of the electronic notice board is to receive a message from a PC or other serial device and display it on an LCD. The 8051 microcontroller reads the serial data via its UART interface, processes the data, and then sends the appropriate commands to the LCD to display the message.
Program Code
Below is a simple program written in C for the 8051 microcontroller to implement the electronic notice board.
#include <reg51.h>
#include <string.h>
#define lcd P2
sbit RS = P2^0;
sbit RW = P2^1;
sbit E = P2^2;
void delay(unsigned int count) {
int i, j;
for(i=0; i<count; i++)
for(j=0; j<112; j++);
}
void lcd_cmd(unsigned char command) {
lcd = command;
RS = 0; // Command Mode
RW = 0; // Write Operation
E = 1; // Enable Pulse
delay(1);
E = 0;
}
void lcd_data(unsigned char data) {
lcd = data;
RS = 1; // Data Mode
RW = 0; // Write Operation
E = 1; // Enable Pulse
delay(1);
E = 0;
}
void lcd_init() {
lcd_cmd(0x38); // 8-bit mode, 2-line display, 5x7 font
lcd_cmd(0x0C); // Display ON, Cursor OFF
lcd_cmd(0x01); // Clear Display
lcd_cmd(0x06); // Entry Mode, auto increment with no shift
lcd_cmd(0x80); // Set cursor position to 1st line, 1st column
}
void lcd_string(unsigned char *str) {
while(*str) {
lcd_data(*str++);
}
}
void serial_init() {
TMOD = 0x20; // Timer 1, Mode 2 (8-bit auto-reload)
TH1 = 0xFD; // Baud rate 9600
SCON = 0x50; // 8-bit data, 1 stop bit, REN enabled
TR1 = 1; // Start Timer 1
}
void main() {
unsigned char msg[32];
unsigned char i = 0;
lcd_init();
serial_init();
lcd_string("Electronic Notice Board");
lcd_cmd(0xC0); // Move cursor to 2nd line
while(1) {
while(RI == 0); // Wait for data reception
msg[i] = SBUF; // Read data from serial buffer
RI = 0; // Clear reception flag
if(msg[i] == '\r') { // Check for carriage return
msg[i] = '\0'; // Null terminate the string
lcd_cmd(0x01); // Clear Display
lcd_cmd(0x80); // Move cursor to 1st line, 1st column
lcd_string(msg); // Display the received message
i = 0; // Reset index for next message
} else {
i++;
}
}
}
Explanation
LCD Initialization: The lcd_init() function initializes the LCD in 8-bit mode and sets the cursor to the starting position.
Serial Initialization: The serial_init() function configures the serial port of the 8051 microcontroller for 9600 baud rate communication.
Main Loop:
The main loop waits for data from the serial port.
When data is received, it is stored in the msg array until a carriage return (\r) is detected.
Upon detecting a carriage return, the message is displayed on the LCD, and the array index is reset.
Conclusion
This project demonstrates how to create a simple electronic noticeboard using the 8051 microcontroller. The notice board can receive messages from a PC via serial communication and display them on an LCD. This project can be further expanded by adding wireless communication modules like Bluetooth or Wi-Fi for remote updates. The simplicity and effectiveness of this project make it a great starting point for learning about microcontroller-based applications.
Order Electronics Projects
Want us to guide you through your project or make the project for you? Click on the button below or reach out to us via Call/WhatsApp at (+91) - 7600948607
You can -
Order Basic Electronics Projects
Order Embedded Systems Projects
Order IoT Projects
Order FPGA Projects
Order VLSI Projects
Order Image Processing Projects
Order Matlab Projects
Order TinkerCAD Projects
Order Proteus Projects
Click on the button below to fill out the project inquiry form -
Create Various Projects
Check out our Free Arduino Projects Playlist - Arduino Projects
Check out our Free Raspberry Pi Projects Playlist - Raspberry Pi Projects
Check out our Free TinkerCAD Projects Playlist - TinkerCAD Projects
Check out our Free IoT Projects Playlist - IoT Projects
Check out our Free Home Automation Projects Playlist - Home Automation Projects
Check out our Free NodeMCu Projects Playlist - NodeMCu Projects
Follow us -
Please do follow us i.e. #learnelectronicsindia to get daily updates about new blogs, videos, courses, products, offers, competitions, quizzes, and Internship Opportunities.
mailer box custom
electric foot file for hard skin