0% found this document useful (0 votes)
51 views4 pages

Digital Volt Meter by Using PIC16F877A: Software Used

This document describes a digital volt meter circuit designed using a PIC16F877A microcontroller. It includes the circuit diagram and code for the digital volt meter. The circuit uses an analog to digital converter to read the voltage from a variable resistance. The voltage reading is then displayed on an LCD in digital format. The document provides contact information for the engineer who designed the circuit.

Uploaded by

BradLyBerroya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views4 pages

Digital Volt Meter by Using PIC16F877A: Software Used

This document describes a digital volt meter circuit designed using a PIC16F877A microcontroller. It includes the circuit diagram and code for the digital volt meter. The circuit uses an analog to digital converter to read the voltage from a variable resistance. The voltage reading is then displayed on an LCD in digital format. The document provides contact information for the engineer who designed the circuit.

Uploaded by

BradLyBerroya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Digital volt meter , for quire contact: engnr.shakeel@gamil.

com

Digital volt meter by using PIC16F877A


This is simple design of DIGITAL VOLTMETER by changing the RV2(variable resistance ) we can
observe the changing voltage on LCD

Software used:
1) Proteus 7.7 for simulation
2) MickroC Pro v4.15 for code compiling and HEX file

Circuit Diagram:

CODE:
/*Header******************************************************/

1 Engnr Rana M Shakeel, +92-333-4962507 | [email protected]


Digital volt meter , for quire contact: [email protected]

// LCD module connections

sbit LCD_RS at RB4_bit;

sbit LCD_EN at RB5_bit;

sbit LCD_D4 at RB0_bit;

sbit LCD_D5 at RB1_bit;

sbit LCD_D6 at RB2_bit;

sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;

sbit LCD_EN_Direction at TRISB5_bit;

sbit LCD_D4_Direction at TRISB0_bit;

sbit LCD_D5_Direction at TRISB1_bit;

sbit LCD_D6_Direction at TRISB2_bit;

sbit LCD_D7_Direction at TRISB3_bit;

// End LCD module connections

unsigned char ch; //

unsigned int adc_rd; // Declare variables

char *text; //

long tlong; //

void main() {

INTCON = 0; // All interrupts disabled

TRISA = 0x04;

Lcd_Init(); // LCD display initialization

Lcd_Cmd(_LCD_CURSOR_OFF); // LCD command (cursor off)


2 Engnr Rana M Shakeel, +92-333-4962507 | [email protected]
Digital volt meter , for quire contact: [email protected]

Lcd_Cmd(_LCD_CLEAR); // LCD command (clear LCD)

ADCON1 = 0x82; // A/D voltage reference is VCC

TRISA = 0xFF; // All port A pins are configured as inputs

Delay_ms(1000);

introduction (void);

text = "voltage:"; // Define the third message

Delay_ms(1000);

while (1) {

adc_rd = ADC_Read(2); // A/D conversion. Pin RA2 is an input.

Lcd_Out(2,1,text); // Write result in the second line

tlong = (long)adc_rd * 5000; // Convert the result in millivolts

tlong = tlong / 1023; // 0..1023 -> 0-5000mV

ch = tlong / 1000; // Extract volts (thousands of millivolts)

// from result

Lcd_Chr(2,9,48+ch); // Write result in ASCII format

Lcd_Chr_CP('.');

ch = (tlong / 100) % 10; // Extract hundreds of millivolts

Lcd_Chr_CP(48+ch); // Write result in ASCII format

ch = (tlong / 10) % 10; // Extract tens of millivolts

Lcd_Chr_CP(48+ch); // Write result in ASCII format

ch = tlong % 10; // Extract digits for millivolts

Lcd_Chr_CP(48+ch); // Write result in ASCII format

Lcd_Chr_CP('V');

Delay_ms(1);

}
3 Engnr Rana M Shakeel, +92-333-4962507 | [email protected]
Digital volt meter , for quire contact: [email protected]

4 Engnr Rana M Shakeel, +92-333-4962507 | [email protected]

You might also like