Autor Tema: RE: Pasar de variable de 8 bits a DATO1;DATO2;DATO3 ,Ejmpl: 256(0xFF) a "2"+"5"+"6"  (Leído 1514 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Hola Ejose,  la idea seria, por ejemplo, el ingreso sea numero y la salida en (centena)digito uno    (decena)=digito2   y la unidad en digito3

borras option, a numero, le restas 100,  y verificas si es positivo, si es positivo incf digito1, y nuevamente restas 100.... repitiendo esto hasta que da negativo, entonces, pasa ahora a restar de a 10.... si es positivo incf digito2....
el resto de estas restas sucesivas sera digito3

espero se entienda ok?
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado Tec_Claudio_Perez

  • PIC12
  • **
  • Mensajes: 62
RE: Pasar de variable de 8 bits a DATO1;DATO2;DATO3 ,Ejmpl: 256(0xFF) a "2"+"5"+"6"
« Respuesta #1 en: 16 de Noviembre de 2003, 10:53:00 »
Hola, otra es usar la rutina de la Nota de Aplicacion 526 de Microchip:

http://www.microchip.com/1010/suppdoc/appnote/all/an526/index.htm

En esta nota, en el archivo B16TOBCD.ASM hay una rutina que convierte un numero de 16 bits en binario a 5 dígitos en BCD (BCD digamos que es unidades, decenas, centenas, etc).
Ademas te sirve cuando por ejemplo el número a convertir es mayor que 255, por lo tanto usas dos registros, uno con el MSB y el otro con el LSB.

Si solo usas 8 bits, deberias llenar el byte MSB con ceros antes de llamar la rutina.

Espero que te sirva.