FECHADURA ELÉTRICA COM SENHA DE 4 DIGITOS USANDO 1 SÓ BOTÃO COM PIC 12F629

0

Fechadura Eletrica  com senha  de 4 digitos usando apenas um simples botão

Observando algumas revistas sobre eletrônica ,  encontrei um artigo chamado originalmente de : Code Lock with One Button , de Zorislav Miljak, usando um microcontrolador PIC 16F84. Foi a inspiração para este projeto.

Pensei: Porque não usar um pequeno PIC12F629 para isto? É bem mais barato (R$ 5,00), pequeno ,tem oscilador interno, e facilmente encontrado no mercado. Aparentemente, seria fácil a adaptação, mas o problema surgiu ao tentar ligar o display de 7 seguimentos. A solução foi implementar uma multiplexação  em que  se apresentaria os seguimentos do display  “c,p,b,a”  ou “g,d,e,f”, alternadamente, e usando o sinal do ponto (p) para acionar um transistor BC 547 ,cujo coletor aterraria um rele de potencia para a fechadura elétrica. O pino 7 do Pic é usado como sinal de chaveamento. Quando está em Vcc (1) inibe os seguimentos  c,p,b,a , via um transistor BC 547  e quando  está em Gnd (0) inibe os seguimentos g,d,f,e, usando diodos  tipo 1N 4148 , que desviam a tensão destes seguimentos .

Logicamente, foi preciso começar um programa “.asm” do zero para obter o desejado. O código “.asm”gerado é bem simples de entender, se acompanhar os comentários (Obs. Feito por hobysta, não um programador “expert”). Depois de compilado, foi feito vários testes para acertar os tempos , visto que estamos usando o oscilador interno do PIC visando poupar os raros pinos. Note que foi usado o pino reset (4) como entrada. Não esqueça de acertar a palavra “Config” para este objetivo caso tenha que recompilar o programa asm.

Como a introdução de uma senha é de forma serial, não é bom termos uma senha de muitos dígitos,pois consumiria muito tempo para introduzi-la. Por isto, foi optado por se usar apenas 4 digitos de forma fixa.  No programa “.asm” foi definido por linha de código a senha inicial como sendo “7523”. Em uso, altere ela conforme desejar, sendo depois salva na memória EEprom do chip.  Caso esqueça a senha que você alterou,  deverá apagar o chip e grava-lo novamente, usando a senha “7523”, inicialmente.

Chegou o grande momento. Como  usar este dispositivo?  Comece apertando o botão, que irá apresentar  sequencialmente uma contagem de 0 a “P”. Solte o botão quando aparecer o primeiro numero da senha. Repita com os próximos 3 números. Se a senha for introduzida corretamente aparecerá  a letra “L” (liberado) e depois “.” (ponto), ligando o relé  da fechadura por 15 segundos e desligando automaticamente.  Se a senha for digitada incorretamente aparecerá a letra “F” (falha) piscando 3 vezes. Para mudar a senha, soltar o botão quando aparecer a letra “P”, e ao fazer isto, irá aparecer a letra “O”(Senha antiga) . Em seguida deverá ser digitado a senha atual. Se introduzida de forma correta, aparecerá  a letra “N” (Nova Senha). Introduza agora a nova senha de 4 digitos. Irá aparecer em seguida a letra “C” , devendo introduzir de novo a senha nova para confirmar a mudança.  Após isto,  aparecerá a letra “A” (Alterado) piscando por 3 vezes, indicando o sucesso na alteração.

Para  gravar o PIC com arquivo Hex poderá usar um programa como  WinPic800 e se desejar alterar o programa “fechadura1sw.asm” use o Mplab da Microchip.

Foi usado um protoboard para realizar uma montagem experimental, não tendo sido feita ainda uma placa de circuito impresso.

Para alimentar o circuito pode-se se usar um pequeno transformador de 110v para 12+12 e um regulador de tensão para  5 volts do tipo 7805 .

Segue o  esquema :

Esquema circuito fechadura
Esquema circuito fechadura

Segue codigo asm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
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
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
;***************************************************************************
;            PROJETO : FECHADURA ELETRICA COM SENHA DE 4 DIGITOS USANDO APENAS  1 SÓ BOTÃO (SERIAL)
;****************************************************************************

;  -------------------------------------      “fechadura1sw.asm” ------------------------------------------------------

