blink ...
author: librepensante.org
FREEWARE
; incluye las librerias e intrucciones del pic
LIST P=16F84a
INCLUDE
;subrutina que mueve al banco 1 de memoria RAM
BANK0 MACRO
BCF STATUS,5
BCF STATUS,6
ENDM
;subrutina que mueve al banco 0 de memoria RAM
BANK1 MACRO
BSF STATUS,5
BCF STATUS,6
ENDM
;nombramiento de variables en la memoria ram
CONTADOR1 EQU 20H
CONTADOR2 EQU 21H
CONTADOR3 EQU 22H
ORG 05 ; ingreso al programa
SETUP ;variables inciciales
BANK1 ; llama macro (subrutina) para ingresar al banco 1
MOVLW 0x00 ; hexadecimal byte "00000000"
MOVWF TRISA ;mueve el número al byte TRISA (i/o)
MOVLW 0xFF ; hexadecimal byte "11111111"
MOVWF TRISB ;mueve el número al byte TRISB (i/o)
BANK0 ; al banco de memoria 0
MOVLW 0xFF ; hexadecimal "11111111"
MOVWF CONTADOR1 ; byte en la memoria RAM
MOVLW .255 ; decimal 255 (byte "11111111")
MOVWF CONTADOR2 ; byte en la memoria RAM
MOVLW B'0000101' ; binario, suma 9
MOVWF CONTADOR3 ; byte en la memoria RAM
GOTO LOOP ; salta a la rutina loop
1000ms ;contador por decrecimiento de 1 seg.
DECFSZ CONTADOR1
GOTO SALTO
DECFSZ CONTADOR2
GOTO SALTO
DECFSZ CONTADOR3
GOTO SALTO
RETURN ;vuelve a la rutida de donde es llamada
LOOP ;programación de la salida
BSF PORTB,0 ; el pin 0 de portb en 0
CALL 1000ms ; llama subrutina 1000ms
BCF PORTB,0 ; el pin 0 de portb en 1
CALL 1000ms ; llama subrutina 1000ms
GOTO LOOP ; vuelve al inicio de esta rutina para quedar en bucle
END ; fin
código en hexadecimal para programar al pic
:020000040000FA
:06000A0083160313003011
:100010008500FF30860083120313FF30A000FF30FD
:10002000A1000530A2001B28A00B1428A10B142846
:10003000A20B1428080006141420061014201B28F4
:00000001FF
