top of page
Writer's pictureLearnElectronics

Project: Electronic Notice Board Using 8051 Microcontroller

Updated: Sep 15

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


  1. 8051 Microcontroller (AT89S52)

  2. 16x2 LCD Display

  3. MAX232 IC

  4. RS232 Cable

  5. Power Supply (5V DC)

  6. Crystal Oscillator (11.0592 MHz)

  7. Capacitors (33pF, 10µF)

  8. Resistors (10kΩ, 1kΩ)

  9. Push Buttons

  10. Connecting Wires

  11. 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:

    1. The main loop waits for data from the serial port.

    2. When data is received, it is stored in the msg array until a carriage return (\r) is detected.

    3. 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.




108 views2 comments

Related Posts

See All

2 Comments


bottom of page