Publicado el 30 de Enero del 2020
1.281 visualizaciones desde el 30 de Enero del 2020
9,9 KB
2 paginas
C:\Pics\8bin2bcdrlf\8bin2bcdrlf.inc
;******************************************************
;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
;http://micropic.wordpress.com
;******************************************************
BIN2BCD_RS3
clrf
clrf
BCDH
BCDL
movlw
movwf
0x08
CUENTA
STATUS,C
BIN,f
BCDL,f
BCDH,f
CONVERSION1
bcf
rlf
rlf
rlf
decfsz CUENTA,f
goto
goto
movlw
andwf
movwf
movlw
subwf
btfsc
call
movlw
andwf
movwf
movlw
subwf
btfsc
call
goto
$+2
TERMINA_CONVERSION
b'00001111'
BCDL,w
BCD_TEMP
0x05
BCD_TEMP,w
STATUS,C
SUMA0x03
b'11110000'
BCDL,w
BCD_TEMP
0x50
BCD_TEMP,w
STATUS,C
SUMA0x30
CONVERSION1
TERMINA_CONVERSION
return
;*******************************
;Subrutina que se encarga de
;sumar 3 al nibble bajo de BCDL
;*******************************
SUMA0x03
movlw
addwf
0x03
BCDL,f
1
C:\Pics\8bin2bcdrlf\8bin2bcdrlf.inc
btfss
return
rlf
return
STATUS,C
BCDH,f
;*******************************
;Subrutina que se encarga de
;sumar 3 al nibble alto de BCDL
;*******************************
SUMA0x30
movlw
addwf
btfss
return
rlf
return
0x30
BCDL,f
STATUS,C
BCDH,f
2
Comentarios de: Conversion numero Binario de 8 bits a BCD - Recorre y Suma+3 (0)
No hay comentarios