;
;   INICIO : 09/01/12 TERM.:
;    AUTOR:  C. LÁRIOS
;    PROCESSADOR:  PIC   12F629
;    OBJETIVO: ACIONAR SOLENOIDE DE PORTÃO OU COMANDO DE ABRIR /FECHAR PORTÃO AUTOMATICO
;*****************************************************************************
;
#INCLUDE<P12F629.INC> ;    ARQUIVO PADRAO
__CONFIG    _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF  & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT   ;(ATENÇÃO DESLIGADO. FEITO NO CONFIGURE!!!!)
ERRORLEVEL      -302

;                    PAGINACAO DE MEMORIA;
#DEFINE        BANK0    BCF    STATUS,RP0     ;SETA BANK0 DE MEMORIA
#DEFINE        BANK1    BSF    STATUS,RP0    ;SETA BANK1
;                        VARIAVEIS
CBLOCK        0X20        ;ENDERECO INICIAL DE MEMORIA
N0,N1,N2,N3,AUX,DEL4, DEL5,AUX1,TEMP,CONT,SAIDA,NUM,PONT,XW0,XW1,XW2,XW3,W0,W1,W2,W3,C0,C1,C2,FLAG,B0,B1,B2,PASSO
ENDC
;======================DEFINICAO DE BITS  E FLAGS==============

#DEFINE            SAE            GPIO,5    ; SAIDA PARA DISPLAY SEG 'A' E 'E'  -   PINO 2
#DEFINE         SBF         GPIO,4  ; SAIDA PARA DISPLAY SEG 'B' E 'F'  -   PINO 3
#DEFINE         SCG         GPIO,2  ; SADA  PARA DISPLAY SEG 'C' E 'G'  -   PINO 5
#DEFINE         SDP         GPIO,1  ; SADA  PARA DISPLAY SEG 'D' E '.'  -   PINO 6
#DEFINE            SW          GPIO,3    ; ENTRADA DA CHAVE DO CODIGO PINO 4
#DEFINE            MUX          GPIO,0    ; SAIDA  PARA MULTIPLEXAGEM DO DISPLAY PINO 7
LETRA_C EQU .12
LETRA_P EQU .10
LETRA_A EQU .18
LETRA_F EQU .15
LETRA_N EQU .13
LETRA_E EQU .11
LETRA_L EQU .17
LETRA_o EQU .14
LETRA_PONTO EQU  .16   ;MOSTRA PONTO E ACIONA
TMAX  EQU  0X28       ;TEMPO MAXIMO ENTRE ENTRADA DE NUMERO DA SENHA (15 SEG)
TEMPO_FECHADURA_LIGADO EQU 0X50  ;TEMPO QUE FECHADURA FICA ACIONADA
#DEFINE  FLAGTAP  FLAG,0

ORG    H'2100'
DE  7,3,2,5       ;SENHA INICIAL (ALTERAR)

ORG 0X00
GOTO INICIO
;................................................................................................
;                        VETOR DE INTERRUPCAO
ORG    0X04
RETFIE
;................................................................................................

TABELA

ADDWF   PCL,F
;           ABCPEFGD
RETLW  B'11101101'  ;0
RETLW  B'01100000'  ;1
RETLW  B'11001011'  ;2
RETLW  B'11100011'  ;3
RETLW  B'01100110'  ;4
RETLW  B'10100111'  ;5
RETLW  B'10101111'  ;6

RETLW  B'11100000'  ;7
RETLW  B'11101111'  ;8
RETLW  B'11100111'  ;9
RETLW  B'11001110'  ;LETRA 'P' =.10
RETLW  B'10001111'  ;LETRA 'E' =.11
RETLW  B'10001101'  ;LETRA 'C' =.12
RETLW  B'11101100'  ;LETRA 'N' =.13
RETLW  B'00101011'  ;LETRA 'O' =.14
RETLW  B'10001110'  ;LETRA 'F' =.15
RETLW  B'00010000'  ;LETRA '.' =.16
RETLW  B'00001101'  ;LETRA 'L' =.17
RETLW  B'11101110'  ;LETRA 'A' =.18
RECEBE_SENHA
CLRF   PONT
CLRF   PCLATH
MOVFW  PASSO
ADDWF  PCL,F
GOTO   TESTA_SENHA        ;0-NORMAL - COMPARA SENHA RECEBIDA COM EEPROM
GOTO   TESTA_SENHA        ;1-MODO TROCA DE SENHA - COMPARA SENHA RECEBIDA COM EEPROM E SEGUE OS PASSOS
GOTO   RECEBE_NOVA_SENHA ;2- RECEBE NOVA SENHA
GOTO   CONFIRMA_NOVA_SENHA ;3- RECEBE ANOVAMENTE A MESMA NOVA SENHA PARA CONFIRMAÇÃO

