Conversion Binario a BCD – Convertir un numero de 8 bits

June 21, 2007 at 9:41 am | Posted in Ensamblador, Rutinas, Tutorial | 17 Comments

Convertir 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.

About these ads

17 Comments »

RSS feed for comments on this post. TrackBack URI

  1. […] 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 […]

  2. La rutina Funciona perfecto mi pana!! un problema menos. Gracias!! Saludos

  3. ¡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?

  4. muchas grasias me ayudo mucho en trabajo

  5. Será que tienes uno en código en vhdl por allí.
    Gracias.

    shiryudrag@hotmail.com

  6. 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.

  7. 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???

  8. […] 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 cdigo(no te olvides de utiliza la etiqueta code, para ver mejor el […]

  9. ¿ejemplos de codigos binarios’

  10. hola necesitaria un ejemplo en assembler para pasar 16bit (2 bytes) a binario sera posible??¿?
    mil gracias

  11. Viejo excelente aporte, funciona a la perfeccion y porfin aprendi como convertir de binario a bcd.

    Gran aporte

    GRACIAS

  12. niun brillo esta wea

  13. 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

  14. eeeei, usé tu subrutina “pacho”, al principio si me funcionaba bien, y luego solo me mostraba 768, no se porque! =S

  15. 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

  16. alguien ayudeme con un ejemplooooo

  17. 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


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com. | The Pool Theme.
Entries and comments feeds.

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: