Problema con pic16f877a para funcionar lcd con servomotor

hola que tal, tengo un problema con pic16f877a, lcd y servomotor.

el problema es el siguiente:

tengo que hacer una practica de convertidor analogico digital usando un potenciometro en el pin0 del puerto A, luego confome vaya girando el potenciometro un servo conectado en el pin0 del puerto B va ha girar, ademas en un lcd se debe mostrar el angulo girado del servo y por ultimo, en una barra de leds el valor en binario.

ya tengo el código, también el circuito en proteus, el problema es que no logro hacer que el lcd y el servo funcionen juntos, ya logre saber cual es el problema, para mover el servo uso la función pauseus en el microcode studio, investigue y esta función trabaja a 4mhz pero el lcd trabaja a 20 y cuando cambio el valor de 4 en define osc, el servo funciona pero el lcd no y cuando lo pongo a 20 el lcd funciona pero el servo no

no se si se sabrán alguna forma para que funcionen los dos juntos.

anexo el programa hecho en microcode studio y el diagrama en proteus

gracias

cualquier problema para abrir el archivo me dicen.
 

Adjuntos

  • programa_800.zip
    111.9 KB · Visitas: 91
Para mi que no.

El problema lo tienes en la entrada y salida de las interrupciones.
El LCD es mucho más lento que el PIC. el PWM manejando el servo tambien lo es.
Postea como generas las interrupciones e intentamos arreglar algo.

Tambien puede ser que la rutina del LCD no sea la adecuada. Busca una a 4mhz. Si no recuerdo mal la rutina general de funcionamiento no valia para el proteus. Habia que hacer una temporización antes de leer el fin de la escritura/lentura.

Saludos

PD ¿No te ratea el servo? (se mueve sin parar)
 
Atrás
Arriba