RECEBE_NOVA_SENHA
MOVFW   N0        ;SALVA SENHA A CONFIRMAR
MOVWF   XW0
MOVFW   N1
MOVWF   XW1
MOVFW   N2
MOVWF   XW2
MOVFW   N3
MOVWF   XW3
MOVLW   0X04
CALL    DELAYSEG
MOVLW   LETRA_C
CALL    MOSTRALETRA
MOVLW   .3
MOVWF   PASSO
GOTO    MAIN
TESTA_SENHA
CALL LEEEP
CONFIRMA_NOVA_SENHA
MOVFW  XW0
XORWF  N0
BTFSS  STATUS,Z
GOTO   FALHA1
MOVFW  XW1
XORWF  N1
BTFSS  STATUS,Z
GOTO   FALHA1
MOVFW  XW2
XORWF  N2
BTFSS  STATUS,Z
GOTO   FALHA1
MOVFW  XW3
XORWF  N3
BTFSS  STATUS,Z
GOTO   FALHA1

MOVLW  .1
XORWF   PASSO,W
BTFSC   STATUS,Z
GOTO    PASSO1        ;MODO 1 - INICIA ALTERAÇÃO DE SENHA
MOVLW  .3
XORWF   PASSO,W
BTFSC   STATUS,Z
GOTO    GRAVAR        ;MODO 3 - GRAVAR NOVA SENHA NA EEPROM
MOVLW   0X02
CALL    DELAYSEG
MOVLW   LETRA_L
CALL    MOSTRALETRA
CLRF    GPIO
BSF     GPIO,1  ;LIGA PONTO (SAIDA PARA FECHADURA)
MOVLW   TEMPO_FECHADURA_LIGADO
CALL    DELAYSEG
VFIM
CLRF    N0
CLRF    N1
CLRF    N2
CLRF    N3
CLRF    PONT
CLRF    GPIO
CLRF    PASSO
BCF     FLAGTAP
GOTO MAIN
PASSO1
MOVLW   0X02
CALL    DELAYSEG
MOVLW   LETRA_N
CALL    MOSTRALETRA
MOVLW   .2
MOVWF   PASSO
GOTO    MAIN
GRAVAR
CALL    VAIEEPROM
MOVLW   0X03
MOVWF   AUX
MOVLW   0X04
CALL    DELAYSEG
MOVLW   LETRA_A
CALL    MOSTRALETRA
DECFSZ  AUX,F
GOTO    $-5
GOTO    VFIM
;
;
INICIO
BANK1                                ;BANCO  1
MOVLW        .0
MOVWF        INTCON        ;DESLIGA TODAS INTERRUPCOES
MOVLW        B'000000'    ;SAIDA EM GP0
MOVWF        TRISIO        ;
BANK0
MOVLW        .7          ;DESLIGA O  COMPARADOR
MOVWF        CMCON        ;IDEM
CLRF        GPIO
CLRF          PONT        ;ZERA  PONTEIRO
MOVLW   TMAX
MOVWF   C2
CLRF    FLAG
CLRF    PASSO
MAIN

BTFSC   SW
GOTO    VETEMP
DECFSZ   B0,F
GOTO    MAIN
DECFSZ   B1,F
GOTO    MAIN
MOVLW   TMAX
MOVWF   C2
GOTO    INITCONT

VETEMP
CLRF   B0
CLRF   B1
DECFSZ  C0,F
GOTO    MAIN
DECFSZ  C1,F
GOTO    MAIN
DECFSZ  C2,F
GOTO    MAIN
MOVLW   TMAX
MOVWF   C2
BTFSS   FLAGTAP
GOTO    NMOSTRAC
CALL    FALHA1
NMOSTRAC
CLRF    N0
CLRF    N1
CLRF    N2
CLRF    N3
GOTO    MAIN

INITCONT

