sahu said:pl help any bod for 16f676 voltmeter
1- 16F676 BASEDtmd_63 said:I use flowcode for programming.
Which PIC do you want to use?
How many inputs do you want?
Do you want overflow dispalys?
I can provide ASM code for this so long as it is not used for commercial purposes.
rajudp said:Hi sahu,
here is the circuit for you i am using this for upto 300v , if you want you can reduce the 1.5k resistor, i traced the circuit from voltmeter from market and i make the code for that
can u post hear source code [asm or hex ] file also ?rajudp said:hi
here is the PCB design for the same
program softwarefor887Voltmeter
dim LCD_RS as sbit at RB4_bit
LCD_EN as sbit at RB5_bit
LCD_D4 as sbit at RB0_bit
LCD_D5 as sbit at RB1_bit
LCD_D6 as sbit at RB2_bit
LCD_D7 as sbit at RB3_bit
LCD_RS_Direction as sbit at TRISB4_bit
LCD_EN_Direction as sbit at TRISB5_bit
LCD_D4_Direction as sbit at TRISB0_bit
LCD_D5_Direction as sbit at TRISB1_bit
LCD_D6_Direction as sbit at TRISB2_bit
LCD_D7_Direction as sbit at TRISB3_bit
dim ADCResult as longword
dim voltage as word[5]
dim display as string[5]
sub procedure GlobInit
ANSEL = 1
ANSELH = 0
TRISA = 1
TRISB = 0
PORTB = 0
LCD_Init()
LCD_Cmd(_LCD_CLEAR)
LCD_Cmd(_LCD_CURSOR_OFF)
LCD_Out(1, 1, "Voltage:")
LCD_Chr(1, 16, "V")
display[1] = "."
end sub
main:
GlobInit
while true
ADCResult = (ADC_Read(0) * 500) >> 10
voltage[0] = ADCResult div 100
voltage[1] = (ADCResult div 10) mod 10
voltage[2] = ADCResult mod 10
display[0] = voltage[0] + 48
display[2] = voltage[1] + 48
display[3] = voltage[2] + 48
vout:
LCD_Out(1, 10, display)
delay_ms(50)
wend
end.
Here what does this line mean to do
ADCResult = (ADC_Read(0) * 500) >> 10?
cktlover said:Code:program softwarefor887Voltmeter dim LCD_RS as sbit at RB4_bit LCD_EN as sbit at RB5_bit LCD_D4 as sbit at RB0_bit LCD_D5 as sbit at RB1_bit LCD_D6 as sbit at RB2_bit LCD_D7 as sbit at RB3_bit LCD_RS_Direction as sbit at TRISB4_bit LCD_EN_Direction as sbit at TRISB5_bit LCD_D4_Direction as sbit at TRISB0_bit LCD_D5_Direction as sbit at TRISB1_bit LCD_D6_Direction as sbit at TRISB2_bit LCD_D7_Direction as sbit at TRISB3_bit dim ADCResult as longword dim voltage as word[5] dim display as string[5] sub procedure GlobInit ANSEL = 1 ANSELH = 0 TRISA = 1 TRISB = 0 PORTB = 0 LCD_Init() LCD_Cmd(_LCD_CLEAR) LCD_Cmd(_LCD_CURSOR_OFF) LCD_Out(1, 1, "Voltage:") LCD_Chr(1, 16, "V") display[1] = "." end sub main: GlobInit while true ADCResult = (ADC_Read(0) * 500) >> 10 voltage[0] = ADCResult div 100 voltage[1] = (ADCResult div 10) mod 10 voltage[2] = ADCResult mod 10 display[0] = voltage[0] + 48 display[2] = voltage[1] + 48 display[3] = voltage[2] + 48 vout: LCD_Out(1, 10, display) delay_ms(50) wend end. Here what does this line mean to do ADCResult = (ADC_Read(0) * 500) >> 10?
rajudp said:hi
here is the PCB design for the same
pl replly me about Volt Meter Pic16f676 source code or hex code.rajudp said:RA0 for input to ADC and RA1 as reference volt for ADC . the 5.1 volt zener will keep the pic supply to 5.1v but it will get drop when LED is on
medev said:how ı take out for control,on 14,5v.please,help.
rajudp said:Hi sahu,
here is the circuit for you i am using this for upto 300v , if you want you can reduce the 1.5k resistor, i traced the circuit from voltmeter from market and i make the code for that
Hai All,
Try this project DVM using LCD and PIC.....so simple to make...but only measure 1.5 v DC to 20 v DC.
see you again........
Manoj Soorya/manoj madhavan
u know only FLOWCODE ?Pls give flowcode file , i dont know asm and c
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?