Está en la página 1de 4

JENNY ALAVA B

JENNY ALAVA B

#include <16f887.h>
#fuses nowdt,noprotect,NOFCMEN,NOIESO
#use delay (internal = 8MHz)
#include <lcd.c>
#include <kbd.c> //Importante --> "Modificar librera para trabajar en el puerto B"
//#include <stdlib.h>
//#byte PORTB=6
#byte OPTION_REG = getenv("SFR:OPTION_REG") // Referencia el registro OPTION_REG
#bit RBPU = OPTION_REG.7 // Referencia al bit 7 de OPTION_REG (RBPU)

void main(){
// port_b_pullups(TRUE);

// No funciona en este PIC (Bug de CCS ?)

setup_adc_ports(NO_ANALOGS);

// Puertos A y B (Digital I/O)

JENNY ALAVA B
setup_oscillator(OSC_8MHz|OSC_STATE_STABLE);// Oscilador estable a 8MHz
RBPU = 0; // Activar las resistencia pull-up del puerto B
lcd_init();
kbd_init();

//inicializa el lcd y el teclado

char tecla = 0; // se declaran las variables tipo caracter a utilizar


unsigned int x,y,z = 0;

while(true){

printf(lcd_putc,"\f DIGITE LA CLAVE"); //imprime en el lcd la primera linea

///////////////////////////////bucle para tecla 1///////////////////////////////////////////


while(true){
tecla=kbd_getc();
if(tecla!=0){

// se lee el valor de la tecla pulsada

//instruccion necesaria al parecer pa ver si esta pulsada o no la tecla

x=tecla-48;

//conversion numerica

lcd_gotoxy(1,2);
lcd_putc("*");
delay_ms(100);
break;}
}
///////////////////////////////fin tecla1/////////////////////////////////////////////////////

///////////////////////////////bucle para la tecla2////////////////////////////////////////////


while(true){
tecla=kbd_getc();
if(tecla!=0){
y=tecla-48;

JENNY ALAVA B
lcd_putc("*");
delay_ms(100);
break;}
}
//////////////////////////////fin tecla2////////////////////////////////////////////////////////////

///////////////////////////////bucle para tecla3/////////////////////////////////////////////////


while(true){
tecla=kbd_getc();

// se captura la tecla 3

if(tecla!=0){
z= tecla-48;
lcd_putc("*");
delay_ms(100);
break;}
//////////////////////////////fin tecla 3//////////////////////////////////////////////////////////
}

// aqui se verifican las teclas presionadas/////////////////////////////////////

if((x==9)&&(y==2)&&(z==5)){ //la clave correcta es 925 y pregunta si todas esas condiciones se


cumplen
lcd_putc("\f CLAVE CORRECTA");
delay_ms(2000);}
else{
lcd_putc("\fCLAVE INCORRECTA");
delay_ms(2000);}

}
}

También podría gustarte