Microcode Alarma Por Teclado Matricial
DIGITO2 VAR BYTE
DIGITO3 VAR BYTE
DIGITO4 VAR BYTE
EP1 Var byte
EP2 Var byte
EP3 Var byte
EP4 Var byte
TECLA VAR BYTE
cont var byte
PUERTA VAR PORTB.2
SIRENA VAR PORTB.3A VAR PORTC.0
B VAR PORTC.1
C VAR PORTC.2
D VAR PORTC.3
UNO var PORTC.4
DOS var PORTC.5
TRES var PORTC.6
CUATRO var PORTC.7
;*************************************;CONFIGURACION DEL LCD
;**************************************
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 1
TRISB =%00000000
PORTB=0
TRISC = %11110000
CONT=0
EEPROM 0,[1,2,3,4]
INICIO:
;***************
;INGRESO DE CLAVE DE CUATRO DIGITOS
;*************
LCDOUT $FE,1
LCDOUT $FE,$80, "INGRESE LA CLAVE"
GOSUBTECLADO
LOW PORTD.0
GOSUB PTECLA
LCDOUT $FE,$C6,"*"
DIGITO1= TECLA
GOSUB TECLADO
GOSUB PTECLA
LCDOUT $FE,$C7,"*"
DIgITO2= TECLA
GOSUB TECLADO
GOSUB PTECLA
LCDOUT $FE,$C8,"*"
DIgITO3=TECLA
GOSUB TECLADO
GOSUB PTECLA
LCDOUT $FE,$C9,"*"
DIgITO4= TECLA
;*************************************
;VERIFICACION DE LA CLAVE DE CUATRO DIGITOS
;**************************************READ 0,EP1
READ 1,EP2
READ 2,EP3
READ 3,EP4
IF (DIGITO1=EP1 AND DIGITO2=EP2 AND DIGITO3=EP3 AND DIGITO4=EP4) THEN
GOTO ABRIR_PUERTA
ELSE
GOTO ALARMA
ENDIF;*************************************
;SUBRUTINA PARA ABRIR LA PUERTA NOTA: SOLO UN PULSO SINO SE QUEMA
;**************************************
ABRIR_PUERTA:
LCDOUT $FE,1
LCDOUT $FE,$80, "PUERTA ABIERTA"
cont=0HIGH PUERTA
PAUSE 1000 ;UN SOLO PULSO, UN SEGUNDO.
LOW PUERTA
GOTO INICIO
;*************************************
;SUBRUTINA PARA SONAR LA sirena
;**************************************
ALARMA:lcdout $FE,1
LCDOUT $FE,$80, "Clave equivocada"
cont=cont+1
if cont=3 then goto bloqueo
HIGH SIRENA
PAUSE 3000;TRES SEGUNDOS.
LOW SIRENA
bloqueo:
high sirena
LCDOUT $FE,1
LCDOUT...
Regístrate para leer el documento completo.