TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: mafesolutions en 28 de Octubre de 2013, 13:01:31
-
Hola colegas recien me inicio en el tema de los pics y tengo un contratiempo quiero remplazar el 16f877a por el 18f452 es una cerradura electronica que estoy armando les paso el codigo en c el compilador que estoy usando es el PIC C COMPILER
espero que me puedan ayudar desde ya gracias
pd mi nombre es matias #include <16F877A.h>
#fuses XT
#use delay (clock=4M)
#define LCD_DB4 PIN_D4
#define LCD_DB5 PIN_D5
#define LCD_DB6 PIN_D6
#define LCD_DB7 PIN_D7
#define LCD_RS PIN_D2
#define LCD_E PIN_D3
#include <lcd1.c>
#include <KBD1.c>
#rom 0x2100={'1','2','3','5'} // escribir en la memoria eeprom
int i,j=0; // contador
char k; // lectura del teclado
char dato[4],clave[4]; //dato: almacena los digitos, clave: es la contraseña
void main(){
lcd_init(); //
kbd_init(); //
port_b_pullups(TRUE); // resistencias o internas del pic
for(;;){
lcd_putc("\f BINVENIDO "); //
lcd_putc("\n Mafe Solutions ");
delay_ms(1000);
lcd_putc("\fINGRESE SU CLAVE ");
output_low(PIN_D0);
output_low(PIN_D1);
i=0;
while(i<4){
k=kbd_getc(); // leer la tecla presiono
if(k!=0){
dato[i]=k;
i++;
lcd_gotoxy(i,2); // posicion i de la segunda linea
lcd_putc('*');
}
}
for(i=0;i<4;i++)
clave[i]=read_eeprom(i); //guarda la constraseña en el vector clave
if( dato[0]==clave[0] && dato[1]==clave[1] && dato[2]==clave[2] && dato[3]==clave[3])
{
lcd_putc("\fClave Correcta! ");
lcd_putc("\nAdelante!! ");
output_high(PIN_D0);
output_low(PIN_D1);
delay_ms(2000);
}
else{
lcd_putc("\fClave incorecta ");
lcd_putc("\n -_- ");
j++;
if(j==3){
lcd_putc("\fTecladoBloqueado ");
lcd_putc("\n -_- ");
delay_ms(60000);
j=0;
}
output_high(PIN_D1);
output_low(PIN_D0);
delay_ms(2000);
}
}
}