Problema con voltimetro digital con pic 16f876a

bueno e tratado de hacer un voltimetro con el pic 16f876a y un display 2*16 al probarlo en proteus sirve ala perfeeccion pero al hacerlo en un proto. la lcd se queda prendida pero no dice nada aui les dejo el diagrama y el programa

Código:
'****************************************************************
'*  Name    : voltimetro.BAS                                    *
'*  Author  : N4NDx                                             *
'*  Notice  : Copyright (c) 2011  Lima                          *
'*          : All Rights Reserved                               *
'*  Date    : 20/08/2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
'
Declaracion del dispositivo
Device = 16F876A
Xtal = 4            ' cristal de 4MHz
'****************************************************************
' Asignacion del LCD
Declare LCD_DTPin = PORTB.4     ' puerto de datos del LCD
Declare LCD_ENPin = PORTB.2     ' pin para el E
Declare LCD_RSTPin = PORTB.3    ' pin para el RS
Declare LCD_Interface 4         ' modo 4 bits
Declare LCD_Lines 2             ' LCD de 2 lineas
'****************************************************************
' Definicion del conversor A/D
Declare Adin_Res = 10       ' resolucion de 10 bits
Declare Adin_Tad = FRC      ' oscilador RC interno
Declare Adin_Delay = 50     ' muestreo cada 50 microsegundos
'****************************************************************
'Creacion de variables
Dim senal   As Word       ' variable palabra
Dim Volts   As Float      ' variable en coma flotante (4bytes)
'****************************************************************
Symbol cuantif = 100.0 / 1024   ' Calcula el valor de cuantificacion
                                ' maximo 100 voltios DC
Print Cls                       ' limpia el LCD y genera un retardo
'****************************************************************
'Definicion de los puertos
TRISA = %00000001   ' Configura AN0 (PortA.0) como entrada
ADCON1 = %10000000  ' habilita entrada analogica en PortA.0
'****************************************************************
'Empieza el programa
inicio:
senal = ADIn 0                  ' se lee el canal 0 y almacena en senal
Volts = senal * cuantif
Print At 1,1, "Voltaje:"        ' imprime voltaje en fila 1 posicion 1
Print At 2,1,Dec2 Volts,"V"     ' imprime en fila 2 posicion 1
                                ' DEC2 muestra 2 decimales
GoTo inicio
End


y aqui esta el diagrama
 

Adjuntos

  • Nuevo Documento de Microsoft Word.doc
    91.5 KB · Visitas: 26
Última edición por un moderador:
No estás estableciendo la palabra de configuración, y así por default el compilador usa HS_OSC
En tu programa declaras usar 4MHz, pero aún así con el oscilador configurado como High Speed debe funcionar.
Los pines del LCD que no uses, mándalos a VSS (Negativo) y usa un potenciómetro de 5k para el pin VEE
Ya que ese pin controla el contraste, y poniéndolo a VSS puede haber exceso de contraste.
Eso te provocará cuadritos negros en las dos líneas de la pantalla, o se puede ver un fondo saturado.
La forma en que tienes la conexión del reset, no es la que debes usar, coloca directamente el pin 1 a VCC,
o realiza la conexión típica con una resistencia de 4.7k hacia VCC y un push button hacia VSS.
Más cosas aparte de la extraña forma de llegar a la conversión y la resistencia de 19k, no encuentro.

Corrige lo que te mencione y revisa bien tus conexiones.

Suerte.
 
Atrás
Arriba