• Lunes 23 de Diciembre de 2024, 07:14

Autor Tema:  Binario A Bcd  (Leído 5976 veces)

GPANGEL

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Binario A Bcd
« en: Miércoles 11 de Julio de 2007, 22:08 »
0
un saludo cordial

de casualidad alguien podria decirme como puedo pasar un binario de 8 bits a bcd para luego visualizarlo

DJMANOLO05

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Binario A Bcd
« Respuesta #1 en: Jueves 12 de Julio de 2007, 05:48 »
0
Creo que tienes una pequena confucion, segun lo que tengo entendido es que un dato binadio  es igal a lo que se conose como BCD   dato en codigo binario.

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Binario A Bcd
« Respuesta #2 en: Miércoles 25 de Julio de 2007, 20:30 »
0
Acabo de adjuntarte una rutina de conversion de 16 bits a codigo BCD en el otro mensaje sobre conversion. Saludos :)
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

battosai3000

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Binario A Bcd
« Respuesta #3 en: Martes 15 de Septiembre de 2009, 15:24 »
0
DOS RUTINAS BIN_8_BCD
;******************************************************
;Libreria encargada de convertir un numero binario
;de 8 bits (1 byte) a su equivalente en BCD. El resul-
;tado 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.
;
;ej. 0xFF = 255
; BIN -> BCDH:BCDL
; FF 02 55
;
;La conversion se hace realizando divisiones mediante
;restas sucesivas. Primero entre 100 para obtener
;el nibble bajo de BCDH y despues entre 10 para obte-
;ner el nibble alto de BCDL y el residuo pasa a formar
;el nibble bajo de BCDL.
;
;Para iniciar la conversion solamente se ocupa llamar
;a la rutina BIN8_BCD3.
;
;Fecha: 20.06.07 Autor: Jorge Arturo Bojorquez
;******************************************************
BIN8_BCD3
clrf BCDH
clrf BCDL
BCD_HIGH
movlw .100
subwf BIN,f
btfss STATUS,C
goto SUMA_100
incf BCDH,f
goto BCD_HIGH
SUMA_100
movlw .100
addwf BIN,f
movlw 0x0F
movwf BCDL
BCD_LOW movlw .10
subwf BIN,f
btfss STATUS,C
goto SUMA_10
incf BCDL,f
movlw 0x0F
iorwf BCDL,f
goto BCD_LOW
SUMA_10 movlw .10
addwf BIN,f
movlw 0xF0
andwf BCDL,f
movf BIN,w
iorwf BCDL,f
return
end


;******************************************************
;Libreria encargada de convertir un numero binario
;de 8 bits (1 byte) a su equivalente en BCD. El resul-
;tado 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.
;
;ej. 0xFF = 255
; BIN -> BCDH:BCDL
; FF 02 55
;
;La conversion se hace empleando el algoritmo Recorre
;y Suma+3. El algoritmo funciona de la siguiente manera:
;
;1. Recorre 1 bit a la izquierda el numero binario
;2. Si se han hecho 8 corrimientos, el numero BCD se en
; cuentra en las columnas CENTENAS, DECENAS y UNIDADES
;3. Si el valor binario de cualquiera de las columnas
; es 5 o mayor, se suma 3 al valor en esta columna BCD
;4. Si se desea convertir un byte despues de haber efec-
; tuado 8 corrimientos la conversion ha finalizado
;
;Para iniciar la conversion solamente se ocupa llamar
;a la rutina BIN2BCD_RS3
;
;Fecha: 21.06.07 Autor: Jorge Arturo Bojorquez
;******************************************************
BIN2BCD_RS3
clrf BCDH
clrf BCDL
movlw 0x08
movwf CUENTA
CONVERSION1
bcf STATUS,C
rlf BIN,f
rlf BCDL,f
rlf BCDH,f
decfsz CUENTA,f
goto $+2
goto TERMINA_CONVERSION
movlw b'00001111'
andwf BCDL,w
movwf BCD_TEMP
movlw 0x05
subwf BCD_TEMP,w
btfsc STATUS,C
call SUMA0x03
movlw b'11110000'
andwf BCDL,w
movwf BCD_TEMP
movlw 0x50
subwf BCD_TEMP,w
btfsc STATUS,C
call SUMA0x30
goto CONVERSION1
TERMINA_CONVERSION
return
;*******************************
;Subrutina que se encarga de
;sumar 3 al nibble bajo de BCDL
;*******************************
SUMA0x03
movlw 0x03
addwf BCDL,f

btfss STATUS,C
return
rlf BCDH,f
return
;*******************************
;Subrutina que se encarga de
;sumar 3 al nibble alto de BCDL
;*******************************
SUMA0x30
movlw 0x30
addwf BCDL,f
btfss STATUS,C
return
rlf BCDH,f
return