Os pongo en situacion: tengo este programa de una cerradura electrónica controlada por un PIC 16f84a y queria poner un contador o algo asi no se, para que cuando hagas 3 intentos de contraseña el dispositivo se bloquee o tarde unos minutos en volver a dejar poner la clave. No se donde deberia insertarlo ni anda, alguien me puede ayudar? lo necesito para yaaaa!!(joer encima cn exigencias) muchas gracias por adelantado
El programa es el siguiente:
El programa es el siguiente:
Código:
_CONFIG _CP_OFF&_WDT_OFF&PWRTE_ON&_XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK 0X0C
ENDC
#DEFINE LongitudClave (FinClaveSecreta-ClaveSecreta)
#DEFINE CerraduraSalida PORTA,3
;ZONA DE CÓDIGOS *********************************************
ORG 0
goto Inicio
ORG 4
goto ServicioInterrupcion
Mensajes
addwf PCL,F
MensajeTeclee
DT "Teclee CLAVE",0X00
MensajeClaveCorrecta
DT "Clave CORRECTA",0X00
MensajeAbraPuerta
DT "Abra la puerta",0X00
MensajeClaveIncorrecta
DT "Clave INCORRECTA",0X00
;
LeeClaveSecreta
addwf PCL,F
ClaveSecreta
DT 4h,5h,6h,0Eh
DT 7h,8h
FinClaveSecreta
Inicio call LCD_Inicializa
bsf STATUS,RP0
bcf CerraduraSalida
bcf STATUS,RP0
call TecladoInicializa
call InicializaTodo
movlw b'10001000'
movwf INTCON
Principal
sleep
goto Princpial
;Subrutina "ServicionInterrupcion"********************************
;
CBLOCK
ContadorCaracteres
GuardaClaveTecleada
ENDC
ServicioInterrupcion
call Teclado_LeeHex
movwf INDF
movlw '*'
call LCD_Caracter
incf FSR_F
incf ContadorCaracteres
movlw LongitudClave
subwf ContadorCaracteres
btfss STATUS,C
goto FinInterrupcion
call LCD_Borra
clrf ContadorCaracteres
movlw ClaveTecleada
movwf FSR
ComparaClaves
movf INDF,W
movwf GuardaClaveTecleada
movf ContadorCaracteres,W
call LeeClaveSecreta
subwf GuardaClaveTecleada,W
btfss STATUS,Z
goto ClaveIncorrecta
incf FSR,F
incf ContadorCaracteres,W
btfss STATUS,C
goto ComparaClaves
ClaveCorrecta
movlw MensajeClaveCorrecta
call LCD_Mensaje
call LCD_Linea2
movlw MensajeAbraPuerta
call LCD_Mensaje
bsf CerraduraSalida
goto Retardo
ClaveIncorrecta
Movlw MensajeClaveIncorrecta
call LCD_Mensaje
Retardo
Call Retardo_2s
call Retardo_1s
InicializaTodo
bcf CerraduraSalida
clrf ContadorCaracteres
movlw ClaveTecleada
movwf FSR
call LCD_Borra
movlw MensajeTeclee
call LCD_Mensaje
call LCD_Linea2
FinInterrupcion
call Teclado_EsperaDejePulsar
bcf INTCON,RBIF
retfie
INCLUDE <TECLADO.INC>
INCLUDE <LCD_MENS.INC>
INCLUDE <RETARDOS.INC>
INCLUDE <LCD_4BIT.INC>
CBLOCK
ClaveTecleada
ENDC
END
Última edición por un moderador: