Hola, qué tal!
Vengo iniciando en el tema de microcontroladores. Les cuento cómo está mi problema.
Se trata de un proyecto con un menú de 3 opciones mostrado en una pantalla LCD de 16x2. Para elegir una opción, tendré que hacerlo con un celular y un Circuito Integrado CM8870.
Simulo el proyecto en
Proteus 8 y programo en
mikroC PRO 5.61. Como en Proteus no está el CI CM8870, utilizo un DIP Switch de 5 posiciones.
En la primera opción debo mostrar la temperatura con un sensor LM35, en la segunda opción debo ingresar 3 dígitos que serán el valor para el PWM (un LED conectado ahí),
y en la tercera opción debo simular dos semáforos.
Tengo problemas con la primera opción. Yo deseo mostrar la temperatura con decimales, para ello utilizo la función
FloatToStr. Pero cuando inicio la simulación en Proteus,
la pantalla LCD se enciende pero no muestra nada. He notado que eso me pasa cuando realizo operaciones con decimales y/o utilizo la función
FloatToStr.
Decidí entonces mostrar la temperatura como número entero (sin los decimales), pero es el mismo problema.
Probé el código que uso para mostrar con decimales en otro proyecto (únicamente un LM35 y una LCD de 16x2) y funciona correctamente. También probé con el otro código para
mostrar enteros e igual, funciona correctamente. No sé cuál sea el problema al pasarlo al proyecto del menú.
Uso un
PIC16F887. Cuando armo todo en el protoboard, pasa lo mismo; enciende la pantalla LCD (se ven los cuadros de la primera fila) pero no muestra nada.
Dejo el proyecto (código y simulación) en el que funcionan ambos códigos, y también el proyecto del menú (Proyecto Final).
mikroC.rar (Menú Archivo --> Descargar)
El código que muestra el número entero es de la línea 88 a la línea 171.
El código que muestra el número decimal es de la línea 173 a la línea 183.
Por cierto, en los demás proyectos no conecto los pines VSS, VDD ni VEE de la LCD en Proteus y funciona todo bien. Cuando lo armo en el protoboard, sí los conecto.
Espero que me puedan ayudar diciéndome cuál sería el problema, por favor.
De ante mano muchas gracias. Saludos!
P.D.: así como dejé la configuración del DIP Switch entrará directamente a la primera opción. Para que no tengan que mover cada vez que reinicien la simulación.
Y decidí no poner el código aquí porque son 329 líneas. Pero si les parece, lo pongo acá.