CLRF   AUX1
MOVLW .0
MOVWF  NUM
CALL   TABELA
MOVWF  SAIDA
APRMESMO
CALL   MS1
CALL   DELAYT
ADDLW  .0
BTFSS  STATUS,Z
GOTO   PEGAN
CALL   MS2
CALL   DELAYT
ADDLW  .0
BTFSS  STATUS,Z
GOTO   PEGAN

DECFSZ  AUX1,F
GOTO   APRMESMO
INCF   NUM,F
MOVFW  NUM
CALL   TABELA
MOVWF  SAIDA
MOVFW  NUM
SUBLW   .11
BTFSC  STATUS,Z
GOTO INITCONT
GOTO APRMESMO

PEGAN
MOVFW  NUM
SUBLW  .10        ;TESTA SE É LETRA 'A' DE ALTERAR SENHA
BTFSC  STATUS,Z
GOTO   ALTERA_SENHA    ;VAI PARA ALTERAR SENHA
BSF    FLAGTAP            ;FLAG PARA APRESENTAÇÃO DE 'F'
MOVFW  PONT
ADDLW  0X20
MOVWF  FSR
MOVFW  NUM
MOVWF  INDF
INCF   PONT,F
MOVFW  PONT
SUBLW  .4
BTFSC  STATUS,Z
GOTO   RECEBE_SENHA
GOTO MAIN
ALTERA_SENHA
MOVLW  .1;SINALIZA QUE HÁ ALTERAÇÃO DE SENHA
MOVWF  PASSO
MOVLW  0X04
CALL   DELAYSEG
MOVLW  LETRA_o        ;MOSTRA LETRA 'O' DE OLD (VELHA SENHA)
CALL   MOSTRALETRA
GOTO   MAIN

FALHA1        MOVLW   .3     ;3 VEZES PISCA E APARECE A LETRA 'F'
MOVWF   AUX
MOVLW   0X04
CALL    DELAYSEG
MOVLW   LETRA_F
CALL    MOSTRALETRA
DECFSZ  AUX,F
GOTO    $-5
GOTO    VFIM

MOSTRALETRA
CLRF   AUX1
CALL   TABELA
MOVWF  SAIDA
X1
CALL    MS1
CALL    DELAY
CALL    MS2
CALL    DELAY
DECFSZ  AUX1,F
GOTO    X1
CLRF   GPIO
RETURN

MS1
CLRF   GPIO
BTFSC  SAIDA,7
BSF    GPIO,5
BTFSC  SAIDA,6
BSF    GPIO,4
BTFSC  SAIDA,5
BSF    GPIO,2
BTFSC  SAIDA,4
BSF    GPIO,1
BCF    GPIO,0
RETURN

MS2
CLRF   GPIO
BTFSC  SAIDA,3
BSF    GPIO,5
BTFSC  SAIDA,2
BSF    GPIO,4
BTFSC  SAIDA,1
BSF    GPIO,2
BTFSC  SAIDA,0
BSF    GPIO,1
BSF    GPIO,0
RETURN

;------------------------------------------------------------------------------------------
DELAY

MOVLW       0XFF
MOVWF       DEL5
NOP
NOP
NOP
NOP
DECFSZ      DEL5,F
GOTO $-5

RETURN

DELAYT

MOVLW       0XFF
MOVWF       DEL5
NOP
BTFSC      SW
GOTO       DBNCE
NOP
NOP
VT1            DECFSZ      DEL5,F
GOTO $-5
CLRF        GPIO
RETLW   .0

DBNCE
CALL   DELAY
BTFSS  SW
GOTO   VT1
CLRF        GPIO
RETLW  .1

;                ...........SUB-ROTINA DE ESCRITA NA E2PROM............
ESCR_E2PROM
BANK1
MOVWF        EEDATA
BCF            INTCON,GIE
BSF            EECON1,WREN
MOVLW        0X55
MOVWF        EECON2
MOVLW        0XAA
MOVWF        EECON2
BSF            EECON1,WR
BCF            EECON1,WREN
;      BTFSC        EECON1,WRERR    ; *  HOUVE ERRO?( * OPCIONAL ESTA LINHA  E A PROXIMA)
;         GOTO        ESCR_E2PROM        ; * TENTA NOVAMENTE SEM AFETAR EEDATA
BTFSC        EECON1,WR
GOTO        $ - 1
BANK0
RETURN
VAIEEPROM                            ;  ESCREVE NA E2PROM

