Está en la página 1de 1

;--------------- Comienzo -------------

LIST p=16f84 ; Se utilizar� el microcontrolador modelo 16F84


radix hex

;------------mapa de memoria---------
estado equ 0x03 ; Haciendo asignaciones
TRISB equ 0x06
ptob equ 0x06
var1 equ 0x0C ;Estas 3 variables permitir�n se utilizar�n para establecer el
retardo
var2 equ 0x0D
var3 equ 0x0E

;-------Configuraci�n de puertos-------
Reset org 0x00 ; origen del programa, aqu� comenzar�
; siempre que ocurra un reset
goto inicio ;salta a "inicio"
inicio bsf estado, 5 ;pone rp0 a 1 y pasa al banco1
movlw b'00000000' ; carga W con 00000000
movwf TRISB ; y pasa el valor a trisb
bcf estado, 5 ; pone rp0 a 0 y regresa al banco0

;----Aqu� enciende y apaga el LED-----


ahora bsf ptob,6 ; pone un 1 en RB0 (enciende el LED)
call retardo ; llama al retardo
bcf ptob,6 ; pone a 0 RB0 (apaga el LED)
call retardo ; llama al retardo
goto ahora ; repite todo de nuevo

;-----------Rutina de Retardo-----------
retardo movlw 15 ; aqu� se cargan los registros
movwf var1 ; var1, var2 y var3
; con los valores 15, 25 y 35
tres movlw 25 ; respectivamente
movwf var2
dos movwf 35
movwf var3
uno decfsz var3,1 ; aqu� se comienza a decrementar
goto uno ; cuando var3 llegue a 0
decfsz var2,1 ; se resta 1 a var2
goto dos ; cuando var2 llegue a 0
decfsz var1,1 ; se resta 1 a var1
goto tres ; cuando var1 llegue a 0
retlw 00 ; se regresa al lugar
; de donde se hizo la llamada
;------------------------------------------
end ; final del programa
;------------------------------------------

También podría gustarte