Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

22/11/2011 #1


Teclado hexadecimal y pic 16f877a (requerimiento de clave)
HOLA NECESITO UNA AYUDA CON UN PROGRAMA EN LENGUAJE C-
LO QUE REQUIERE EL PROGRAMA ES EL ALMACENAMIENTO DE CLAVE TENGO EL PROGRAMA HASTA DONDE ME PIDE QUE DIGITE LA CLAVE Y DIGA QUE ES INCORRECTA PERO ME FALTA DONDE EL USUARIO PUEDA CAMBIAR LA CLAVE POR SI SE LE OLVIDA ESTA CLAVE DE VE EN LA LCD. AGRADECERIA MUCHO SU AYUDA!!! ES MUY URGENTE


# include <16f877a.h>
#use delay (clock = 4000000)

#include <lcd.c>
#define use_portb_kbd TRUE
#include <kbd.c>
#rom 0x2100={'7','3','2','4'}
unsigned long int adc;

main (){


char k;
int i;
int c=0;
char data[4],clave[4];
lcd_init();
kbd_init();
port_b_pullups(1);
while(true){
i=0;
printf(lcd_putc,"\fBienvenido\n");
delay_ms(1000);
printf(lcd_putc,"\ningrese clave\n");
delay_ms(1000);
printf( lcd_putc ,"\fpulsar tecla 1\n");
while(i<=3){
k=kbd_getc();

if (k!=0)
{data [i]=k;
i++;
printf(lcd_putc,"\fpulsar tecla %u\n",i+1);
}
}
c++;
if (c==3){
while(1){
printf(lcd_putc,"\fbloqueado\n");
delay_ms(1000);
printf(lcd_putc,"\freinicie\n");
delay_ms(1000);
}
}



for (i=0;i<=3;i++){
clave[i]=read_eeprom(i);}
if((data[0]==clave[0])&& (data[1]==clave[1]) && (data[2]==clave[2])&& (data[3]==clave[3])){


while(1){
printf(lcd_putc,"\fok\n");
setup_port_a(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0); // selecciona el canal 0 solamente
adc = read_adc();
lcd_gotoxy(1,1);
printf(lcd_putc, "dec=%lu",adc);
lcd_gotoxy(1,2);
printf(lcd_putc,"Hex=%lx",adc);


set_adc_channel(1); // selecciona el canal 1 solamente
adc = read_adc();
lcd_gotoxy(10,1);
printf(lcd_putc, "dec=%lu",adc);
lcd_gotoxy(9,2);
printf(lcd_putc,"Hex=%lx",adc);
delay_ms(500);


}
}

else printf(lcd_putc,"\fclave incorrecta\n");

delay_ms(1000);




}
}
22/11/2011 #2


Publica tu codigo para poderte apoyar.
22/11/2011 #3


# include <16f877a.h>
#use delay (clock = 4000000)

#include <lcd.c>
#define use_portb_kbd TRUE
#include <kbd.c>
#rom 0x2100={'7','3','2','4'}
unsigned long int adc;

main (){


char k;
int i;
int c=0;
char data[4],clave[4];
lcd_init();
kbd_init();
port_b_pullups(1);
while(true){
i=0;
printf(lcd_putc,"\fBienvenido\n");
delay_ms(1000);
printf(lcd_putc,"\ningrese clave\n");
delay_ms(1000);
printf( lcd_putc ,"\fpulsar tecla 1\n");
while(i<=3){
k=kbd_getc();

if (k!=0)
{data [i]=k;
i++;
printf(lcd_putc,"\fpulsar tecla %u\n",i+1);
}
}
c++;
if (c==3){
while(1){
printf(lcd_putc,"\fbloqueado\n");
delay_ms(1000);
printf(lcd_putc,"\freinicie\n");
delay_ms(1000);
}
}



for (i=0;i<=3;i++){
clave[i]=read_eeprom(i);}
if((data[0]==clave[0])&& (data[1]==clave[1]) && (data[2]==clave[2])&& (data[3]==clave[3])){


while(1){
printf(lcd_putc,"\fok\n");
setup_port_a(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0); // selecciona el canal 0 solamente
adc = read_adc();
lcd_gotoxy(1,1);
printf(lcd_putc, "dec=%lu",adc);
lcd_gotoxy(1,2);
printf(lcd_putc,"Hex=%lx",adc);


set_adc_channel(1); // selecciona el canal 1 solamente
adc = read_adc();
lcd_gotoxy(10,1);
printf(lcd_putc, "dec=%lu",adc);
lcd_gotoxy(9,2);
printf(lcd_putc,"Hex=%lx",adc);
delay_ms(500);


}
}

else printf(lcd_putc,"\fclave incorrecta\n");

delay_ms(1000);




}
}
13/03/2012 #4


podrias postear tu simulacion... para probarlo.. gracias.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.