MOVLW        .0
BANK1
MOVWF        EEADR
BANK0
MOVFW        XW0        ;DADO  DO TMR1H   N.OVERFLOW
CALL        ESCR_E2PROM

MOVLW        .1
BANK1
MOVWF        EEADR
BANK0
MOVFW        XW1        ;DADO  DO TMR1H
CALL        ESCR_E2PROM

MOVLW        .2                ;AINDA NÃO
BANK1
MOVWF        EEADR
BANK0
MOVFW        XW2        ;DADO DO TMR1L
CALL        ESCR_E2PROM

MOVLW        .3            ;AINDA NÃO
BANK1
MOVWF        EEADR
BANK0
MOVFW        XW3        ;DADO DO TMR1L
CALL        ESCR_E2PROM

LEEEP        MOVLW        .0            ;VALOR PARA NUMERO 0
BANK1
MOVWF        EEADR        ;CARREGA ENDERECO
CALL        LE_E2PROM    ;SUBROTINA PARA LEITURA
MOVWF        XW0        ;CARREGA PRIMEIRO NUMERO
MOVLW        .1            ;VALOR PARA NUMERO 0
BANK1
MOVWF        EEADR        ;CARREGA ENDERECO
CALL        LE_E2PROM    ;SUBROTINA PARA LEITURA
MOVWF        XW1        ;CARREGA PRIMEIRO NUMERO
MOVLW        .2            ;VALOR PARA NUMERO 0
BANK1
MOVWF        EEADR        ;CARREGA ENDERECO
CALL        LE_E2PROM    ;SUBROTINA PARA LEITURA
MOVWF        XW2        ;CARREGA PRIMEIRO NUMERO
MOVLW        .3            ;VALOR PARA NUMERO 0
BANK1
MOVWF        EEADR        ;CARREGA ENDERECO
CALL        LE_E2PROM    ;SUBROTINA PARA LEITURA
MOVWF        XW3        ;CARREGA PRIMEIRO NUMERO
RETURN

LE_E2PROM    BANK1                    ;SUB-ROTINA DE LEITURA DE E2PROM
BSF            EECON1,RD    ;
MOVF        EEDATA,W    ;
BANK0                    ;
RETURN

DELAYSEG
MOVWF   C2
DECFSZ  C0,F
GOTO $-1
DECFSZ  C1,F
GOTO $-3
DECFSZ  C2,F
GOTO $-5
RETURN

END

Segue o código  “fechadura1sw.hex”:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
:020000040000FA
:020000006B286B
:0800080009008207ED346034A9
:10001000CB34E3346634A734AF34E034EF34E73420
:10002000CE348F348D34EC342B348E3410340D3484
:10003000EE34AC018A013C088207302830282128A0
:1000400031282008AD002108AE002208AF002308A7
:10005000B000043048210C30CE200330BC00792899
:100060002E212D08A006031DC5282E08A106031D5C
:10007000C5282F08A206031DC5283008A306031DA6
:10008000C52801303C0603195A2803303C060319E1
:100090006128023048211130CE208501851450306E
:1000A0004821A001A101A201A301AC018501BC016D
:1000B00038107928023048210D30CE200230BC00A3
:1000C000792816210330A400043048211230CE20B4
:1000D000A40B64285128831600308B000030850063
:1000E0008312073099008501AC012830B700B801B0
:1000F000BC0185198228B90B7928BA0B79282830D8
:10010000B7009428B901BA01B50B7928B60B792844
:10011000B70B79282830B700381C8F28C520A001DC
:10012000A101A201A3017928A7010030AB0005209D
:10013000AA00D920F820003E031DAE28E420F820B4
:10014000003E031DAE28A70B9928AB0A2B080520FB
:10015000AA002B080B3C0319942899282B080A3C69
:100160000319BE2838142C08203E84002B08800078
:10017000AC0A2C08043C0319192879280130BC006A
:10018000043048210E30CE2079280330A4000430FA
:1001900048210F30CE20A40BC7285128A7010520E5
:1001A000AA00D920EF20E420EF20A70BD128850159
:1001B00008008501AA1B85162A1B0516AA1A051513
:1001C0002A1A8514051008008501AA1985162A190E
:1001D0000516AA1805152A18851405140800FF30FD
:1001E000A6000000000000000000A60BF128080097
:1001F000FF30A60000008519032900000000A60BAF
:10020000FB2885010034EF20851DFF28850101347E
:1002100083169A008B131C1555309D00AA309D0043
:100220009C141C119C18122983120800003083169C
:100230009B0083122D080821013083169B00831236
:100240002E080821023083169B0083122F080821F4
:10025000033083169B008312300808210030831678
:100260009B004321AD00013083169B004321AE006B
:10027000023083169B004321AF00033083169B009E
:100280004321B000080083161C141A0883120800CA
:10029000B700B50B4929B60B4929B70B4929080006
:02400E00C43FAD
:084200000700030002000500A5
:00000001FF

