Autor Tema: descomponer un Byte en unidades,decenas..  (Leído 4328 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado lolos123

  • PIC12
  • **
  • Mensajes: 53
descomponer un Byte en unidades,decenas..
« en: 24 de Marzo de 2005, 12:14:00 »
¡Que tal!. Tengo  generado el checksum de una cadena, ahora lo que necesito sería descomponer ese Byte del checksum en unidades y decenas porque tengo que enviarlo por el puerto serie. Es decir si el checksum que tengo en una posicion es 0x24 pues conseguir en dos posiciones de memoria un 2 y un 4 para poder mandarlos.

¿alguna sugerencia? estoy trabajando en ensamblador en un 16f876 .

Gracias por vuestro tiempo

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: descomponer un Byte en unidades,decenas..
« Respuesta #1 en: 24 de Marzo de 2005, 19:19:00 »
pues bien lo q estas pidiendo es un convertidor binario BCD, si solo lo vas a hacer con 2 digitos no hay problema (puedes implementar un algoritmo de restas sucesivas para obtener el numero) sin embargo, con numeros de mas de 3 digitos necesitaras una rutina mas sofisticada. En el foro hay varias rutinas BCD (t digo porq tb necesitaba una asi, pero la mia era para 5 digitos), usa el buscador q seguro las encuentras.

Nota: La rutina q andaba buscando era en ASM, no se en q lenguaje estas pidiendo la rutina...

Desconectado lolos123

  • PIC12
  • **
  • Mensajes: 53
RE: descomponer un Byte en unidades,decenas..
« Respuesta #2 en: 25 de Marzo de 2005, 10:06:00 »
Gracias fenix_in.
Efectivamente solo necesito descomponer un Byte, por lo que obtendría 2 dígitos.Buscaré como me dices pero ¿como es ese algoritmo que comentas ?"(puedes implementar un algoritmo de restas sucesivas para obtener el numero)" .

Una pregunta ¿en las rutinas BCD se obtiene la descomposicion de los Bytes que quieras en unidades,decenas ,centenas........ pero del equivalente decimal,no es así?
Si es así no me serviría porque yo necesito mantener el numero en hexadecimal, si tengo en un registro 00011110 (1E en hexadecimal) necesito obtener en sendos registros (000000001) (00001110).
Si estoy confundido por favor decirlo.

Estoy trabajando en ASM.

Gracias por vuestro tiempo

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: descomponer un Byte en unidades,decenas..
« Respuesta #3 en: 27 de Marzo de 2005, 13:23:00 »
Hola Lolos, esto es mas facil todavia! Sonrisa Gigante
solo tienes que tomar los cuatro bits de la derecha (menor peso), que serian las unidades, les haces un and con b"00001111" o 0f, y obtienes solo las unidades... lo almacenas en un registro, por ejemplo unidad..

luego, a tu numero "original", le haces SWAPF, con lo que las decenas, pasan ahora a estar en la posicion baja, aplicas nuevamente la mascara and b"00001111" y obtienes las decenas, las guarda en DECENA...

esero se entienda ok?

suerte!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...