; ********************* PROGRAMA PRINCIPAL **********************************
INICIO
MOVLW 0x07
MOVWF CMCON ;PARA EL 16F628, ELIMINO LOS COMPARADORES, TODAS SALIDAS DIGITALES
CLRWDT
BSF STATUS,RP0 ;BANCO 1
MOVLW B'111' ;111 PREESCALA EL TMR0 A 256 101 es 64 110 es 128
; MOVLW B'00001110' ; PSA = 1 (prescaler to WDT)
MOVWF OPTION_REG ; WDT = 7 (WDT rate = 1:128) <--LO COLOQUE EN 6 A WDT
MOVLW B'00011111' ;COLOCO COMO ENTRADAS PARA LEER EL 8870
MOVWF TRISB
MOVLW B'00001100' ;COLOCO COMO ENTRADAS, PARA QUE QUEDE EN TRI STATE (SALIDA CLK Y DATA AL TECLADO
MOVWF TRISA
BCF STATUS,RP0 ;BANCO 0
CLRF TMR0
CALL GRANTIEMPO
CLRF PORTB
CLRF PORTA
BSF CLK
BSF TX
;****************************************************************************
;ESPERA DEL PULSO DE LLAMADA DTMF, y mientras espera,
; destella un led indicando funcionamiento correcto
ESPERA
DECF DIGITO2,F
BCF LED1
BTFSS DIGITO2,6
BSF LED1 ;DESTELLO DE UN LED PARA INDICAR EL FUNCIONAMIENTO EN ESPERA
DECFSZ DIGITO1,F
GOTO $+2
GOTO ESPERA
BTFSS STD ;SALIDA DE SE¥AL ESTABLE DEL MT8870, INDICA QUE PULSARON UNA TECLA
GOTO $-4 ;LOOP HASTA QUE MARQUEN ALGUNA TECLA
BCF LED1
BSF LED ;PRENDE INDICANDO QUE PULSARON UNA TECLA
CLRF SCANCODE
CLRF ENTRADA
NOP
NOP
NOP
NOP
NOP
MOVF PORTB,W ;LEER EL VALOR Y GUARDARLO EN ENTRADA
MOVWF ENTRADA
; BCF ENTRADA,4 ;BORRO EL BIT DE STD PARA OBTENER SOLO EL NUMERO
CLRF DATO
MOVLW B'00001111'
ANDWF ENTRADA,F ;ME ASEGURO QUE SOLO TOME 16 VALORES POSIBLES
;------------------------ MARCA DE REPETICION DE TECLA-----------------------------------------
MOVF MEMORIA,W ;
XORWF ENTRADA,W
BTFSC STATUS,Z ;SI LOS DATOS SON IGUALES, LA TECLA ES REPETIDA
GOTO PULSO_IGUAL
MOVF ENTRADA,W
MOVWF MEMORIA ;CARGO EN MEMORIA EL ULTIMO PULSADO
BCF LED_REPETIDO ;LO APAGO, POR SER NUEVA ENTRADA PULSADA
GOTO PULSO_DISTINTO
PULSO_IGUAL
BSF LED_REPETIDO ;PRENDO EL LED DEL DIGITO DECIMAL, PARA INDICAR MISMA TECLA PULSADA
MOVF ENTRADA,W ;O UN LED AZUL PARA QUE SEA MAS BONITO ;-)
MOVWF MEMORIA
PULSO_DISTINTO
;---------------------------------------------------------------------------------------------
; "TODOPIC ELECTRONICA , MARZO 2006" 25/03/06 08:17p.m.
;*********************************************************************************************