T
E
RABAJO Y
XPLICACIÓN
PROGRAMA 3
Se trata de realizar una rotación secuencial en el encendido de cada led conectados a la
puerta B del entrenador. Si RA0 = 0, la rotación será de derecha a izquierda y viceversa.
Cada led permanece encendido 0.25 segundos (250 mS)
Contador
;--------------------------------------------------------------------------------------------------------------------
;Delay es una rutina que realiza una temporización de 250 mS que es el tiempo en que han
;de permanecer encendido cada uno de los leds. Se basa en repetir 25 veces la temporización
;de 10mS que se empleó en el ejercicio anterior.
Delay
Delay_0
Delay_1
;--------------------------------------------------------------------------------------------------------------------
Inicio
Loop
A_Izda
A_Dcha
D
P
ESARROLLO
ROYECTOS Y
PIC 16F87
X
List
p=16F876
include
"P16F876.INC" ;Definiciones de registros internos
equ
0x20
org
0x05
goto
Inicio
movlw
b'10'
movwf
Contador
bcf
INTCON,T0IF ;Desconecta el flag del TMR0
movlw
b'195'
movwf
TMR0
btfss
INTCON,T0IF ;Rebosamiento del TMR0 ??
goto
Delay_1
decfsz
Contador,F
goto
Delay_0
return
clrf
PORTB
bsf
STATUS,RP0
clrf
TRISB
movlw
0x06
movwf
ADCON1
movlw
b'00011111'
movwf
TRISA
movlw
b'00000111'
movwf
OPTION_REG ;Preescaler de 256 para el TMR0
bcf
STATUS,RP0
bsf
STATUS,C
call
Delay
btfsc
PORTA,0
goto
A_Dcha
rlf
PORTB,F
goto
Loop
rrf
PORTB,F
goto
Loop
end
P
E
ROTOTIPOS
LECTRÓNICOS
;Tipo de procesador
;Variable para la temporización
;Carga el contador con 10
;carga el TMR0 con 195
;No. Todavía no han pasado los 1* mS
;Decrementa contador.
;Todavía no, temporiza otros 10 ms
;Ahora si
;Borra el Puerto B
;Selecciona banco 1
;Puerta B se configura como salida
;Puerta A digital
;Puerta A se configura como entrada
;Selecciona banco 0
;Activa el carry
;Temporiza 250mS
;Está a 0 RA0 ??
;No, rotación a derecha
;Si, rotación a izquierda
;Rotación a derecha
2º DPE
59