Autor Tema: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?  (Leído 2281 veces)

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

Desconectado bones18

  • PIC12
  • **
  • Mensajes: 54
wuenas..


en medio de mi programa hago una multiplicación, por ejemplo el 3 por el 5 = 15, luego necesito guardar el 15 en dos registros diferentes, Reg1=1 i Reg2=5.

Como puedo hacerlo? como mucho la cifra del resultado tendrá 2 digitos.

gracias!

Desconectado bones18

  • PIC12
  • **
  • Mensajes: 54
Re: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
« Respuesta #1 en: 07 de Marzo de 2007, 08:10:19 »
ya he encontrado algunas rutinas

gracias

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Re: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
« Respuesta #2 en: 07 de Marzo de 2007, 08:21:17 »
Hola, te paso una rutina para que hagas eso, lo que hace la rutina es ir restandole 100 al numero, luego 10, y luego 1, tantas veces hasta que de cero al numero que quieres convertir y guarda esos valores en 3 registros Unidad, Decena y Centena.

Saludos.
Alejandro.

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
« Respuesta #3 en: 07 de Marzo de 2007, 10:31:10 »
Querés transformar un registro a bcd para mostrarlo por un display?
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
« Respuesta #4 en: 07 de Marzo de 2007, 12:14:38 »
Sería bueno que explicaras para que vas a utilizar la conversión de un entero a varios dígitos, porque dependiendo de la aplicación hay varias técnicas:

Por ejemplo si vas a mostrar los datos en una lámpara de siete segmentos utilizando un decodificador BCD-7S, te convendría llevar de el resultado a BCD empaquetado, donde en un registro de 8bits te caben dos dígitos.

Si lo que necesitas en un el ascii del dígito, entonces lo llevas a BCD y le sumas 30h para que te el ascii (algo como esto es lo que hace printf para dar formato a los números), este es el formato que requieren las LCD de texto.

Por eso hace falta que nos precises que es lo que necesitas hacer con los dígitos

Reinier

Desconectado bones18

  • PIC12
  • **
  • Mensajes: 54
Re: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
« Respuesta #5 en: 07 de Marzo de 2007, 20:18:43 »
gracias por las respuestas, como ya habia dicho en el 2o mensaje, ya habia encontrado una rutina que me valia

passar_a_BCD

   ;separem el resultat en 2 o 3 digits BCD, el digit haurà d'estar guardat a W   
    clrf centenes ;CENTENAS
    clrf desenes ;DECENAS
    movwf unitats ;UNIDADES
continua_unitats
   movlw .10
    subwf unitats,W
    BTFSS STATUS,C
    goto continua_desenes
    movwf unitats
    incf desenes, F
    goto continua_unitats
continua_desenes
    MOVLW .10
    SUBWF desenes,W
    BTFSS STATUS,C
    GOTO fi_ajusta_bcd
    MOVWF desenes
    INCF centenes,F
    GOTO continua_desenes
fi_ajusta_bcd

return