Programación Específica > Soluciones de Hard y Soft

 Rutina De Binario A Bcd <8bits>

(1/1)

© Jonathan ©:
Les dejo esta rutina util que convierte el hexadecimal del registro W en dos numeros BCD :)


--- Código: Text --- ;HEX2BDC: Transforma el código en Hexadecimal que viene en el w,;en dos bcd, el mas alto en los 4 MSBs y el mas bajo en los 4 LSBs del registro w hex2bcd  movwf  contador1  clrf  contador2  comf  contador1,fh2bcd1  movf  contador1,w  addlw  0x0a  btfsc  status,0  goto  h2bcd2  movwf  contador1  incf  contador2,f  goto  h2bcd1h2bcd2  comf  contador1,f  movf  contador2,w&#59;Si contador2 no es cero  btfsc  status,2  goto  h2bcd4h2bcd3  movf  contador1,w  addlw  0x10  &#59;Se le suma a contador1 tantos 0x10 como indique  movwf  contador1  decfsz  contador2,f  goto  h2bcd3h2bcd4  movf  contador1,w  return  

el_riveraa:
aplicado a un sensor por ejemplo el lm35,  tienes que utilizar el conversor a/d del 16f87 y te saca los datos en binario, esos datos transformalos a hexadecimal y utilizar ya la ruitina esta, pero hay algo de binario a bcd?

pic-man:
Este es un tema viejo asi que es probable que el_riveraa no lea esto pero convertir de hexadecimal a bcd en un pic es exactamente igual a convertir de binario a bcd ya que escribir un numero hexadecimal en un registro es lo mismo que escribirlo binario, las representaciones numéricas nos sirven a los humanos para entenderlas asi que es lo mismo tener 0x0A que b'00001010' y que d'10' asi que la rutina que puso Jonathan sirve para convertir de binario a BCD.

En mi blog puse otras rutinas para convertir de binario a BCD, a quien le interese estas son:
Binario a BCD - Recorre y Suma+3
Conversion Binario a BCD - Convertir un numero de 8 bits

Recomiendo la primera (Recorre y Suma+3) por ser mas simple aunque las dos sirven para convertir numeros de 8 bits.

Navegación

[0] Índice de Mensajes

Ir a la versión completa