Autor Tema: Ayuda con un programita en asm y el 16f84  (Leído 1955 veces)

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

Desconectado Sokete

  • PIC10
  • *
  • Mensajes: 2
Ayuda con un programita en asm y el 16f84
« en: 10 de Septiembre de 2008, 18:29:46 »
Hola soy principiante en esto de los pic y empecé por el 16f84 y el asm que es el que encontre mas info. También en un tutorial econtre un programa que es para encender y apagar un led, yo lo compile en el mplab y lo carge con el ic-prog, supuedtamente lo cargo bien porque me dió un cartel de verificación correcta, despues leí el pic y si esta cargado. Arme el circuito en la plaqueta pero no pasa nada, no enciende. Les paso el programa para ver si me equivoque en algo:

STATUS  EQU  03H
TRISB   EQU   06H
PORTB   EQU   06H

CUENTA1 EQU   0CH
CUENTA2 EQU   0DH
F             EQU   1
W           EQU   0
   
        ORG   00H
        BSF   STATUS,5 
        BCF   TRISB,0   
        BCF   STATUS,5 

INICIO  BSF   TRISB,0   
            CALL  DELAY     
            BCF   TRISB,0   
            CALL  DELAY     
            GOTO  INICIO   


DELAY   MOVLW  010H       
            MOVWF  CUENTA1   
ACA1    MOVLW  0FFH       
            MOVWF  CUENTA2     

ACA    DECFSZ CUENTA2,F   
          GOTO   ACA         
          DECFSZ CUENTA1,F 
          GOTO   ACA1       
          RETURN             

          END           

Bueno, este es el programa , si esta mal y quieren hacerme alguna corrección vienvenida sea!
Espero su ayuda, gracias

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Ayuda con un programita en asm y el 16f84
« Respuesta #1 en: 10 de Septiembre de 2008, 22:48:03 »
Lo mire a simple vista y tiene al menos, 2 errores.

Código: ASM
  1. ORG   00H
  2.         BSF   STATUS,5  
  3.         BCF   TRISB,0  
  4.         BCF   STATUS,5

Resmplaza esta línea por esta:

Código: ASM
  1. ORG     0
  2. BSF  STATUS,5
  3. MOVLW  0X00        ;Cargo a w con el valor 0 para pasarlo al trisb
  4. MOVWF  TRISB      ;y convertir todos sus pines en salida.
  5. BCF  STATUS,5

Y ahora esta línea:

Código: ASM
  1. INICIO  BSF   TRISB,0  
  2.             CALL  DELAY    
  3.             BCF   TRISB,0  
  4.             CALL  DELAY    
  5.             GOTO  INICIO

Por esta:

Código: ASM
  1. INICIO
  2.       BSF PORTB,0         ;Pongo al bit 0 en 1 lógico para encender al led.
  3.       CALL DELAY           ;Llamo a la rutina DELAY
  4.       BCF PORTB,0         ; Vuelvo de la rutina delay y pongo a 0 el bit 0 así apago al led

Un error fue que estabas utilizando el TRSIB para indicar el estado de las patas cuando en realidad lo que hacías es poner en entrada o salida al bit 0 del puerto b.

El primer error, en realida, no es un error, pero te lo hago cambiar para evitar posibles confuciones en un futuro.

No olvides de poner una resistencia al led, para evitar sobrecargar al PIC.

Asegúrate de configurar bien la palabra de configuración.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Sokete

  • PIC10
  • *
  • Mensajes: 2
Re: Ayuda con un programita en asm y el 16f84
« Respuesta #2 en: 13 de Septiembre de 2008, 17:03:14 »
Gracias!!! Lo voy a probar y te aviso!!!  :-/