p18f4550 adc y conversion de decimal a ascii

#1
Hola, estoy metiendo una galga extensometrica al adc del pic 18f4550, ese valor lo quiero convertir a decimal, y que en una hyperterminal me muestre ese valor decimal, o sea convertirlo de decimal a ascii.
Gracias
 
Última edición:
#3
Lo que manejo es ASM. Y haria lo siguiente.

Leeria el valor del A/D y luego lo pasaria de binario a BCD me imagino, ya en esta parte lo tenes en formato decimal. como son numeros, y observando que en la tabla el valor ASCII del numero cero 0 , es igual a 30 en hexa, lo unico q tendrias q hacer es sumarle justamente 30 a cada numero en BCD. y listo, ya esta en ASCII.

Eso si tenes 1 numero por cada byte, si tenes 2 por cada byte sumas el valor 3030h
 
#6
y supongo que hago las conversiones cuando lleguen a una computadora. Tambien mi duda es por que tambien quiero implementar el termistor lm135, y he visto que todo lo hacen desde el micro.
 
#7
El tema es que si lo haces desde el uC, muy probablemente el numero que te quede sea flotante (ej. 3,45; 2,674; etc) y esto implica que si o si el uC tiene que trabajar el dato como 4 bytes segun la convencion Iee 754 (salvo que cortes el resultado y te quedes con la parte entera solamente), entonces para eso tenes que pensar que tu resultado sera de este tipo:

XXXXh -> binario de 32 bits

Entonces si trabajas con asm, lo que podrias hacer es un desplazamiento e ir obteniendo los digitos en hexa 1 por uno y luego convertirlo como te dije arriba.

Ahora si solo tomas la parte entera, podrias hacer lo que dice Killer_jc.
 
#9
Me puse a estudiar la rutina y mas o menos le entiendo XD, pero me sirvio de maravilla. Lo que hice fue modificar la rutina y que en lugar de que integre el valor de BIN (cuando ya se han obtenido los 4 bits mas significativos) a BCDL, mueva el valor de BIN a una nueva variable BCDL1, entonces BCDL quedaria como xxxx0000 y despues le hago 4 vecer un recorrimiento a la derecha sin carry para que quede de la forma 0000xxxx. Le sumo 0x30 a BCDH, BCDL y BCDL1, y ya los envio por la usart.
Muchas gracias
 

Temas similares

Arriba