Ascensor con PIC16F887 ?

Saludos gente de F.E.! Hoy vengo con una interrogante que me ha arrancado varios pelos de la cabeza...

Hace unos dias estaba intentanto compilar el codigo que les dejo a continuacion, pero mi problema es..como puedo pasar este código a un PIC16F887?...He intentado cambiarlo por mi cuenta pero lo que obtengo es un error en el MPLAB que menciona acerca de que un REGISTRO no esta en el banco 0..me genera el HEX pero al quererlo emular en PROTEUS no resulta como debe de ser...Alguna ayuda? Gracias desde Ya



(Buscando en el Foro! )
 

Adjuntos

  • ELEVADOR887.txt
    1.6 KB · Visitas: 155
Yo no hablo asm, pero estaria bueno ver el codigo que vos modificaste (interpreto que ese es el codigo original porque en las primeras lineas dice INCLUDE "P16F84A.INC"). Después alguien mas entendido en el lenguaje te sabrá decir que registro modificar porque siempre cambian de un pic a otro.
Saludos
 
yo se cual es tu problema, el pic16f887 necesita forzosamente que modifiques los registros option 1 y 2, porque siempre se guardan de los programas anteriores, te doy estas recomendaciones:

1.- Utiliza la directiva Banksel para direccionar mas eficientemente.
2.- Asocia el numero del registro option.
3.- En el datasheet fijate muy bien en que bancos se encuentran, en el ejemplo el puerto A solo es limpiado, no es tomado como salida.
4.- Tu programa es un poco disfuncional porque no usas detectores de flancos por tanto todas las instrucciones se ejecutan cuado cualquier sensor esté activo y cuando esten desactivo no se va a mover el elevador en lo absoluto.

mas o menos me imagino que pretendes hacer, pero mejor has primero un diagrama de flujo y te puedo asesorar mejor al respecto por los pronto sustituye todo el encabezado antes de la directiva ORG por esto:

LIST P=PIC16F887
#INCLUDE <P16F887.INC>
__CONFIG _CONFIG1, 0X20C4
__CONFIG _CONFIG2, 0X3EFF
 
Saludos imabest , Gracias por tu apoyo! He hecho el diagrama de flujo en cuanto lei tu mensaje, y lo pongo a continuacion (no soy muy bueno haciendo diagramas, pero lo intente hacer entendible) Solo que en el diagrama lo hice de 4 pisos (Planta baja y 3 pisos) por que esa era la idea original. Muchas gracias por la ayuda!

(subido en Photobucket por que la imagen es muy larga)

http://i514.photobucket.com/albums/t349/klorerokailo/DIAGFLUJO.jpg

"...Mas o menos me imagino que pretendes hacer, pero mejor has primero un diagrama de flujo y te puedo asesorar mejor al respecto..."

He subido recientemente el diagrama, Gracias por el apoyo!
 
Última edición:
Bien difícil que otros hagan toda esa chamba por ti, solo te queda analizar el mensaje del error y corregirlo con el ensamblador. Ambos micros tienen la particularidad de ser semejeantes.
 
Bien difícil que otros hagan toda esa chamba por ti, solo te queda analizar el mensaje del error y corregirlo con el ensamblador. Ambos micros tienen la particularidad de ser semejeantes.

Saludos Sainicus! Si de hecho yo se que estara un poco complicdo, ya que el 887 cuenta con muchas bondades, pero no es que yo lo quiera trabajar, por mi tomaba el 84a y lo hacia! Pero no esta en mi control decidir que micro usar, por eso decidi venir por un poco de ayuda! Aun asi ya estoy avanzando con lo que me han comentado anteriormente.
 
el link de la imagen no se puede ver, pero tampoco mencionas si el elevador tiene teclado, que tipo de teclado, el tipo de sensores (NA NC), estoy en disposicion de hecharte una mano pero si un poco más específico.
 
el link de la imagen no se puede ver, pero tampoco mencionas si el elevador tiene teclado, que tipo de teclado, el tipo de sensores (NA NC), estoy en disposicion de hecharte una mano pero si un poco más específico.

Ui si creo que se muy pequeña la imagen!

http://s514.photobucket.com/albums/t349/klorerokailo/?action=view&current=DIAGFLUJO.jpg

Intenta con este, te posas sobre la imagen y en el menú que sale das en "File<Downlod"

Bueno, lo que tendrá este elevador seran pulsadores de llamada de piso, un pulsador por cada piso, Y para la parte de la cabina tendrá switches activados por imanes, los switches son NA todos.
Para las salidas serán salidas en binario, ya que utilizare el motor de aqui http://www.diselc.es/diselc/proyectos/ascensorpic.htm, que en la salida me de b'00000001' para subir, b'00000010' para bajar y b'00000000' para detenerse.

De hecho estaba revisando la hoja de datos del PIC, y me doy cuenta que tiene los puertos C y D digitales, y para hacerlo más simple me gustaria trabajar sobre esos, ya que intenté hacer el programa con el ANSEL y con el ANSELH, para hacer los puertos A y B digitales y logre ponerlos como entradas y salidas, mas no pude hacer el elevador con las sentencias del TXT.
 
Última edición:
las que puse no son sentencias, son el encabezado. los puertos del 887 tu los configuras como analógicos o como digitales al principio de tu programa.

primero debes hacer las condiciones de lectura de los pulsadores, y despues las de posicionamientoentre pisos, y finalmente debes relacionarlos entre sí, es decir, que los vas a comenzar a programar como 2 programas distintos, esto te va a facilitar bastante tu programacion.
 
Atrás
Arriba