Autor Tema: Problema con un ejemplo.  (Leído 2145 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Meta

  • Visitante
Problema con un ejemplo.
« en: 14 de Enero de 2008, 00:17:09 »
Al menos con el Proteus 7.1 SP4 no me sale una cosa. Digamos que tengo la tabla de la verdad con tres entradas y 6 salidas. Pues no encaja con la configuración que tengo hecha.

Les dejo el archivo del Proteus para que vean el esquema y el código .hex. Aquí les dejo el código fuente.

Código: ASM
  1. ;********************************** Indexado_01.asm *************************************
  2. ;
  3. ;       ===================================================================
  4. ;         Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
  5. ;         E. Palacios, F. Remiro y L. López.               www.pic16f84a.com
  6. ;         Editorial Ra-Ma.  www.ra-ma.es
  7. ;       ===================================================================
  8. ;
  9. ; Implementar una tabla de la verdad mediante el manejo de tablas grabadas en ROM.
  10. ; Por ejemplo, la tabla será de 3 entradas y 6 salidas tal como la siguiente:
  11. ;
  12. ;               C  B     A  |   S5   S4   S3   S2   S1   S0
  13. ;               -----------|---------------------------
  14. ;               0   0   0   |   0    0    1    0    1    0      ; (Configuración 0).
  15. ;               0   0   1   |   0    0    1    0    0    1      ; (Configuración 1).
  16. ;               0   1   0   |   1    0    0    0    1    1      ; (Configuración 2).
  17. ;               0   1   1   |   0    0    1    1    1    1      ; (Configuración 3).
  18. ;               1   0   0   |   1    0    0    0    0    0      ; (Configuración 4).
  19. ;               1   0   1   |   0    0    0    1    1    1      ; (Configuración 5).
  20. ;               1   1   0   |   0    1    0    1    1    1      ; (Configuración 6).
  21. ;               1   1   1   |   1    1    1    1    1    1      ; (Configuración 7).
  22. ;
  23. ; Las entradas C, B, A se conectarán a las líneas del puerto A: RA2 (C), RA1 (B) y RA0 (A).
  24. ; Las salidas se obtienen en el puerto B:
  25. ; RB5 (S5), RB4 (S4), RB3 (S3), RB2 (S2), RB1 (S1) y RB0 (S0).
  26. ;
  27. ; ZONA DE DATOS **********************************************************************
  28.  
  29.         LIST            P=16F84A
  30.         INCLUDE         <P16F84A.INC>
  31.         __CONFIG        _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
  32.  
  33. ; ZONA DE C&#211;DIGOS ********************************************************************
  34.  
  35.         ORG     0                                       ; El programa comienza en la direcci&#243;n 0.
  36. Inicio
  37.         bsf             STATUS,RP0                      ; Acceso al Banco 1.
  38.         clrf    TRISB                           ; Las l&#237;neas del Puerto B se configuran como salida.
  39.         movlw   b'00011111'                     ; Las 5 l&#237;neas del Puerto A se configuran como entrada.
  40.         movwf   TRISA
  41.         bcf             STATUS,RP0                      ; Acceso al Banco 0.
  42. Principal
  43.         movf    PORTA,W                         ; Lee el valor de las variables de entrada.
  44.         andlw   b'00000111'                     ; Se queda con los tres bits de entrada.
  45.         addwf   PCL,F                           ; Salta a la configuraci&#243;n adecuada.
  46. Tabla
  47.         goto    Configuracion0
  48.         goto    Configuracion1
  49.         goto    Configuracion2
  50.         goto    Configuracion3
  51.         goto    Configuracion4
  52.         goto    Configuracion5
  53.         goto    Configuracion6
  54.         goto    Configuracion7
  55. Configuracion0
  56.         movlw   b'00001010'                     ; (Configuraci&#243;n 0).
  57.         goto    ActivaSalida
  58. Configuracion1
  59.         movlw   b'00001001'                     ; (Configuraci&#243;n 1).
  60.         goto    ActivaSalida
  61. Configuracion2
  62.         movlw   b'00100011'                     ; (Configuraci&#243;n 2).
  63.         goto    ActivaSalida
  64. Configuracion3
  65.         movlw   b'00001111'                     ; (Configuraci&#243;n 3).
  66.         goto    ActivaSalida
  67. Configuracion4
  68.         movlw   b'00100000'                     ; (Configuraci&#243;n 4).
  69.         goto    ActivaSalida
  70. Configuracion5
  71.         movlw   b'00000111'                     ; (Configuraci&#243;n 5).
  72.         goto    ActivaSalida
  73. Configuracion6
  74.         movlw   b'00010111'                     ; (Configuraci&#243;n 6).
  75.         goto    ActivaSalida
  76. Configuracion7
  77.         movlw   b'00111111'                     ; (Configuraci&#243;n 7).
  78. ActivaSalida
  79.         movwf   PORTB                           ; Visualiza por el puerto de salida.
  80.         goto    Principal
  81.  
  82.         END
  83.        
  84. ;       ===================================================================
  85. ;         Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
  86. ;         E. Palacios, F. Remiro y L. L&#243;pez.               www.pic16f84a.com
  87. ;         Editorial Ra-Ma.  www.ra-ma.es
  88. ;       ===================================================================

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Problema con un ejemplo.
« Respuesta #1 en: 14 de Enero de 2008, 00:34:58 »
lo he visto y funciona perfectamente, yo uso proteus 7.2 sp2

que error es el que ves?? al parecer esta bien, y revisando el codigo va todo mbien, nose, dime tu
.

Meta

  • Visitante
Re: Problema con un ejemplo.
« Respuesta #2 en: 14 de Enero de 2008, 01:01:36 »
Digamos que si pulso la combinación de la entrada en C=1 B=0 A=0


Código: ASM
  1. ; S5   S4   S3   S2   S1   S0
  2. Debería salir: 1    0    0    0    0    0      ; (Configuración 4).

En el Proteus me sale otra cosa y no se que es lo que pasa.

Me sale 0 0 1 1 1 1 ; (Configuración 4).

Si te sale bien a ti y a mi mal, algo pasa, espero que lo pruebe más personas y me digan. Aún así confío en tus palabras.

Gracias.

EDIT:
Por cierto, ya está el Proteus 7.2 SP3.
« Última modificación: 14 de Enero de 2008, 01:03:49 por Meta »

Desconectado poseidon20

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 762
Re: Problema con un ejemplo.
« Respuesta #3 en: 14 de Enero de 2008, 02:24:08 »
Acabo de probra el programa y me sale bien, como deberia ser, puedes ejecutar el programa paso a paso para saber por que es que te arroja ese resultado?, yo use proteus 7.2 SP2

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: Problema con un ejemplo.
« Respuesta #4 en: 14 de Enero de 2008, 04:20:07 »
Hola yo hasta ahora no he usado muchos el Proteus, yo en verdad no me confio en la simulacion asi, claro si es un simple programa quizas, pero para programa complejo muchos se dan ya cuenta como el caso el amigo Poseidon20. seguire el tema Simulacion Proteus

Desconectado poseidon20

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 762
Re: Problema con un ejemplo.
« Respuesta #5 en: 14 de Enero de 2008, 14:06:44 »
Hola yo hasta ahora no he usado muchos el Proteus, yo en verdad no me confio en la simulacion asi, claro si es un simple programa quizas, pero para programa complejo muchos se dan ya cuenta como el caso el amigo Poseidon20. seguire el tema Simulacion Proteus
Ni me lo recuerdes STK500, que el salto aqui, que el goto aya, que el pclath no carga, que la tabal estab fuera de los primeros ff,  :D :D, para cosas serias proteus no es de fiar mucho :mrgreen: :mrgreen:, y te digo ya que acabo de descubrir un bug mas de proteus 7.2 sp2, segun el proteus, una vez que entre en modo sleep el uC una de las fuentes para que se despierte el uC es la RX por interrupcion de la usart, cosa que no es asi  :5] :5] :5], ya que de acuerdo al datasheet de ese pic, solo se podria levantar si la rx por usart esta en modo sincrono-slave  :x :x :x, pero para el proteus si era posible  :5] :5] :5]. Bueno me queda de experiencia, y ahora mas que nunca DATASHEET DATASHEET DATASHEET ALL DATASHEET :D :D :D y pensar seriamente en ICD2, para comenzar con el clone

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Problema con un ejemplo.
« Respuesta #6 en: 14 de Enero de 2008, 15:40:43 »
talvez sea algun bug, pero nose, parece muy raro que solo en esa posición se te de el error, intentaste armar el circuito y probar ahi? para asegurar algunas cosas?? :mrgreen:
.

Meta

  • Visitante
Re: Problema con un ejemplo.
« Respuesta #7 en: 14 de Enero de 2008, 21:08:43 »
Con el Proteus 7.1 SP4 veo que da problemas. Bueno, si tienen un links con rapidshared del 7.2 SP3 me mandan un privado.

Estoy probando otra alternativa como usar el MPLAB 8.0, pero hay un pero, cómo selecciono entradas como en el proteus para que me respondan las salidas.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Problema con un ejemplo.
« Respuesta #8 en: 14 de Enero de 2008, 21:29:17 »
aca hay unos video tutoriales del MPLAB 7.6: http://www.todopic.com.ar/foros/index.php?topic=19177.0

talvez te sirva, pero me parece algo raro, lo armaste??
.