EJERCICIO Encender un diodo Led RA0 (pulsar NA). Envía un ‘1’ RB0. List P=16F877 # include P16F877.Inc Dato EQU 20H
DELAY1
EQU
20H
DELAY2
EQU 21H
DELAY3
EQU 22H
; Declarar Variables
Org 00H Goto Inicio Inicio BSF Status, 05H MOVLW
FFH
MOVWF
Tris A ; Declaro puerto A como entrada.
MOVLW
00H
MOVWF
Tris B ; puerto B como salida.
BCF Status, 05H
MOVF
PortA, W
MOVWF
Dato
MOVLW
01H
XORWF
Dato, W
BTFSS
Status, Z Revisa bit 02
GOTO
Revisar
MOVLW
01H
MOVWF
Port B
GOTO
Revisar
END
Rutina Revisar (Al anterior programa se le agrega otro led y esta es la otra parte de la rutina para el programa) MOVF
PortA, W; leo el Puerto A y lo recargo en W
MOVWF
Dato Dato = W
MOVLW
00H W= 00H
XORWF
Dato, W Realiza XOR logica entre Dato y W
BTFSS
Status, 02 Reviso si la operación dio 0
GOTO
REV-2
MOVLW
01H
MOVWF
PortB Encendido Led 1
GOTO
Revisar
Rev-2 MOVLW MOVWF GOTO
02H PortB Encendido Led 2
Revisar
Rutina de Retardos (perder tiempo determinado porque las instrucciones son muy rapidas)
MOVLW
05H
MOVWF
Delay 1
Reta 1 MOVLW MOVWF
Delay 2
Reta 2 MOVLW MOVWF
0FFH
0FFH
Delay 3
Reta DECFSZ Delay 3, F GOTO
Reta 3
DECFSZ
Delay 2, F Decremento en 1 el valor actual del registro y salto si es 0
GOTO
Reta 2
DECFSZ
Delay 1, F
GOTO
Reta 1
RETURN
Se encuentran.