Ir ao conteúdo
  • Cadastre-se

antonio2542

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Tudo que antonio2542 postou

  1. oi tudo bem eu so novo aqui e queria q vocês me ajudassem estou tentando programar um pic 16f628a com codigo mais sempre aparece o erro(de verificação no endereço 0x000000 verificando:0x3ff lendo:0x0000 o que fazer?gostaria muito se vocês podesem me ajudar !obrigado pela atenção o codigo é o seguinte: #use delay (clock=4000000) #fuses INTRC_IO, NOWDT, PUT, NOBROWNOUT, NOLVP, NOMCLR #include <lcd_flex.C> #define C1 PIN_A6 #define C2 PIN_A7 #define C3 PIN_A0 #define L1 PIN_A1 #define L2 PIN_A2 #define L3 PIN_A3 #define L4 PIN_A4 #define B PIN_B3 #define T PIN_B2 int i = 0; int j = 0; //****************************************************************************** void scan1(){ // Faz primeira varredura int aux=100; // Tempo de varredura while(aux != 0) // Laço para varredura { output_low(L1); // Joga 0 na coluna a ser varrida e 1 nas demais output_high(L2); output_high(L3); output_high(L4); if(input(C1) == 0) // Testa primeira coluna { i = 1; j ++; delay_ms(20); // Tempo para soltar tecla // Chama a sub-rotina correspondente a tecla } if(input(C2) == 0) // Testa segunda coluna { i = 2; j ++; delay_ms(20); // Tempo para soltar a tecla // Chama a sub-rotina corresponde a tecla } if(input(C3) == 0) // Testa terceira coluna { i = 3; j ++; delay_ms(20); // Tempo para soltar a tecla // Chama a sub-rotina corresponde a tecla } aux--; // Decrementa 1 de aux delay_us(aux); // Tempo de atraso da varredura é igual a aux } output_high(L1); output_high(L2); output_high(L3); output_high(L4); return; // Retorna } // Fim da sub-rotina //****************************************************************************** void scan2(){ // Faz primeira varredura int aux=100; // Tempo de varredura while(aux != 0) // Laço para varredura { output_high(L1); // Joga 0 na coluna a ser varrida e 1 nas demais output_low(L2); output_high(L3); output_high(L4); if(input(C1) == 0) // Testa primeira coluna { i = 4; j ++; delay_ms(20); // Tempo para soltar tecla // Chama a sub-rotina correspondente a tecla } if(input(C2) == 0) // Testa segunda coluna { i = 5; j ++; delay_ms(20); // Tempo para soltar a tecla // Chama a sub-rotina corresponde a tecla } if(input(C3) == 0) // Testa terceira coluna { i = 6; j ++; delay_ms(20); // Tempo para soltar a tecla // Chama a sub-rotina corresponde a tecla } aux--; // Decrementa 1 de aux delay_us(aux); // Tempo de atraso da varredura é igual a aux } output_high(L1); output_high(L2); output_high(L3); output_high(L4); return; // Retorna } // Fim da sub-rotina //****************************************************************************** void scan3(){ // Faz primeira varredura int aux=100; // Tempo de varredura while(aux != 0) // Laço para varredura { output_high(L1); // Joga 0 na coluna a ser varrida e 1 nas demais output_high(L2); output_low(L3); output_high(L4); if(input(C1) == 0) // Testa primeira coluna { i = 7; j ++; delay_ms(20); // Tempo para soltar tecla // Chama a sub-rotina correspondente a tecla } if(input(C2) == 0) // Testa segunda coluna { i = 8; j ++; delay_ms(20); // Tempo para soltar a tecla // Chama a sub-rotina corresponde a tecla } if(input(C3) == 0) // Testa terceira coluna { i = 9; j ++; delay_ms(20); // Tempo para soltar a tecla // Chama a sub-rotina corresponde a tecla } aux--; // Decrementa 1 de aux delay_us(aux); // Tempo de atraso da varredura é igual a aux } output_high(L1); output_high(L2); output_high(L3); output_high(L4); return; // Retorna } // Fim da sub-rotina //****************************************************************************** void scan4(){ // Faz primeira varredura int aux=100; // Tempo de varredura while(aux != 0) // Laço para varredura { output_high(L1); // Joga 0 na coluna a ser varrida e 1 nas demais output_high(L2); output_high(L3); output_low(L4); if(input(C1) == 0) // Testa primeira coluna { i = 10; j = 10; delay_ms(20); // Tempo para soltar tecla // Chama a sub-rotina correspondente a tecla } if(input(C2) == 0) // Testa segunda coluna { i = 11; j ++; delay_ms(20); // Tempo para soltar a tecla // Chama a sub-rotina corresponde a tecla } if(input(C3) == 0) // Testa terceira coluna { i = 12; j = 12; delay_ms(20); // Tempo para soltar a tecla // Chama a sub-rotina corresponde a tecla } aux--; // Decrementa 1 de aux delay_us(aux); // Tempo de atraso da varredura é igual a aux } output_high(L1); output_high(L2); output_high(L3); output_high(L4); return; // Retorna } // Fim da sub-rotina //****************************************************************************** void BIP(){ output_high(; delay_ms(100); output_low(; } //****************************************************************************** void ABRIR(){ output_high(T); output_high(; delay_ms(2000); output_low(T); output_low(; } //****************************************************************************** void main() { int d_1 = 0; int d_2 = 0; int d_3 = 0; int d_4 = 0; int d_5 = 0; set_tris_a(0b11100001); //Define as entradas e saidas da porta "a" set_tris_b(0b00000000); //Define as entradas e saidas da porta "b" output_a(0); //Coloca todas as portas de "a" em nivel logico baixo output_b(0); //Coloca todas as portas de "b" em nivel logico baixo lcd_init(); while(TRUE) //Começo do programa { while(j == 0) { printf (lcd_putc, "\p\f..REP AREA 51.." ); printf (lcd_putc, "\n DIGITE A SENHA " ); scan1(); scan2(); scan3(); scan4(); } BIP(); printf (lcd_putc, "\f SENHA "); printf (lcd_putc, "\n *"); d_1 = i; delay_ms(500); j = 1; while(j == 1) { printf (lcd_putc, "\f SENHA "); printf (lcd_putc, "\n *"); scan1(); scan2(); scan3(); scan4(); } BIP(); printf (lcd_putc, "\f SENHA "); printf (lcd_putc, "\n **"); d_2 = i; delay_ms(500); j = 2; while(j == 2) { printf (lcd_putc, "\f SENHA "); printf (lcd_putc, "\n **"); scan1(); scan2(); scan3(); scan4(); } BIP(); printf (lcd_putc, "\f SENHA "); printf (lcd_putc, "\n ***"); d_3 = i; delay_ms(500); j = 3; while(j == 3) { printf (lcd_putc, "\f SENHA "); printf (lcd_putc, "\n ***"); scan1(); scan2(); scan3(); scan4(); } BIP(); printf (lcd_putc, "\f SENHA "); printf (lcd_putc, "\n ****"); d_4 = i; delay_ms(500); j = 4; while(j == 4) { printf (lcd_putc, "\f SENHA "); printf (lcd_putc, "\n ****"); scan1(); scan2(); scan3(); scan4(); } BIP(); printf (lcd_putc, "\f SENHA "); printf (lcd_putc, "\n *****"); d_5 = i; delay_ms(500); j = 5; if( j == 5 ) { if(d_1 == 2 && d_2 == 5 && d_3 == 6 && d_4 == 3 && d_5 == 8 ) { printf (lcd_putc, "\fBem vindo "antonio" "); printf (lcd_putc, "\n Senha correta "); ABRIR(); delay_ms(3000); i = 0; j = 0; } else { printf (lcd_putc, "\fSenha incorreta"); printf (lcd_putc, "\nTente novamente"); BIP(); delay_ms(100); BIP(); delay_ms(100); BIP(); delay_ms(100); BIP(); delay_ms(100); BIP(); delay_ms(100); BIP(); delay_ms(3000); i = 0; j = 0; } d_1 = 0; d_2 = 0; d_3 = 0; d_4 = 0; d_5 = 0; } } #include <16F628.h>

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!