T
E
RABAJO Y
XPLICACIÓN
;Programa de tratamiento de la interrupción por cambio de estado
Interrupcion
bcf
call
movf
movwf Temporal_3
call
Inter_1
call
movlw 0x80
subwf
btfss
goto
call
del LCD
movlw 0x8f
movf
sublw
btfss
goto
movf
addlw
Mayor_que_9
movf
addlw
call
Inter_Fin
nop
nop
bcf
movf
bcf
bsf
retfie
bsf
movlw 0x06
movlw b'00000111'
movwf OPTION_REG
bcf
D
P
ESARROLLO
ROYECTOS Y
PIC 16F87
X
INTCON,RBIE
Key_Scan
Tecla,W
Delay_10ms
Key_Scan
Tecla,W
STATUS,Z
Inter_1
Delay_10ms
Temporal_3,W
b'9'
STATUS,C
Mayor_que_9
Temporal_3,W
0x30
Temporal_3,W
0x37
LCD_DATO
INTCON,RBIE
PORTB,W
INTCON,RBIF
INTCON,RBIE
STATUS,RP0
STATUS,RP0
P
E
ROTOTIPOS
LECTRÓNICOS
;Desactiva mascara RBIE
;Explora el teclado
;Salva la tecla temporalmente
;Elimina rebotes
;Explora el teclado
;Se ha liberado la tecla pulsada ?
;No, esperar que se libere
;Eliminar rebotes
;Configura Puertas A y B como salidas para manejo
;Posiciona el cursor del LCD
;Recupera la tecla que se pulsó
;Es mayor que 9 (A, B,C,D,E,F)?
;Si
;No
;Ajuste ASCII de los caracteres del 0 al 9
;Visualizar sobre el LCD
;Ajuste ASCII de los caracteres de la A a la F
;Visualiza sobre el LCD
;Selecciona banco 1
;RB0-RB3 salidas, RB4-RB7 entradas
;Tiempo de espera para estabilizar la puerta B
;Selecciona banco 0
;Desconecta máscara de interrupción RBIE
;Lee estado actual de reposo de las entradas
;Reponer el flag de interrupción
;Activa máscara de interrupción RBIE
;Selecciona página 1 de datos
;Puerta A digital
;Activa Pull-Up para las entradas de la puerta B
;Selecciona página 0 de datos
;Configura Puerta A y B como salidas
;Rutina de inicialización del LCD
;LCD en ON
2º DPE
71