Eletrônica Silveira
Olá, Seja Bem-Vindo ao Fórum Eletrônica Silveira!!!!
Para você poder ver os mais variados Projetos do nosso Fórum, você precisa fazer o cadastro!

Depois de se Cadastrar, não se esqueça de ler as regras do fórum!

http://eletronicasilveira.forumeiros.com/t3-regras-do-forum#3


Administrador do Fórum,
Rafael Silveira
HOMENAGEM

Na vida tudo passa tudo acontece mas alguém igual a você a gente jamais esquece




★ 22 de novembro de 1991

† 12 de março de 2016

Nosso eterno amigo, administrador e fundador deste fórum
Quem está conectado
50 usuários online :: 15 usuários cadastrados, Nenhum Invisível e 35 Visitantes :: 2 Motores de busca

Ademir, borao, carlosalan3, CMeletronica, danmaziero, deus efiel, Isaias Corona, jorge mendes, mbt, MME, rasiel2017, renatoscp, sandro03, Yogurthu, zainan

[ Ver toda a lista ]


O recorde de usuários online foi de 264 em Seg 18 Mar 2013 - 11:54
Últimos assuntos
» AUTO RAMP
Hoje à(s) 21:51 por Isaias Corona

» CROSSOVER PARA GRAVES
Hoje à(s) 20:27 por josiaslima

» Esquema de Amplificadrr de audio
Hoje à(s) 18:57 por michael@

» esquema studio r z7/ z8
Hoje à(s) 17:54 por michael@

» Fonte Chaveada Com IR2153 "Nova Versão"
Ontem à(s) 23:09 por deus efiel

» Modificacão em esquema staner
Ontem à(s) 21:31 por jacquesprates

» Amplificador APEX AX11
Ontem à(s) 13:39 por danmaziero

» NS450 - AMPLIFICADOR
Sab 9 Dez 2017 - 11:50 por lgeorg12

» amplificador classe D com IRFI4019H 250W em 4R
Sab 9 Dez 2017 - 3:12 por 0xxy

» AMPLIFICADOR ONEAL OP7000
Sex 8 Dez 2017 - 6:01 por louroimortaldotempo

» Fontes Full-Bridge
Qua 6 Dez 2017 - 23:15 por Fabregas

» Aquecedor por indução magnetica
Qua 6 Dez 2017 - 19:44 por ceara.val

» Amplificador diy com placas Audio Leader
Qua 6 Dez 2017 - 16:51 por Everaldo K. Maus

» DEBUNKER DIAMOND X2
Dom 3 Dez 2017 - 20:08 por jocabacellar

» amplificador full bridge classe D 5000wrms
Dom 3 Dez 2017 - 18:02 por marciolopes37

Eletrônica Perez
CM Eletrônica
Top dos mais postadores
Rafael Silveira (7816)
 
Caca Silva (5951)
 
renatoscp (3842)
 
CMeletronica (3155)
 
michel chagas (2791)
 
Railson (2119)
 
alexsandro rodrigues de a (1778)
 
naldo santos (1599)
 
ablacon64 (1222)
 
gilvantexas (1061)
 

Medidor de Velocidade

Publicidade

Tranca Eletrônica utilizando o PIC16F877A

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Tranca Eletrônica utilizando o PIC16F877A

Mensagem por jucesar em Ter 27 Ago 2013 - 19:58

Tranca Eletrônica utilizando o PIC16F877A






A fechadura elétrica (usada nos portões eletrônicos) será aberta caso o usuário digitar a senha correta. A senha é um número entre 0 e 999.999. O usuário possuirá um número limitado de tentativas (3 tentativas), e após o sistema irá entrar em bloqueio( led vermelho acenderá). A senha terá que ser definida na primeira vez. Pressione o botão S1, digite a senha e aperte a tecla ENTER. Você poderá alterar a senha quantas vezes quiser.

A fechadura é chaveada pelo relê.

A tecla C do teclado é usado para limpar os dígitos do display.

Nesse projeto utilizou-se um teclado 4x3, um display LCD 20x2 e para o microcontrolador foi utilizado um clock de 4Mhz.





DOWNLOAD:
Firmware: https://sites.google.com/site/microcontrolandos/arquivos/Tranca.hex?attredirects=0&d=1

