TODOPIC

Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: bones18 en 07 de Marzo de 2007, 07:13:16

Título: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
Publicado por: bones18 en 07 de Marzo de 2007, 07:13:16
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!
Título: Re: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
Publicado por: bones18 en 07 de Marzo de 2007, 08:10:19
ya he encontrado algunas rutinas

gracias
Título: Re: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
Publicado por: ALE1973 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.
Título: Re: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
Publicado por: flacoclau en 07 de Marzo de 2007, 10:31:10
Querés transformar un registro a bcd para mostrarlo por un display?
Título: Re: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
Publicado por: reiniertl 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
Título: Re: si en un byte tenemos elv alor .32 como guardar el 3 i el 2 por separado?
Publicado por: bones18 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