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;Si contador2 no es cero btfsc status,2 goto h2bcd4h2bcd3 movf contador1,w addlw 0x10 ;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
Ir a la versión completa