Tengo un problema en mi programa de voltímetro digital.
El voltímetro hace de 0v a 5v mi problema es ¿como hacer para que sea de -5v a 5v ?
Utilizo el PIC16F877A
Aquí esta mi programa.
	
	
	
		
				
			El voltímetro hace de 0v a 5v mi problema es ¿como hacer para que sea de -5v a 5v ?
Utilizo el PIC16F877A
Aquí esta mi programa.
		Código:
	
	'***************************************************************
'*  Name    : UNTITLED.BAS                                                                                       *
'*  Author  : [select VIEW...EDITOR OPTIONS]                                                               *
'*  Notice  : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS]                                     *
'*          : All Rights Reserved                                                                                     *
'*  Date    : 29/11/2012                                                                                            *
'*  Version : 1.0                                                                                                       *
'*  Notes   :                                                                                                            *
'*          :                                                                                                               *
'****************************************************************
' Programa de voltimetro con pic basic pro de tension (0-5VDC) e ilustracion en 
' LCD con 2 decimas a traves de pic 16f877A. 
'definicion de Oscilador externo
@ device xt_osc ; oscilador externo XT 
define osc 4                        ; especifica que se va a utilizar uno de 4 Mhz
Define    LOADER_USED    1
' Definicion de configuracion de pines para comunicacion con lcd a 4bits.
DEFINE LCD_DREG PORTB                'Seleccion de port B 
DEFINE LCD_DBIT 4                        'Seleccion de RB4 a RB7 
DEFINE LCD_RSREG PORTB               'Seleccion de port B 
DEFINE LCD_RSBIT 0                       'Seleccion de RB4 a RB7 
DEFINE LCD_RWREG PORTB               'RS en port B 
DEFINE LCD_RWBIT 1                      'RS en RB1
DEFINE LCD_EREG PORTB                   'RS en port B 
DEFINE LCD_EBIT 2                         'RW en RB2 
DEFINE LCD_EBITS 4                       'RW en RB2   
DEFINE LCD_LINES 2                       '2 lineas 
DEFINE LCD_COMMANDUS 2000         '2 lineas 
DEFINE LCD_DATAUS 50                   '2 lineas 
ADCON1=6
CMCON=7                                     
' Definicion de parametro de conversion A/D 
DEFINE  ADC_BITS        10         ' Selecionar numero de bits conversion A/D 
DEFINE  ADC_CLOCK       3         ' Selecionar reloj interno de conversion A/D
DEFINE  ADC_SAMPLEUS    50        ' Selecionar tiempode conversion Useg
'creacion de variable y configuracion puertos del pic 16f877A
adval    Var    Word    'Variable donde se va ha guardar medida obtenida
TRISA = %11111111    ' Selecionar PORTA como entrada 
ADCON1 = %10000010    ' Selecionar PORTA analogo 
Low PORTB.2            ' LCD R/W colocado a cero logico(W)
Pause 500           ' esperar 0.5 second
'Inicio del programa
voltimetro:
    
Adcin 0, adval        'leer canal cero y guardar resultado en al avariable adval
adval = (adval */ 500)>>2    'lectura de tension 
LCDOut $fe,1       ' Clear LCD
LCDOUT $fe,$83,"VOLTAJE"
lcdout $fe,$c5,DEC (adval/100),".", DEC2 adval 'mostrar en LCD  
Pause 100           ' esperea 100mseg
Goto voltimetro       ' volver medir 
End
	Adjuntos
			
				Última edición por un moderador: