Problema con ohmetro en pic16F887 ADC/LCD

Hola compañeros, hice un pequeño ohmetro el cual en la simulación con Isis Proteus me funciona perfectamente, y en Físico No, en Físico me aparecen algunos caracteres de mas en la LCD, también tengo habilitado un pin del puerto B habilitado como Pull-up interno, el cual cuando presiono un botón ese pin B cambia a GND y en la pantalla LCD debe de aparecer otro mensaje, el cual aparece correctamente, pero cuando dejo de presionar el botón (logicamente debe de regresar a tener '1' Lógico por el pull-up interno) y debe de regresar al Mensaje principal, cosa que en la simulación hace, pero en fisico se queda en el mensaje como que si aun tuviera presionado el botón.
Otra cosa, es que si conecto/desconecto la alimentación general, los valores mostrados en la LCD cambian constantemente, hasta "atinarle" al valor verdadero que me muestra en la simulación.

No se que tenga, he revisado los cables y ninguno hasta haciendo falso/corto todo esta debidamente montando en el proto, como en la simulación, hay algo que no me deja funcionar bien mi ohmetro, he pensando que tal vez sea el LCD el profe nos dijo que utilizaramos el hitachi hd44780 pero compre otro de otra matricula, revise su datasheet para saber la numeracion de sus pines, todo esta debidamente conectado, pero puede ser un factor.

Otra cosa que pienso que sea es que tenga ruido en la señal, algo que no me deja mostrar bien las cosas en la LCD.

bueno es todo. Gracias y espero que me ayuden en este problema.

psdata: en la simulacion tengo a un dipswitch de 10 con 10 resistencias de diferentes valores, el dipswitch en el RB0 es para activar cuando requieras cambiar la resistencia y se pone el texto "Colocar resistencia A medir" activas solamente UN switch del dips para activar solamente UNA resistencia para medirla. hise esto por que si quitas la resistencia (DIPSWITCH SIN NINGUNA ACTIVACION DE RESISTENCIA) se pone un numero raro, extraño, despues le colocas otra resistencia y te la mide, pero te deja unos numeros de mas.. no sé por que, bueno y por eso queria poner esa activacion en el RB0 para controlar los cambios de resistencia a medir.

Psdata 2: intente quitando el pull up interno e utilizar algun otro pin como entrada, con pull up externo y tampoco, hace lo mismo que con el RB0 como que si aun tuviera el boton presionado!
 

Adjuntos

  • Ohmetro.rar
    1.8 MB · Visitas: 43
El PIC16F887 tiene la opción de habilitar las resistencias pull-up del puerto B de forma independiente.
Se necesita habilitarlas en el registro OPTION_REG (Bit 7 = RBPU) y se activan en el registro WPUB <7:0>
También debes configurar el registro ANSELH para que el puerto B sea digital I/O.

En mikroC me parece que debe ser así:
ANSELH = 0;
OPTION_REG.F7 = 0;
WPUB = 0x01; // Para activar la resistencia pull-up del pin RB0

Si las quieres activar todas, entonces: WPUB = 0xFF;
 
Atrás
Arriba