Curiosidades:
Universo cheio de surpresas
Universo – obra do acaso?
Nosso inigualável sistema solar
Mapeamento do céu
Qual a origem do universo e a vida?

Outros assuntos:
Quatro dicas para lidar com problemas financeiros e dívidas
Como lidar com sucesso com os sogros
Como reagir a um assédio sexual
Como parar de adiar as coisas

Até o próximo artigo!!!!

0

7 comentários sobre “FECHADURA ELÉTRICA COM SENHA DE 4 DIGITOS USANDO 1 SÓ BOTÃO COM PIC 12F629

  1. 0

    boa noite amigo!
    parabéns pelo conteúdo do site, realmente muito bom!
    bom, agora vem a pergunta rsrsrsrs.
    sabe, estou estudando um pouco de programação pic, porém em linguagem c, gostei do projeto e como esta em assembler não consigo entender o código.
    como vi que você programa também em c, resolvi perguntar, seria muito difícil traduzir esse código para linguagem c, pois gosto muito de estudar os códigos para tentar entender as configurações e logicas usadas.

    obrigado pela atenção e parabéns pelo trabalho que vem desenvolvendo!

    1. 0

      Olá Marcio!
      Obrigado por seu comentário de apreço pelo conteúdo do blog! Quanto ao alterar para “C” não é algo rápido de se fazer, no tempo limitado que tenho. Quem sabe mais para frente eu possa fazer isto, mas não prometo. Se você gosta de programação, creio que terá que ‘engulir’ o ASM, e aprender a gostar dele. Ele é muito necessário mesmo ao usar o “C” em rotinas críticas que não tem jeito de ser feitas senão em assembly. Também o compilador C gera o arquivo ‘List” para o programador verificar se está sendo montado do jeito que ele deseja e descobrir bugs mais facilmente.
      Então….
      Claudio

  2. 0

    Boa noite claudio, desculpe a minha ignorancia mais nesse circuito onde eu coloco os fios da trava ?

    1. 0

      Olá Fernando!
      Obrigado por seu comentário. Ninguém deve se sentir intimidado em perguntar quando não conhecer um assunto, especialmente se desejar realmente saber.
      Você deverá ligar através dos contatos do rele, identificados no esquema no canto superior direito como ‘ p/ solenóide’ ou seja, a bobina da trava elétrica do portão.
      Se sua trava for de 12 volts, poderá usar do próprio circuito. Ligue o +12v ao contato e no outro contato do rele, ligue com um fio até a fechadura e dela deverá retornar outro fio que será ligado ao gnd. Não esqueça de colocar um diodo 1N4007 em paralelo com esta bobina (sentido de não condução, ou seja, com o catodo para o +12v), com o objetivo de eliminar tensões geradas ao se desligar, que poderiam afetar o funcionamento do PIC. Se for outras tensões na fechadura, deverá ter um transformador apropriado.
      Claudio

  3. 0

    pensei no uso do conversor para economizar pinos pois preciso acionar o rele e manter e teria que ser uma senha de 4 numeros teria como fazer , sobre o botão pensei no teclado de telefone , mas seria complexo demais , talves o idela seria usar o pic16f628 né

  4. 0

    amigo no meu caso precisaria de uma senha de 4 digitos mas o relê no modo retenção a senha ligaria o rele e manteria até o reset ou desligamento do cirucito , mas peseni não teria como usar um conversor de 7 seguentos contator binario , assim usando 4 pinos este proejto serveria pra ligar uma ignição de um carro , assim seria um sistema de trava de veiculo com senha .

    1. 0

      Olá Liliano! Não entendi bem o uso do conversor de 7 seguimentos. Ainda usaria apenas um digito? Seria com um só botão?
      Claudio

Os comentários estão fechados.