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

Temas similares

07/03/2014 #1


Ayuda con programa en Assembler
Buenas tardes, estoy aprendiendo a programar en assembler trabajo en este programita la idea es que el led que esta por el puerto RA0 Parpadee cuando halla un estado alto en el puerto RB0 al compilar me da errores pero no logro dar con el fallo.

esto es lo que tengo de código


Código:
List p=PIC16F873     	;declaracion de procesador
Include "P16F873.inc"   
__config 0x3F38        ;declaracion de la configuracion        
CBLOCK   0X20
Loops, loops2,			;se nombran bariables
ENDC

org     0x00  ;inicio de programa
goto  Inicio  ;ir a etiqueta inicio

Inicio 	    movlw   0x07      ;cargar w con el valor 0x07   
       	    movwf   CMCON           
      	    bsf     STATUS, RP0 ; Seleccionar el banco de memoria 1         
       	    bcf     TRISA, 0    ;Configuramos como salida        
       	    bsf     TRISB, 1    ;Configuramos como entradas      
            bcf     STATUS,RP0  ; Seleccionar el banco de memoria 0
ciclo    	             
            btfss   PORTB,0      ;Comprueba si la entrada RB0 es 1       
            goto   	ciclo        

parpadeo         
            bsf      PORTA,0   ;Pone a "1" la salida RA0        
       	    call     retardo         
            bcf      PORTA,0        
            call     retardo         
            goto     ciclo        

retardo	    CLRWDT                ;subrutina de retardo en milisegundos
            MOVLW     D'200' 	 
            MOVWF     loops    
top2        MOVLW     D'220' 		
            MOVWF     loops2   
top         CLRWDT ;no va
            NOP
            NOP
            NOP
            NOP
            NOP
            NOP
            DECFSZ    loops2,1    ;pregunta si termino 1 ms
            GOTO      top
            DECFSZ    loops,1     ;pregunta si termina el retardo
            GOTO      top2
            RETLW     0
END
agradezco la ayuda que pe puedan prestar al explicarme en que estoy fallando.
07/03/2014 #2
Moderador

Avatar de D@rkbytes

Para empezar, cambia...
List p=PIC16F873 por list p=16F873

Dentro de CBLOCK cambia Loops por loops
También elimina la coma después de loops2

Remueve las instrucciones para el registro CMCON porque en ese PIC no existe tal registro,
y dentro del banco 1 agrega lo siguiente...
movlw 0x06
movwf ADCON1

Compila y prueba.

Suerte.
07/03/2014 #3

Avatar de fdesergio

Como retardo es una subrutina debes terminarla con la instruccion return si o si, chauuuuuuu
08/03/2014 #4


Gracias por su ayuda efectué los cambios, compile y arranco sin problemas seguiré en mis practicas
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.