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

Temas similares

19/05/2007 #1


Multiplicacion y division 16f84
Hola a todos:
Aquí estoy con un nuevo problema aritmético:
Ahora necesito realizar la multiplicación y división de 2 numeros de 4 bits y visualizarlos en un display(o dos), lo tenia pensado realizar con el método de sumas sucesivas para la multiplicación y de restas sucesivas para la división pero no me lo permitieron, necesito realizarlo ÚNICAMENTE por el método de desplazamiento de bits. Alguien me podría ayudar, porque no tengo idea de como hacerlo.
19/05/2007 #2


Mas o menos así es como funciona la cosa: al desplazar un número a la izquierda este número se multiplica por 2, desplazarlo 2 veces a la izquierda equivale a multiplicarlo por 4, hacerlo 3 veces es multiplicarlo por 8 y así sucesivamente, en cambio desplazar un número a la derecha equivale a dividirlo entre 2, si se desplaza 2 veces es como si se dividiera entre 4 y así es como funciona el método.

El inconveniente de utilizar desplazamientos es que solo puedes multiplicar o dividir por múltiplos de 2
20/05/2007 #3


PIC-LIST
Hola darkngel,

Te recomiendo la página http://www.piclist.com/techref/microchip/math/index.htm, donde encontrarás ejemplos de todo tipo de operaciones matemáticas. Pero la idea básica ya te la ha dado pic-man.

Hasta luego.
20/05/2007 #4


Pos nada. Subo una subrutina para multiplicar dos de 8 Bits. Adaptala a tus necesidades.

Saludos
Archivos Adjuntos
Tipo de Archivo: rar 05multi1_337.rar (621 Bytes, 835 visitas)
27/05/2007 #5


hola
hola amigos del foro, la verdad yo soy muy nuevo en estas cosas de pic, pero tengo un profesor q le gusta q uno se adelante a las cosas y me parece bien. lo q pasa es q nos mando a hacer dos programas, uno q multiplicara, y otro q dividiera dos numeros de 8 bits q entran al pic, pero la verda todavia tengo muchas dudas sobre los programas. espero q po favor me den una indicacion de como lo puedo hacer, no tienen q decirmelo, con q me denuna guia yo lo puedo hacer ya q son retos pequeños pero q ayudan a uno aprender cosas nuevas cada dia.

muchas gracias por su colaboracio.
21/10/2016 #6


Hola. Estuve haciendo la multiplicación de 16 x 8, y pues si alguien la pudiera revisar.
Gracias.

Código PHP:
MULTP16_8
;AQUI VA LA MULTIPLICACION DE 16 X 8
;    vienen de la conversion:
;    
MULTH----SE DEFINIO EN EL PROGRAMA PRINCIPAL        
;    MULTL-----SE DEFINE EN PROGRAMA PRINCIPAL    
;    viene del programa principal
;        M1        
;sus salidas son:
;        
RMH
;        RML
    CLRF        RMM
    CLRF        RMH
    CLRF        RML
    MOVF        MULTH
,W
    SUBWF    MULTL
,W
    BTFSS        STATUS
,Z
    
GOTO        DIFERENTES_DE_CERO
    
RETURN
DIFERENTES_DE_CERO
    MOVF        M1
,F
    BTFSS        STATUS
,Z
    
GOTO         CERO_NO
    
RETURN
CERO_NO
    MOVF        MULTH
,F
    BTFSS        STATUS
,Z
    
GOTO        MULTIPLICA_16_8
    MOVF        MULTH
,W
    MOVWF    M1
    MOVF        MULTL
,W
    MOVWF    M2
    CALL        MULTIP
    
RETURN
MULTIPLICA_16_8
    MOVF        M1
,W
    MOVWF    M2
    MOVF        MULTL
,F
    BTFSS        STATUS
,Z
    
GOTO        MULTL_ES_CERO
    INCREMENTAR_RMH
    MOVF        MULTH
,W
    SUBWF    RMH
,F
     BTFSS    STATUS
,C
    
GOTO        SOLO_M1
    INCF        RMM
,F
     SOLO_M1
    DECFSZ    M1
,F
    
GOTO        INCREMENTAR_RMH
    
RETURN

MULTL_ES_CERO
    MOVF        MULTL
,W
    SUBWF    RML
,F
    BTFSS        STATUS
,C
    
GOTO        SOLO_M1_2
    INCF        RMH
,F
SOLO_M1_2
    DECFSZ    M2
,F
    
GOTO        MULTL_ES_CERO
    
GOTO        INCREMENTAR_RMH
    
RETURN 
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.