Microchip PIC 16F87X Trabajo Y Explicación página 60

Tabla de contenido

Publicidad

T
E
RABAJO Y
XPLICACIÓN
PROGRAMA 4
La interrupción del TMR0.
Se trata de comprobar la interrupción provocada por el TMR0. El programa lee el
estado de los interruptores conectados a RA0 y RA4 para reflejarlo en los leds conectados a RB0
y RB4 respectivamente. Al mismo tiempo el TMR0 genera una interrupción cada 0.05 seg. (10
mS) que se repetirá 50 veces con objeto de hacer intermitencia de 500 mS sobre el led conectado
a RB7.
Contador
Inter
Con_si_0
Seguir
Inicio
;El TMR0 se carga con 195. Con un preescaler de 256 y a una frecuencia de 20MHz se obtiene
;una interrupción cada 10mS. Se habilita la interrupción del TMR0.
D
P
ESARROLLO
ROYECTOS Y
PIC 16F87
X
List
p=16F876
include
"P16F876.INC" ;Definiciones de registros internos
equ
0x020
org
0x04
goto
Inter
org
0x05
goto
Inicio
bcf
INTCON,T0IF ;Repone flag del TMR0
decfsz
Contador,F
goto
Seguir
movlw
b'50'
movwf
Contador
movlw
b'10000000'
xorwf
PORTB,F
movlw
b'195'
movwf
TMR0
retfie
clrf
PORTB
bsf
STATUS,RP0
clrf
TRISB
movlw
0x06
movwf
ADCON1
movlw
b'00111111'
movwf
TRISA
movlw
b'00000111'
movwf
OPTION_REG ;Preescaler de 256 para el TMR0
bcf
STATUS,RP0
movlw
b'195'
movwf
TMR0
movlw
b'50'
movwf
Contador
movlw
b'10100000'
movwf
INTCON
P
E
ROTOTIPOS
LECTRÓNICOS
;Tipo de procesador
;Variable para la temporización
;Vector de interrupción
;Decrementa el contador. Ha habido 50
interrupciones ??
;No, no han pasado los 500 mS
;Repone el contador nuevamente para
;contar 50 interrupciones
;RB0 cambia de estado
;Repone el TMR0 con 195
;Retorno de interrupción
;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
;Carga el TMR0 con 195
;Nº de veces a repetir la interrupción
;Activa la interrupción del TMR0
2º DPE
60

Publicidad

Tabla de contenido
loading

Productos relacionados para Microchip PIC 16F87X

Tabla de contenido