Autor Tema: [Ayuda] ¿Como comparo 4 entradas de un PIC con un numero 'k'?  (Leído 2926 veces)

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

Desconectado Cool1993

  • PIC10
  • *
  • Mensajes: 7
[Ayuda] ¿Como comparo 4 entradas de un PIC con un numero 'k'?
« en: 30 de Septiembre de 2011, 23:51:55 »
Bueno quisiera saber como comparar 4 entradas de un pic digamos de RA0:RA3 y comparar el binario de estos con un numero para que salte a alguna etiqueta que yo ponga.  Digamos que yo pongo a la entrada 0010 y cuando sea igual a 2 salte a una etiqueta y sino que continue comparando. ¿Como hago eso?

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: [Ayuda] ¿Como comparo 4 entradas de un PIC con un numero 'k'?
« Respuesta #1 en: 01 de Octubre de 2011, 00:40:45 »
puedes hacer XOR entre lo que lees y la constante, y verificar el resultado en el bit Z
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado Cool1993

  • PIC10
  • *
  • Mensajes: 7
Re: [Ayuda] ¿Como comparo 4 entradas de un PIC con un numero 'k'?
« Respuesta #2 en: 01 de Octubre de 2011, 01:08:40 »
Me puedes dejar medio ejemplificado como hacer la XOR?
porque lo que va despues de eso tngo entendido que es asi:


BTFSS      STATUS,Z
goto           Etiqueta



Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Re: [Ayuda] ¿Como comparo 4 entradas de un PIC con un numero 'k'?
« Respuesta #3 en: 01 de Octubre de 2011, 04:05:36 »
NUMERO EQU D'13'

ORG 0

INICIO
         BSF           SATATUS,RP0
         CLRF          TRISB
         MOVLW       B'00011111'
         MOVWF       TRISA
         BCF            STATUS,RP0

PRINCIPAL

         MOVLW        NUMERO
         SUBWF         PORTA,W
          MOVLW       B'11110000'                       ;SUPONE QUE ES MENOR
        BTFSS           STATUS,C
         GOTO           ACTIVARSALIDAS
         MOVLW         B'11111111'                      ;SUPONE QUE SON IGUALES
         BTFSC           STATUS,Z
         GOTO            ACTIVASALIDAS
         MOVLW          B'01010101'                      ;SUPONE QUE ES MAYOR
ACTIVASALIDAS
         MOVWF          PORTB
         GOTO             PRINCIPAL

END




Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: [Ayuda] ¿Como comparo 4 entradas de un PIC con un numero 'k'?
« Respuesta #4 en: 01 de Octubre de 2011, 14:17:46 »
bueno hace rato no programo en asm, si la sintaxis esta bien, seria asi:
compara  MOVF PORTA,W
                 XORLW '2'
                BTFSS STATUS,Z
                GOTO COMPARA
                GOTO RUTINA
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: [Ayuda] ¿Como comparo 4 entradas de un PIC con un numero 'k'?
« Respuesta #5 en: 03 de Octubre de 2011, 12:37:43 »
.


El código que pone jhozate está bien, pero si solamente querés comparar las entradas RA0:RA3, antes de comparar tenés que "deshacerte" de los valores que tengan las entradas RA4:RA7. Eso lo podés hacer así:

Código: ASM
  1. MOVF  PORTA,W
  2.       ANDLW  0x0F      ; La parte alta del bit queda toda con 0 y la baja no se modifica
  3.  
  4.       ; Ahora si compara:
  5.       XORLW  D'2'      ; D'2' se usa para indicar el numero 2 en decimal
  6.       BTFSC  STATUS,Z      ; Si el resultado de la operacion anterior es 0, entonces lo que habia en el puerto A es igual a 2
  7.       GOTO  Igual
  8.       GOTO  No_igual

Saludos.

When you see a good move, look for a better one (Emanuel Lasker)

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: [Ayuda] ¿Como comparo 4 entradas de un PIC con un numero 'k'?
« Respuesta #6 en: 03 de Octubre de 2011, 13:13:37 »
 :D :D cierto, aunque no supimos de que pic se trataba, si era un F84 habia que ignorar un solo bit porque el puerto A es de 5.
mtristan el bit Z se pone a uno cuando la operacion da Cero, en tu codigo habria que invertir los gotos o preguntar por un Uno
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: [Ayuda] ¿Como comparo 4 entradas de un PIC con un numero 'k'?
« Respuesta #7 en: 03 de Octubre de 2011, 14:27:40 »
Citar
mtristan el bit Z se pone a uno cuando la operacion da Cero, en tu codigo habria que invertir los gotos o preguntar por un Uno

No, esta bien, si es uno no salta y hace GOTO IGUAL, y si es 0 salta y va a GOTO NO_IGUAL.

O yo estoy tonto o tu estas desentrenado, no?

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: [Ayuda] ¿Como comparo 4 entradas de un PIC con un numero 'k'?
« Respuesta #8 en: 03 de Octubre de 2011, 15:42:44 »
 :mrgreen: estoy tonto y desentrenado
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA


 

anything