Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

10/05/2007 #1


como convierto de binario a bcd el modulo adres???
hola a todos... estoy en terminando un trabajo que consiste en hacer una conversiona a/d y mostrarla por unos displays, el problema que tengo es con la rutina de binario a bcd ya que la conversion queda visualizada por el ADRESL y el ADRESH, y la mayor conversion es de 1024 mi problema es este, como desfragmento este ADRESL y ADRESH para sacar unidades, decenas, centenas y unidades de mil.... toda ayuda se las agradecere..... ha otra cosa el programa es en assembler ya que soy estudiante y no puedo utilizar otro mas que ese. y manejo el pic 18f452 aunque esto no tiene mucha importancia... bueno gracias por su atensión..
11/05/2007 #2


para que necesitas pasar de binario a bcd. Pasa de binario a 7seg y conecta el display directamente al uC. Yo en assembler no te sabria decir porque se muy poco pero en C si
11/05/2007 #3


binario a bcd
cubeusk dijo:
para que necesitas pasar de binario a bcd. Pasa de binario a 7seg y conecta el display directamente al uC. Yo en assembler no te sabria decir porque se muy poco pero en C si
----------------------------------------------------------------------------------------------------------------
hola muchas gracias por tu atensión, mira el problema es que soy estudiante y bueno este es un trabajo el cual se debe hacer una conversion a/d, luego se hace una conversion de binario a bcd para luego con otra rutina visualizarlo por cuatro displays consecutivamente. ya todo esta hecho el mi problema es la parte de binario a bcd, no la hace bien y por esta razon muestra valores erroneos.... la verdad la estoy haciendo con restas sucesivas.... de todas maneras gracias
06/08/2009 #4

Avatar de dragondgold

a mi me interesaria pasar de binario a bcd pero en C ya me canse de intentar y no lo logro no se si hay una instruccion que lo haga o que agradeceria la ayuda por favor...
07/08/2009 #5


hola amigo

la forma mas facil en C seria que hicieras divisiones sucesivas y te vayas quedando con el residuo para el siguiente bit. claro es una forma muy lenta pero es lo mas logico y sencillo de programar.

En ensambler puedes hacer lo mismo, pero tambien podrias hacer una rutina de corrimiento de bits y ajuste BCD es la rutina mas rapida que conozco y creo que ya se han comentado antes en este foro. saludos
08/08/2009 #6
Moderador

Avatar de Chico3001

Yo uso esta subrutina:

Código:
// ---------------------------------------------------------------------
//	b2bcd.- Convierte un numero de 16 bits con signo
//		de binario a BCD
// ---------------------------------------------------------------------
void b2bcd(signed int dato){

n=dato;
if (n < 0) {
	n = -n;
}

for ( a = -1; n >= 0; n -= 10000 ) ++a;
for ( b = 10; n <  0; n += 1000  ) --b;
for ( c = -1; n >= 0; n -= 100   ) ++c;
for ( d = 10; n <  0; n += 10    ) --d;
}
El resultado se devuelve en las variables a, b, c, d, y n que normalmente las declaro como globales char o int de 8 bits con excepcion de n que es int con signo de 16 bits

Saludos...
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.