Arquivo-Fonte: https://sites.google.com/site/microcontrolandos/arquivos/Tranca.asm?attredirects=0&d=1

Arquivo de simulação do Proteus: https://sites.google.com/site/microcontrolandos/arquivos/Tranca.DSN?attredirects=0&d=1


CóDIGO-FONTE: (Compilador MikroC PRO PIC)
sbit LCD_RS at RC4_bit;
sbit LCD_EN at RC5_bit;
sbit LCD_D4 at RC0_bit;
sbit LCD_D5 at RC1_bit;
sbit LCD_D6 at RC2_bit;
sbit LCD_D7 at RC3_bit;
sbit LCD_RS_Direction at TRISC4_bit;
sbit LCD_EN_Direction at TRISC5_bit;
sbit LCD_D4_Direction at TRISC0_bit;
sbit LCD_D5_Direction at TRISC1_bit;
sbit LCD_D6_Direction at TRISC2_bit;
sbit LCD_D7_Direction at TRISC3_bit;
char keypadPort at PORTD;
//VARIAVEIS
bit clique,Enter,limpar,oldstate;
short kp,dgt,tentativa;
char senha[6];
//ROTINA DE INTERRPÇÃO
void main() {
//CONFIGURAÇÃO DOS REGISTROS
TRISB=0b10000000;
PORTB=0;
//BIT DE STATUS
clique=0;
Enter=0;
limpar=0;
oldstate=0;
//VARIAVEIS
tentativa=0;
Keypad_Init();
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
while(1){
kp = Keypad_Key_Click();
if(kp){
     clique=1;
}else{
     clique=0;
}
if(kp==15){
Enter=1;
}else{
Enter=0;
}
if(kp==13){
limpar=1;
}else{
limpar=0;
}
switch(kp) {
     case  1: kp = 1; break;
     case  2: kp = 2; break;
     case  3: kp = 3; break;
     case  5: kp = 4; break;
     case  6: kp = 5; break;
     case  7: kp = 6; break;
     case  9: kp = 7; break;
     case 10: kp = 8; break;
     case 11: kp = 9; break;
     case 13: kp = 0; dgt = -1; break;
     case 14: kp = 0; break;
     case 15: kp = 0; dgt = -1; break;
}
if(clique){
dgt++;
if(dgt==7) dgt=1;
     switch(dgt){
          case 1:
          senha[0] = kp;
          break;
          case 2:
          senha[1] = senha[0];
          senha[0] = kp;
          break;
          case 3:
          senha[2] = senha[1];
          senha[1] = senha[0];
          senha[0] = kp;
          break;
          case 4:
          senha[3] = senha[2];
          senha[2] = senha[1];
          senha[1] = senha[0];
          senha[0] = kp;
          break;
          case 5:
          senha[4] = senha[3];
          senha[3] = senha[2];
          senha[2] = senha[1];
          senha[1] = senha[0];
          senha[0] = kp;
          break;
          case 6:
          senha[5] = senha[4];
          senha[4] = senha[3];
          senha[3] = senha[2];
          senha[2] = senha[1];
          senha[1] = senha[0];
          senha[0] = kp;
          break;
          }
}
if(PORTB.F7){
if(Enter){
         if(tentativa<=3){
                if(senha[5]==EEPROM_Read(0x00) && senha[4]==EEPROM_Read(0x01) && senha[3]==EEPROM_Read(0x02) &&
                senha[2]==EEPROM_Read(0x03) && senha[1]==EEPROM_Read(0x04) && senha[0]==EEPROM_Read(0x05)){
                      PORTB.F0 = ~PORTB.F0;
                      lcd_out(2,15," OK  ");
                      senha[0]=0;senha[1]=0;senha[2]=0;
                      senha[3]=0;senha[4]=0;senha[5]=0;
                }else{
                      tentativa++;
                      lcd_out(2,15,"ERROR");
                      senha[0]=0;senha[1]=0;senha[2]=0;
                      senha[3]=0;senha[4]=0;senha[5]=0;
                      }
         }else{
               lcd_out(2,15," FIM ");
               senha[0]=0;senha[1]=0;senha[2]=0;
               senha[3]=0;senha[4]=0;senha[5]=0;
         }
dgt=0;
}
}else{
oldstate=1;
if(Enter){
         EEPROM_Write(0x00,senha[5]);
         EEPROM_Write(0x01,senha[4]);
         EEPROM_Write(0x02,senha[3]);
         EEPROM_Write(0x03,senha[2]);
         EEPROM_Write(0x04,senha[1]);
         EEPROM_Write(0x05,senha[0]);
         senha[0]=0;
         senha[1]=0;
         senha[2]=0;
         senha[3]=0;
         senha[4]=0;
         senha[5]=0;
         dgt=0;
}
}
if(PORTB.F7 && oldstate){
lcd_cmd(_LCD_CLEAR);
oldstate=0;
}
//Tecla C
if(limpar){
 senha[0]=0;
 senha[1]=0;
 senha[2]=0;
 senha[3]=0;
 senha[4]=0;
 senha[5]=0;
 dgt=0;
}
Lcd_Out(1,1,"Tranca Eletronica");
if(PORTB.F7){
Lcd_Out(2,1,"SENHA: ");
}else{
Lcd_Out(2,1,"NOVA SENHA: ");
}
Lcd_Chr_CP(senha[5]+48);
Lcd_Chr_CP(senha[4]+48);
Lcd_Chr_CP(senha[3]+48);
Lcd_Chr_CP(senha[2]+48);
Lcd_Chr_CP(senha[1]+48);
Lcd_Chr_CP(senha[0]+48);
Lcd_Out_CP(" ");
delay_ms(10);
}
}
avatar
jucesar
Nível 1
Nível 1

