Autor Tema: AYUDA CON PIC 18F452  (Leído 1679 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mafesolutions

  • PIC10
  • *
  • Mensajes: 1
AYUDA CON PIC 18F452
« 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
Código: [Seleccionar]
#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);
     
      }
         }
            }


 

anything