877A
DOWNLOAD:
Projeto: Tranca_Eletronica.rar
CDIGO-FONTE: (Compilador MikroC PRO PIC)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
LCD_RS at RC4_bit;
LCD_EN at RC5_bit;
LCD_D4 at RC0_bit;
LCD_D5 at RC1_bit;
LCD_D6 at RC2_bit;
LCD_D7 at RC3_bit;
LCD_RS_Direction at
LCD_EN_Direction at
LCD_D4_Direction at
LCD_D5_Direction at
LCD_D6_Direction at
LCD_D7_Direction at
TRISC4_bit;
TRISC5_bit;
TRISC0_bit;
TRISC1_bit;
TRISC2_bit;
TRISC3_bit;
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
char
char
char
char
cliques = 0;
tentativas = 0;
*senha = "000000";
*textos[6] = {"
Senha OK
",
"
Senha Errada
",
"
Nova Senha OK
",
"
Digite a senha
",
" Digite a nova senha",
"
Fim
"};
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Ptr2 = textos[3];
Lcd_Out(1, 1, Ptr2);
while(1)
{
if(tentativas < 3)
{
kp = Keypad_Key_Click();
if(kp)
{
if(kp % 4 == 0)
{
//Faz Nada
}
else if(kp == 13) //Limpar
{
LimparSenha();
cliques = 0;
}
else if(kp == 15) //Enter
{
cliques = 0;
if(PORTB.F7 == 1) //Verificar entrada da senha
{
if(CompararSenha()) //Sucesso
{
PORTB.F0 = ~PORTB.F0;
Ptr1 = textos[0];
LimparSenha();
}
else
//Senha errada
{
tentativas++;
Ptr1 = textos[1];
LimparSenha();
}
}
else //Gravar nova senha
{
GravarSenhaNaEeprom();
Ptr1 = textos[2];
LimparSenha();
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
}
Lcd_Out(1, 1, Ptr1);
Delay_ms(2000);
}
else //Numeros
{
switch(kp)
{
case 1: kp = 49; break; //1
case 2: kp = 50; break; //2
case 3: kp = 51; break; //3
case 5: kp = 52; break; //4
case 6: kp = 53; break; //5
case 7: kp = 54; break; //6
case 9: kp = 55; break; //7
case 10: kp = 56; break;//8
case 11: kp = 57; break;//9
case 14: kp = 48; break;//0
}
if(cliques < 6)
{
//Digitando a senha
for(i=0; i < 5; i++)
senha[i] = senha[i+1];
senha[5] = kp;
}
}
}
else
{
if(PORTB.F7) Ptr2 = textos[3];
else Ptr2 = textos[4];
}
}
else
{
Ptr2 = textos[5];
PORTB.F1 = 1;
}
Lcd_Out(1,1, Ptr2);
Lcd_Out(2,8, senha);
Delay_ms(100);
161. }
162. }
http://microcontrolandos.blogspot.com.br/2013/01/tranca-eletronica.html