Mensagens : 9
Data de inscrição : 01/02/2011
Idade : 48
Localização : Santa Bárbara-MG

Voltar ao Topo Ir em baixo

Re: Tranca Eletrônica utilizando o PIC16F877A

Mensagem por CMeletronica em Qua 28 Ago 2013 - 7:40

Opa amigo legal este projeto , eu tenho um projeto que vou postar aqui depois é a mesma ideia porem usa um pci 16f628 , e tem a opção de gravar de 64 a 128 senhas individuais para o mesmo proposito
avatar
CMeletronica
MODERADOR e PARCEIRO
MODERADOR e PARCEIRO

Mensagens : 3155
Data de inscrição : 30/01/2013
Idade : 37
Localização : TRÊS RIOS

Voltar ao Topo Ir em baixo

Re: Tranca Eletrônica utilizando o PIC16F877A

Mensagem por limasom em Ter 22 Out 2013 - 0:02

amigo
boa noite , estou tentando baixar os arquivos mas da pagina não encontrada
avatar
limasom
Nível 1
Nível 1

Mensagens : 4
Data de inscrição : 23/08/2013
Idade : 44
Localização : brasil

Voltar ao Topo Ir em baixo

Re: Tranca Eletrônica utilizando o PIC16F877A

Mensagem por joab ribeiro em Ter 28 Jan 2014 - 14:20

nenhum link nao funciona
avatar
joab ribeiro
Nível 1
Nível 1

Mensagens : 45
Data de inscrição : 30/11/2011
Idade : 37
Localização : jaboti parana

Voltar ao Topo Ir em baixo

Re: Tranca Eletrônica utilizando o PIC16F877A

Mensagem por Caca Silva em Sab 5 Abr 2014 - 20:11

Link para baixar todo o projeto:

TRANCA ELETRONICA.RAR

_________________
avatar
Caca Silva
ADMINISTRADOR
ADMINISTRADOR

Mensagens : 5951
Data de inscrição : 30/01/2011
Idade : 37
Localização : Ritápolis MG

Voltar ao Topo Ir em baixo

Re: Tranca Eletrônica utilizando o PIC16F877A

Mensagem por pedroladislau em Seg 5 Out 2015 - 13:00

cara muito bom seu projeto.qual a senha gravada no pic?
avatar
pedroladislau
Nível 1
Nível 1

Mensagens : 1
Data de inscrição : 05/10/2015
Idade : 36
Localização : SÃO PAULO SP

Voltar ao Topo Ir em baixo

Re: Tranca Eletrônica utilizando o PIC16F877A

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum