TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: dj_valle en 20 de Marzo de 2006, 17:19:00

Título: bcd en registro
Publicado por: dj_valle en 20 de Marzo de 2006, 17:19:00
hola buenas.... use un convertidor a bcd y me guarda el numero en 3 registros, por ejemplo 3 65 24... el problema es que no se separar en el registro el 6 y el 5 o el 2 y el 4 para representarlos graficamente, alguien tiene alguna idea de como hacerlo?

gracias de antemano
Título: RE: bcd en registro
Publicado por: maunix en 20 de Marzo de 2006, 17:37:00
Escrito originalmente por dj_valle
hola buenas.... use un convertidor a bcd y me guarda el numero en 3 registros, por ejemplo 3 65 24... el problema es que no se separar en el registro el 6 y el 5 o el 2 y el 4 para representarlos graficamente, alguien tiene alguna idea de como hacerlo?

gracias de antemano


Si.  Debes tomar por partes.

IMaginemos que el valor 0x24 está en la variable DIGITO1  Entonces haces algo asi como
Codigo:

   movf   DIGITO1,w   ;es igual a 0x24
   andlw   0x0F
   movwf   TEMP1      ;Aquí tenemos 0x04

   ....
   ...

   swapf   DIGITO1,w   ;Wreg = 0x42
   andlw   0x0F      ;queda como 0x02
   movwf   TEMP1

   ...
   ...



Luego si lo sacas por la usart o por un LCD y lo quieres ver como ASCII le debes sumar 48d.  
Si lo quieres usar para representarlo con 7 segmentos con eso te alcanza ya que con ese valor ingresas a la tabla que te dará que pines encender para dicho numero

Los puntos suspensivos representan precisamente todo esto que tu quieras hacer.

Saludos
Título: RE: bcd en registro
Publicado por: dj_valle en 21 de Marzo de 2006, 07:00:00
muchisimas gracias maunix, luego por la tarde lo probare a ver que tal me va.
Gracias
Título: RE: bcd en registro
Publicado por: maunix en 21 de Marzo de 2006, 10:17:00
Escrito originalmente por dj_valle
muchisimas gracias maunix, luego por la tarde lo probare a ver que tal me va.
Gracias


De nada, ojalá te salga todo bien.

Rebotado