INCLUDE P16F887.INC
;Definición de Entradas/Salidas
#DEFINE DIS_UNI PORTA,1 ;Activar transistor NPN para habilitar display de las unidades
#DEFINE DIS_DEC PORTA,2 ;Activar transistor NPN para habilitar display de las decenas
CBLOCK 0X20
AUXA,AUXB,AUXC,UNIDADES,DECENAS,TECLA_TEMP,TECLA,CUENTATECLA,DATO1,DATO2,TEM
ENDC
;*******************************************************************************************
ORG 0X00
GOTO PPAL
;********************************************************************************
-2-
I:\Teclado Matricial\TECLADO_MATRICIAL.ASM lunes, 02 de noviembre de 2009 10:10
GOTO F4_C3
MOVLW 00 ;TECLA <0>
MOVWF TECLA
RETURN
F4_C3 MOVLW B'01110111'
XORWF TECLA_TEMP,W
BTFSS STATUS,Z
GOTO FIN_TECLADO
MOVLW 0A ;TECLA <*>
MOVWF TECLA
FIN_TECLADO
RETURN
;*****************************************************
MOVLW 00
XORWF CUENTATECLA,W
BTFSS STATUS,Z
GOTO TECLA2
CLRF UNIDADES
CLRF DECENAS
MOVF TECLA,W
MOVWF DATO1
MOVWF UNIDADES
INCF CUENTATECLA
GOTO SOLTARON
TECLA2 MOVLW 01
XORWF CUENTATECLA,W
BTFSS STATUS,Z
GOTO TECLA3
MOVF TECLA,W
MOVWF DATO2
MOVWF UNIDADES
INCF CUENTATECLA
GOTO SOLTARON
TECLA3 CALL TECLADO
CALL VISUAL_CC
MOVF TECLA,W
XORLW 0B
BTFSS STATUS,Z
GOTO TECLA3 ;NO ES TECLA <#> PARA SUMAR
-5-
I:\Teclado Matricial\TECLADO_MATRICIAL.ASM lunes, 02 de noviembre de 2009 10:10
CLRF CUENTATECLA
MOVF DATO2,W
ADDWF DATO1,W
CALL BINBCD8
;***********************************************************
;Conversión de binario de 8 bits (dos dígitos) a BCD
;********************************************************
;Programa principal
PPAL CALL CONFIG_PIC
BUCLE CALL SUMA
CALL VISUAL_CC
GOTO BUCLE
END
-6-