Convertir hex a dec con Pic16F84

Holas. No encontré en el buscador un sencillo programa que convierta un dato de 16bits en hexa a decimal para mostrarlo en 4 displays de 7 segmentos. Alguien tiene algo ya hecho?
Hice una multiplicación con el algoritmo de Booth y ahora quiero mostrarlo en el display, pero no encuentro la forma de hacerlo en decimal.

Alguna idea de dónde conseguir un "codiguito" para hacerlo?

Mil Gracias, Iván.-
 
A ver si te sirve esto. Por las dudas revisalo pero creo que anda al toque.
Te lo dejo para que lo descifres solito. Si no, no vale ! :cool:

Las líneas _____ las tenés que borrar. Son para "emular" el tabulador.

;========================================================
DevCens
_____ movwf T1
_____ clrf W2
loopC movlw .100
_____ incf W2,F
_____ subwf T1,F
_____ btfsc STATUS,C
_____ goto loopC
_____ decf W2,W
_____ return
;-------------------------------------------------------------------------
DevDecs
_____ movwf T1
_____ clrf W2
loopD movlw .10
_____ incf W2,F
_____ subwf T1,F
_____ btfsc STATUS,C
_____ goto loopD
_____ decf W2,W
_____ goto DevUnis
;-------------------------------------------------------------------------
DevUnis
_____ movwf W2
_____ movlw .10
deltens subwf W2,F
_____ btfsc STATUS,C
_____ goto deltens
_____ addwf W2,W
_____ return
 
Increible! 25 líneas de código! Yo voy por 40 y no consigo que haga lo que quiero. voy a estudiar tu algoritmo para ver en qué estoy pifiando.
Te agradezco la ayuda!

Te mando un abrazo, Iván.-
 
426ivan dijo:
Increible! 25 líneas de código! Yo voy por 40 y no consigo que haga lo que quiero. voy a estudiar tu algoritmo para ver en qué estoy pifiando.
Te agradezco la ayuda!
Te mando un abrazo, Iván.-

Gracias pero no es mío. Lo copié de algún lado y no me acuerdo dónde.
Es un algoritmo de división. La idea es simple: resta una cantidad decimal hasta que desborda.
Espero que sea útil.

Ah! Ojo que eso trabaja con 8 bits.
Con 16 la idea es la misma, solo que hay que considerar el acarreo al byte alto. Puede no ser fácil.

Saludos!
 
Atrás
Arriba