Hola,
estoy haciendo un programa conversor de binario a bcd. Este programa hara que el pic 16f84 lea las entradas del puerto A, Ra0, Ra1 etc, las convierta de binario a bcd, y deposite el resultado en el puerto B, Bb0, Rb1 etc.
el resultado de esta conversion tiene dos partes, la parte alta y la parte baja, imagino que sera las decenas y las unidades.
de momento he conseguido que las unidades se me vean bien, tanto en la placa simuladora como con integrados bcd 7 segmentos, este resultado en bcd sale por Rb0, Rb1,Rb2 yRb3
el problema es que las decenas no consigo que me salgan, imagino que sera por cuestion de carry, alguien me puede hechar una mano?
aqui os paso el programa que tengo hasta ahora:
RESET
clrf PORTB
bsf STATUS,RP0
clrf TRISB
movwf TRISA
bcf STATUS,RP0
inicio
movf PORTA,W
BIN_BCD_1
addlw H'00F6'
btfss STATUS,C
goto BIN_BCD_3
movwf Temp_1
goto BIN_BCD_2
BIN_BCD_2
movf Temp_1,W
goto BIN_BCD_1
BIN_BCD_3
addlw H'0A'
movwf PORTB
goto inicio
END
si teneis un programa que lo haga directamente, aunque sea distinto a este os lo agradeceria mucho
gracias
estoy haciendo un programa conversor de binario a bcd. Este programa hara que el pic 16f84 lea las entradas del puerto A, Ra0, Ra1 etc, las convierta de binario a bcd, y deposite el resultado en el puerto B, Bb0, Rb1 etc.
el resultado de esta conversion tiene dos partes, la parte alta y la parte baja, imagino que sera las decenas y las unidades.
de momento he conseguido que las unidades se me vean bien, tanto en la placa simuladora como con integrados bcd 7 segmentos, este resultado en bcd sale por Rb0, Rb1,Rb2 yRb3
el problema es que las decenas no consigo que me salgan, imagino que sera por cuestion de carry, alguien me puede hechar una mano?
aqui os paso el programa que tengo hasta ahora:
RESET
clrf PORTB
bsf STATUS,RP0
clrf TRISB
movwf TRISA
bcf STATUS,RP0
inicio
movf PORTA,W
BIN_BCD_1
addlw H'00F6'
btfss STATUS,C
goto BIN_BCD_3
movwf Temp_1
goto BIN_BCD_2
BIN_BCD_2
movf Temp_1,W
goto BIN_BCD_1
BIN_BCD_3
addlw H'0A'
movwf PORTB
goto inicio
END
si teneis un programa que lo haga directamente, aunque sea distinto a este os lo agradeceria mucho
gracias