Conversion Binario a BCD – Convertir un numero de 8 bits
June 21, 2007 at 9:41 am | Posted in Ensamblador, Rutinas, Tutorial | 17 CommentsConvertir un numero Binario de 8 bits a BCD
El Codigo binario decimal (BCD) es un codigo para numeros decimales en el que cada digito es representado por su propia secuencia binaria. Su principal ventaja es que permite una conversion facil a digitos decimales para su despliegue y permite tambien realizar calculos decimales mas rapidos.
Aqui se presenta una rutina para convertir un numero binario a BCD, precisamente un numero de 8 bits (1 byte) a su equivalente BCD. El valor maximo de un byte es 0xFF = 255, asi que al convertir un numero binario de 8 bits se obtienen 3 digitos BCD.
Esta rutina convierte el numero binario a su equivalente BCD empaquetado. El resultado de la conversion del numero binario a BCD ocupa un byte y medio y se representa en las variables de memoria BCDH y BCDL. El numero binario a convertir debe estar almacenado en la variable BIN.
Lea el artÃculo completo en el blog Circuitos electronicos.
17 Comments »
RSS feed for comments on this post. TrackBack URI
Leave a reply to zeros Cancel reply
Create a free website or blog at WordPress.com.
Entries and comments feeds.
[…] la entrada anterior se encuentra una rutina para convertir un numero Binario de 8 bits a BCD empleando un metodo de division po restas sucesivas. En esta ocasion presento una rutina para […]
Pingback by Binario a BCD - Recorre y Suma+3 « MicroPIC— June 21, 2007 #
La rutina Funciona perfecto mi pana!! un problema menos. Gracias!! Saludos
Comment by zeros— February 19, 2008 #
¡excelente rutina! Pero tengo una duda, ¿tengo que volverle a repetir la rutina al 02 y al 55 para que los tenga individuales y asi pueda representarlos en displays?
Comment by fernando torres— August 14, 2008 #
muchas grasias me ayudo mucho en trabajo
Comment by edvel— October 15, 2008 #
Será que tienes uno en código en vhdl por allÃ.
Gracias.
shiryudrag@hotmail.com
Comment by Shiryu— January 16, 2009 #
Hola,necesito ayuda. No consigo hacer funcionar esta rutina. Me da un error en la c de estatus. dice que no esta definida. Ademas no entiendo que hacen f y w. Por favor ayudarme. Gracias de ante mano.
Comment by castro— January 21, 2009 #
tendrás el código en vhdl??? me harÃas el grandÃsimo favor de pasarmelo a mi mail: carlosfer.02@gmail.com y una pregunta por qué se hace a travéz de divisiones???
Comment by pika— January 28, 2009 #
[…] Programar PCF8591 Pues de asm se bastante poco ^^ Pero mira, haber si es esto lo que necesitas Conversion Binario a BCD – Convertir un numero de 8 bits MicroPIC Si no te aclaras pega el código(no te olvides de utiliza la etiqueta code, para ver mejor el […]
Pingback by Programar PCF8591 - Foros Electrónica - Comunidad sobre electrónica en España— February 2, 2009 #
¿ejemplos de codigos binarios’
Comment by cristina— March 7, 2009 #
hola necesitaria un ejemplo en assembler para pasar 16bit (2 bytes) a binario sera posible??¿?
mil gracias
Comment by ramon— April 14, 2009 #
Viejo excelente aporte, funciona a la perfeccion y porfin aprendi como convertir de binario a bcd.
Gran aporte
GRACIAS
Comment by HUGO— April 16, 2009 #
niun brillo esta wea
Comment by bastian— August 5, 2009 #
esta rutina te convierte 16bits en dos registros a bcd para mostrar en 4 displays; T1 es el registro bajo y T2 el alto; podria ser de un timer 1 o de cualquier fuente de timer en los pics
T1 EQU 0X22
T2 EQU 0X23
UMIL EQU 0X24
CENT EQU 0X25
DECE EQU 0X26
UNID EQU 0X27
;CONSTANTES
MILL EQU 0XE8
MILH EQU 0X03
CIEN EQU 0X64
DIEZ EQU 0X0A
GOTO INICIO
INICIO CLRF UMIL
CLRF CENT
CLRF DECE
CLRF UNID
CONVE MOVLW 0xa0
MOVWF T1
MOVLW 0x25
MOVWF T2
AAA MOVLW MILL
SUBWF T1,F
BTFSC STATUS,C
GOTO III
GOTO OOO
DECF T2,1
III MOVLW 0X03
SUBWF T2,F
BTFSS STATUS,C
GOTO RRR
INCF UMIL,F
GOTO AAA
OOO MOVLW 0X01
SUBWF T2,F
BTFSC STATUS,C
GOTO III
RRR MOVLW 0XE8
ADDWF T1,F
BTFSS STATUS,C
GOTO BBB
INCF T2,F
BBB MOVLW 0X03
ADDWF T2,F
CCC MOVLW CIEN
SUBWF T1,F
BTFSS STATUS,C
GOTO DDD
GGG INCF CENT,F
GOTO CCC
DDD MOVLW 0X01
SUBWF T2,F
BTFSC STATUS,C
GOTO GGG
MOVLW CIEN
ADDWF T1,1
BTFSS STATUS,C
GOTO EEE
INCF T2,F
EEE MOVLW DIEZ
SUBWF T1,1
BTFSS STATUS,C
GOTO FFF
INCF DECE,1
GOTO EEE
FFF MOVLW DIEZ
ADDWF T1,F
MOVF T1,0
MOVWF UNID
Comment by pacho— November 7, 2009 #
eeeei, usé tu subrutina “pacho”, al principio si me funcionaba bien, y luego solo me mostraba 768, no se porque! =S
Comment by blabla— November 12, 2009 #
hola, estoy aprendiendo apenas a programar pic´s, pero me dejaron hacer un contador BCD en MPLAB de 0 a 255 (8 bits) y desplegarlo en 3 displays de 7 segmentos con el pic 16F628, pero no se como hacerlo, si alguien me pudiera ayudar con el asm se los agradeceria mucho.
TENGO ALGO YA ABANZADO PERO DESPUES DE HAY YA NO SE QUE HACER
Configuracion de la CPU
processor 16f628
include
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _LVP_OFF
UNIDADES EQU 20H
DECENAS EQU 21H
CENTENAS EQU 22H
PDel0 EQU 23H
CONTADOR EQU 24H
CONTADOR_U EQU 25H
CONTADOR_D EQU 26H
CONTADOR_C EQU 27H
;Vector de RESET
org 0
goto INITP
Comment by ivan— November 14, 2009 #
alguien ayudeme con un ejemplooooo
Comment by andres333— December 18, 2011 #
Buenas tardes, este algoritmo tambien me sirve para hacer un contador de 0 a 59 y mostrarlos por 2 displays multiplexados??? te agraderia la repuesta
Comment by Andrez Anzola— September 20, 2013 #