• Martes 7 de Mayo de 2024, 01:08

Autor Tema:  Hacer una división con ASM del PIC 16F84A  (Leído 15483 veces)

Meta

  • Miembro MUY activo
  • ***
  • Mensajes: 140
    • Ver Perfil
Hacer una división con ASM del PIC 16F84A
« en: Jueves 10 de Julio de 2008, 20:46 »
0
Hola:

Me imagino que hacer una división en ASM para el pic 16F84A es un poco engorroso ya que hay que hasta guardar el resto en una variable, y el resultado en otra.

15 / 3 = 5 (Resto es igual a 0).

¿Alguien sabe hacer o poner un ejemplo en ASM sobre una división con comas?

Ejemplo:

0.15 / 3 = 0.05

¿A qué ya es otra realidad?

Un cordial saludos.

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Hacer una división con ASM del PIC 16F84A
« Respuesta #1 en: Viernes 5 de Diciembre de 2008, 10:43 »
0
Hola, ahora mismo no recuerdo lo del resto y esos entresijos, pero si te puedo decir que al igual que multiplicar por 5 es sumar la cifra 5 veces (sencillo en un micro) dividir es lo mismo pero restando. Mira por la web a ver si encuentras mas informacion.

Un saludo.

hansell

  • Nuevo Miembro
  • *
  • Mensajes: 2
  • Nacionalidad: ar
    • Ver Perfil
Re: Hacer una división con ASM del PIC 16F84A
« Respuesta #2 en: Martes 30 de Diciembre de 2008, 00:49 »
0
HOLA:

la division  entera es  muy simple , aqui transcribo el codigo que lo hace, ahora para hacer una divion de numeros reales ya que el pic no lo permite deberias implementar los algoritmos de almacenamiento de SIGNO/EXPONENTE /MANTISA, si buscas en la web hay muy buenos paper que lo explican.
La otra solucion es utilizar un micro motorola por ejemplo que ya tienen implementadas las operacions con numeros reales. Amo al PIC pero la verdad en muchos casos se queda corto.

 saludos

OSCAR

listp=16f84

estado equ 0x03
dividendo equ 0x0c
divisor equ 0x0d
div equ 0x0e
aux equ 0x0f

 movlw 0x08
 movwf dividendo
 movlw 0x02
 movwf divisor
 clrf div
 clrf aux


divide
  movf dividendo,0      ; copia dividendo a aux, para no modificar dividendo
  movwf aux
divide1
  movf divisor,0            ; resta aux-divisor y lo almacena en aux
  subwf aux,1
  incf div,1  
  movf divisor,0       ; compara divisor > aux
  subwf aux,0
  btfsc estado,0
  goto divide1
  end

Meta

  • Miembro MUY activo
  • ***
  • Mensajes: 140
    • Ver Perfil
Re: Hacer una división con ASM del PIC 16F84A
« Respuesta #3 en: Martes 5 de Enero de 2010, 04:08 »
0
Gracias por el ejemplo.