sábado, 2 de abril de 2011

Programa sencillo en ASM

;AECHM
;1.    Realizar  la siguiente secuencia de luces:  (se pueden mostrar en cualquier puerto), cada salida deberá mostrarse 0,5 segundos, y en forma cíclica.

    List     P=16F877A
    include "p16F877A.INC"
   
    ;DECLARACION DE VARIABLES
    PRIMERO EQU 20H
    SEGUNDO EQU 21H
    TERCERO EQU 22H
    BANKSEL TRISB ;BANCO1
    MOVLW    00H     
    MOVWF    TRISB ;PUERTOB COMO SALIDA
    BANKSEL PORTB ;BANCO0
    CLRF PORTB    ;ENCERAR PUERTO B
;PRINCIPAL
INICIO:
    MOVLW    00H
    MOVWF    PORTB
    CALL    RETARDO
    MOVLW    81H
    MOVWF    PORTB
    CALL    RETARDO
    MOVLW    0C3H
    MOVWF    PORTB
    CALL    RETARDO
    MOVLW    0E7H
    MOVWF    PORTB
    CALL    RETARDO
    MOVLW    0FFH
    MOVWF    PORTB
    CALL    RETARDO
    MOVLW    0E7H
    MOVWF    PORTB
    CALL    RETARDO
    MOVLW    0C3H
    MOVWF    PORTB
    CALL    RETARDO
    MOVLW    081H
    MOVWF    PORTB
    CALL    RETARDO
    MOVLW    00H
    MOVWF    PORTB
    CALL    RETARDO
    GOTO INICIO
RETARDO:
    MOVLW    .10
    MOVWF    PRIMERO
VUELTA3:
    MOVLW    .50
    MOVWF    SEGUNDO
VUELTA2:
    MOVLW .249
    MOVWF    TERCERO
VUELTA1:
    NOP
    DECFSZ    TERCERO,1
    GOTO    VUELTA1
    DECFSZ    SEGUNDO,1
    GOTO    VUELTA2
    DECFSZ    PRIMERO,1
    GOTO    VUELTA3
    RETURN
END

No hay comentarios:

Publicar un comentario