You are on page 1of 8

PRACTICA SISTEMA DE SEGURIDAD

Introduccin
Lo que llevamos a cabo en esta prctica fue una simulacin de un pad
de seguridad, con el PIC16F877A se utiliz el LCD para poder
visualizar todo en la pantalla, y un teclado matricial 4x4, el cual
simulamos como nuestro teclado de seguridad. Todas las entradas RD
del PIC fueron conectadas al teclado matricial, pero antes de eso se
consult la datasheet del componente para saber cmo se conectaba.
En la programacin de MicroCode inicializamos en la pantalla Sistema
de Seguridad, despus Cdigo de Seguridad. Cuando tecleabas un
cdigo incorrecto te marcaba Clave equivocada, y asi hasta que
teclearas el cdigo correcto.

Materiales:
Pic16f877A
2 capacitores de 22pF
1 cristal de 4 MHz
1 Potencimetro
1 Teclado Matricial 4x4
4 resistencias de 10K

1 Protoboard
LCD

Simulacin:

Codigo de MicroCode:
Define Osc 4

'Define el oscilador para un cristal de 4Mhz

'Definicin de registros para el LCD

Define LCD_DREG PORTB


datos
Define LCD_DBIT 4

'Utilizar bits del puerto B para tx de

'Desde el bit B.4 al B.7

Define LCD_RSREG PORTB


DEFINE LCD_RSBIT 2

'En el bit B.2

DEFINE LCD_EREG PORTB


DEFINE LCD_EBIT 3

'Seleccin del puerto del registro

'Utilizar el enable en el puerto B

'En el bit B.3

'Establecer el puerto B como salida


TRISB=0
'Establecer el puerto D como entradas y salidas
TRISD=%00001111

'Pausa de inicio del LCD


Pause 500

'-------------------------------------------------------------------------'Programa de sistema de seguridad


X VaR BYTE
Tecla Var BYTe
Bloqueo VAR BYTE[4]
Digito Var BYTE[4]

Write 00, 1
Write 01, 2
Write 02, 3

Write 03, 4

Inicio:
LCDOUT $FE, 1, "Sistema de"
LCDOut $FE, $C0, "seguridad"
Pause 500
LCDOUT $FE, 1, "Sistema"
LCDOUT $FE, $C0, "asegurado"
Pause 500

Clave:
X=0
REad 00, Bloqueo[1]
Read 01, Bloqueo[2]
REad 02, Bloqueo[3]
REad 03, Bloqueo[4]

LCDout $FE, 1
LCDOUT $FE, 1, "Intoduzca"
LCDOUT $FE, $C0, "clave de acceso"

Consulta:
Call TEclado
Pause 50
IF TEcla=0 Then Consulta

X=X+1
Digito[X]=TEcla
Pause 100
IF x=4 Then Comprobar
Goto Consulta

Comprobar:
IF Digito[1]=Bloqueo[1] Then Pase:Goto Error
Pase:
If Digito[2]=Bloqueo[2] Then Pase2:GOTO Error
Pase2:
If Digito[3]=Bloqueo[3] Then Pase3:Goto Error
Pase3:
If Digito[4]=Bloqueo[4] Then Correcto:Goto Error

Correcto:
Pause 500
Lcdout $FE, 1
LCDOUT $FE, 1, "****"
LCDOUT $FE, $C0, "Clave correcta"
PAuse 2000
Goto Inicio

Error:
PAuse 500

LCDOUT $FE, 1
LCDOUT $FE, 1, "****"
LCDOUt $FE, $C0, "Clave equivocada"
PAuse 1000
Goto Clave

Teclado:
Tecla=0
PORTD.4=0
PORTD.5=1
PORTD.6=1
PORTD.7=1

IF PORTD.0 = 0 Then Tecla=7

'Tecla 7

IF PORTD.1 = 0 Then Tecla=4

'Tecla 4

IF PORTD.2 = 0 Then Tecla=1

'Tecla 1

IF PORTD.3 = 0 Then Tecla=10 'Tecla *

PORTD.4=1
PORTD.5=0
PORTD.6=1
PORTD.7=1

IF PORTD.0 = 0 Then Tecla=8

'Tecla 8

IF PORTD.1 = 0 Then Tecla=5

'Tecla 5

IF PORTD.2 = 0 Then Tecla=2

'Tecla 2

IF PORTD.3 = 0 Then Tecla=0

'Tecla 0

PORTD.4=1
PORTD.5=1
PORTD.6=0
PORTD.7=1

IF PORTD.0 = 0 Then Tecla=9

'Tecla 9

IF PORTD.1 = 0 Then Tecla=6

'Tecla 6

IF PORTD.2 = 0 Then Tecla=3

'Tecla 3

IF PORTD.3 = 0 Then Tecla=11 'Tecla #

PORTD.4=1
PORTD.5=1
PORTD.6=1
PORTD.7=0

IF PORTD.0 = 0 Then Tecla=12 'Tecla A


IF PORTD.1 = 0 Then Tecla=13 'Tecla B
IF PORTD.2 = 0 Then Tecla=14 'Tecla C
IF PORTD.3 = 0 Then Tecla=15 'Tecla D

Return

END

Circuito Fisico:

You might also like