Digital Voltmeter using 8051 microcontroller – Mini-Project

Digital voltmeter using 8051 microcontroller.

Voltmeter is a voltage measuring instrument. We can measure the potential difference between any two points in an electrical network using voltmeter.

Let us design and make a simple voltmeter using 8051 microcontroller which you can use as a mini-project in your college.

There are two types of voltmeter as analog voltmeter and digital voltmeter. Analog voltmeter moves pointer on a scale but it has some limitations like accuracy of few percent of full scale.

In this section we are going to make a digital voltmeter using 8051 microcontroller. Digital voltmeter can display numerical value of voltage on a display by use of analog to digital converter (ADC). All the data processing and manipulating is in digital form, so it is very essential to use ADC. We have used ADC0804 analog-to-digital converter IC. The range of input voltage is 0-15V. Here the input voltage should be DC voltage so as to get the steady output on the LCD display. If you give the AC voltage as an input, it will display continuously running numbers as the nature of AC voltage.

Components required for digital voltmeter using 8051 microcontroller:

  1. Microcontroller,  AT89C51
  2. Analog‐to‐Digital  Converter,  ADC0804  
  3. 16×1  LCD  
  4. Oscillator  circuit  for  the  microcontroller  
    1. 12MHz  Crystal  Capacitor
    2. 33pF  Capacitors
  5. Voltage  divider  circuit/  Input  terminals  
    1. 200k,  100k  Resistors
    2. 100nF  Capacitor
  6. ADC  Clock  Circuit  100k  Potentiometer  (to  adjust  the  back‐light  of  the  LCD)  
    1. 10k  Resistor
    2. 150pF  Capacitor
  7. 100k  Potentiometer  (to  adjust  the  back‐light  of  the  LCD)  

Circuit diagram of digital voltmeter using 8051 micrcontroller:

Digital voltmeter using 8051 micrcontroller
Digital voltmeter using 8051 micrcontroller


Pin description of 16×1 LCD Display:

lcd pin diagram
lcd pin diagram
Pin  No   Name   Description  
1   Vss   Ground  
2   Vdd   +5V  
3   Vee   Contrast  Adjustment  ‐2V  to  ‐5V  
4   RS   Register  Select  
5   RW   1  ‐Read  ,  0‐ Write  
6   E   Enable  Strobe  
7   D0   Data  Line  
8   D1   Data  Line  
9   D2   Data  Line  
10   D3   Data  Line  
11   D4   Data  Line  
12   D5   Data  Line  
13   D6   Data  Line  
14   D7   Data  Line  
15   LED+   Backlit  LED  +V   Vdd  (Optional  signal)  
16   LED‐  Backlit  LED  –V   Vss  (Optional  signal)  


C program for digital voltmeter using 8051 micrcontroller:

#include <REGX51.H>

#include “lcd.h”

#define adc_port P1              //ADC Port

#define rd P3_7                  //Read signal P3.7

#define wr P3_6                  //Write signal P3.6

#define cs P3_5                  //Chip Select P3.5

#define intr P3_4                //INTR signal P3.4

void conv();                     //Start of conversion function

void read();                     //Read ADC function

unsigned int adc_avg,adc;

void main(){

                char i;


                while(1){                                                              //Forever loop

                                adc_avg = 0;


                                                conv();                  //Start conversion

                                                read();                  //Read ADC

                                                adc_avg += adc;


                                adc_avg = adc_avg/10;


                                wrt_string(“V(DC): “);

                                adc = adc_avg * 59;

                                hex2lcd((unsigned char)(adc/1000));


                                adc = adc%1000;

                                hex2lcd((unsigned char)(adc/10));




void conv(){

                cs = 0;                                    //Make CS low

                wr = 0;                                  //Make WR low

                wr = 1;                                  //Make WR high

                cs = 1;                                    //Make CS high

                while(intr);         //Wait for INTR to go low


void read(){

                cs = 0;                                    //Make CS low

                rd = 0;                                   //Make RD low

                adc = adc_port; //Read ADC port

                rd = 1;                                   //Make RD high

                cs = 1;                                    //Make CS high


C Program:

Click here to download the C program, Hex file and project report of digital voltmeter using 8051 microcontroller.

Download Button

You may also like:

[contact-form][contact-field label=’Name’ type=’name’ required=’1’/][contact-field label=’Email’ type=’email’ required=’1’/][contact-field label=’Website’ type=’url’/][contact-field label=’Comment’ type=’textarea’ required=’1’/][/contact-form]

Tags: Digital Voltmeter using 8051 microcontroller – Mini-Project.

2 thoughts on “Digital Voltmeter using 8051 microcontroller – Mini-Project”

    1. Thanks for suggestion. I have updated the link. Now you can download the HEX file from the link.

Comments are closed.